@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.
@@ -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"]}
@@ -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":";;;;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.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"]}
@@ -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"]}
@@ -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.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"]}
@@ -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.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":"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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 { 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"}
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAoB,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EASH,wBAAwB,EAE3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACH,iBAAiB,EACjB,+BAA+B,EAC/B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACtC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,0BAA0B,GAAG,iBAAiB,GAC/C,aAAa,GACb,WAAW,GACX,qBAAqB,GACrB,iBAAiB,GACjB,qBAAqB,GACrB,YAAY,GACZ,qBAAqB,GACrB,eAAe,GACf,kBAAkB,GAClB,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,yBAAyB,GACzB,iBAAiB,GACjB,YAAY,GACZ,yBAAyB,GACzB,cAAc,GACd,uBAAuB,GACvB,mBAAmB,GACnB,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,oBAAoB,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,oCAAoC,GACpC,sBAAsB,GACtB,qBAAqB,GACrB,8BAA8B,GAC9B,8BAA8B,GAC9B,0BAA0B,GAC1B,uBAAuB,GACvB,UAAU,GACV,gBAAgB,GAChB,iBAAiB,GACjB,4BAA4B,GAC5B,YAAY,GACZ,yBAAyB,GACzB,6BAA6B,GAC7B,0BAA0B,GAC1B,0BAA0B,GAC1B,iBAAiB,GACjB,iBAAiB,GACjB,sBAAsB,GACtB,4BAA4B,GAC5B,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,sBAAsB,CAAC;AAC3B,KAAK,2BAA2B,GAAG,iBAAiB,GAAG,0BAA0B,CAAC;AAClF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,2BAA2B,CAAC;AACvD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAC7D;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC9D;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D,YAAY,EACR,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,oCAAoC,EACpC,sBAAsB,EACtB,qBAAqB,EACrB,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,EAC5B,YAAY,EACZ,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,+BAA+B,EAC/B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,sBAAsB,EACtB,4BAA4B,EAC5B,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACzB,CAAC;AAEF,KAAK,MAAM,GAAG,wBAAwB,CAAC;AAEvC;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAE9B,WAAW,SAAS,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,YAAY,EAClH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAOtC"}
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.2.0",
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.2.0",
60
- "@solana/codecs-core": "8.2.0",
61
- "@solana/codecs-strings": "8.2.0",
62
- "@solana/errors": "8.2.0",
63
- "@solana/keys": "8.2.0",
64
- "@solana/rpc-parsed-types": "8.2.0",
65
- "@solana/rpc-spec": "8.2.0",
66
- "@solana/rpc-transformers": "8.2.0",
67
- "@solana/rpc-types": "8.2.0",
68
- "@solana/transaction-messages": "8.2.0",
69
- "@solana/transactions": "8.2.0"
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],