@quicknode/sdk 2.5.2 → 3.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/browser.js +9 -0
  2. package/index.d.ts +2298 -650
  3. package/index.darwin-arm64.node +0 -0
  4. package/index.linux-arm64-gnu.node +0 -0
  5. package/index.linux-arm64-musl.node +0 -0
  6. package/index.linux-x64-gnu.node +0 -0
  7. package/index.linux-x64-musl.node +0 -0
  8. package/package.json +46 -54
  9. package/sdk.d.ts +339 -0
  10. package/sdk.js +102 -0
  11. package/sdk.mjs +34 -0
  12. package/README.md +0 -80
  13. package/cjs/index.js +0 -541
  14. package/cjs/package.json +0 -3
  15. package/esm/client/client.js +0 -9
  16. package/esm/client/index.js +0 -2
  17. package/esm/core/addOns/nftTokenV2/actions.js +0 -107
  18. package/esm/core/addOns/nftTokenV2/types/qn_fetchNFTCollectionDetails.js +0 -10
  19. package/esm/core/addOns/nftTokenV2/types/qn_fetchNFTs.js +0 -13
  20. package/esm/core/addOns/nftTokenV2/types/qn_fetchNFTsByCollection.js +0 -13
  21. package/esm/core/addOns/nftTokenV2/types/qn_getTokenMetadataByContractAddress.js +0 -10
  22. package/esm/core/addOns/nftTokenV2/types/qn_getTokenMetadataBySymbol.js +0 -11
  23. package/esm/core/addOns/nftTokenV2/types/qn_getTransactionsByAddress.js +0 -18
  24. package/esm/core/addOns/nftTokenV2/types/qn_getTransfersByNFT.js +0 -12
  25. package/esm/core/addOns/nftTokenV2/types/qn_getWalletTokenBalance.js +0 -12
  26. package/esm/core/addOns/nftTokenV2/types/qn_getWalletTokenTransactions.js +0 -14
  27. package/esm/core/addOns/nftTokenV2/types/qn_verifyNFTsOwner.js +0 -11
  28. package/esm/core/addOns/shared/helpers.js +0 -10
  29. package/esm/core/chains.js +0 -117
  30. package/esm/core/core.js +0 -30
  31. package/esm/core/index.d.ts +0 -558
  32. package/esm/core/index.js +0 -2
  33. package/esm/index.js +0 -11
  34. package/esm/lib/constants.js +0 -4
  35. package/esm/lib/errors/QNChainNotSupported.js +0 -7
  36. package/esm/lib/errors/QNInputValidationError.js +0 -10
  37. package/esm/lib/errors/QNInvalidEnpointUrl.js +0 -7
  38. package/esm/lib/helpers/getClientHeaders.js +0 -11
  39. package/esm/lib/helpers/globalFetch.js +0 -13
  40. package/esm/lib/validation/ValidateInput.js +0 -16
  41. package/esm/lib/validation/validators.js +0 -15
  42. package/esm/package.json +0 -4
  43. package/esm/solana/index.d.ts +0 -76
  44. package/esm/solana/index.js +0 -2
  45. package/esm/solana/solana.js +0 -111
