@solana/rpc-api 8.2.0 → 8.3.0-canary-20260902083314
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.cjs +5 -0
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.mjs +5 -0
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.native.mjs +5 -0
- package/dist/index.native.mjs.map +1 -1
- package/dist/index.node.cjs +5 -0
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +5 -0
- package/dist/index.node.mjs.map +1 -1
- package/dist/types/getAgGenesisCert.d.ts +34 -0
- package/dist/types/getAgGenesisCert.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/getAgGenesisCert.ts +34 -0
- package/src/index.ts +8 -0
package/dist/index.browser.cjs
CHANGED
|
@@ -17,6 +17,11 @@ function getAllowedNumericKeypaths() {
|
|
|
17
17
|
if (!memoizedKeypaths) {
|
|
18
18
|
memoizedKeypaths = {
|
|
19
19
|
getAccountInfo: rpcTransformers.jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
|
|
20
|
+
getAgGenesisCert: [
|
|
21
|
+
["block", "blockId", rpcTransformers.KEYPATH_WILDCARD],
|
|
22
|
+
["signature", "bitmap", rpcTransformers.KEYPATH_WILDCARD],
|
|
23
|
+
["signature", "signature", rpcTransformers.KEYPATH_WILDCARD]
|
|
24
|
+
],
|
|
20
25
|
getBlock: [
|
|
21
26
|
...rpcTransformers.tokenBalancesConfigs.flatMap((c) => [
|
|
22
27
|
["transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "preTokenBalances", rpcTransformers.KEYPATH_WILDCARD, ...c],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["createJsonRpcApi","getDefaultRequestTransformerForSolanaRpc","getDefaultResponseTransformerForSolanaRpc","jsonParsedAccountsConfigs","tokenBalancesConfigs","KEYPATH_WILDCARD","innerInstructionsConfigs","messageConfig","jsonParsedTokenAccountsConfigs"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["createJsonRpcApi","getDefaultRequestTransformerForSolanaRpc","getDefaultResponseTransformerForSolanaRpc","jsonParsedAccountsConfigs","KEYPATH_WILDCARD","tokenBalancesConfigs","innerInstructionsConfigs","messageConfig","jsonParsedTokenAccountsConfigs"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\n} from '@solana/rpc-transformers';\n\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetAgGenesisCertApi } from './getAgGenesisCert';\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetAgGenesisCertApi &\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\nexport type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;\n\nexport type {\n GetAccountInfoApi,\n GetAgGenesisCertApi,\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 getAgGenesisCert: [\n ['block', 'blockId', KEYPATH_WILDCARD],\n ['signature', 'bitmap', KEYPATH_WILDCARD],\n ['signature', 'signature', KEYPATH_WILDCARD],\n ],\n getBlock: [\n ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
package/dist/index.browser.mjs
CHANGED
|
@@ -15,6 +15,11 @@ function getAllowedNumericKeypaths() {
|
|
|
15
15
|
if (!memoizedKeypaths) {
|
|
16
16
|
memoizedKeypaths = {
|
|
17
17
|
getAccountInfo: jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
|
|
18
|
+
getAgGenesisCert: [
|
|
19
|
+
["block", "blockId", KEYPATH_WILDCARD],
|
|
20
|
+
["signature", "bitmap", KEYPATH_WILDCARD],
|
|
21
|
+
["signature", "signature", KEYPATH_WILDCARD]
|
|
22
|
+
],
|
|
18
23
|
getBlock: [
|
|
19
24
|
...tokenBalancesConfigs.flatMap((c) => [
|
|
20
25
|
["transactions", KEYPATH_WILDCARD, "meta", "preTokenBalances", KEYPATH_WILDCARD, ...c],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.browser.mjs","sourcesContent":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\n} from '@solana/rpc-transformers';\n\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetAgGenesisCertApi } from './getAgGenesisCert';\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetAgGenesisCertApi &\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\nexport type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;\n\nexport type {\n GetAccountInfoApi,\n GetAgGenesisCertApi,\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 getAgGenesisCert: [\n ['block', 'blockId', KEYPATH_WILDCARD],\n ['signature', 'bitmap', KEYPATH_WILDCARD],\n ['signature', 'signature', KEYPATH_WILDCARD],\n ],\n getBlock: [\n ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
package/dist/index.native.mjs
CHANGED
|
@@ -15,6 +15,11 @@ function getAllowedNumericKeypaths() {
|
|
|
15
15
|
if (!memoizedKeypaths) {
|
|
16
16
|
memoizedKeypaths = {
|
|
17
17
|
getAccountInfo: jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
|
|
18
|
+
getAgGenesisCert: [
|
|
19
|
+
["block", "blockId", KEYPATH_WILDCARD],
|
|
20
|
+
["signature", "bitmap", KEYPATH_WILDCARD],
|
|
21
|
+
["signature", "signature", KEYPATH_WILDCARD]
|
|
22
|
+
],
|
|
18
23
|
getBlock: [
|
|
19
24
|
...tokenBalancesConfigs.flatMap((c) => [
|
|
20
25
|
["transactions", KEYPATH_WILDCARD, "meta", "preTokenBalances", KEYPATH_WILDCARD, ...c],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.native.mjs","sourcesContent":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\n} from '@solana/rpc-transformers';\n\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetAgGenesisCertApi } from './getAgGenesisCert';\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetAgGenesisCertApi &\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\nexport type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;\n\nexport type {\n GetAccountInfoApi,\n GetAgGenesisCertApi,\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 getAgGenesisCert: [\n ['block', 'blockId', KEYPATH_WILDCARD],\n ['signature', 'bitmap', KEYPATH_WILDCARD],\n ['signature', 'signature', KEYPATH_WILDCARD],\n ],\n getBlock: [\n ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
package/dist/index.node.cjs
CHANGED
|
@@ -17,6 +17,11 @@ function getAllowedNumericKeypaths() {
|
|
|
17
17
|
if (!memoizedKeypaths) {
|
|
18
18
|
memoizedKeypaths = {
|
|
19
19
|
getAccountInfo: rpcTransformers.jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
|
|
20
|
+
getAgGenesisCert: [
|
|
21
|
+
["block", "blockId", rpcTransformers.KEYPATH_WILDCARD],
|
|
22
|
+
["signature", "bitmap", rpcTransformers.KEYPATH_WILDCARD],
|
|
23
|
+
["signature", "signature", rpcTransformers.KEYPATH_WILDCARD]
|
|
24
|
+
],
|
|
20
25
|
getBlock: [
|
|
21
26
|
...rpcTransformers.tokenBalancesConfigs.flatMap((c) => [
|
|
22
27
|
["transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "preTokenBalances", rpcTransformers.KEYPATH_WILDCARD, ...c],
|
package/dist/index.node.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["createJsonRpcApi","getDefaultRequestTransformerForSolanaRpc","getDefaultResponseTransformerForSolanaRpc","jsonParsedAccountsConfigs","tokenBalancesConfigs","KEYPATH_WILDCARD","innerInstructionsConfigs","messageConfig","jsonParsedTokenAccountsConfigs"],"mappings":"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","file":"index.node.cjs","sourcesContent":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["createJsonRpcApi","getDefaultRequestTransformerForSolanaRpc","getDefaultResponseTransformerForSolanaRpc","jsonParsedAccountsConfigs","KEYPATH_WILDCARD","tokenBalancesConfigs","innerInstructionsConfigs","messageConfig","jsonParsedTokenAccountsConfigs"],"mappings":"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","file":"index.node.cjs","sourcesContent":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\n} from '@solana/rpc-transformers';\n\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetAgGenesisCertApi } from './getAgGenesisCert';\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetAgGenesisCertApi &\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\nexport type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;\n\nexport type {\n GetAccountInfoApi,\n GetAgGenesisCertApi,\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 getAgGenesisCert: [\n ['block', 'blockId', KEYPATH_WILDCARD],\n ['signature', 'bitmap', KEYPATH_WILDCARD],\n ['signature', 'signature', KEYPATH_WILDCARD],\n ],\n getBlock: [\n ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
package/dist/index.node.mjs
CHANGED
|
@@ -15,6 +15,11 @@ function getAllowedNumericKeypaths() {
|
|
|
15
15
|
if (!memoizedKeypaths) {
|
|
16
16
|
memoizedKeypaths = {
|
|
17
17
|
getAccountInfo: jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
|
|
18
|
+
getAgGenesisCert: [
|
|
19
|
+
["block", "blockId", KEYPATH_WILDCARD],
|
|
20
|
+
["signature", "bitmap", KEYPATH_WILDCARD],
|
|
21
|
+
["signature", "signature", KEYPATH_WILDCARD]
|
|
22
|
+
],
|
|
18
23
|
getBlock: [
|
|
19
24
|
...tokenBalancesConfigs.flatMap((c) => [
|
|
20
25
|
["transactions", KEYPATH_WILDCARD, "meta", "preTokenBalances", KEYPATH_WILDCARD, ...c],
|
package/dist/index.node.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.node.mjs","sourcesContent":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;AA6PO,SAAS,mBAGd,MAAA,EAAsC;AACpC,EAAA,OAAO,gBAAA,CAA8B;AAAA,IACjC,kBAAA,EAAoB,yCAAyC,MAAM,CAAA;AAAA,IACnE,qBAAqB,yCAAA,CAA0C;AAAA,MAC3D,wBAAwB,yBAAA;AAA0B,KACrD;AAAA,GACJ,CAAA;AACL;AAEA,IAAI,gBAAA;AAMJ,SAAS,yBAAA,GAA0E;AAC/E,EAAA,IAAI,CAAC,gBAAA,EAAkB;AACnB,IAAA,gBAAA,GAAmB;AAAA,MACf,cAAA,EAAgB,0BAA0B,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,OAAA,EAAS,GAAG,CAAC,CAAC,CAAA;AAAA,MAClE,gBAAA,EAAkB;AAAA,QACd,CAAC,OAAA,EAAS,SAAA,EAAW,gBAAgB,CAAA;AAAA,QACrC,CAAC,WAAA,EAAa,QAAA,EAAU,gBAAgB,CAAA;AAAA,QACxC,CAAC,WAAA,EAAa,WAAA,EAAa,gBAAgB;AAAA,OAC/C;AAAA,MACA,QAAA,EAAU;AAAA,QACN,GAAG,oBAAA,CAAqB,OAAA,CAAQ,CAAA,CAAA,KAAK;AAAA,UACjC,CAAC,cAAA,EAAgB,gBAAA,EAAkB,QAAQ,kBAAA,EAAoB,gBAAA,EAAkB,GAAG,CAAC,CAAA;AAAA,UACrF,CAAC,cAAA,EAAgB,gBAAA,EAAkB,QAAQ,mBAAA,EAAqB,gBAAA,EAAkB,GAAG,CAAC;AAAA,SACzF,CAAA;AAAA,QACD,CAAC,cAAA,EAAgB,gBAAA,EAAkB,MAAA,EAAQ,SAAA,EAAW,kBAAkB,YAAY,CAAA;AAAA,QACpF,GAAG,wBAAA,CAAyB,GAAA,CAAI,CAAA,CAAA,KAAK;AAAA,UACjC,cAAA;AAAA,UACA,gBAAA;AAAA,UACA,MAAA;AAAA,UACA,mBAAA;AAAA,UACA,gBAAA;AAAA,UACA,GAAG;AAAA,SACN,CAAA;AAAA,QACD,GAAG,aAAA,CAAc,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,cAAA,EAAgB,gBAAA,EAAkB,aAAA,EAAe,SAAA,EAAW,GAAG,CAAC,CAAU,CAAA;AAAA,QACrG,CAAC,cAAA,EAAgB,gBAAA,EAAkB,SAAS,CAAA;AAAA,QAC5C,CAAC,SAAA,EAAW,gBAAA,EAAkB,YAAY;AAAA,OAC9C;AAAA,MACA,eAAA,EAAiB;AAAA,QACb,CAAC,kBAAkB,YAAY,CAAA;AAAA,QAC/B,CAAC,kBAAkB,cAAc;AAAA,OACrC;AAAA,MACA,sBAAsB,CAAC,CAAC,SAAS,CAAA,EAAG,CAAC,YAAY,CAAA,EAAG,CAAC,gBAAgB,GAAG,CAAC,OAAO,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAAA,MAC/F,gBAAA,EAAkB,CAAC,CAAC,YAAY,CAAA,EAAG,CAAC,OAAO,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAAA,MAC3D,kBAAA,EAAoB,CAAC,CAAC,gBAAA,EAAkB,YAAY,CAAC,CAAA;AAAA,MACrD,mBAAA,EAAqB,0BAA0B,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,OAAA,EAAS,gBAAA,EAAkB,GAAG,CAAC,CAAC,CAAA;AAAA,MACzF,kBAAA,EAAoB,yBAAA,CAA0B,OAAA,CAAQ,CAAA,CAAA,KAAK;AAAA,QACvD,CAAC,OAAA,EAAS,gBAAA,EAAkB,SAAA,EAAW,GAAG,CAAC,CAAA;AAAA,QAC3C,CAAC,gBAAA,EAAkB,SAAA,EAAW,GAAG,CAAC;AAAA,OACrC,CAAA;AAAA,MACD,2BAAA,EAA6B,CAAC,CAAC,gBAAA,EAAkB,kBAAkB,CAAC,CAAA;AAAA,MACpE,uBAAA,EAAyB,CAAC,CAAC,gBAAA,EAAkB,kBAAkB,CAAC,CAAA;AAAA,MAChE,sBAAA,EAAwB;AAAA,QACpB,CAAC,SAAS,UAAU,CAAA;AAAA,QACpB,CAAC,SAAS,UAAU;AAAA,OACxB;AAAA,MACA,0BAAA,EAA4B,8BAAA,CAA+B,GAAA,CAAI,CAAA,CAAA,KAAK;AAAA,QAChE,OAAA;AAAA,QACA,gBAAA;AAAA,QACA,SAAA;AAAA,QACA,GAAG;AAAA,OACN,CAAA;AAAA,MACD,uBAAA,EAAyB,8BAAA,CAA+B,GAAA,CAAI,CAAA,CAAA,KAAK;AAAA,QAC7D,OAAA;AAAA,QACA,gBAAA;AAAA,QACA,SAAA;AAAA,QACA,GAAG;AAAA,OACN,CAAA;AAAA,MACD,uBAAA,EAAyB;AAAA,QACrB,CAAC,OAAA,EAAS,gBAAA,EAAkB,UAAU,CAAA;AAAA,QACtC,CAAC,OAAA,EAAS,gBAAA,EAAkB,UAAU;AAAA,OAC1C;AAAA,MACA,cAAA,EAAgB;AAAA,QACZ,CAAC,SAAS,UAAU,CAAA;AAAA,QACpB,CAAC,SAAS,UAAU;AAAA,OACxB;AAAA,MACA,cAAA,EAAgB;AAAA,QACZ,GAAG,oBAAA,CAAqB,OAAA,CAAQ,CAAA,CAAA,KAAK;AAAA,UACjC,CAAC,MAAA,EAAQ,kBAAA,EAAoB,gBAAA,EAAkB,GAAG,CAAC,CAAA;AAAA,UACnD,CAAC,MAAA,EAAQ,mBAAA,EAAqB,gBAAA,EAAkB,GAAG,CAAC;AAAA,SACvD,CAAA;AAAA,QACD,CAAC,MAAA,EAAQ,SAAA,EAAW,gBAAA,EAAkB,YAAY,CAAA;AAAA,QAClD,GAAG,wBAAA,CAAyB,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,QAAQ,mBAAA,EAAqB,gBAAA,EAAkB,GAAG,CAAC,CAAC,CAAA;AAAA,QAC1F,GAAG,cAAc,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,aAAA,EAAe,SAAA,EAAW,GAAG,CAAC,CAAU,CAAA;AAAA,QACnE,CAAC,SAAS;AAAA,OACd;AAAA,MACA,yBAAA,EAA2B;AAAA,QACvB,CAAC,MAAA,EAAQ,gBAAA,EAAkB,kBAAkB,CAAA;AAAA,QAC7C,GAAG,oBAAA,CAAqB,OAAA,CAAQ,CAAA,CAAA,KAAK;AAAA,UACjC,CAAC,MAAA,EAAQ,gBAAA,EAAkB,QAAQ,kBAAA,EAAoB,gBAAA,EAAkB,GAAG,CAAC,CAAA;AAAA,UAC7E,CAAC,MAAA,EAAQ,gBAAA,EAAkB,QAAQ,mBAAA,EAAqB,gBAAA,EAAkB,GAAG,CAAC;AAAA,SACjF,CAAA;AAAA,QACD,CAAC,MAAA,EAAQ,gBAAA,EAAkB,MAAA,EAAQ,SAAA,EAAW,kBAAkB,YAAY,CAAA;AAAA,QAC5E,GAAG,wBAAA,CAAyB,GAAA,CAAI,CAAA,CAAA,KAAK;AAAA,UACjC,MAAA;AAAA,UACA,gBAAA;AAAA,UACA,MAAA;AAAA,UACA,mBAAA;AAAA,UACA,gBAAA;AAAA,UACA,GAAG;AAAA,SACN,CAAA;AAAA,QACD,GAAG,aAAA,CAAc,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,MAAA,EAAQ,gBAAA,EAAkB,aAAA,EAAe,SAAA,EAAW,GAAG,CAAC,CAAU,CAAA;AAAA,QAC7F,CAAC,MAAA,EAAQ,gBAAA,EAAkB,SAAS;AAAA,OACxC;AAAA,MACA,UAAA,EAAY,CAAC,CAAC,aAAa,CAAC,CAAA;AAAA,MAC5B,eAAA,EAAiB;AAAA,QACb,CAAC,SAAA,EAAW,gBAAA,EAAkB,YAAY,CAAA;AAAA,QAC1C,CAAC,SAAA,EAAW,gBAAA,EAAkB,+BAA+B,CAAA;AAAA,QAC7D,CAAC,YAAA,EAAc,gBAAA,EAAkB,YAAY,CAAA;AAAA,QAC7C,CAAC,YAAA,EAAc,gBAAA,EAAkB,+BAA+B;AAAA,OACpE;AAAA,MACA,mBAAA,EAAqB;AAAA,QACjB,CAAC,SAAS,wBAAwB,CAAA;AAAA,QAClC,GAAG,yBAAA,CAA0B,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,SAAS,UAAA,EAAY,gBAAA,EAAkB,GAAG,CAAC,CAAC,CAAA;AAAA,QACnF,GAAG,wBAAA,CAAyB,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,SAAS,mBAAA,EAAqB,gBAAA,EAAkB,GAAG,CAAC,CAAC,CAAA;AAAA,QAC3F,GAAG,oBAAA,CAAqB,OAAA,CAAQ,CAAA,CAAA,KAAK;AAAA,UACjC,CAAC,OAAA,EAAS,kBAAA,EAAoB,gBAAA,EAAkB,GAAG,CAAC,CAAA;AAAA,UACpD,CAAC,OAAA,EAAS,mBAAA,EAAqB,gBAAA,EAAkB,GAAG,CAAC;AAAA,SACxD;AAAA;AACL,KACJ;AAAA,EACJ;AACA,EAAA,OAAO,gBAAA;AACX","file":"index.node.mjs","sourcesContent":["/**\n * This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the\n * Solana JSON RPC API, and utilities for creating a {@link RpcApi} implementation with sensible\n * defaults. It can be used standalone, but it is also exported as part of Kit\n * [`@solana/kit`](https://github.com/anza-xyz/kit/tree/main/packages/kit).\n *\n * @example\n * Each RPC method is described in terms of a TypeScript type of the following form:\n *\n * ```ts\n * type ExampleApi = {\n * getSomething(address: Address): Something;\n * };\n * ```\n *\n * A {@link RpcApi} that implements `ExampleApi` will ultimately expose its defined methods on any\n * {@link Rpc} that uses it.\n *\n * ```ts\n * const rpc: Rpc<ExampleApi> = createExampleRpc(/* ... *\\/);\n * const something: Something = await rpc.getSomething(address('95DpK3y3GF7U8s1k4EvZ7xqyeCkhsHeZaE97iZpHUGMN')).send();\n * ```\n *\n * @packageDocumentation\n */\nimport { 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 tokenBalancesConfigs,\n} from '@solana/rpc-transformers';\n\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetAgGenesisCertApi } from './getAgGenesisCert';\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 {\n GetTransactionApi,\n GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n} from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetTransactionsForAddressApi } from './getTransactionsForAddress';\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 GetAgGenesisCertApi &\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 GetTransactionsForAddressApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;\n/**\n * Represents the RPC methods available on test clusters.\n *\n * For instance, the test clusters support the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the devnet cluster.\n *\n * For instance, the devnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the testnet cluster.\n *\n * For instance, the testnet cluster supports the {@link RequestAirdropApi} while mainnet does not.\n */\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\n/**\n * Represents the RPC methods available on the mainnet cluster.\n *\n * For instance, the mainnet cluster does not support the {@link RequestAirdropApi} whereas test\n * clusters do.\n */\nexport type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;\n\nexport type {\n GetAccountInfoApi,\n GetAgGenesisCertApi,\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 GetTransactionApiResponseBase58,\n GetTransactionApiResponseBase64,\n GetTransactionApiResponseJson,\n GetTransactionApiResponseJsonParsed,\n GetTransactionCountApi,\n GetTransactionsForAddressApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = RequestTransformerConfig;\n\n/**\n * Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.\n *\n * The default behaviours include:\n * - A transform that calls the config's {@link Config.onIntegerOverflow | onIntegerOverflow}\n * handler whenever a `bigint` input would overflow a JavaScript IEEE 754 number. See\n * [this](https://github.com/solana-labs/solana-web3.js/issues/1116) GitHub issue for more\n * information.\n * - A transform that applies a default commitment wherever not specified\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 getAgGenesisCert: [\n ['block', 'blockId', KEYPATH_WILDCARD],\n ['signature', 'bitmap', KEYPATH_WILDCARD],\n ['signature', 'signature', KEYPATH_WILDCARD],\n ],\n getBlock: [\n ...tokenBalancesConfigs.flatMap(c => [\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\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 ['transactions', KEYPATH_WILDCARD, 'version'],\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 getSignaturesForAddress: [[KEYPATH_WILDCARD, 'transactionIndex']],\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 ...tokenBalancesConfigs.flatMap(c => [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\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 ['version'],\n ],\n getTransactionsForAddress: [\n ['data', KEYPATH_WILDCARD, 'transactionIndex'],\n ...tokenBalancesConfigs.flatMap(c => [\n ['data', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['data', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ['data', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ...innerInstructionsConfigs.map(c => [\n 'data',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['data', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['data', KEYPATH_WILDCARD, 'version'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['current', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'inflationRewardsCommissionBps'],\n ],\n simulateTransaction: [\n ['value', 'loadedAccountsDataSize'],\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...tokenBalancesConfigs.flatMap(c => [\n ['value', 'preTokenBalances', KEYPATH_WILDCARD, ...c],\n ['value', 'postTokenBalances', KEYPATH_WILDCARD, ...c],\n ]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Slot } from '@solana/rpc-types';
|
|
2
|
+
/**
|
|
3
|
+
* The Alpenglow genesis certificate, as gossiped between validators.
|
|
4
|
+
*
|
|
5
|
+
* This mirrors the `WireBlockCertMessage` type in the Agave validator.
|
|
6
|
+
*/
|
|
7
|
+
type GetAgGenesisCertApiResponse = Readonly<{
|
|
8
|
+
/** The block that the certificate is certifying */
|
|
9
|
+
block: Readonly<{
|
|
10
|
+
/** The block id of the certified block, as a 32-byte array */
|
|
11
|
+
blockId: readonly number[];
|
|
12
|
+
/** The slot of the certified block */
|
|
13
|
+
slot: Slot;
|
|
14
|
+
}>;
|
|
15
|
+
/** The signature of the certificate message */
|
|
16
|
+
signature: Readonly<{
|
|
17
|
+
/** Bitmap of the ranks of the validators included in the aggregate signature */
|
|
18
|
+
bitmap: readonly number[];
|
|
19
|
+
/** The 192-byte aggregate BLS signature */
|
|
20
|
+
signature: readonly number[];
|
|
21
|
+
}>;
|
|
22
|
+
}>;
|
|
23
|
+
export type GetAgGenesisCertApi = {
|
|
24
|
+
/**
|
|
25
|
+
* Returns the Alpenglow genesis certificate, or `null` if the node does not have one.
|
|
26
|
+
*
|
|
27
|
+
* @returns The certificate over the block at which the Alpenglow consensus protocol was
|
|
28
|
+
* activated.
|
|
29
|
+
* @see https://solana.com/docs/rpc/http/getaggenesiscert
|
|
30
|
+
*/
|
|
31
|
+
getAgGenesisCert(): GetAgGenesisCertApiResponse | null;
|
|
32
|
+
};
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=getAgGenesisCert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAgGenesisCert.d.ts","sourceRoot":"","sources":["../../src/getAgGenesisCert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;GAIG;AACH,KAAK,2BAA2B,GAAG,QAAQ,CAAC;IACxC,mDAAmD;IACnD,KAAK,EAAE,QAAQ,CAAC;QACZ,8DAA8D;QAC9D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3B,sCAAsC;QACtC,IAAI,EAAE,IAAI,CAAC;KACd,CAAC,CAAC;IACH,+CAA+C;IAC/C,SAAS,EAAE,QAAQ,CAAC;QAChB,gFAAgF;QAChF,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1B,2CAA2C;QAC3C,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;KAChC,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;;;;;OAMG;IACH,gBAAgB,IAAI,2BAA2B,GAAG,IAAI,CAAC;CAC1D,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
import { RpcApi } from '@solana/rpc-spec';
|
|
27
27
|
import { RequestTransformerConfig } from '@solana/rpc-transformers';
|
|
28
28
|
import { GetAccountInfoApi } from './getAccountInfo';
|
|
29
|
+
import { GetAgGenesisCertApi } from './getAgGenesisCert';
|
|
29
30
|
import { GetBalanceApi } from './getBalance';
|
|
30
31
|
import { GetBlockApi } from './getBlock';
|
|
31
32
|
import { GetBlockCommitmentApi } from './getBlockCommitment';
|
|
@@ -78,7 +79,7 @@ import { MinimumLedgerSlotApi } from './minimumLedgerSlot';
|
|
|
78
79
|
import { RequestAirdropApi } from './requestAirdrop';
|
|
79
80
|
import { SendTransactionApi } from './sendTransaction';
|
|
80
81
|
import { SimulateTransactionApi } from './simulateTransaction';
|
|
81
|
-
type SolanaRpcApiForAllClusters = GetAccountInfoApi & GetBalanceApi & GetBlockApi & GetBlockCommitmentApi & GetBlockHeightApi & GetBlockProductionApi & GetBlocksApi & GetBlocksWithLimitApi & GetBlockTimeApi & GetClusterNodesApi & GetEpochInfoApi & GetEpochScheduleApi & GetFeeForMessageApi & GetFirstAvailableBlockApi & GetGenesisHashApi & GetHealthApi & GetHighestSnapshotSlotApi & GetIdentityApi & GetInflationGovernorApi & GetInflationRateApi & GetInflationRewardApi & GetLargestAccountsApi & GetLatestBlockhashApi & GetLeaderScheduleApi & GetMaxRetransmitSlotApi & GetMaxShredInsertSlotApi & GetMinimumBalanceForRentExemptionApi & GetMultipleAccountsApi & GetProgramAccountsApi & GetRecentPerformanceSamplesApi & GetRecentPrioritizationFeesApi & GetSignaturesForAddressApi & GetSignatureStatusesApi & GetSlotApi & GetSlotLeaderApi & GetSlotLeadersApi & GetStakeMinimumDelegationApi & GetSupplyApi & GetTokenAccountBalanceApi & GetTokenAccountsByDelegateApi & GetTokenAccountsByOwnerApi & GetTokenLargestAccountsApi & GetTokenSupplyApi & GetTransactionApi & GetTransactionCountApi & GetTransactionsForAddressApi & GetVersionApi & GetVoteAccountsApi & IsBlockhashValidApi & MinimumLedgerSlotApi & SendTransactionApi & SimulateTransactionApi;
|
|
82
|
+
type SolanaRpcApiForAllClusters = GetAccountInfoApi & GetAgGenesisCertApi & GetBalanceApi & GetBlockApi & GetBlockCommitmentApi & GetBlockHeightApi & GetBlockProductionApi & GetBlocksApi & GetBlocksWithLimitApi & GetBlockTimeApi & GetClusterNodesApi & GetEpochInfoApi & GetEpochScheduleApi & GetFeeForMessageApi & GetFirstAvailableBlockApi & GetGenesisHashApi & GetHealthApi & GetHighestSnapshotSlotApi & GetIdentityApi & GetInflationGovernorApi & GetInflationRateApi & GetInflationRewardApi & GetLargestAccountsApi & GetLatestBlockhashApi & GetLeaderScheduleApi & GetMaxRetransmitSlotApi & GetMaxShredInsertSlotApi & GetMinimumBalanceForRentExemptionApi & GetMultipleAccountsApi & GetProgramAccountsApi & GetRecentPerformanceSamplesApi & GetRecentPrioritizationFeesApi & GetSignaturesForAddressApi & GetSignatureStatusesApi & GetSlotApi & GetSlotLeaderApi & GetSlotLeadersApi & GetStakeMinimumDelegationApi & GetSupplyApi & GetTokenAccountBalanceApi & GetTokenAccountsByDelegateApi & GetTokenAccountsByOwnerApi & GetTokenLargestAccountsApi & GetTokenSupplyApi & GetTransactionApi & GetTransactionCountApi & GetTransactionsForAddressApi & GetVersionApi & GetVoteAccountsApi & IsBlockhashValidApi & MinimumLedgerSlotApi & SendTransactionApi & SimulateTransactionApi;
|
|
82
83
|
type SolanaRpcApiForTestClusters = RequestAirdropApi & SolanaRpcApiForAllClusters;
|
|
83
84
|
/**
|
|
84
85
|
* Represents the RPC methods available on test clusters.
|
|
@@ -105,7 +106,7 @@ export type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;
|
|
|
105
106
|
* clusters do.
|
|
106
107
|
*/
|
|
107
108
|
export type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;
|
|
108
|
-
export type { GetAccountInfoApi, GetBalanceApi, GetBlockApi, GetBlockCommitmentApi, GetBlockHeightApi, GetBlockProductionApi, GetBlocksApi, GetBlocksWithLimitApi, GetBlockTimeApi, GetClusterNodesApi, GetEpochInfoApi, GetEpochScheduleApi, GetFeeForMessageApi, GetFirstAvailableBlockApi, GetGenesisHashApi, GetHealthApi, GetHighestSnapshotSlotApi, GetIdentityApi, GetInflationGovernorApi, GetInflationRateApi, GetInflationRewardApi, GetLargestAccountsApi, GetLatestBlockhashApi, GetLeaderScheduleApi, GetMaxRetransmitSlotApi, GetMaxShredInsertSlotApi, GetMinimumBalanceForRentExemptionApi, GetMultipleAccountsApi, GetProgramAccountsApi, GetRecentPerformanceSamplesApi, GetRecentPrioritizationFeesApi, GetSignaturesForAddressApi, GetSignatureStatusesApi, GetSlotApi, GetSlotLeaderApi, GetSlotLeadersApi, GetStakeMinimumDelegationApi, GetSupplyApi, GetTokenAccountBalanceApi, GetTokenAccountsByDelegateApi, GetTokenAccountsByOwnerApi, GetTokenLargestAccountsApi, GetTokenSupplyApi, GetTransactionApi, GetTransactionApiResponseBase58, GetTransactionApiResponseBase64, GetTransactionApiResponseJson, GetTransactionApiResponseJsonParsed, GetTransactionCountApi, GetTransactionsForAddressApi, GetVersionApi, GetVoteAccountsApi, IsBlockhashValidApi, MinimumLedgerSlotApi, RequestAirdropApi, SendTransactionApi, SimulateTransactionApi, };
|
|
109
|
+
export type { GetAccountInfoApi, GetAgGenesisCertApi, GetBalanceApi, GetBlockApi, GetBlockCommitmentApi, GetBlockHeightApi, GetBlockProductionApi, GetBlocksApi, GetBlocksWithLimitApi, GetBlockTimeApi, GetClusterNodesApi, GetEpochInfoApi, GetEpochScheduleApi, GetFeeForMessageApi, GetFirstAvailableBlockApi, GetGenesisHashApi, GetHealthApi, GetHighestSnapshotSlotApi, GetIdentityApi, GetInflationGovernorApi, GetInflationRateApi, GetInflationRewardApi, GetLargestAccountsApi, GetLatestBlockhashApi, GetLeaderScheduleApi, GetMaxRetransmitSlotApi, GetMaxShredInsertSlotApi, GetMinimumBalanceForRentExemptionApi, GetMultipleAccountsApi, GetProgramAccountsApi, GetRecentPerformanceSamplesApi, GetRecentPrioritizationFeesApi, GetSignaturesForAddressApi, GetSignatureStatusesApi, GetSlotApi, GetSlotLeaderApi, GetSlotLeadersApi, GetStakeMinimumDelegationApi, GetSupplyApi, GetTokenAccountBalanceApi, GetTokenAccountsByDelegateApi, GetTokenAccountsByOwnerApi, GetTokenLargestAccountsApi, GetTokenSupplyApi, GetTransactionApi, GetTransactionApiResponseBase58, GetTransactionApiResponseBase64, GetTransactionApiResponseJson, GetTransactionApiResponseJsonParsed, GetTransactionCountApi, GetTransactionsForAddressApi, GetVersionApi, GetVoteAccountsApi, IsBlockhashValidApi, MinimumLedgerSlotApi, RequestAirdropApi, SendTransactionApi, SimulateTransactionApi, };
|
|
109
110
|
type Config = RequestTransformerConfig;
|
|
110
111
|
/**
|
|
111
112
|
* Creates a {@link RpcApi} implementation of the Solana JSON RPC API with some default behaviours.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana/rpc-api",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0-canary-20260902083314",
|
|
4
4
|
"description": "Defines all default Solana RPC methods as types",
|
|
5
5
|
"homepage": "https://www.solanakit.com/api#solanarpc-api",
|
|
6
6
|
"exports": {
|
|
@@ -56,17 +56,17 @@
|
|
|
56
56
|
"maintained node versions"
|
|
57
57
|
],
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@solana/addresses": "8.
|
|
60
|
-
"@solana/codecs-core": "8.
|
|
61
|
-
"@solana/codecs-strings": "8.
|
|
62
|
-
"@solana/errors": "8.
|
|
63
|
-
"@solana/keys": "8.
|
|
64
|
-
"@solana/rpc-
|
|
65
|
-
"@solana/rpc-
|
|
66
|
-
"@solana/
|
|
67
|
-
"@solana/rpc-types": "8.
|
|
68
|
-
"@solana/
|
|
69
|
-
"@solana/transactions": "8.
|
|
59
|
+
"@solana/addresses": "8.3.0-canary-20260902083314",
|
|
60
|
+
"@solana/codecs-core": "8.3.0-canary-20260902083314",
|
|
61
|
+
"@solana/codecs-strings": "8.3.0-canary-20260902083314",
|
|
62
|
+
"@solana/errors": "8.3.0-canary-20260902083314",
|
|
63
|
+
"@solana/keys": "8.3.0-canary-20260902083314",
|
|
64
|
+
"@solana/rpc-spec": "8.3.0-canary-20260902083314",
|
|
65
|
+
"@solana/rpc-transformers": "8.3.0-canary-20260902083314",
|
|
66
|
+
"@solana/transaction-messages": "8.3.0-canary-20260902083314",
|
|
67
|
+
"@solana/rpc-parsed-types": "8.3.0-canary-20260902083314",
|
|
68
|
+
"@solana/rpc-types": "8.3.0-canary-20260902083314",
|
|
69
|
+
"@solana/transactions": "8.3.0-canary-20260902083314"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
72
|
"typescript": ">=5.4.0"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Slot } from '@solana/rpc-types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The Alpenglow genesis certificate, as gossiped between validators.
|
|
5
|
+
*
|
|
6
|
+
* This mirrors the `WireBlockCertMessage` type in the Agave validator.
|
|
7
|
+
*/
|
|
8
|
+
type GetAgGenesisCertApiResponse = Readonly<{
|
|
9
|
+
/** The block that the certificate is certifying */
|
|
10
|
+
block: Readonly<{
|
|
11
|
+
/** The block id of the certified block, as a 32-byte array */
|
|
12
|
+
blockId: readonly number[];
|
|
13
|
+
/** The slot of the certified block */
|
|
14
|
+
slot: Slot;
|
|
15
|
+
}>;
|
|
16
|
+
/** The signature of the certificate message */
|
|
17
|
+
signature: Readonly<{
|
|
18
|
+
/** Bitmap of the ranks of the validators included in the aggregate signature */
|
|
19
|
+
bitmap: readonly number[];
|
|
20
|
+
/** The 192-byte aggregate BLS signature */
|
|
21
|
+
signature: readonly number[];
|
|
22
|
+
}>;
|
|
23
|
+
}>;
|
|
24
|
+
|
|
25
|
+
export type GetAgGenesisCertApi = {
|
|
26
|
+
/**
|
|
27
|
+
* Returns the Alpenglow genesis certificate, or `null` if the node does not have one.
|
|
28
|
+
*
|
|
29
|
+
* @returns The certificate over the block at which the Alpenglow consensus protocol was
|
|
30
|
+
* activated.
|
|
31
|
+
* @see https://solana.com/docs/rpc/http/getaggenesiscert
|
|
32
|
+
*/
|
|
33
|
+
getAgGenesisCert(): GetAgGenesisCertApiResponse | null;
|
|
34
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -38,6 +38,7 @@ import {
|
|
|
38
38
|
} from '@solana/rpc-transformers';
|
|
39
39
|
|
|
40
40
|
import { GetAccountInfoApi } from './getAccountInfo';
|
|
41
|
+
import { GetAgGenesisCertApi } from './getAgGenesisCert';
|
|
41
42
|
import { GetBalanceApi } from './getBalance';
|
|
42
43
|
import { GetBlockApi } from './getBlock';
|
|
43
44
|
import { GetBlockCommitmentApi } from './getBlockCommitment';
|
|
@@ -98,6 +99,7 @@ import { SendTransactionApi } from './sendTransaction';
|
|
|
98
99
|
import { SimulateTransactionApi } from './simulateTransaction';
|
|
99
100
|
|
|
100
101
|
type SolanaRpcApiForAllClusters = GetAccountInfoApi &
|
|
102
|
+
GetAgGenesisCertApi &
|
|
101
103
|
GetBalanceApi &
|
|
102
104
|
GetBlockApi &
|
|
103
105
|
GetBlockCommitmentApi &
|
|
@@ -178,6 +180,7 @@ export type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;
|
|
|
178
180
|
|
|
179
181
|
export type {
|
|
180
182
|
GetAccountInfoApi,
|
|
183
|
+
GetAgGenesisCertApi,
|
|
181
184
|
GetBalanceApi,
|
|
182
185
|
GetBlockApi,
|
|
183
186
|
GetBlockCommitmentApi,
|
|
@@ -270,6 +273,11 @@ function getAllowedNumericKeypaths(): AllowedNumericKeypaths<RpcApi<SolanaRpcApi
|
|
|
270
273
|
if (!memoizedKeypaths) {
|
|
271
274
|
memoizedKeypaths = {
|
|
272
275
|
getAccountInfo: jsonParsedAccountsConfigs.map(c => ['value', ...c]),
|
|
276
|
+
getAgGenesisCert: [
|
|
277
|
+
['block', 'blockId', KEYPATH_WILDCARD],
|
|
278
|
+
['signature', 'bitmap', KEYPATH_WILDCARD],
|
|
279
|
+
['signature', 'signature', KEYPATH_WILDCARD],
|
|
280
|
+
],
|
|
273
281
|
getBlock: [
|
|
274
282
|
...tokenBalancesConfigs.flatMap(c => [
|
|
275
283
|
['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, ...c],
|