@solana/web3.js 1.78.0 → 2.0.0-development

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 (99) hide show
  1. package/README.md +56 -112
  2. package/dist/index.browser.cjs +158 -0
  3. package/dist/index.browser.cjs.map +1 -0
  4. package/dist/index.browser.js +137 -0
  5. package/dist/index.browser.js.map +1 -0
  6. package/dist/index.development.js +1044 -0
  7. package/dist/index.development.js.map +1 -0
  8. package/dist/index.native.js +139 -0
  9. package/dist/index.native.js.map +1 -0
  10. package/dist/index.node.cjs +158 -0
  11. package/dist/index.node.cjs.map +1 -0
  12. package/dist/index.node.js +139 -0
  13. package/dist/index.node.js.map +1 -0
  14. package/dist/index.production.min.js +25 -0
  15. package/dist/types/index.d.ts +5 -0
  16. package/dist/types/rpc-default-config.d.ts +3 -0
  17. package/dist/types/rpc-integer-overflow-error.d.ts +8 -0
  18. package/dist/types/rpc-request-coalescer.d.ts +5 -0
  19. package/dist/types/rpc-request-deduplication.d.ts +2 -0
  20. package/dist/types/rpc-transport.d.ts +4 -0
  21. package/dist/types/rpc.d.ts +5 -0
  22. package/package.json +86 -111
  23. package/lib/index.browser.cjs.js +0 -10248
  24. package/lib/index.browser.cjs.js.map +0 -1
  25. package/lib/index.browser.esm.js +0 -10145
  26. package/lib/index.browser.esm.js.map +0 -1
  27. package/lib/index.cjs.js +0 -12748
  28. package/lib/index.cjs.js.map +0 -1
  29. package/lib/index.d.ts +0 -3904
  30. package/lib/index.esm.js +0 -12638
  31. package/lib/index.esm.js.map +0 -1
  32. package/lib/index.iife.js +0 -26757
  33. package/lib/index.iife.js.map +0 -1
  34. package/lib/index.iife.min.js +0 -20
  35. package/lib/index.iife.min.js.map +0 -1
  36. package/lib/index.native.js +0 -10248
  37. package/lib/index.native.js.map +0 -1
  38. package/src/__forks__/browser/fetch-impl.ts +0 -4
  39. package/src/__forks__/browser/rpc-websocket-factory.ts +0 -1
  40. package/src/__forks__/react-native/fetch-impl.ts +0 -4
  41. package/src/__forks__/react-native/rpc-websocket-factory.ts +0 -1
  42. package/src/account-data.ts +0 -39
  43. package/src/account.ts +0 -55
  44. package/src/blockhash.ts +0 -4
  45. package/src/bpf-loader-deprecated.ts +0 -5
  46. package/src/bpf-loader.ts +0 -45
  47. package/src/connection.ts +0 -6796
  48. package/src/epoch-schedule.ts +0 -102
  49. package/src/errors.ts +0 -50
  50. package/src/fee-calculator.ts +0 -18
  51. package/src/fetch-impl.ts +0 -13
  52. package/src/index.ts +0 -24
  53. package/src/instruction.ts +0 -58
  54. package/src/keypair.ts +0 -93
  55. package/src/layout.ts +0 -188
  56. package/src/loader.ts +0 -267
  57. package/src/message/account-keys.ts +0 -79
  58. package/src/message/compiled-keys.ts +0 -165
  59. package/src/message/index.ts +0 -47
  60. package/src/message/legacy.ts +0 -326
  61. package/src/message/v0.ts +0 -496
  62. package/src/message/versioned.ts +0 -36
  63. package/src/nonce-account.ts +0 -82
  64. package/src/programs/address-lookup-table/index.ts +0 -435
  65. package/src/programs/address-lookup-table/state.ts +0 -84
  66. package/src/programs/compute-budget.ts +0 -281
  67. package/src/programs/ed25519.ts +0 -157
  68. package/src/programs/index.ts +0 -7
  69. package/src/programs/secp256k1.ts +0 -228
  70. package/src/programs/stake.ts +0 -935
  71. package/src/programs/system.ts +0 -1048
  72. package/src/programs/vote.ts +0 -543
  73. package/src/publickey.ts +0 -259
  74. package/src/rpc-websocket-factory.ts +0 -4
  75. package/src/rpc-websocket.ts +0 -79
  76. package/src/sysvar.ts +0 -37
  77. package/src/timing.ts +0 -23
  78. package/src/transaction/constants.ts +0 -12
  79. package/src/transaction/expiry-custom-errors.ts +0 -48
  80. package/src/transaction/index.ts +0 -5
  81. package/src/transaction/legacy.ts +0 -918
  82. package/src/transaction/message.ts +0 -140
  83. package/src/transaction/versioned.ts +0 -126
  84. package/src/utils/assert.ts +0 -8
  85. package/src/utils/bigint.ts +0 -43
  86. package/src/utils/borsh-schema.ts +0 -38
  87. package/src/utils/cluster.ts +0 -31
  88. package/src/utils/ed25519.ts +0 -43
  89. package/src/utils/index.ts +0 -5
  90. package/src/utils/makeWebsocketUrl.ts +0 -26
  91. package/src/utils/promise-timeout.ts +0 -14
  92. package/src/utils/secp256k1.ts +0 -11
  93. package/src/utils/send-and-confirm-raw-transaction.ts +0 -102
  94. package/src/utils/send-and-confirm-transaction.ts +0 -98
  95. package/src/utils/shortvec-encoding.ts +0 -28
  96. package/src/utils/sleep.ts +0 -4
  97. package/src/utils/to-buffer.ts +0 -11
  98. package/src/validator-info.ts +0 -104
  99. package/src/vote-account.ts +0 -236