@@ -1,13 +0,0 @@
1
- import { z } from 'zod';
2
- import { isEvmAddress, rpcPaginationParams } from '../../../../lib/validation/validators.js';
3
-
4
- const qnFetchNFTsByCollectionInputSchema = z
5
- .object({
6
- collection: isEvmAddress,
7
- tokens: z.array(z.string()).nullish(),
8
- omitFields: z.array(z.string()).nullish(),
9
- })
10
- .merge(rpcPaginationParams)
11
- .strict();
12
-
13
- export { qnFetchNFTsByCollectionInputSchema };
@@ -1,10 +0,0 @@
1
- import { z } from 'zod';
2
- import { isEvmAddress } from '../../../../lib/validation/validators.js';
3
-
4
- const qnGetTokenMetadataByCAInputSchema = z
5
- .object({
6
- contract: isEvmAddress,
7
- })
8
- .strict();
9
-
10
- export { qnGetTokenMetadataByCAInputSchema };
@@ -1,11 +0,0 @@
1
- import { z } from 'zod';
2
- import { rpcPaginationParams } from '../../../../lib/validation/validators.js';
3
-
4
- const qnGetTokenMetadataBySymbolInputSchema = z
5
- .object({
6
- symbol: z.string(),
7
- })
8
- .merge(rpcPaginationParams)
9
- .strict();
10
-
11
- export { qnGetTokenMetadataBySymbolInputSchema };
@@ -1,18 +0,0 @@
1
- import { z } from 'zod';
2
- import { isEvmAddress, rpcPaginationParams } from '../../../../lib/validation/validators.js';
3
-
4
- const qnGetTransactionsByAddressInputSchema = z
5
- .object({
6
- address: isEvmAddress,
7
- fromBlock: z.number().positive().nullish(),
8
- toBlock: z.number().positive().nullish(),
9
- })
10
- .merge(rpcPaginationParams)
11
- .strict()
12
- .refine(({ fromBlock, toBlock }) => {
13
- if (fromBlock && toBlock)
14
- return fromBlock < toBlock;
15
- return true;
16
- }, { message: 'fromBlock must be less than toBlock' });
17
-
18
- export { qnGetTransactionsByAddressInputSchema };
@@ -1,12 +0,0 @@
1
- import { z } from 'zod';
2
- import { isEvmAddress, rpcPaginationParams } from '../../../../lib/validation/validators.js';
3
-
4
- const qnGetTransfersByNFTInputSchema = z
5
- .object({
6
- collection: isEvmAddress,
7
- collectionTokenId: z.string(),
8
- })
9
- .merge(rpcPaginationParams)
10
- .strict();
11
-
12
- export { qnGetTransfersByNFTInputSchema };
@@ -1,12 +0,0 @@
1
- import { z } from 'zod';
2
- import { isEvmAddress, rpcPaginationParams } from '../../../../lib/validation/validators.js';
3
-
4
- const qnGetWalletTokenBalanceInputSchema = z
5
- .object({
6
- wallet: isEvmAddress,
7
- contracts: z.array(isEvmAddress).nullish(),
8
- })
9
- .merge(rpcPaginationParams)
10
- .strict();
11
-
12
- export { qnGetWalletTokenBalanceInputSchema };
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- import { isEvmAddress, rpcPaginationParams } from '../../../../lib/validation/validators.js';
3
-
4
- const qnGetWalletTokenTransactionsInputSchema = z
5
- .object({
6
- address: isEvmAddress,
7
- contract: isEvmAddress,
8
- fromBlock: z.number().positive().nullish(),
9
- toBlock: z.number().positive().nullish(),
10
- })
11
- .merge(rpcPaginationParams)
12
- .strict();
13
-
14
- export { qnGetWalletTokenTransactionsInputSchema };
@@ -1,11 +0,0 @@
1
- import { z } from 'zod';
2
- import { isEvmAddress } from '../../../../lib/validation/validators.js';
3
-
4
- const qnVerifyNFTsOwnerInputSchema = z
5
- .object({
6
- wallet: isEvmAddress,
7
- contracts: z.array(z.string()), // TODO: make this enforce the address:id format
8
- })
9
- .strict();
10
-
11
- export { qnVerifyNFTsOwnerInputSchema };
@@ -1,10 +0,0 @@
1
- // We can't dynamically extend the viem client based on which add-ons are specified, which would
2
- // make the types fully align with the add-ons for the client, so instead we do run-time checks to
3
- // prevent calling add-ons not explicitly added in the config
4
- function checkAddOnEnabled(enabled, humanName, configName) {
5
- if (!enabled) {
6
- throw new Error(`${humanName} is not set as enabled. Please ensure the addon is enabled on your QuickNode endpoint and enable ${configName} in the Core configuration argument`);
7
- }
8
- }
9
-
10
- export { checkAddOnEnabled };
@@ -1,117 +0,0 @@
1
- import { QNInvalidEndpointUrl } from '../lib/errors/QNInvalidEnpointUrl.js';
2
- import { QNChainNotSupported } from '../lib/errors/QNChainNotSupported.js';
3
- import { arbitrum, arbitrumGoerli, arbitrumSepolia, arbitrumNova, avalanche, avalancheFuji, base, baseGoerli, baseSepolia, berachainTestnet, blast, blastSepolia, bsc, bscTestnet, celo, cyber, cyberTestnet, fantom, gnosis, goerli, harmonyOne, mainnet, mantle, mantleSepoliaTestnet, optimism, optimismGoerli, optimismSepolia, polygon, scroll, scrollSepolia, polygonMumbai, polygonAmoy, polygonZkEvm, polygonZkEvmTestnet, sei, seiDevnet, sepolia, holesky, zeroGMainnet, zeroGTestnet, abstractTestnet, abstract, b3, b3Sepolia, flare, flareTestnet, gravity, hemiSepolia, hemi, hyperliquidEvmTestnet, immutableZkEvmTestnet, immutableZkEvm, ink, inkSepolia, jocMainnet, kairos, kaia, linea, monadTestnet, morph, nomina, peaq, plasmaTestnet, plasma, soneium, sonic, storyAeneid, story, unichain, unichainSepolia, vanaMoksha, vana, worldchain, worldchainSepolia, xai, xaiTestnet, xLayer } from 'viem/chains';
4
-
5
- const ETH_MAINNET_NETWORK = 'ethereum-mainnet';
6
- const qnChainToViemChain = {
7
- 'arbitrum-mainnet': arbitrum,
8
- 'arbitrum-goerli': arbitrumGoerli,
9
- 'arbitrum-sepolia': arbitrumSepolia,
10
- 'arbitrum-nova': arbitrumNova,
11
- 'avalanche-mainnet': avalanche,
12
- 'avalanche-testnet': avalancheFuji,
13
- 'base-mainnet': base,
14
- 'base-goerli': baseGoerli,
15
- 'base-sepolia': baseSepolia,
16
- 'bera-artio': berachainTestnet,
17
- 'blast-mainnet': blast,
18
- 'blast-sepolia': blastSepolia,
19
- ['bsc']: bsc,
20
- 'bsc-testnet': bscTestnet,
21
- 'celo-mainnet': celo,
22
- 'cyber-mainnet': cyber,
23
- 'cyber-sepolia': cyberTestnet,
24
- ['fantom']: fantom,
25
- ['xdai']: gnosis,
26
- ['gnosis']: gnosis,
27
- 'ethereum-goerli': goerli,
28
- 'harmony-mainnet': harmonyOne,
29
- [ETH_MAINNET_NETWORK]: mainnet,
30
- 'mantle-mainnet': mantle,
31
- 'mantle-sepolia': mantleSepoliaTestnet,
32
- ['optimism']: optimism,
33
- 'optimism-goerli': optimismGoerli,
34
- 'optimism-sepolia': optimismSepolia,
35
- ['matic']: polygon,
36
- ['polygon']: polygon,
37
- 'scroll-mainnet': scroll,
38
- 'scroll-testnet': scrollSepolia,
39
- 'matic-testnet': polygonMumbai,
40
- 'matic-amoy': polygonAmoy,
41
- 'zkevm-mainnet': polygonZkEvm,
42
- 'zkevm-testnet': polygonZkEvmTestnet,
43
- 'sei-pacific': sei,
44
- 'sei-arctic': seiDevnet,
45
- 'ethereum-sepolia': sepolia,
46
- 'ethereum-holesky': holesky,
47
- '0g-mainnet': zeroGMainnet,
48
- '0g-galileo': zeroGTestnet,
49
- 'abstract-testnet': abstractTestnet,
50
- 'abstract-mainnet': abstract,
51
- 'b3-mainnet': b3,
52
- 'b3-sepolia': b3Sepolia,
53
- 'flare-mainnet': flare,
54
- 'flare-coston2': flareTestnet,
55
- 'gravity-alpham': gravity,
56
- 'hemi-testnet': hemiSepolia,
57
- 'hemi-mainnet': hemi,
58
- 'hype-testnet': hyperliquidEvmTestnet,
59
- 'imx-testnet': immutableZkEvmTestnet,
60
- 'imx-mainnet': immutableZkEvm,
61
- 'ink-mainnet': ink,
62
- 'ink-sepolia': inkSepolia,
63
- 'joc-mainnet': jocMainnet,
64
- 'kaia-kairos': kairos,
65
- 'kaia-mainnet': kaia,
66
- 'linea-mainnet': linea,
67
- 'monad-testnet': monadTestnet,
68
- 'morph-mainnet': morph,
69
- 'nomina-mainnet': nomina,
70
- 'peaq-mainnet': peaq,
71
- 'plasma-testnet': plasmaTestnet,
72
- 'plasma-mainnet': plasma,
73
- 'soneium-mainnet': soneium,
74
- 'sonic-mainnet': sonic,
75
- 'story-aeneid': storyAeneid,
76
- 'story-mainnet': story,
77
- 'unichain-mainnet': unichain,
78
- 'unichain-sepolia': unichainSepolia,
79
- 'vana-moksha': vanaMoksha,
80
- 'vana-mainnet': vana,
81
- 'worldchain-mainnet': worldchain,
82
- 'worldchain-sepolia': worldchainSepolia,
83
- 'xai-mainnet': xai,
84
- 'xai-testnet': xaiTestnet,
85
- 'xlayer-mainnet': xLayer,
86
- };
87
- function chainNameFromEndpoint(endpointUrl) {
88
- let hostnameParts;
89
- try {
90
- const parsedUrl = new URL(endpointUrl);
91
- hostnameParts = parsedUrl.hostname.split('.');
92
- }
93
- catch (e) {
94
- throw new QNInvalidEndpointUrl();
95
- }
96
- const quiknode = hostnameParts.at(-2);
97
- const chainOrDiscover = hostnameParts.at(-3);
98
- if (quiknode !== 'quiknode' || !chainOrDiscover)
99
- throw new QNInvalidEndpointUrl();
100
- const indexOfName = chainOrDiscover === 'discover' ? -4 : -3;
101
- const lengthOfEthereum = chainOrDiscover === 'discover' ? 4 : 3;
102
- if (hostnameParts.length === lengthOfEthereum)
103
- return ETH_MAINNET_NETWORK;
104
- const potentialChainName = hostnameParts.at(indexOfName);
105
- if (potentialChainName)
106
- return potentialChainName;
107
- throw new QNInvalidEndpointUrl();
108
- }
109
- function deriveChainFromUrl(endpointUrl) {
110
- const chainName = chainNameFromEndpoint(endpointUrl);
111
- const viemChain = qnChainToViemChain[chainName];
112
- if (viemChain)
113
- return viemChain;
114
- throw new QNChainNotSupported(endpointUrl);
115
- }
116
-
117
- export { deriveChainFromUrl };
package/esm/core/core.js DELETED
@@ -1,30 +0,0 @@
1
- import { createClient, http, publicActions } from 'viem';
2
- import { nftAndTokenActions } from './addOns/nftTokenV2/actions.js';
3
- import { deriveChainFromUrl } from './chains.js';
4
- import { setupGlobalFetch } from '../lib/helpers/globalFetch.js';
5
- import { getClientHeaders } from '../lib/helpers/getClientHeaders.js';
6
-
7
- const buildQNActions = (config) => {
8
- return (client) => ({
9
- ...nftAndTokenActions(client, config),
10
- });
11
- };
12
- class Core {
13
- constructor({ endpointUrl, chain, config = {} }) {
14
- setupGlobalFetch();
15
- const clientHeaders = getClientHeaders();
16
- this.endpointUrl = endpointUrl;
17
- const baseClient = createClient({
18
- chain: chain || deriveChainFromUrl(endpointUrl),
19
- transport: http(this.endpointUrl, {
20
- fetchOptions: {
21
- headers: clientHeaders,
22
- },
23
- }),
24
- }).extend(publicActions);
25
- const qnClient = baseClient.extend(buildQNActions(config));
26
- this.client = qnClient;
27
- }
28
- }
29
-
30
- export { Core, buildQNActions };