@@ -0,0 +1,139 @@
1
+ export * from '@solana/instructions';
2
+ export * from '@solana/keys';
3
+ import { createSolanaRpcApi } from '@solana/rpc-core';
4
+ import { createJsonRpc, createHttpTransport } from '@solana/rpc-transport';
5
+ import fastStableStringify from 'fast-stable-stringify';
6
+
7
+ // src/index.ts
8
+
9
+ // src/rpc-integer-overflow-error.ts
10
+ var SolanaJsonRpcIntegerOverflowError = class extends Error {
11
+ constructor(methodName, keyPath, value) {
12
+ const argPosition = (typeof keyPath[0] === "number" ? keyPath[0] : parseInt(keyPath[0], 10)) + 1;
13
+ let ordinal = "";
14
+ const lastDigit = argPosition % 10;
15
+ const lastTwoDigits = argPosition % 100;
16
+ if (lastDigit == 1 && lastTwoDigits != 11) {
17
+ ordinal = argPosition + "st";
18
+ } else if (lastDigit == 2 && lastTwoDigits != 12) {
19
+ ordinal = argPosition + "nd";
20
+ } else if (lastDigit == 3 && lastTwoDigits != 13) {
21
+ ordinal = argPosition + "rd";
22
+ } else {
23
+ ordinal = argPosition + "th";
24
+ }
25
+ const path = keyPath.length > 1 ? keyPath.slice(1).map((pathPart) => typeof pathPart === "number" ? `[${pathPart}]` : pathPart).join(".") : null;
26
+ super(
27
+ `The ${ordinal} argument to the \`${methodName}\` RPC method${path ? ` at path \`${path}\`` : ""} was \`${value}\`. This number is unsafe for use with the Solana JSON-RPC because it exceeds \`Number.MAX_SAFE_INTEGER\`.`
28
+ );
29
+ this.keyPath = keyPath;
30
+ this.methodName = methodName;
31
+ this.value = value;
32
+ }
33
+ get name() {
34
+ return "SolanaJsonRpcIntegerOverflowError";
35
+ }
36
+ };
37
+
38
+ // src/rpc-default-config.ts
39
+ var DEFAULT_RPC_CONFIG = {
40
+ onIntegerOverflow(methodName, keyPath, value) {
41
+ throw new SolanaJsonRpcIntegerOverflowError(methodName, keyPath, value);
42
+ }
43
+ };
44
+
45
+ // src/rpc.ts
46
+ function createSolanaRpc(config) {
47
+ return createJsonRpc({
48
+ ...config,
49
+ api: createSolanaRpcApi(DEFAULT_RPC_CONFIG)
50
+ });
51
+ }
52
+
53
+ // src/rpc-request-coalescer.ts
54
+ function getRpcTransportWithRequestCoalescing(transport, getDeduplicationKey) {
55
+ let coalescedRequestsByDeduplicationKey;
56
+ return async function makeCoalescedHttpRequest(config) {
57
+ const { payload, signal } = config;
58
+ const deduplicationKey = getDeduplicationKey(payload);
59
+ if (deduplicationKey === void 0) {
60
+ return await transport(config);
61
+ }
62
+ if (!coalescedRequestsByDeduplicationKey) {
63
+ Promise.resolve().then(() => {
64
+ coalescedRequestsByDeduplicationKey = void 0;
65
+ });
66
+ coalescedRequestsByDeduplicationKey = {};
67
+ }
68
+ if (coalescedRequestsByDeduplicationKey[deduplicationKey] == null) {
69
+ const abortController = new AbortController();
70
+ coalescedRequestsByDeduplicationKey[deduplicationKey] = {
71
+ abortController,
72
+ numConsumers: 0,
73
+ responsePromise: transport({
74
+ ...config,
75
+ signal: abortController.signal
76
+ })
77
+ };
78
+ }
79
+ const coalescedRequest = coalescedRequestsByDeduplicationKey[deduplicationKey];
80
+ coalescedRequest.numConsumers++;
81
+ if (signal) {
82
+ const responsePromise = coalescedRequest.responsePromise;
83
+ return await new Promise((resolve, reject) => {
84
+ const handleAbort = (e) => {
85
+ signal.removeEventListener("abort", handleAbort);
86
+ coalescedRequest.numConsumers -= 1;
87
+ if (coalescedRequest.numConsumers === 0) {
88
+ const abortController = coalescedRequest.abortController;
89
+ abortController.abort();
90
+ }
91
+ const abortError = new DOMException(e.target.reason, "AbortError");
92
+ reject(abortError);
93
+ };
94
+ signal.addEventListener("abort", handleAbort);
95
+ responsePromise.then(resolve).finally(() => {
96
+ signal.removeEventListener("abort", handleAbort);
97
+ });
98
+ });
99
+ } else {
100
+ return await coalescedRequest.responsePromise;
101
+ }
102
+ };
103
+ }
104
+ function getSolanaRpcPayloadDeduplicationKey(payload) {
105
+ if (payload == null || typeof payload !== "object" || Array.isArray(payload)) {
106
+ return;
107
+ }
108
+ if ("jsonrpc" in payload && payload.jsonrpc === "2.0" && "method" in payload && "params" in payload) {
109
+ return fastStableStringify([payload.method, payload.params]);
110
+ }
111
+ }
112
+
113
+ // src/rpc-transport.ts
114
+ function normalizeHeaders(headers) {
115
+ const out = {};
116
+ for (const headerName in headers) {
117
+ out[headerName.toLowerCase()] = headers[headerName];
118
+ }
119
+ return out;
120
+ }
121
+ function createDefaultRpcTransport(config) {
122
+ return getRpcTransportWithRequestCoalescing(
123
+ createHttpTransport({
124
+ ...config,
125
+ headers: {
126
+ ...config.headers ? normalizeHeaders(config.headers) : void 0,
127
+ ...{
128
+ // Keep these headers lowercase so they will override any user-supplied headers above.
129
+ "solana-client": `js/${"2.0.0-development"}` ?? "UNKNOWN"
130
+ }
131
+ }
132
+ }),
133
+ getSolanaRpcPayloadDeduplicationKey
134
+ );
135
+ }
136
+
137
+ export { createDefaultRpcTransport, createSolanaRpc };
138
+ //# sourceMappingURL=out.js.map
139
+ //# sourceMappingURL=index.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/rpc.ts","../src/rpc-integer-overflow-error.ts","../src/rpc-default-config.ts","../src/rpc-transport.ts","../src/rpc-request-coalescer.ts","../src/rpc-request-deduplication.ts"],"names":[],"mappings":";AAAA,cAAc;AACd,cAAc;;;ACDd,SAAS,0BAA4C;AACrD,SAAS,qBAAqB;;;ACDvB,IAAM,oCAAN,cAAgD,MAAM;AAAA,EAIzD,YAAY,YAAoB,SAA8B,OAAe;AACzE,UAAM,eAAe,OAAO,QAAQ,CAAC,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK;AAC/F,QAAI,UAAU;AACd,UAAM,YAAY,cAAc;AAChC,UAAM,gBAAgB,cAAc;AACpC,QAAI,aAAa,KAAK,iBAAiB,IAAI;AACvC,gBAAU,cAAc;AAAA,IAC5B,WAAW,aAAa,KAAK,iBAAiB,IAAI;AAC9C,gBAAU,cAAc;AAAA,IAC5B,WAAW,aAAa,KAAK,iBAAiB,IAAI;AAC9C,gBAAU,cAAc;AAAA,IAC5B,OAAO;AACH,gBAAU,cAAc;AAAA,IAC5B;AACA,UAAM,OACF,QAAQ,SAAS,IACX,QACK,MAAM,CAAC,EACP,IAAI,cAAa,OAAO,aAAa,WAAW,IAAI,cAAc,QAAS,EAC3E,KAAK,GAAG,IACb;AACV;AAAA,MACI,OAAO,6BAA6B,0BAC7B,OAAO,cAAc,WAAW,YAAY;AAAA,IAGvD;AACA,SAAK,UAAU;AACf,SAAK,aAAa;AAClB,SAAK,QAAQ;AAAA,EACjB;AAAA,EACA,IAAI,OAAO;AACP,WAAO;AAAA,EACX;AACJ;;;AClCO,IAAM,qBAAwE;AAAA,EACjF,kBAAkB,YAAY,SAAS,OAAO;AAC1C,UAAM,IAAI,kCAAkC,YAAY,SAAS,KAAK;AAAA,EAC1E;AACJ;;;AFFO,SAAS,gBAAgB,QAAiF;AAC7G,SAAO,cAAgC;AAAA,IACnC,GAAG;AAAA,IACH,KAAK,mBAAmB,kBAAkB;AAAA,EAC9C,CAAC;AACL;;;AGXA,SAAS,2BAA2B;;;ACU7B,SAAS,qCACZ,WACA,qBACa;AACb,MAAI;AACJ,SAAO,eAAe,yBAClB,QACkB;AAClB,UAAM,EAAE,SAAS,OAAO,IAAI;AAC5B,UAAM,mBAAmB,oBAAoB,OAAO;AACpD,QAAI,qBAAqB,QAAW;AAChC,aAAO,MAAM,UAAU,MAAM;AAAA,IACjC;AACA,QAAI,CAAC,qCAAqC;AACtC,cAAQ,QAAQ,EAAE,KAAK,MAAM;AACzB,8CAAsC;AAAA,MAC1C,CAAC;AACD,4CAAsC,CAAC;AAAA,IAC3C;AACA,QAAI,oCAAoC,gBAAgB,KAAK,MAAM;AAC/D,YAAM,kBAAkB,IAAI,gBAAgB;AAC5C,0CAAoC,gBAAgB,IAAI;AAAA,QACpD;AAAA,QACA,cAAc;AAAA,QACd,iBAAiB,UAAqB;AAAA,UAClC,GAAG;AAAA,UACH,QAAQ,gBAAgB;AAAA,QAC5B,CAAC;AAAA,MACL;AAAA,IACJ;AACA,UAAM,mBAAmB,oCAAoC,gBAAgB;AAC7E,qBAAiB;AACjB,QAAI,QAAQ;AACR,YAAM,kBAAkB,iBAAiB;AACzC,aAAO,MAAM,IAAI,QAAmB,CAAC,SAAS,WAAW;AACrD,cAAM,cAAc,CAAC,MAAoC;AACrD,iBAAO,oBAAoB,SAAS,WAAW;AAC/C,2BAAiB,gBAAgB;AACjC,cAAI,iBAAiB,iBAAiB,GAAG;AACrC,kBAAM,kBAAkB,iBAAiB;AACzC,4BAAgB,MAAM;AAAA,UAC1B;AACA,gBAAM,aAAa,IAAI,aAAc,EAAE,OAAuB,QAAQ,YAAY;AAClF,iBAAO,UAAU;AAAA,QACrB;AACA,eAAO,iBAAiB,SAAS,WAAW;AAC5C,wBAAgB,KAAK,OAAO,EAAE,QAAQ,MAAM;AACxC,iBAAO,oBAAoB,SAAS,WAAW;AAAA,QACnD,CAAC;AAAA,MACL,CAAC;AAAA,IACL,OAAO;AACH,aAAQ,MAAM,iBAAiB;AAAA,IACnC;AAAA,EACJ;AACJ;;;AC9DA,OAAO,yBAAyB;AAEzB,SAAS,oCAAoC,SAAsC;AACtF,MAAI,WAAW,QAAQ,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AAC1E;AAAA,EACJ;AACA,MAAI,aAAa,WAAW,QAAQ,YAAY,SAAS,YAAY,WAAW,YAAY,SAAS;AACjG,WAAO,oBAAoB,CAAC,QAAQ,QAAQ,QAAQ,MAAM,CAAC;AAAA,EAC/D;AACJ;;;AFFA,SAAS,iBACL,SACiD;AACjD,QAAM,MAA8B,CAAC;AACrC,aAAW,cAAc,SAAS;AAC9B,QAAI,WAAW,YAAY,CAAC,IAAI,QAAQ,UAAU;AAAA,EACtD;AACA,SAAO;AACX;AAEO,SAAS,0BAA0B,QAAkE;AACxG,SAAO;AAAA,IACH,oBAAoB;AAAA,MAChB,GAAG;AAAA,MACH,SAAS;AAAA,QACL,GAAI,OAAO,UAAU,iBAAiB,OAAO,OAAO,IAAI;AAAA,QACxD,GAAI;AAAA;AAAA,UAEA,iBAAiB,MAAM,yBAAiB;AAAA,QAC5C;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,IACD;AAAA,EACJ;AACJ","sourcesContent":["export * from '@solana/instructions';\nexport * from '@solana/keys';\nexport * from './rpc';\nexport * from './rpc-transport';\n","import { createSolanaRpcApi, SolanaRpcMethods } from '@solana/rpc-core';\nimport { createJsonRpc } from '@solana/rpc-transport';\nimport type { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\n\nimport { DEFAULT_RPC_CONFIG } from './rpc-default-config';\n\nexport function createSolanaRpc(config: Omit<Parameters<typeof createJsonRpc>[0], 'api'>): Rpc<SolanaRpcMethods> {\n return createJsonRpc<SolanaRpcMethods>({\n ...config,\n api: createSolanaRpcApi(DEFAULT_RPC_CONFIG),\n });\n}\n","export class SolanaJsonRpcIntegerOverflowError extends Error {\n readonly methodName: string;\n readonly keyPath: (number | string)[];\n readonly value: bigint;\n constructor(methodName: string, keyPath: (number | string)[], value: bigint) {\n const argPosition = (typeof keyPath[0] === 'number' ? keyPath[0] : parseInt(keyPath[0], 10)) + 1;\n let ordinal = '';\n const lastDigit = argPosition % 10;\n const lastTwoDigits = argPosition % 100;\n if (lastDigit == 1 && lastTwoDigits != 11) {\n ordinal = argPosition + 'st';\n } else if (lastDigit == 2 && lastTwoDigits != 12) {\n ordinal = argPosition + 'nd';\n } else if (lastDigit == 3 && lastTwoDigits != 13) {\n ordinal = argPosition + 'rd';\n } else {\n ordinal = argPosition + 'th';\n }\n const path =\n keyPath.length > 1\n ? keyPath\n .slice(1)\n .map(pathPart => (typeof pathPart === 'number' ? `[${pathPart}]` : pathPart))\n .join('.')\n : null;\n super(\n `The ${ordinal} argument to the \\`${methodName}\\` RPC method` +\n `${path ? ` at path \\`${path}\\`` : ''} was \\`${value}\\`. This number is ` +\n 'unsafe for use with the Solana JSON-RPC because it exceeds ' +\n '`Number.MAX_SAFE_INTEGER`.'\n );\n this.keyPath = keyPath;\n this.methodName = methodName;\n this.value = value;\n }\n get name() {\n return 'SolanaJsonRpcIntegerOverflowError';\n }\n}\n","import { createSolanaRpcApi } from '@solana/rpc-core';\n\nimport { SolanaJsonRpcIntegerOverflowError } from './rpc-integer-overflow-error';\n\nexport const DEFAULT_RPC_CONFIG: Partial<Parameters<typeof createSolanaRpcApi>[0]> = {\n onIntegerOverflow(methodName, keyPath, value) {\n throw new SolanaJsonRpcIntegerOverflowError(methodName, keyPath, value);\n },\n};\n","import { createHttpTransport } from '@solana/rpc-transport';\nimport { IRpcTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\nimport { getRpcTransportWithRequestCoalescing } from './rpc-request-coalescer';\nimport { getSolanaRpcPayloadDeduplicationKey } from './rpc-request-deduplication';\n\n/**\n * Lowercasing header names makes it easier to override user-supplied headers.\n */\nfunction normalizeHeaders<T extends Record<string, string>>(\n headers: T\n): { [K in keyof T & string as Lowercase<K>]: T[K] } {\n const out: Record<string, string> = {};\n for (const headerName in headers) {\n out[headerName.toLowerCase()] = headers[headerName];\n }\n return out as { [K in keyof T & string as Lowercase<K>]: T[K] };\n}\n\nexport function createDefaultRpcTransport(config: Parameters<typeof createHttpTransport>[0]): IRpcTransport {\n return getRpcTransportWithRequestCoalescing(\n createHttpTransport({\n ...config,\n headers: {\n ...(config.headers ? normalizeHeaders(config.headers) : undefined),\n ...({\n // Keep these headers lowercase so they will override any user-supplied headers above.\n 'solana-client': `js/${__VERSION__}` ?? 'UNKNOWN',\n } as { [overrideHeader: string]: string }),\n },\n }),\n getSolanaRpcPayloadDeduplicationKey\n );\n}\n","import { IRpcTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\ntype CoalescedRequest = {\n readonly abortController: AbortController;\n numConsumers: number;\n readonly responsePromise: Promise<unknown>;\n};\n\ntype GetDeduplicationKeyFn = (payload: unknown) => string | undefined;\n\nexport function getRpcTransportWithRequestCoalescing(\n transport: IRpcTransport,\n getDeduplicationKey: GetDeduplicationKeyFn\n): IRpcTransport {\n let coalescedRequestsByDeduplicationKey: Record<string, CoalescedRequest> | undefined;\n return async function makeCoalescedHttpRequest<TResponse>(\n config: Parameters<IRpcTransport>[0]\n ): Promise<TResponse> {\n const { payload, signal } = config;\n const deduplicationKey = getDeduplicationKey(payload);\n if (deduplicationKey === undefined) {\n return await transport(config);\n }\n if (!coalescedRequestsByDeduplicationKey) {\n Promise.resolve().then(() => {\n coalescedRequestsByDeduplicationKey = undefined;\n });\n coalescedRequestsByDeduplicationKey = {};\n }\n if (coalescedRequestsByDeduplicationKey[deduplicationKey] == null) {\n const abortController = new AbortController();\n coalescedRequestsByDeduplicationKey[deduplicationKey] = {\n abortController,\n numConsumers: 0,\n responsePromise: transport<TResponse>({\n ...config,\n signal: abortController.signal,\n }),\n };\n }\n const coalescedRequest = coalescedRequestsByDeduplicationKey[deduplicationKey];\n coalescedRequest.numConsumers++;\n if (signal) {\n const responsePromise = coalescedRequest.responsePromise as Promise<TResponse>;\n return await new Promise<TResponse>((resolve, reject) => {\n const handleAbort = (e: AbortSignalEventMap['abort']) => {\n signal.removeEventListener('abort', handleAbort);\n coalescedRequest.numConsumers -= 1;\n if (coalescedRequest.numConsumers === 0) {\n const abortController = coalescedRequest.abortController;\n abortController.abort();\n }\n const abortError = new DOMException((e.target as AbortSignal).reason, 'AbortError');\n reject(abortError);\n };\n signal.addEventListener('abort', handleAbort);\n responsePromise.then(resolve).finally(() => {\n signal.removeEventListener('abort', handleAbort);\n });\n });\n } else {\n return (await coalescedRequest.responsePromise) as TResponse;\n }\n };\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\n\nexport function getSolanaRpcPayloadDeduplicationKey(payload: unknown): string | undefined {\n if (payload == null || typeof payload !== 'object' || Array.isArray(payload)) {\n return;\n }\n if ('jsonrpc' in payload && payload.jsonrpc === '2.0' && 'method' in payload && 'params' in payload) {\n return fastStableStringify([payload.method, payload.params]);\n }\n}\n"]}
@@ -0,0 +1,25 @@
1
+ this.globalThis = this.globalThis || {};
2
+ this.globalThis.solanaWeb3 = (function (exports) {
3
+ 'use strict';
4
+
5
+ var ne=Object.create;var A=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var ie=Object.getPrototypeOf,ae=Object.prototype.hasOwnProperty;var ce=(e,r,t)=>r in e?A(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var ue=(e,r)=>()=>(e&&(r=e(e=0)),r);var le=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var pe=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of se(r))!ae.call(e,o)&&o!==t&&A(e,o,{get:()=>r[o],enumerable:!(n=oe(r,o))||n.enumerable});return e};var de=(e,r,t)=>(t=e!=null?ne(ie(e)):{},pe(r||!e||!e.__esModule?A(t,"default",{value:e,enumerable:!0}):t,e));var h=(e,r,t)=>(ce(e,typeof r!="symbol"?r+"":r,t),t);var s=ue(()=>{});var Z=le((Dt,Y)=>{s();var $e=Object.prototype.toString,ke=Object.keys||function(e){var r=[];for(var t in e)r.push(t);return r};function E(e,r){var t,n,o,i,a,u,c;if(e===!0)return "true";if(e===!1)return "false";switch(typeof e){case"object":if(e===null)return null;if(e.toJSON&&typeof e.toJSON=="function")return E(e.toJSON(),r);if(c=$e.call(e),c==="[object Array]"){for(o="[",n=e.length-1,t=0;t<n;t++)o+=E(e[t],!0)+",";return n>-1&&(o+=E(e[t],!0)),o+"]"}else if(c==="[object Object]"){for(i=ke(e).sort(),n=i.length,o="",t=0;t<n;)a=i[t],u=E(e[a],!1),u!==void 0&&(o&&(o+=","),o+=JSON.stringify(a)+":"+u),t++;return "{"+o+"}"}else return JSON.stringify(e);case"function":case"undefined":return r?null:void 0;case"string":return JSON.stringify(e);default:return isFinite(e)?e:null}}Y.exports=function(e){var r=E(e,!1);if(r!==void 0)return ""+r};});s();s();var fe=(e=>(e[e.WRITABLE_SIGNER=3]="WRITABLE_SIGNER",e[e.READONLY_SIGNER=2]="READONLY_SIGNER",e[e.WRITABLE=1]="WRITABLE",e[e.READONLY=0]="READONLY",e))(fe||{}),$=2,N=1;function Ue(e){return e&~$}function qe(e){return e&~N}function Ve(e){return e>=2}function Je(e){return (e&N)!==0}function Me(e,r){return e|r}function We(e){return e|$}function Ge(e){return e|N}s();s();s();s();var C=e=>{let r=e.reduce((o,i)=>o+i.length,0),t=new Uint8Array(r),n=0;return e.forEach(o=>{t.set(o,n),n+=o.length;}),t},k=(e,r)=>{if(e.length>=r)return e;let t=new Uint8Array(r).fill(0);return t.set(e),t},b=(e,r)=>k(e.slice(0,r),r);s();var y=class extends Error{constructor(t){super(`Serializer [${t}] cannot deserialize empty buffers.`);h(this,"name","DeserializingEmptyBufferError");}},g=class extends Error{constructor(t,n,o){super(`Serializer [${t}] expected ${n} bytes, got ${o}.`);h(this,"name","NotEnoughBytesError");}};s();function _(e,r,t){return {description:t??`fixed(${r}, ${e.description})`,fixedSize:r,maxSize:r,serialize:n=>b(e.serialize(n),r),deserialize:(n,o=0)=>{if(n=n.slice(o,o+r),n.length<r)throw new g("fixSerializer",r,n.length);e.fixedSize!==null&&(n=b(n,e.fixedSize));let[i]=e.deserialize(n,0);return [i,o+r]}}}s();s();s();var w=class extends Error{constructor(t,n,o){let i=`Expected a string of base ${n}, got [${t}].`;super(i);h(this,"name","InvalidBaseStringError");this.cause=o;}};var K=e=>{let r=e.length,t=BigInt(r);return {description:`base${r}`,fixedSize:null,maxSize:null,serialize(n){if(!n.match(new RegExp(`^[${e}]*$`)))throw new w(n,r);if(n==="")return new Uint8Array;let o=[...n],i=o.findIndex(m=>m!==e[0]);i=i===-1?o.length:i;let a=Array(i).fill(0);if(i===o.length)return Uint8Array.from(a);let u=o.slice(i),c=0n,d=1n;for(let m=u.length-1;m>=0;m-=1)c+=d*BigInt(e.indexOf(u[m])),d*=t;let f=[];for(;c>0n;)f.unshift(Number(c%256n)),c/=256n;return Uint8Array.from(a.concat(f))},deserialize(n,o=0){if(n.length===0)return ["",0];let i=n.slice(o),a=i.findIndex(f=>f!==0);a=a===-1?i.length:a;let u=e[0].repeat(a);if(a===i.length)return [u,n.length];let c=i.slice(a).reduce((f,m)=>f*256n+BigInt(m),0n),d=[];for(;c>0n;)d.unshift(e[Number(c%t)]),c/=t;return [u+d.join(""),n.length]}}};s();var S=K("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");s();var j=e=>e.replace(/\u0000/g,"");s();var B={description:"utf8",fixedSize:null,maxSize:null,serialize(e){return new TextEncoder().encode(e)},deserialize(e,r=0){let t=new TextDecoder().decode(e.slice(r));return [j(t),e.length]}};s();s();var R;(function(e){e.Little="le",e.Big="be";})(R||(R={}));s();var T=class extends RangeError{constructor(t,n,o,i){super(`Serializer [${t}] expected number to be between ${n} and ${o}, got ${i}.`);h(this,"name","NumberOutOfRangeError");}};s();function F(e){let r,t=e.name;return e.size>1&&(r=!("endian"in e.options)||e.options.endian===R.Little,t+=r?"(le)":"(be)"),{description:e.options.description??t,fixedSize:e.size,maxSize:e.size,serialize(n){e.range&&he(e.name,e.range[0],e.range[1],n);let o=new ArrayBuffer(e.size);return e.set(new DataView(o),n,r),new Uint8Array(o)},deserialize(n,o=0){let i=n.slice(o,o+e.size);ye("i8",i,e.size);let a=ge(i);return [e.get(a,r),o+e.size]}}}var me=e=>e.buffer.slice(e.byteOffset,e.byteLength+e.byteOffset),ge=e=>new DataView(me(e)),he=(e,r,t,n)=>{if(n<r||n>t)throw new T(e,r,t,n)},ye=(e,r,t)=>{if(r.length===0)throw new y(e);if(r.length<t)throw new g(e,t,r.length)};s();var O=(e={})=>F({name:"u32",size:4,range:[0,+"0xffffffff"],set:(r,t,n)=>r.setUint32(0,Number(t),n),get:(r,t)=>r.getUint32(0,t),options:e});s();function H(e){return typeof e=="object"?e.description:`${e}`}s();function P(e={}){let r=e.size??O(),t=e.encoding??B,n=e.description??`string(${t.description}; ${H(r)})`;return r==="variable"?{...t,description:n}:typeof r=="number"?_(t,r,n):{description:n,fixedSize:null,maxSize:null,serialize:o=>{let i=t.serialize(o),a=r.serialize(i.length);return C([a,i])},deserialize:(o,i=0)=>{if(o.slice(i).length===0)throw new y("string");let[a,u]=r.deserialize(o,i),c=Number(a);i=u;let d=o.slice(i,i+c);if(d.length<c)throw new g("string",c,d.length);let[f,m]=t.deserialize(d);return i+=m,[f,i]}}}function ct(e){try{if(e.length<32||e.length>44)throw new Error("Expected input string to decode to a byte array of length 32.");let t=S.serialize(e).byteLength;if(t!==32)throw new Error(`Expected input string to decode to a byte array of length 32. Actual length: ${t}`)}catch(r){throw new Error(`\`${e}\` is not a base-58 encoded address`,{cause:r})}}function Ee(e){return P({description:e?.description??(""),encoding:S,size:32})}function ut(){return new Intl.Collator("en",{caseFirst:"lower",ignorePunctuation:!1,localeMatcher:"best fit",numeric:!1,sensitivity:"variant",usage:"sort"}).compare}function U(){if(!globalThis.isSecureContext)throw new Error("Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts")}var x;async function be(e){return x===void 0&&(x=new Promise(r=>{e.generateKey("Ed25519",!1,["sign","verify"]).catch(()=>{r(x=!1);}).then(()=>{r(x=!0);});})),typeof x=="boolean"?x:await x}async function we(){if(U(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.generateKey!="function")throw new Error("No key generation implementation could be found");if(!await be(globalThis.crypto.subtle))throw new Error("This runtime does not support the generation of Ed25519 keypairs")}async function Se(){if(U(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.exportKey!="function")throw new Error("No key export implementation could be found")}async function lt(){return await we(),await crypto.subtle.generateKey("Ed25519",!1,["sign","verify"])}async function pt(e){if(await Se(),e.type!=="public"||e.algorithm.name!=="Ed25519")throw new Error("The `CryptoKey` must be an `Ed25519` public key");let r=await crypto.subtle.exportKey("raw",e),[t]=Ee().deserialize(new Uint8Array(r));return t}s();s();function D(e,r,t){if(Array.isArray(e))return e.map((n,o)=>D(n,[...r,o],t));if(typeof e=="object"&&e!==null){let n={};for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=D(e[o],[...r,o],t));return n}else return typeof e=="bigint"?(t&&(e>Number.MAX_SAFE_INTEGER||e<-Number.MAX_SAFE_INTEGER)&&t(r,e),Number(e)):e}function Re(e,r){return D(e,[],r)}var l={},Te={getAccountInfo:[["value","data","parsed","info","lastExtendedSlotStartIndex"],["value","data","parsed","info","slashPenalty"],["value","data","parsed","info","warmupCooldownRate"],["value","data","parsed","info","tokenAmount","decimals"],["value","data","parsed","info","tokenAmount","uiAmount"],["value","data","parsed","info","rentExemptReserve","decimals"],["value","data","parsed","info","delegatedAmount","decimals"],["value","data","parsed","info","extensions",l,"state","olderTransferFee","transferFeeBasisPoints"],["value","data","parsed","info","extensions",l,"state","newerTransferFee","transferFeeBasisPoints"],["value","data","parsed","info","extensions",l,"state","preUpdateAverageRate"],["value","data","parsed","info","extensions",l,"state","currentRate"],["value","data","parsed","info","decimals"],["value","data","parsed","info","numRequiredSigners"],["value","data","parsed","info","numValidSigners"],["value","data","parsed","info","stake","delegation","warmupCooldownRate"],["value","data","parsed","info","exemptionThreshold"],["value","data","parsed","info","burnPercent"],["value","data","parsed","info","commission"],["value","data","parsed","info","votes",l,"confirmationCount"]],getBlockTime:[[]],getInflationReward:[[l,"commission"]],getRecentPerformanceSamples:[[l,"samplePeriodSecs"]],getTokenLargestAccounts:[["value",l,"decimals"],["value",l,"uiAmount"]],getTransaction:[["meta","preTokenBalances",l,"accountIndex"],["meta","preTokenBalances",l,"uiTokenAmount","decimals"],["meta","postTokenBalances",l,"accountIndex"],["meta","postTokenBalances",l,"uiTokenAmount","decimals"],["meta","rewards",l,"commission"],["meta","innerInstructions",l,"index"],["meta","innerInstructions",l,"instructions",l,"programIdIndex"],["meta","innerInstructions",l,"instructions",l,"accounts",l],["transaction","message","addressTableLookups",l,"writableIndexes",l],["transaction","message","addressTableLookups",l,"readonlyIndexes",l],["transaction","message","instructions",l,"programIdIndex"],["transaction","message","instructions",l,"accounts",l],["transaction","message","header","numReadonlySignedAccounts"],["transaction","message","header","numReadonlyUnsignedAccounts"],["transaction","message","header","numRequiredSignatures"]],getVoteAccounts:[["current",l,"commission"],["delinquent",l,"commission"]]};function q(e,r){return e.filter(t=>t[0]===l&&typeof r=="number"||t[0]===r).map(t=>t.slice(1))}function L(e,r){if(Array.isArray(e))return e.map((t,n)=>{let o=q(r,n);return L(t,o)});if(typeof e=="object"&&e!==null){let t={};for(let[n,o]of Object.entries(e)){let i=q(r,n);t[n]=L(o,i);}return t}else return typeof e=="number"&&r.length===0&&Number.isInteger(e)?BigInt(e):e}function Ie(e,r){let t=r?Te[r]:void 0;return L(e,t??[])}function V(e){return new Proxy({},{defineProperty(){return !1},deleteProperty(){return !1},get(...r){let[t,n]=r,o=n.toString();return function(...i){let a=e?.onIntegerOverflow,u=Re(i,a?(c,d)=>a(o,c,d):void 0);return {methodName:o,params:u,responseProcessor:c=>Ie(c,o)}}}})}s();var ze=class extends Error{constructor(e){super(`JSON-RPC 2.0 error (${e.code}): ${e.message}`),Error.captureStackTrace(this,this.constructor),this.code=e.code,this.data=e.data;}get name(){return "SolanaJsonRpcError"}},v=0;function Ae(){let e=v;return v=(v+1)%Number.MAX_SAFE_INTEGER,e}function Ne(e,r){return {id:Ae(),jsonrpc:"2.0",method:e,params:r}}function Ce(e,r){return {async send(t){let{methodName:n,params:o,responseProcessor:i}=r,a=Ne(n,o),u=await e.transport({payload:a,signal:t?.abortSignal});if("error"in u)throw new ze(u.error);return i?i(u.result):u.result}}}function _e(e){return new Proxy(e.api,{defineProperty(){return !1},deleteProperty(){return !1},get(r,t,n){return function(...o){let i=t.toString(),a=Reflect.get(r,i,n),u=a?a(...o):{methodName:i,params:o};return Ce(e,u)}}})}function M(e){return _e(e)}var Be=globalThis.fetch,Oe=class extends Error{constructor(e){super(`HTTP error (${e.statusCode}): ${e.message}`),Error.captureStackTrace(this,this.constructor),this.statusCode=e.statusCode;}get name(){return "SolanaHttpError"}};function ve(e){let r={};for(let t in e)r[t.toLowerCase()]=e[t];return r}function W({httpAgentNodeOnly:e,headers:r,url:t}){let n=void 0;let o=r&&ve(r);return async function({payload:a,signal:u}){let c=JSON.stringify(a),d={agent:n,body:c,headers:{...o,accept:"application/json","content-length":c.length.toString(),"content-type":"application/json; charset=utf-8"},method:"POST",signal:u},f=await Be(t,d);if(!f.ok)throw new Oe({message:f.statusText,statusCode:f.status});return await f.json()}}s();s();var I=class extends Error{constructor(t,n,o){let i=(typeof n[0]=="number"?n[0]:parseInt(n[0],10))+1,a="",u=i%10,c=i%100;u==1&&c!=11?a=i+"st":u==2&&c!=12?a=i+"nd":u==3&&c!=13?a=i+"rd":a=i+"th";let d=n.length>1?n.slice(1).map(f=>typeof f=="number"?`[${f}]`:f).join("."):null;super(`The ${a} argument to the \`${t}\` RPC method${d?` at path \`${d}\``:""} was \`${o}\`. This number is unsafe for use with the Solana JSON-RPC because it exceeds \`Number.MAX_SAFE_INTEGER\`.`);this.keyPath=n,this.methodName=t,this.value=o;}get name(){return "SolanaJsonRpcIntegerOverflowError"}};var G={onIntegerOverflow(e,r,t){throw new I(e,r,t)}};function Ct(e){return M({...e,api:V(G)})}s();s();function X(e,r){let t;return async function(o){let{payload:i,signal:a}=o,u=r(i);if(u===void 0)return await e(o);if(t||(Promise.resolve().then(()=>{t=void 0;}),t={}),t[u]==null){let d=new AbortController;t[u]={abortController:d,numConsumers:0,responsePromise:e({...o,signal:d.signal})};}let c=t[u];if(c.numConsumers++,a){let d=c.responsePromise;return await new Promise((f,m)=>{let z=re=>{a.removeEventListener("abort",z),c.numConsumers-=1,c.numConsumers===0&&c.abortController.abort();let te=new DOMException(re.target.reason,"AbortError");m(te);};a.addEventListener("abort",z),d.then(f).finally(()=>{a.removeEventListener("abort",z);});})}else return await c.responsePromise}}s();var Q=de(Z(),1);function ee(e){if(!(e==null||typeof e!="object"||Array.isArray(e))&&"jsonrpc"in e&&e.jsonrpc==="2.0"&&"method"in e&&"params"in e)return (0, Q.default)([e.method,e.params])}function Ke(e){let r={};for(let t in e)r[t.toLowerCase()]=e[t];return r}function Ft(e){return X(W({...e,headers:{...e.headers?Ke(e.headers):void 0,"solana-client":"js/2.0.0-development"}}),ee)}
6
+
7
+ exports.AccountRole = fe;
8
+ exports.assertIsBase58EncodedAddress = ct;
9
+ exports.createDefaultRpcTransport = Ft;
10
+ exports.createSolanaRpc = Ct;
11
+ exports.downgradeRoleToNonSigner = Ue;
12
+ exports.downgradeRoleToReadonly = qe;
13
+ exports.generateKeyPair = lt;
14
+ exports.getBase58EncodedAddressCodec = Ee;
15
+ exports.getBase58EncodedAddressComparator = ut;
16
+ exports.getBase58EncodedAddressFromPublicKey = pt;
17
+ exports.isSignerRole = Ve;
18
+ exports.isWritableRole = Je;
19
+ exports.mergeRoles = Me;
20
+ exports.upgradeRoleToSigner = We;
21
+ exports.upgradeRoleToWritable = Ge;
22
+
23
+ return exports;
24
+
25
+ })({});
@@ -0,0 +1,5 @@
1
+ export * from '@solana/instructions';
2
+ export * from '@solana/keys';
3
+ export * from './rpc';
4
+ export * from './rpc-transport';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { createSolanaRpcApi } from '@solana/rpc-core';
2
+ export declare const DEFAULT_RPC_CONFIG: Partial<Parameters<typeof createSolanaRpcApi>[0]>;
3
+ //# sourceMappingURL=rpc-default-config.d.ts.map
@@ -0,0 +1,8 @@
1
+ export declare class SolanaJsonRpcIntegerOverflowError extends Error {
2
+ readonly methodName: string;
3
+ readonly keyPath: (number | string)[];
4
+ readonly value: bigint;
5
+ constructor(methodName: string, keyPath: (number | string)[], value: bigint);
6
+ get name(): string;
7
+ }
8
+ //# sourceMappingURL=rpc-integer-overflow-error.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { IRpcTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';
2
+ type GetDeduplicationKeyFn = (payload: unknown) => string | undefined;
3
+ export declare function getRpcTransportWithRequestCoalescing(transport: IRpcTransport, getDeduplicationKey: GetDeduplicationKeyFn): IRpcTransport;
4
+ export {};
5
+ //# sourceMappingURL=rpc-request-coalescer.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare function getSolanaRpcPayloadDeduplicationKey(payload: unknown): string | undefined;
2
+ //# sourceMappingURL=rpc-request-deduplication.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { createHttpTransport } from '@solana/rpc-transport';
2
+ import { IRpcTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';
3
+ export declare function createDefaultRpcTransport(config: Parameters<typeof createHttpTransport>[0]): IRpcTransport;
4
+ //# sourceMappingURL=rpc-transport.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { SolanaRpcMethods } from '@solana/rpc-core';
2
+ import { createJsonRpc } from '@solana/rpc-transport';
3
+ import type { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';
4
+ export declare function createSolanaRpc(config: Omit<Parameters<typeof createJsonRpc>[0], 'api'>): Rpc<SolanaRpcMethods>;
5
+ //# sourceMappingURL=rpc.d.ts.map
package/package.json CHANGED
@@ -1,131 +1,106 @@
1
1
  {
2
2
  "name": "@solana/web3.js",
3
- "version": "1.78.0",
3
+ "version": "2.0.0-development",
4
4
  "description": "Solana Javascript API",
5
+ "exports": {
6
+ "browser": {
7
+ "import": "./dist/index.browser.js",
8
+ "require": "./dist/index.browser.cjs"
9
+ },
10
+ "node": {
11
+ "import": "./dist/index.node.js",
12
+ "require": "./dist/index.node.cjs"
13
+ },
14
+ "react-native": "./dist/index.native.js",
15
+ "types": "./dist/types/index.d.ts"
16
+ },
17
+ "browser": {
18
+ "./dist/index.node.cjs": "./dist/index.browser.cjs",
19
+ "./dist/index.node.js": "./dist/index.browser.js"
20
+ },
21
+ "jsdelivr": "./dist/index.production.min.js",
22
+ "umd": "./dist/index.production.min.js",
23
+ "unpkg": "./dist/index.production.min.js",
24
+ "main": "./dist/index.node.cjs",
25
+ "module": "./dist/index.node.js",
26
+ "react-native": "./dist/index.native.js",
27
+ "types": "./dist/types/index.d.ts",
28
+ "type": "module",
29
+ "files": [
30
+ "./dist/"
31
+ ],
32
+ "sideEffects": false,
5
33
  "keywords": [
6
- "api",
7
- "blockchain"
34
+ "blockchain",
35
+ "solana",
36
+ "web3"
8
37
  ],
9
- "license": "MIT",
10
38
  "author": "Solana Labs Maintainers <maintainers@solanalabs.com>",
11
- "homepage": "https://solana.com/",
39
+ "license": "MIT",
12
40
  "repository": {
13
41
  "type": "git",
14
- "url": "https://github.com/solana-labs/solana-web3.js.git"
42
+ "url": "https://github.com/solana-labs/solana-web3.js"
15
43
  },
16
44
  "bugs": {
17
- "url": "http://github.com/solana-labs/solana-web3.js.git/issues"
18
- },
19
- "publishConfig": {
20
- "access": "public"
21
- },
22
- "browser": {
23
- "./lib/index.cjs.js": "./lib/index.browser.cjs.js",
24
- "./lib/index.esm.js": "./lib/index.browser.esm.js"
45
+ "url": "http://github.com/solana-labs/solana-web3.js/issues"
25
46
  },
26
- "react-native": "lib/index.native.js",
27
- "main": "lib/index.cjs.js",
28
- "module": "lib/index.esm.js",
29
- "types": "lib/index.d.ts",
30
47
  "browserslist": [
31
- "defaults",
32
- "not IE 11",
48
+ "supports bigint and not dead",
33
49
  "maintained node versions"
34
50
  ],
35
- "files": [
36
- "/lib",
37
- "/src"
38
- ],
39
- "scripts": {
40
- "compile:docs": "typedoc --treatWarningsAsErrors",
41
- "compile:js": "cross-env NODE_ENV=production rollup -c",
42
- "compile:typedefs": "./scripts/typegen.sh",
43
- "build:fixtures": "set -ex; ./test/fixtures/noop-program/build.sh",
44
- "clean": "rimraf ./doc ./declarations ./lib",
45
- "dev": "cross-env NODE_ENV=development rollup -c --watch",
46
- "publish-packages": "semantic-release --repository-url git@github.com:solana-labs/solana-web3.js.git",
47
- "test:lint": "eslint src/ test/ --ext .js,.ts",
48
- "test:lint:fix": "eslint src/ test/ --fix --ext .js,.ts",
49
- "test:live": "TEST_LIVE=1 pnpm run test:unit:node",
50
- "test:live-with-test-validator": "start-server-and-test '../../scripts/start-shared-test-validator.sh' http://127.0.0.1:8899/health test:live",
51
- "test:prettier": "prettier --check '{,{src,test}/**/}*.{j,t}s'",
52
- "test:prettier:fix": "prettier --write '{,{src,test}/**/}*.{j,t}s'",
53
- "test:typecheck": "tsc --noEmit",
54
- "test:unit:node": "cross-env NODE_ENV=test TS_NODE_COMPILER_OPTIONS='{ \"module\": \"commonjs\", \"target\": \"es2019\" }' ts-mocha --require esm './test/**/*.test.ts'"
55
- },
56
51
  "dependencies": {
57
- "@babel/runtime": "^7.22.3",
58
- "@noble/curves": "^1.0.0",
59
- "@noble/hashes": "^1.3.0",
60
- "@solana/buffer-layout": "^4.0.0",
61
- "agentkeepalive": "^4.2.1",
62
- "bigint-buffer": "^1.1.5",
63
- "bn.js": "^5.0.0",
64
- "borsh": "^0.7.0",
65
- "bs58": "^4.0.1",
66
- "buffer": "6.0.3",
67
52
  "fast-stable-stringify": "^1.0.0",
68
- "jayson": "^4.1.0",
69
- "node-fetch": "^2.6.11",
70
- "rpc-websockets": "^7.5.1",
71
- "superstruct": "^0.14.2"
53
+ "@solana/instructions": "2.0.0-experimental.457d032",
54
+ "@solana/keys": "2.0.0-experimental.457d032",
55
+ "@solana/rpc-core": "2.0.0-experimental.457d032",
56
+ "@solana/rpc-transport": "2.0.0-experimental.457d032"
72
57
  },
73
58
  "devDependencies": {
74
- "@babel/core": "^7.12.13",
75
- "@babel/plugin-proposal-class-properties": "^7.12.1",
76
- "@babel/plugin-proposal-private-methods": "^7.18.6",
77
- "@babel/plugin-transform-runtime": "^7.12.10",
78
- "@babel/preset-env": "^7.22.4",
79
- "@babel/preset-typescript": "^7.12.16",
80
- "@rollup/plugin-alias": "^4.0.3",
81
- "@rollup/plugin-babel": "^6.0.3",
82
- "@rollup/plugin-commonjs": "^25.0.0",
83
- "@rollup/plugin-json": "^6.0.0",
84
- "@rollup/plugin-multi-entry": "^6.0.0",
85
- "@rollup/plugin-node-resolve": "^15.0.1",
86
- "@rollup/plugin-replace": "^5.0.2",
87
- "@rollup/plugin-terser": "^0.4.3",
88
- "@solana/spl-token": "^0.3.7",
89
- "@types/bn.js": "^5.1.0",
90
- "@types/bs58": "^4.0.1",
91
- "@types/chai": "^4.3.5",
92
- "@types/chai-as-promised": "^7.1.3",
93
- "@types/express-serve-static-core": "^4.17.35",
94
- "@types/mocha": "^10.0.0",
95
- "@types/mz": "^2.7.3",
96
- "@types/node": "^18.11.10",
97
- "@types/node-fetch": "2",
98
- "@types/sinon": "^10.0.0",
99
- "@types/sinon-chai": "^3.2.8",
100
- "@typescript-eslint/eslint-plugin": "^5.57.1",
101
- "@typescript-eslint/parser": "^5.57.1",
102
- "chai": "^4.3.7",
103
- "chai-as-promised": "^7.1.1",
104
- "cross-env": "7.0.3",
105
- "eslint": "^8.37.0",
106
- "eslint-config-prettier": "^8.8.0",
107
- "eslint-plugin-import": "^2.26.0",
108
- "eslint-plugin-mocha": "^10.1.0",
109
- "eslint-plugin-prettier": "^4.2.1",
110
- "esm": "^3.2.25",
111
- "mocha": "^10.1.0",
112
- "mockttp": "^3.7.5",
113
- "mz": "^2.7.0",
114
- "node-abort-controller": "^3.0.1",
59
+ "@solana/eslint-config-solana": "^1.0.2",
60
+ "@swc/core": "^1.3.18",
61
+ "@swc/jest": "^0.2.26",
62
+ "@types/jest": "^29.5.2",
63
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
64
+ "@typescript-eslint/parser": "^6.0.0",
65
+ "agadoo": "^3.0.0",
66
+ "eslint": "^8.45.0",
67
+ "eslint-plugin-jest": "^27.2.3",
68
+ "eslint-plugin-react-hooks": "^4.6.0",
69
+ "eslint-plugin-sort-keys-fix": "^1.1.2",
70
+ "jest": "^29.6.1",
71
+ "jest-environment-jsdom": "^29.6.0",
72
+ "jest-runner-eslint": "^2.1.0",
73
+ "jest-runner-prettier": "^1.0.0",
74
+ "postcss": "^8.4.12",
115
75
  "prettier": "^2.8.8",
116
- "rimraf": "5.0.1",
117
- "rollup": "^3.20.2",
118
- "rollup-plugin-dts": "^5.3.0",
119
- "rollup-plugin-node-polyfills": "^0.2.1",
120
- "semantic-release": "^19.0.3",
121
- "sinon": "^15.1.0",
122
- "sinon-chai": "^3.7.0",
123
- "start-server-and-test": "^2.0.0",
124
- "ts-mocha": "^10.0.0",
125
- "ts-node": "^10.0.0",
126
- "tsconfig": "workspace:*",
127
- "tslib": "^2.5.2",
128
- "typedoc": "^0.23.28",
129
- "typescript": "^5.0.4"
76
+ "ts-node": "^10.9.1",
77
+ "tsup": "6.7.0",
78
+ "typescript": "^5.1.6",
79
+ "version-from-git": "^1.1.1",
80
+ "build-scripts": "0.0.0",
81
+ "test-config": "0.0.0",
82
+ "tsconfig": "0.0.0"
83
+ },
84
+ "bundlewatch": {
85
+ "defaultCompression": "gzip",
86
+ "files": [
87
+ {
88
+ "path": "./dist/index*.js"
89
+ }
90
+ ]
91
+ },
92
+ "scripts": {
93
+ "compile:js": "tsup --config build-scripts/tsup.config.library.ts",
94
+ "compile:typedefs": "tsc -p ./tsconfig.declarations.json",
95
+ "dev": "jest -c node_modules/test-config/jest-dev.config.ts --rootDir . --watch",
96
+ "publish-packages": "sed -i 's/@solana\\/web3\\.js-experimental/@solana\\/web3\\.js/g' package.json && sed -i 's/@solana\\/web3\\.js/@solana\\/web3\\.js-bak/g' ../library-legacy/package.json && pnpm publish --tag experimental --access public --no-git-checks && git reset --hard",
97
+ "test:lint": "jest -c node_modules/test-config/jest-lint.config.ts --rootDir . --silent",
98
+ "test:prettier": "jest -c node_modules/test-config/jest-prettier.config.ts --rootDir . --silent",
99
+ "test:treeshakability:browser": "agadoo dist/index.browser.js",
100
+ "test:treeshakability:native": "agadoo dist/index.node.js",
101
+ "test:treeshakability:node": "agadoo dist/index.native.js",
102
+ "test:typecheck": "tsc --noEmit",
103
+ "test:unit:browser": "jest -c node_modules/test-config/jest-unit.config.browser.ts --rootDir . --silent",
104
+ "test:unit:node": "jest -c node_modules/test-config/jest-unit.config.node.ts --rootDir . --silent"
130
105
  }
131
- }
106
+ }