@solana/web3.js 2.0.0-experimental.7e66ec4 → 2.0.0-experimental.819a6f7

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 (42) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -4
  3. package/dist/index.browser.cjs +546 -8
  4. package/dist/index.browser.cjs.map +1 -1
  5. package/dist/index.browser.js +540 -11
  6. package/dist/index.browser.js.map +1 -1
  7. package/dist/index.development.js +2484 -698
  8. package/dist/index.development.js.map +1 -1
  9. package/dist/index.native.js +529 -11
  10. package/dist/index.native.js.map +1 -1
  11. package/dist/index.node.cjs +535 -8
  12. package/dist/index.node.cjs.map +1 -1
  13. package/dist/index.node.js +529 -13
  14. package/dist/index.node.js.map +1 -1
  15. package/dist/index.production.min.js +52 -30
  16. package/dist/types/cached-abortable-iterable.d.ts +11 -0
  17. package/dist/types/cached-abortable-iterable.d.ts.map +1 -0
  18. package/dist/types/index.d.ts +5 -0
  19. package/dist/types/index.d.ts.map +1 -1
  20. package/dist/types/rpc-request-deduplication.d.ts.map +1 -1
  21. package/dist/types/rpc-subscription-coalescer.d.ts +10 -0
  22. package/dist/types/rpc-subscription-coalescer.d.ts.map +1 -0
  23. package/dist/types/rpc-transport.d.ts.map +1 -1
  24. package/dist/types/rpc-websocket-autopinger.d.ts +8 -0
  25. package/dist/types/rpc-websocket-autopinger.d.ts.map +1 -0
  26. package/dist/types/rpc-websocket-connection-sharding.d.ts +13 -0
  27. package/dist/types/rpc-websocket-connection-sharding.d.ts.map +1 -0
  28. package/dist/types/rpc-websocket-transport.d.ts +13 -0
  29. package/dist/types/rpc-websocket-transport.d.ts.map +1 -0
  30. package/dist/types/rpc.d.ts +5 -3
  31. package/dist/types/rpc.d.ts.map +1 -1
  32. package/dist/types/transaction-confirmation-strategy-blockheight.d.ts +10 -0
  33. package/dist/types/transaction-confirmation-strategy-blockheight.d.ts.map +1 -0
  34. package/dist/types/transaction-confirmation-strategy-nonce.d.ts +15 -0
  35. package/dist/types/transaction-confirmation-strategy-nonce.d.ts.map +1 -0
  36. package/dist/types/transaction-confirmation-strategy-racer.d.ts +10 -0
  37. package/dist/types/transaction-confirmation-strategy-racer.d.ts.map +1 -0
  38. package/dist/types/transaction-confirmation-strategy-recent-signature.d.ts +13 -0
  39. package/dist/types/transaction-confirmation-strategy-recent-signature.d.ts.map +1 -0
  40. package/dist/types/transaction-confirmation.d.ts +37 -0
  41. package/dist/types/transaction-confirmation.d.ts.map +1 -0
  42. package/package.json +20 -17
@@ -1 +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":"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","sourcesContent":["export * from '@solana/addresses';\nexport * from '@solana/instructions';\nexport * from '@solana/keys';\nexport * from '@solana/transactions';\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"]}
1
+ {"version":3,"sources":["../../build-scripts/env-shim.ts","../src/index.ts","../src/rpc.ts","../src/rpc-integer-overflow-error.ts","../src/rpc-default-config.ts","../src/cached-abortable-iterable.ts","../src/rpc-subscription-coalescer.ts","../src/rpc-transport.ts","../src/rpc-request-coalescer.ts","../src/rpc-request-deduplication.ts","../src/rpc-websocket-transport.ts","../src/rpc-websocket-autopinger.ts","../src/rpc-websocket-connection-sharding.ts","../src/transaction-confirmation.ts","../src/transaction-confirmation-strategy-blockheight.ts","../src/transaction-confirmation-strategy-nonce.ts","../src/transaction-confirmation-strategy-racer.ts","../src/transaction-confirmation-strategy-recent-signature.ts"],"names":["registerIterableCleanup","deduplicationKey","pendingSubscription","pipe","fastStableStringify","args"],"mappings":"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","sourcesContent":["// Clever obfuscation to prevent the build system from inlining the value of `NODE_ENV`\nexport const __DEV__ = /* @__PURE__ */ (() => (process as any)['en' + 'v'].NODE_ENV === 'development')();\n","export * from '@solana/addresses';\nexport * from '@solana/instructions';\nexport * from '@solana/keys';\nexport * from '@solana/transactions';\nexport * from './rpc';\nexport * from './rpc-transport';\nexport * from './rpc-websocket-transport';\nexport * from './transaction-confirmation';\nexport * from './transaction-confirmation-strategy-blockheight';\nexport * from './transaction-confirmation-strategy-nonce';\nexport * from './transaction-confirmation-strategy-recent-signature';\n","import { pipe } from '@solana/functional';\nimport {\n createSolanaRpcApi,\n createSolanaRpcSubscriptionsApi,\n createSolanaRpcSubscriptionsApi_UNSTABLE,\n SolanaRpcMethods,\n SolanaRpcSubscriptions,\n SolanaRpcSubscriptionsUnstable,\n} from '@solana/rpc-core';\nimport { createJsonRpc, createJsonSubscriptionRpc } from '@solana/rpc-transport';\nimport type { Rpc, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\n\nimport { DEFAULT_RPC_CONFIG } from './rpc-default-config';\nimport { getRpcSubscriptionsWithSubscriptionCoalescing } from './rpc-subscription-coalescer';\n\nexport function createSolanaRpc(config: Omit<Parameters<typeof createJsonRpc>[0], 'api'>): Rpc<SolanaRpcMethods> {\n return createJsonRpc({\n ...config,\n api: createSolanaRpcApi(DEFAULT_RPC_CONFIG),\n });\n}\n\nexport function createSolanaRpcSubscriptions(\n config: Omit<Parameters<typeof createJsonSubscriptionRpc>[0], 'api'>\n): RpcSubscriptions<SolanaRpcSubscriptions> {\n return pipe(\n createJsonSubscriptionRpc({\n ...config,\n api: createSolanaRpcSubscriptionsApi(DEFAULT_RPC_CONFIG),\n }),\n rpcSubscriptions =>\n getRpcSubscriptionsWithSubscriptionCoalescing({\n getDeduplicationKey: (...args) => fastStableStringify(args),\n rpcSubscriptions,\n })\n );\n}\n\nexport function createSolanaRpcSubscriptions_UNSTABLE(\n config: Omit<Parameters<typeof createJsonSubscriptionRpc>[0], 'api'>\n): RpcSubscriptions<SolanaRpcSubscriptions & SolanaRpcSubscriptionsUnstable> {\n return createJsonSubscriptionRpc({\n ...config,\n api: createSolanaRpcSubscriptionsApi_UNSTABLE(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","type CacheEntry<TIterable extends AsyncIterable<unknown>> = {\n abortController: AbortController;\n iterable: Promise<TIterable> | TIterable;\n purgeScheduled: boolean;\n referenceCount: number;\n};\ntype CacheKey = string | symbol;\ntype Config<TInput extends unknown[], TIterable extends AsyncIterable<unknown>> = Readonly<{\n getAbortSignalFromInputArgs: (...args: TInput) => AbortSignal;\n getCacheEntryMissingError: (cacheKey: CacheKey) => Error;\n getCacheKeyFromInputArgs: (...args: TInput) =>\n | CacheKey\n // `undefined` implies 'do not cache'\n | undefined;\n onCacheHit: (iterable: TIterable, ...args: TInput) => Promise<void>;\n onCreateIterable: (abortSignal: AbortSignal, ...args: TInput) => Promise<TIterable>;\n}>;\n\nfunction registerIterableCleanup(iterable: AsyncIterable<unknown>, cleanupFn: CallableFunction) {\n (async () => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of iterable);\n } catch {\n /* empty */\n } finally {\n // Run the cleanup function.\n cleanupFn();\n }\n })();\n}\n\nexport function getCachedAbortableIterableFactory<TInput extends unknown[], TIterable extends AsyncIterable<unknown>>({\n getAbortSignalFromInputArgs,\n getCacheEntryMissingError,\n getCacheKeyFromInputArgs,\n onCacheHit,\n onCreateIterable,\n}: Config<TInput, TIterable>): (...args: TInput) => Promise<TIterable> {\n const cache = new Map<CacheKey, CacheEntry<TIterable>>();\n function getCacheEntryOrThrow(cacheKey: CacheKey) {\n const currentCacheEntry = cache.get(cacheKey);\n if (!currentCacheEntry) {\n throw getCacheEntryMissingError(cacheKey);\n }\n return currentCacheEntry;\n }\n return async (...args: TInput) => {\n const cacheKey = getCacheKeyFromInputArgs(...args);\n const signal = getAbortSignalFromInputArgs(...args);\n if (cacheKey === undefined) {\n return await onCreateIterable(signal, ...args);\n }\n const cleanup = () => {\n cache.delete(cacheKey);\n signal.removeEventListener('abort', handleAbort);\n };\n const handleAbort = () => {\n const cacheEntry = getCacheEntryOrThrow(cacheKey);\n if (cacheEntry.purgeScheduled !== true) {\n cacheEntry.purgeScheduled = true;\n globalThis.queueMicrotask(() => {\n cacheEntry.purgeScheduled = false;\n if (cacheEntry.referenceCount === 0) {\n cacheEntry.abortController.abort();\n cleanup();\n }\n });\n }\n cacheEntry.referenceCount--;\n };\n signal.addEventListener('abort', handleAbort);\n try {\n const cacheEntry = cache.get(cacheKey);\n if (!cacheEntry) {\n const singletonAbortController = new AbortController();\n const newIterablePromise = onCreateIterable(singletonAbortController.signal, ...args);\n const newCacheEntry: CacheEntry<TIterable> = {\n abortController: singletonAbortController,\n iterable: newIterablePromise,\n purgeScheduled: false,\n referenceCount: 1,\n };\n cache.set(cacheKey, newCacheEntry);\n const newIterable = await newIterablePromise;\n registerIterableCleanup(newIterable, cleanup);\n newCacheEntry.iterable = newIterable;\n return newIterable;\n } else {\n cacheEntry.referenceCount++;\n const iterableOrIterablePromise = cacheEntry.iterable;\n const cachedIterable =\n 'then' in iterableOrIterablePromise ? await iterableOrIterablePromise : iterableOrIterablePromise;\n await onCacheHit(cachedIterable, ...args);\n return cachedIterable;\n }\n } catch (e) {\n cleanup();\n throw e;\n }\n };\n}\n","import { PendingRpcSubscription, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';\n\nimport { getCachedAbortableIterableFactory } from './cached-abortable-iterable';\n\ntype CacheKey = string | undefined;\ntype Config<TRpcSubscriptionsMethods> = Readonly<{\n getDeduplicationKey: GetDeduplicationKeyFn;\n rpcSubscriptions: RpcSubscriptions<TRpcSubscriptionsMethods>;\n}>;\ntype GetDeduplicationKeyFn = (subscriptionMethod: string | symbol, payload: unknown) => CacheKey;\n\nconst EXPLICIT_ABORT_TOKEN = Symbol(\n __DEV__\n ? \"This symbol is thrown from a subscription's iterator when the subscription is \" +\n 'explicitly aborted by the user'\n : undefined\n);\n\nfunction registerIterableCleanup(iterable: AsyncIterable<unknown>, cleanupFn: CallableFunction) {\n (async () => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of iterable);\n } catch {\n /* empty */\n } finally {\n // Run the cleanup function.\n cleanupFn();\n }\n })();\n}\n\nexport function getRpcSubscriptionsWithSubscriptionCoalescing<TRpcSubscriptionsMethods>({\n getDeduplicationKey,\n rpcSubscriptions,\n}: Config<TRpcSubscriptionsMethods>): RpcSubscriptions<TRpcSubscriptionsMethods> {\n const cache = new Map<CacheKey, PendingRpcSubscription<unknown>>();\n return new Proxy(rpcSubscriptions, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get(target, p, receiver) {\n const subscriptionMethod = Reflect.get(target, p, receiver);\n if (typeof subscriptionMethod !== 'function') {\n return subscriptionMethod;\n }\n return function (...rawParams: unknown[]) {\n const deduplicationKey = getDeduplicationKey(p, rawParams);\n if (deduplicationKey === undefined) {\n return (subscriptionMethod as CallableFunction)(...rawParams);\n }\n if (cache.has(deduplicationKey)) {\n return cache.get(deduplicationKey)!;\n }\n const iterableFactory = getCachedAbortableIterableFactory<\n Parameters<PendingRpcSubscription<unknown>['subscribe']>,\n AsyncIterable<unknown>\n >({\n getAbortSignalFromInputArgs: ({ abortSignal }) => abortSignal,\n getCacheEntryMissingError(deduplicationKey) {\n // TODO: Coded error.\n return new Error(\n `Found no cache entry for subscription with deduplication key \\`${deduplicationKey?.toString()}\\``\n );\n },\n getCacheKeyFromInputArgs: () => deduplicationKey,\n async onCacheHit(_iterable, _config) {\n /**\n * This transport's goal is to prevent duplicate subscriptions from\n * being made. If a cached iterable] is found, do not send the subscribe\n * message again.\n */\n },\n async onCreateIterable(abortSignal, config) {\n const pendingSubscription = (subscriptionMethod as CallableFunction)(\n ...rawParams\n ) as PendingRpcSubscription<unknown>;\n const iterable = await pendingSubscription.subscribe({\n ...config,\n abortSignal,\n });\n registerIterableCleanup(iterable, () => {\n cache.delete(deduplicationKey);\n });\n return iterable;\n },\n });\n const pendingSubscription: PendingRpcSubscription<unknown> = {\n async subscribe(...args) {\n const iterable = await iterableFactory(...args);\n const { abortSignal } = args[0];\n let abortPromise;\n return {\n ...iterable,\n async *[Symbol.asyncIterator]() {\n abortPromise ||= abortSignal.aborted\n ? Promise.reject(EXPLICIT_ABORT_TOKEN)\n : new Promise<never>((_, reject) => {\n abortSignal.addEventListener('abort', () => {\n reject(EXPLICIT_ABORT_TOKEN);\n });\n });\n try {\n const iterator = iterable[Symbol.asyncIterator]();\n while (true) {\n const iteratorResult = await Promise.race([iterator.next(), abortPromise]);\n if (iteratorResult.done) {\n return;\n } else {\n yield iteratorResult.value;\n }\n }\n } catch (e) {\n if (e === EXPLICIT_ABORT_TOKEN) {\n return;\n }\n cache.delete(deduplicationKey);\n throw e;\n }\n },\n };\n },\n };\n cache.set(deduplicationKey, pendingSubscription);\n return pendingSubscription;\n };\n },\n });\n}\n","import { pipe } from '@solana/functional';\nimport { 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 pipe(\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 transport => getRpcTransportWithRequestCoalescing(transport, 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\nfunction isJsonRpcPayload(payload: unknown): payload is Readonly<{ method: string; params: unknown }> {\n if (payload == null || typeof payload !== 'object' || Array.isArray(payload)) {\n return false;\n }\n return (\n 'jsonrpc' in payload &&\n payload.jsonrpc === '2.0' &&\n 'method' in payload &&\n typeof payload.method === 'string' &&\n 'params' in payload\n );\n}\n\nexport function getSolanaRpcPayloadDeduplicationKey(payload: unknown): string | undefined {\n return isJsonRpcPayload(payload) ? fastStableStringify([payload.method, payload.params]) : undefined;\n}\n","import { pipe } from '@solana/functional';\nimport { createWebSocketTransport } from '@solana/rpc-transport';\nimport { IRpcWebSocketTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\nimport { getWebSocketTransportWithAutoping } from './rpc-websocket-autopinger';\nimport { getWebSocketTransportWithConnectionSharding } from './rpc-websocket-connection-sharding';\n\nexport function createDefaultRpcSubscriptionsTransport(\n config: Omit<Parameters<typeof createWebSocketTransport>[0], 'sendBufferHighWatermark'> & {\n /**\n * You might like to open more subscriptions per connection than your RPC provider allows\n * for. Using the initial payload as input, return a shard key from this method to assign\n * subscriptions to separate connections. One socket will be opened per shard key.\n */\n getShard?: (payload: unknown) => string;\n intervalMs?: number;\n sendBufferHighWatermark?: number;\n }\n): IRpcWebSocketTransport {\n const { getShard, intervalMs, ...rest } = config;\n return pipe(\n createWebSocketTransport({\n ...rest,\n sendBufferHighWatermark:\n config.sendBufferHighWatermark ??\n // Let 128KB of data into the WebSocket buffer before buffering it in the app.\n 131_072,\n }),\n transport =>\n getWebSocketTransportWithAutoping({\n intervalMs: intervalMs ?? 5_000,\n transport,\n }),\n transport =>\n getWebSocketTransportWithConnectionSharding({\n getShard,\n transport,\n })\n );\n}\n","import { IRpcWebSocketTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\ntype Config = Readonly<{\n intervalMs: number;\n transport: IRpcWebSocketTransport;\n}>;\n\nconst PING_PAYLOAD = {\n jsonrpc: '2.0',\n method: 'ping',\n} as const;\n\nexport function getWebSocketTransportWithAutoping({ intervalMs, transport }: Config): IRpcWebSocketTransport {\n const pingableConnections = new Map<\n Awaited<ReturnType<IRpcWebSocketTransport>>,\n Awaited<ReturnType<IRpcWebSocketTransport>>\n >();\n return async (...args) => {\n const connection = await transport(...args);\n let intervalId: string | number | NodeJS.Timeout | undefined;\n function sendPing() {\n connection.send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(PING_PAYLOAD);\n }\n function restartPingTimer() {\n clearInterval(intervalId);\n intervalId = setInterval(sendPing, intervalMs);\n }\n if (pingableConnections.has(connection) === false) {\n pingableConnections.set(connection, {\n [Symbol.asyncIterator]: connection[Symbol.asyncIterator].bind(connection),\n send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: (\n ...args: Parameters<typeof connection.send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED>\n ) => {\n restartPingTimer();\n return connection.send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(...args);\n },\n });\n (async () => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of connection) {\n restartPingTimer();\n }\n } catch {\n /* empty */\n } finally {\n pingableConnections.delete(connection);\n clearInterval(intervalId);\n if (handleOffline) {\n globalThis.window.removeEventListener('offline', handleOffline);\n }\n if (handleOnline) {\n globalThis.window.removeEventListener('online', handleOnline);\n }\n }\n })();\n if (!__BROWSER__ || globalThis.navigator.onLine) {\n restartPingTimer();\n }\n let handleOffline;\n let handleOnline;\n if (__BROWSER__) {\n handleOffline = () => {\n clearInterval(intervalId);\n };\n handleOnline = () => {\n sendPing();\n restartPingTimer();\n };\n globalThis.window.addEventListener('offline', handleOffline);\n globalThis.window.addEventListener('online', handleOnline);\n }\n }\n return pingableConnections.get(connection)!;\n };\n}\n","import { IRpcWebSocketTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\nimport { getCachedAbortableIterableFactory } from './cached-abortable-iterable';\n\ntype Config = Readonly<{\n /**\n * You might like to open more subscriptions per connection than your RPC provider allows for.\n * Using the initial payload as input, return a shard key from this method to assign\n * subscriptions to separate connections. One socket will be opened per shard key.\n */\n getShard?: (payload: unknown) => string | symbol;\n transport: IRpcWebSocketTransport;\n}>;\n\nconst NULL_SHARD_CACHE_KEY = Symbol(\n __DEV__ ? 'Cache key to use when there is no connection sharding strategy' : undefined\n);\n\nexport function getWebSocketTransportWithConnectionSharding({ getShard, transport }: Config): IRpcWebSocketTransport {\n return getCachedAbortableIterableFactory({\n getAbortSignalFromInputArgs: ({ signal }) => signal,\n getCacheEntryMissingError(shardKey) {\n // TODO: Coded error.\n return new Error(`Found no cache entry for connection with shard key \\`${shardKey?.toString()}\\``);\n },\n getCacheKeyFromInputArgs: ({ payload }) => (getShard ? getShard(payload) : NULL_SHARD_CACHE_KEY),\n onCacheHit: (connection, { payload }) => connection.send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(payload),\n onCreateIterable: (abortSignal, config) =>\n transport({\n ...config,\n signal: abortSignal,\n }),\n });\n}\n","import { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport type { GetAccountInfoApi } from '@solana/rpc-core/dist/types/rpc-methods/getAccountInfo';\nimport type { GetSignatureStatusesApi } from '@solana/rpc-core/dist/types/rpc-methods/getSignatureStatuses';\nimport type { AccountNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/account-notifications';\nimport type { SignatureNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/signature-notifications';\nimport type { SlotNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/slot-notifications';\nimport type { Rpc, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport {\n getSignatureFromTransaction,\n IDurableNonceTransaction,\n ITransactionWithFeePayer,\n ITransactionWithSignatures,\n} from '@solana/transactions';\n\nimport { createBlockHeightExceedencePromiseFactory } from './transaction-confirmation-strategy-blockheight';\nimport { createNonceInvalidationPromiseFactory } from './transaction-confirmation-strategy-nonce';\nimport { BaseTransactionConfirmationStrategyConfig, raceStrategies } from './transaction-confirmation-strategy-racer';\nimport { createRecentSignatureConfirmationPromiseFactory } from './transaction-confirmation-strategy-recent-signature';\n\ninterface DefaultDurableNonceTransactionConfirmerConfig {\n rpc: Rpc<GetSignatureStatusesApi & GetAccountInfoApi>;\n rpcSubscriptions: RpcSubscriptions<AccountNotificationsApi & SignatureNotificationsApi>;\n}\n\ninterface DefaultRecentTransactionConfirmerConfig {\n rpc: Rpc<GetSignatureStatusesApi>;\n rpcSubscriptions: RpcSubscriptions<SignatureNotificationsApi & SlotNotificationsApi>;\n}\n\ninterface WaitForDurableNonceTransactionConfirmationConfig extends BaseTransactionConfirmationStrategyConfig {\n getNonceInvalidationPromise: ReturnType<typeof createNonceInvalidationPromiseFactory>;\n transaction: ITransactionWithFeePayer & ITransactionWithSignatures & IDurableNonceTransaction;\n}\n\ninterface WaitForRecentTransactionWithBlockhashLifetimeConfirmationConfig\n extends BaseTransactionConfirmationStrategyConfig {\n getBlockHeightExceedencePromise: ReturnType<typeof createBlockHeightExceedencePromiseFactory>;\n transaction: ITransactionWithFeePayer &\n ITransactionWithSignatures &\n Readonly<{\n lifetimeConstraint: {\n lastValidBlockHeight: Slot;\n };\n }>;\n}\n\nexport function createDefaultDurableNonceTransactionConfirmer({\n rpc,\n rpcSubscriptions,\n}: DefaultDurableNonceTransactionConfirmerConfig) {\n const getNonceInvalidationPromise = createNonceInvalidationPromiseFactory(rpc, rpcSubscriptions);\n const getRecentSignatureConfirmationPromise = createRecentSignatureConfirmationPromiseFactory(\n rpc,\n rpcSubscriptions\n );\n return async function confirmDurableNonceTransaction(\n config: Omit<\n Parameters<typeof waitForDurableNonceTransactionConfirmation>[0],\n 'getNonceInvalidationPromise' | 'getRecentSignatureConfirmationPromise'\n >\n ) {\n await waitForDurableNonceTransactionConfirmation({\n ...config,\n getNonceInvalidationPromise,\n getRecentSignatureConfirmationPromise,\n });\n };\n}\n\nexport function createDefaultRecentTransactionConfirmer({\n rpc,\n rpcSubscriptions,\n}: DefaultRecentTransactionConfirmerConfig) {\n const getBlockHeightExceedencePromise = createBlockHeightExceedencePromiseFactory(rpcSubscriptions);\n const getRecentSignatureConfirmationPromise = createRecentSignatureConfirmationPromiseFactory(\n rpc,\n rpcSubscriptions\n );\n return async function confirmRecentTransaction(\n config: Omit<\n Parameters<typeof waitForRecentTransactionConfirmation>[0],\n 'getBlockHeightExceedencePromise' | 'getRecentSignatureConfirmationPromise'\n >\n ) {\n await waitForRecentTransactionConfirmation({\n ...config,\n getBlockHeightExceedencePromise,\n getRecentSignatureConfirmationPromise,\n });\n };\n}\n\nexport async function waitForDurableNonceTransactionConfirmation(\n config: WaitForDurableNonceTransactionConfirmationConfig\n): Promise<void> {\n await raceStrategies(\n getSignatureFromTransaction(config.transaction),\n config,\n function getSpecificStrategiesForRace({ abortSignal, commitment, getNonceInvalidationPromise, transaction }) {\n return [\n getNonceInvalidationPromise({\n abortSignal,\n commitment,\n currentNonceValue: transaction.lifetimeConstraint.nonce,\n nonceAccountAddress: transaction.instructions[0].accounts[0].address,\n }),\n ];\n }\n );\n}\n\nexport async function waitForRecentTransactionConfirmation(\n config: WaitForRecentTransactionWithBlockhashLifetimeConfirmationConfig\n): Promise<void> {\n await raceStrategies(\n getSignatureFromTransaction(config.transaction),\n config,\n function getSpecificStrategiesForRace({ abortSignal, getBlockHeightExceedencePromise, transaction }) {\n return [\n getBlockHeightExceedencePromise({\n abortSignal,\n lastValidBlockHeight: transaction.lifetimeConstraint.lastValidBlockHeight,\n }),\n ];\n }\n );\n}\n","import { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport type { SlotNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/slot-notifications';\nimport { RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';\n\ntype GetBlockHeightExceedencePromiseFn = (config: {\n abortSignal: AbortSignal;\n lastValidBlockHeight: Slot;\n}) => Promise<void>;\n\nexport function createBlockHeightExceedencePromiseFactory(\n rpcSubscriptions: RpcSubscriptions<SlotNotificationsApi>\n): GetBlockHeightExceedencePromiseFn {\n return async function getBlockHeightExceedencePromise({ abortSignal: callerAbortSignal, lastValidBlockHeight }) {\n const abortController = new AbortController();\n function handleAbort() {\n abortController.abort();\n }\n callerAbortSignal.addEventListener('abort', handleAbort, { signal: abortController.signal });\n const slotNotifications = await rpcSubscriptions\n .slotNotifications()\n .subscribe({ abortSignal: abortController.signal });\n try {\n for await (const slotNotification of slotNotifications) {\n if (slotNotification.slot > lastValidBlockHeight) {\n // TODO: Coded error.\n throw new Error(\n 'The network has progressed past the last block for which this transaction ' +\n 'could have committed.'\n );\n }\n }\n } finally {\n abortController.abort();\n }\n };\n}\n","import { base58, base64 } from '@metaplex-foundation/umi-serializers';\nimport { Base58EncodedAddress } from '@solana/addresses';\nimport { Commitment } from '@solana/rpc-core';\nimport { Base64EncodedDataResponse } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { GetAccountInfoApi } from '@solana/rpc-core/dist/types/rpc-methods/getAccountInfo';\nimport { AccountNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/account-notifications';\nimport { Rpc, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { Nonce } from '@solana/transactions';\n\ntype GetNonceInvalidationPromiseFn = (config: {\n abortSignal: AbortSignal;\n commitment: Commitment;\n currentNonceValue: Nonce;\n nonceAccountAddress: Base58EncodedAddress;\n}) => Promise<void>;\n\nconst NONCE_VALUE_OFFSET =\n 4 + // version(u32)\n 4 + // state(u32)\n 32; // nonce authority(pubkey)\n// Then comes the nonce value.\n\nexport function createNonceInvalidationPromiseFactory(\n rpc: Rpc<GetAccountInfoApi>,\n rpcSubscriptions: RpcSubscriptions<AccountNotificationsApi>\n): GetNonceInvalidationPromiseFn {\n return async function getNonceInvalidationPromise({\n abortSignal: callerAbortSignal,\n commitment,\n currentNonceValue,\n nonceAccountAddress,\n }) {\n const abortController = new AbortController();\n function handleAbort() {\n abortController.abort();\n }\n callerAbortSignal.addEventListener('abort', handleAbort, { signal: abortController.signal });\n /**\n * STEP 1: Set up a subscription for nonce account changes.\n */\n const accountNotifications = await rpcSubscriptions\n .accountNotifications(nonceAccountAddress, { commitment, encoding: 'base64' })\n .subscribe({ abortSignal: abortController.signal });\n function getNonceFromAccountData([base64EncodedBytes]: Base64EncodedDataResponse): Nonce {\n const data = base64.serialize(base64EncodedBytes);\n const nonceValueBytes = data.slice(NONCE_VALUE_OFFSET, NONCE_VALUE_OFFSET + 32);\n return base58.deserialize(nonceValueBytes)[0] as Nonce;\n }\n const nonceAccountDidAdvancePromise = (async () => {\n for await (const accountNotification of accountNotifications) {\n const nonceValue = getNonceFromAccountData(accountNotification.value.data);\n if (nonceValue !== currentNonceValue) {\n throw new Error(\n `The nonce \\`${currentNonceValue}\\` is no longer valid. It has advanced ` +\n `to \\`${nonceValue}\\`.`\n );\n }\n }\n })();\n /**\n * STEP 2: Having subscribed for updates, make a one-shot request for the current nonce\n * value to check if it has already been advanced.\n */\n const nonceIsAlreadyInvalidPromise = (async () => {\n const { value: nonceAccount } = await rpc\n .getAccountInfo(nonceAccountAddress, {\n commitment,\n dataSlice: { length: 32, offset: NONCE_VALUE_OFFSET },\n encoding: 'base58',\n })\n .send({ abortSignal: abortController.signal });\n if (!nonceAccount) {\n throw new Error(`No nonce account could be found at address \\`${nonceAccountAddress}\\`.`);\n }\n const nonceValue =\n // This works because we asked for the exact slice of data representing the nonce\n // value, and furthermore asked for it in `base58` encoding.\n nonceAccount.data[0] as unknown as Nonce;\n if (nonceValue !== currentNonceValue) {\n throw new Error(\n `The nonce \\`${currentNonceValue}\\` is no longer valid. It has advanced to \\`${nonceValue}\\`.`\n );\n } else {\n await new Promise(() => {\n /* never resolve */\n });\n }\n })();\n try {\n return await Promise.race([nonceAccountDidAdvancePromise, nonceIsAlreadyInvalidPromise]);\n } finally {\n abortController.abort();\n }\n };\n}\n","import { Commitment } from '@solana/rpc-core';\nimport { TransactionSignature } from '@solana/transactions';\n\nimport { createRecentSignatureConfirmationPromiseFactory } from './transaction-confirmation-strategy-recent-signature';\n\nexport interface BaseTransactionConfirmationStrategyConfig {\n abortSignal: AbortSignal;\n commitment: Commitment;\n getRecentSignatureConfirmationPromise: ReturnType<typeof createRecentSignatureConfirmationPromiseFactory>;\n}\n\nexport async function raceStrategies<TConfig extends BaseTransactionConfirmationStrategyConfig>(\n signature: TransactionSignature,\n config: TConfig,\n getSpecificStrategiesForRace: (config: TConfig) => readonly Promise<unknown>[]\n) {\n const { abortSignal: callerAbortSignal, commitment, getRecentSignatureConfirmationPromise } = config;\n callerAbortSignal.throwIfAborted();\n const abortController = new AbortController();\n function handleAbort() {\n abortController.abort();\n }\n callerAbortSignal.addEventListener('abort', handleAbort, { signal: abortController.signal });\n try {\n const specificStrategies = getSpecificStrategiesForRace({\n ...config,\n abortSignal: abortController.signal,\n });\n return await Promise.race([\n getRecentSignatureConfirmationPromise({\n abortSignal: abortController.signal,\n commitment,\n signature,\n }),\n ...specificStrategies,\n ]);\n } finally {\n abortController.abort();\n }\n}\n","import { Commitment, commitmentComparator } from '@solana/rpc-core';\nimport { GetSignatureStatusesApi } from '@solana/rpc-core/dist/types/rpc-methods/getSignatureStatuses';\nimport { SignatureNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/signature-notifications';\nimport { Rpc, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { TransactionSignature } from '@solana/transactions';\n\ntype GetRecentSignatureConfirmationPromiseFn = (config: {\n abortSignal: AbortSignal;\n commitment: Commitment;\n signature: TransactionSignature;\n}) => Promise<void>;\n\nexport function createRecentSignatureConfirmationPromiseFactory(\n rpc: Rpc<GetSignatureStatusesApi>,\n rpcSubscriptions: RpcSubscriptions<SignatureNotificationsApi>\n): GetRecentSignatureConfirmationPromiseFn {\n return async function getRecentSignatureConfirmationPromise({\n abortSignal: callerAbortSignal,\n commitment,\n signature,\n }) {\n const abortController = new AbortController();\n function handleAbort() {\n abortController.abort();\n }\n callerAbortSignal.addEventListener('abort', handleAbort, { signal: abortController.signal });\n /**\n * STEP 1: Set up a subscription for status changes to a signature.\n */\n const signatureStatusNotifications = await rpcSubscriptions\n .signatureNotifications(signature, { commitment })\n .subscribe({ abortSignal: abortController.signal });\n const signatureDidCommitPromise = (async () => {\n for await (const signatureStatusNotification of signatureStatusNotifications) {\n if (signatureStatusNotification.value.err) {\n // TODO: Coded error.\n throw new Error(`The transaction with signature \\`${signature}\\` failed.`, {\n cause: signatureStatusNotification.value.err,\n });\n } else {\n return;\n }\n }\n })();\n /**\n * STEP 2: Having subscribed for updates, make a one-shot request for the current status.\n * This will only yield a result if the signature is still in the status cache.\n */\n const signatureStatusLookupPromise = (async () => {\n const { value: signatureStatusResults } = await rpc\n .getSignatureStatuses([signature])\n .send({ abortSignal: abortController.signal });\n const signatureStatus = signatureStatusResults[0];\n if (\n signatureStatus &&\n signatureStatus.confirmationStatus &&\n commitmentComparator(signatureStatus.confirmationStatus, commitment) >= 0\n ) {\n return;\n } else {\n await new Promise(() => {\n /* never resolve */\n });\n }\n })();\n try {\n return await Promise.race([signatureDidCommitPromise, signatureStatusLookupPromise]);\n } finally {\n abortController.abort();\n }\n };\n}\n"]}
@@ -2,40 +2,62 @@ this.globalThis = this.globalThis || {};
2
2
  this.globalThis.solanaWeb3 = (function (exports) {
3
3
  'use strict';
4
4
 
5
- var Ye=Object.create;var te=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var Ze=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var er=(e,r,t)=>r in e?te(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var rr=(e,r)=>()=>(e&&(r=e(e=0)),r);var tr=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var nr=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Xe(r))!Qe.call(e,o)&&o!==t&&te(e,o,{get:()=>r[o],enumerable:!(n=Je(r,o))||n.enumerable});return e};var or=(e,r,t)=>(t=e!=null?Ye(Ze(e)):{},nr(r||!e||!e.__esModule?te(t,"default",{value:e,enumerable:!0}):t,e));var y=(e,r,t)=>(er(e,typeof r!="symbol"?r+"":r,t),t);var a=rr(()=>{});var He=tr((ds,Me)=>{a();var ut=Object.prototype.toString,lt=Object.keys||function(e){var r=[];for(var t in e)r.push(t);return r};function F(e,r){var t,n,o,s,i,c,u;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 F(e.toJSON(),r);if(u=ut.call(e),u==="[object Array]"){for(o="[",n=e.length-1,t=0;t<n;t++)o+=F(e[t],!0)+",";return n>-1&&(o+=F(e[t],!0)),o+"]"}else if(u==="[object Object]"){for(s=lt(e).sort(),n=s.length,o="",t=0;t<n;)i=s[t],c=F(e[i],!1),c!==void 0&&(o&&(o+=","),o+=JSON.stringify(i)+":"+c),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}}Me.exports=function(e){var r=F(e,!1);if(r!==void 0)return ""+r};});a();a();a();a();a();var z=e=>{let r=e.reduce((o,s)=>o+s.length,0),t=new Uint8Array(r),n=0;return e.forEach(o=>{t.set(o,n),n+=o.length;}),t},de=(e,r)=>{if(e.length>=r)return e;let t=new Uint8Array(r).fill(0);return t.set(e),t},H=(e,r)=>de(e.slice(0,r),r);a();var T=class extends Error{constructor(t){super(`Serializer [${t}] cannot deserialize empty buffers.`);y(this,"name","DeserializingEmptyBufferError");}},w=class extends Error{constructor(t,n,o){super(`Serializer [${t}] expected ${n} bytes, got ${o}.`);y(this,"name","NotEnoughBytesError");}},v=class extends Error{constructor(t){t??(t="Expected a fixed-size serializer, got a variable-size one.");super(t);y(this,"name","ExpectedFixedSizeSerializerError");}};a();function O(e,r,t){return {description:t??`fixed(${r}, ${e.description})`,fixedSize:r,maxSize:r,serialize:n=>H(e.serialize(n),r),deserialize:(n,o=0)=>{if(n=n.slice(o,o+r),n.length<r)throw new w("fixSerializer",r,n.length);e.fixedSize!==null&&(n=H(n,e.fixedSize));let[s]=e.deserialize(n,0);return [s,o+r]}}}a();function G(e,r,t){return {description:e.description,fixedSize:e.fixedSize,maxSize:e.maxSize,serialize:n=>e.serialize(r(n)),deserialize:(n,o=0)=>{let[s,i]=e.deserialize(n,o);return t?[t(s,n,o),i]:[s,i]}}}a();a();a();var W=class extends Error{constructor(t,n,o){let s=`Expected a string of base ${n}, got [${t}].`;super(s);y(this,"name","InvalidBaseStringError");this.cause=o;}};var fe=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],s=o.findIndex(m=>m!==e[0]);s=s===-1?o.length:s;let i=Array(s).fill(0);if(s===o.length)return Uint8Array.from(i);let c=o.slice(s),u=0n,l=1n;for(let m=c.length-1;m>=0;m-=1)u+=l*BigInt(e.indexOf(c[m])),l*=t;let d=[];for(;u>0n;)d.unshift(Number(u%256n)),u/=256n;return Uint8Array.from(i.concat(d))},deserialize(n,o=0){if(n.length===0)return ["",0];let s=n.slice(o),i=s.findIndex(d=>d!==0);i=i===-1?s.length:i;let c=e[0].repeat(i);if(i===s.length)return [c,n.length];let u=s.slice(i).reduce((d,m)=>d*256n+BigInt(m),0n),l=[];for(;u>0n;)l.unshift(e[Number(u%t)]),u/=t;return [c+l.join(""),n.length]}}};a();var C=fe("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");a();var pe=e=>e.replace(/\u0000/g,"");a();var ne={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 [pe(t),e.length]}};a();a();var V;(function(e){e.Little="le",e.Big="be";})(V||(V={}));a();var q=class extends RangeError{constructor(t,n,o,s){super(`Serializer [${t}] expected number to be between ${n} and ${o}, got ${s}.`);y(this,"name","NumberOutOfRangeError");}};a();function Y(e){let r,t=e.name;return e.size>1&&(r=!("endian"in e.options)||e.options.endian===V.Little,t+=r?"(le)":"(be)"),{description:e.options.description??t,fixedSize:e.size,maxSize:e.size,serialize(n){e.range&&oe(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 s=n.slice(o,o+e.size);ar("i8",s,e.size);let i=ir(s);return [e.get(i,r),o+e.size]}}}var sr=e=>e.buffer.slice(e.byteOffset,e.byteLength+e.byteOffset),ir=e=>new DataView(sr(e)),oe=(e,r,t,n)=>{if(n<r||n>t)throw new q(e,r,t,n)},ar=(e,r,t)=>{if(r.length===0)throw new T(e);if(r.length<t)throw new w(e,t,r.length)};a();var I=(e={})=>Y({name:"u8",size:1,range:[0,+"0xff"],set:(r,t)=>r.setUint8(0,Number(t)),get:r=>r.getUint8(0),options:e});a();var L=(e={})=>Y({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});a();var S=(e={})=>({description:e.description??"shortU16",fixedSize:null,maxSize:3,serialize:r=>{oe("shortU16",0,65535,r);let t=[0];for(let n=0;;n+=1){let o=r>>n*7;if(o===0)break;let s=127&o;t[n]=s,n>0&&(t[n-1]|=128);}return new Uint8Array(t)},deserialize:(r,t=0)=>{let n=0,o=0;for(;++o;){let s=o-1,i=r[t+s],c=127&i;if(n|=c<<s*7,!(i&128))break}return [n,t+o]}});a();a();var J=class extends Error{constructor(t,n,o){super(`Expected [${t}] to have ${n} items, got ${o}.`);y(this,"name","InvalidNumberOfItemsError");}},X=class extends Error{constructor(t,n){super(`The remainder of the buffer (${t} bytes) cannot be split into chunks of ${n} bytes. Serializers of "remainder" size must have a remainder that is a multiple of its item size. In other words, ${t} modulo ${n} should be equal to zero.`);y(this,"name","InvalidArrayLikeRemainderSizeError");}},Z=class extends Error{constructor(t){super(`Unrecognized array-like serializer size: ${JSON.stringify(t)}`);y(this,"name","UnrecognizedArrayLikeSerializerSizeError");}};a();a();function _(e){return e.reduce((r,t)=>r===null||t===null?null:r+t,0)}function me(e,r,t,n){if(typeof e=="number")return [e,n];if(typeof e=="object")return e.deserialize(t,n);if(e==="remainder"){let o=_(r);if(o===null)throw new v('Serializers of "remainder" size must have fixed-size items.');let s=t.slice(n).length;if(s%o!==0)throw new X(s,o);return [s/o,n]}throw new Z(e)}function k(e){return typeof e=="object"?e.description:`${e}`}function se(e,r){if(typeof e!="number")return null;if(e===0)return 0;let t=_(r);return t===null?null:t*e}function ge(e,r){return typeof e=="object"?e.serialize(r):new Uint8Array}function R(e,r={}){let t=r.size??L();if(t==="remainder"&&e.fixedSize===null)throw new v('Serializers of "remainder" size must have fixed-size items.');return {description:r.description??`array(${e.description}; ${k(t)})`,fixedSize:se(t,[e.fixedSize]),maxSize:se(t,[e.maxSize]),serialize:n=>{if(typeof t=="number"&&n.length!==t)throw new J("array",t,n.length);return z([ge(t,n.length),...n.map(o=>e.serialize(o))])},deserialize:(n,o=0)=>{if(typeof t=="object"&&n.slice(o).length===0)return [[],o];let[s,i]=me(t,[e.fixedSize],n,o);o=i;let c=[];for(let u=0;u<s;u+=1){let[l,d]=e.deserialize(n,o);c.push(l),o=d;}return [c,o]}}}a();function Q(e={}){let r=e.size??"variable",t=e.description??`bytes(${k(r)})`,n={description:t,fixedSize:null,maxSize:null,serialize:o=>new Uint8Array(o),deserialize:(o,s=0)=>{let i=o.slice(s);return [i,s+i.length]}};return r==="variable"?n:typeof r=="number"?O(n,r,t):{description:t,fixedSize:null,maxSize:null,serialize:o=>{let s=n.serialize(o),i=r.serialize(s.length);return z([i,s])},deserialize:(o,s=0)=>{if(o.slice(s).length===0)throw new T("bytes");let[i,c]=r.deserialize(o,s),u=Number(i);s=c;let l=o.slice(s,s+u);if(l.length<u)throw new w("bytes",u,l.length);let[d,m]=n.deserialize(l);return s+=m,[d,s]}}}a();function D(e={}){let r=e.size??L(),t=e.encoding??ne,n=e.description??`string(${t.description}; ${k(r)})`;return r==="variable"?{...t,description:n}:typeof r=="number"?O(t,r,n):{description:n,fixedSize:null,maxSize:null,serialize:o=>{let s=t.serialize(o),i=r.serialize(s.length);return z([i,s])},deserialize:(o,s=0)=>{if(o.slice(s).length===0)throw new T("string");let[i,c]=r.deserialize(o,s),u=Number(i);s=c;let l=o.slice(s,s+u);if(l.length<u)throw new w("string",u,l.length);let[d,m]=t.deserialize(l);return s+=m,[d,s]}}}a();function N(e,r={}){let t=e.map(([n,o])=>`${String(n)}: ${o.description}`).join(", ");return {description:r.description??`struct(${t})`,fixedSize:_(e.map(([,n])=>n.fixedSize)),maxSize:_(e.map(([,n])=>n.maxSize)),serialize:n=>{let o=e.map(([s,i])=>i.serialize(n[s]));return z(o)},deserialize:(n,o=0)=>{let s={};return e.forEach(([i,c])=>{let[u,l]=c.deserialize(n,o);o=l,s[i]=u;}),[s,o]}}}a();function $(){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 B;async function cr(e){return B===void 0&&(B=new Promise(r=>{e.generateKey("Ed25519",!1,["sign","verify"]).catch(()=>{r(B=!1);}).then(()=>{r(B=!0);});})),typeof B=="boolean"?B:await B}async function he(){if($(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.digest!="function")throw new Error("No digest implementation could be found")}async function be(){if($(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.generateKey!="function")throw new Error("No key generation implementation could be found");if(!await cr(globalThis.crypto.subtle))throw new Error(`This runtime does not support the generation of Ed25519 key pairs.
5
+ var gn=Object.create;var ye=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var hn=Object.getOwnPropertyNames;var Sn=Object.getPrototypeOf,yn=Object.prototype.hasOwnProperty;var xn=(e,t,n)=>t in e?ye(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var wn=(e,t)=>()=>(e&&(t=e(e=0)),t);var En=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var zn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hn(t))!yn.call(e,o)&&o!==n&&ye(e,o,{get:()=>t[o],enumerable:!(r=bn(t,o))||r.enumerable});return e};var Ze=(e,t,n)=>(n=e!=null?gn(Sn(e)):{},zn(t||!e||!e.__esModule?ye(n,"default",{value:e,enumerable:!0}):n,e));var A=(e,t,n)=>(xn(e,typeof t!="symbol"?t+"":t,n),n);var d=wn(()=>{});var Ve=En((Ia,rn)=>{d();var to=Object.prototype.toString,no=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};function re(e,t){var n,r,o,i,s,a,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 re(e.toJSON(),t);if(c=to.call(e),c==="[object Array]"){for(o="[",r=e.length-1,n=0;n<r;n++)o+=re(e[n],!0)+",";return r>-1&&(o+=re(e[n],!0)),o+"]"}else if(c==="[object Object]"){for(i=no(e).sort(),r=i.length,o="",n=0;n<r;)s=i[n],a=re(e[s],!1),a!==void 0&&(o&&(o+=","),o+=JSON.stringify(s)+":"+a),n++;return "{"+o+"}"}else return JSON.stringify(e);case"function":case"undefined":return t?null:void 0;case"string":return JSON.stringify(e);default:return isFinite(e)?e:null}}rn.exports=function(e){var t=re(e,!1);if(t!==void 0)return ""+t};});d();d();d();function q(e,t,n=0){if(t.length-n<=0)throw new Error(`Codec [${e}] cannot decode empty byte arrays.`)}function U(e,t,n,r=0){let o=n.length-r;if(o<t)throw new Error(`Codec [${e}] expected ${t} bytes, got ${o}.`)}var oe=e=>{let t=e.filter(i=>i.length);if(t.length===0)return e.length?e[0]:new Uint8Array;if(t.length===1)return t[0];let n=t.reduce((i,s)=>i+s.length,0),r=new Uint8Array(n),o=0;return t.forEach(i=>{r.set(i,o),o+=i.length;}),r},An=(e,t)=>{if(e.length>=t)return e;let n=new Uint8Array(t).fill(0);return n.set(e),n},xe=(e,t)=>An(e.length<=t?e:e.slice(0,t),t);function B(e,t,n){if(e.fixedSize!==t.fixedSize)throw new Error(`Encoder and decoder must have the same fixed size, got [${e.fixedSize}] and [${t.fixedSize}].`);if(e.maxSize!==t.maxSize)throw new Error(`Encoder and decoder must have the same max size, got [${e.maxSize}] and [${t.maxSize}].`);if(n===void 0&&e.description!==t.description)throw new Error(`Encoder and decoder must have the same description, got [${e.description}] and [${t.description}]. Pass a custom description as a third argument if you want to override the description and bypass this error.`);return {decode:t.decode,description:n??e.description,encode:e.encode,fixedSize:e.fixedSize,maxSize:e.maxSize}}function Qe(e,t,n){return {description:n??`fixed(${t}, ${e.description})`,fixedSize:t,maxSize:t}}function we(e,t,n){return {...Qe(e,t,n),encode:r=>xe(e.encode(r),t)}}function Ee(e,t,n){return {...Qe(e,t,n),decode:(r,o=0)=>{U("fixCodec",t,r,o),(o>0||r.length>t)&&(r=r.slice(o,o+t)),e.fixedSize!==null&&(r=xe(r,e.fixedSize));let[i]=e.decode(r,0);return [i,o+t]}}}function et(e,t){return {description:e.description,encode:n=>e.encode(t(n)),fixedSize:e.fixedSize,maxSize:e.maxSize}}d();d();function In(e,t,n,r){if(r<t||r>n)throw new Error(`Codec [${e}] expected number to be in the range [${t}, ${n}], got ${r}.`)}function tt(e){let t,n=e.name;return e.size>1&&(t=!("endian"in e.options)||e.options.endian===0,n+=t?"(le)":"(be)"),{description:e.options.description??n,fixedSize:e.size,littleEndian:t,maxSize:e.size}}function nt(e){let t=tt(e);return {description:t.description,encode(n){e.range&&In(e.name,e.range[0],e.range[1],n);let r=new ArrayBuffer(e.size);return e.set(new DataView(r),n,t.littleEndian),new Uint8Array(r)},fixedSize:t.fixedSize,maxSize:t.maxSize}}function rt(e){let t=tt(e);return {decode(n,r=0){q(t.description,n,r),U(t.description,e.size,n,r);let o=new DataView(Cn(n,r,e.size));return [e.get(o,t.littleEndian),r+e.size]},description:t.description,fixedSize:t.fixedSize,maxSize:t.maxSize}}function Cn(e,t,n){let r=e.byteOffset+(t??0),o=n??e.byteLength;return e.buffer.slice(r,r+o)}var ot=(e={})=>nt({name:"u32",options:e,range:[0,+"0xffffffff"],set:(t,n,r)=>t.setUint32(0,n,r),size:4}),it=(e={})=>rt({get:(t,n)=>t.getUint32(0,n),name:"u32",options:e,size:4});var Tn=(e={})=>nt({name:"u8",options:e,range:[0,+"0xff"],set:(t,n)=>t.setUint8(0,n),size:1}),vn=(e={})=>rt({get:t=>t.getUint8(0),name:"u8",options:e,size:1}),st=(e={})=>B(Tn(e),vn(e));function Rn(e,t,n=t){if(!t.match(new RegExp(`^[${e}]*$`)))throw new Error(`Expected a string of base ${e.length}, got [${n}].`)}var Bn=e=>{let t=e.length,n=BigInt(t);return {description:`base${t}`,encode(r){if(Rn(e,r),r==="")return new Uint8Array;let o=[...r],i=o.findIndex(m=>m!==e[0]);i=i===-1?o.length:i;let s=Array(i).fill(0);if(i===o.length)return Uint8Array.from(s);let a=o.slice(i),c=0n,l=1n;for(let m=a.length-1;m>=0;m-=1)c+=l*BigInt(e.indexOf(a[m])),l*=n;let f=[];for(;c>0n;)f.unshift(Number(c%256n)),c/=256n;return Uint8Array.from(s.concat(f))},fixedSize:null,maxSize:null}},Nn=e=>{let t=e.length,n=BigInt(t);return {decode(r,o=0){let i=o===0?r:r.slice(o);if(i.length===0)return ["",0];let s=i.findIndex(f=>f!==0);s=s===-1?i.length:s;let a=e[0].repeat(s);if(s===i.length)return [a,r.length];let c=i.slice(s).reduce((f,m)=>f*256n+BigInt(m),0n),l=[];for(;c>0n;)l.unshift(e[Number(c%n)]),c/=n;return [a+l.join(""),r.length]},description:`base${t}`,fixedSize:null,maxSize:null}};var at="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",ct=()=>Bn(at),dt=()=>Nn(at);var kn=e=>e.replace(/\u0000/g,"");var Dn=globalThis.TextDecoder,_n=globalThis.TextEncoder,On=()=>{let e;return {description:"utf8",encode:t=>new Uint8Array((e||(e=new _n)).encode(t)),fixedSize:null,maxSize:null}},Pn=()=>{let e;return {decode(t,n=0){let r=(e||(e=new Dn)).decode(t.slice(n));return [kn(r),t.length]},description:"utf8",fixedSize:null,maxSize:null}};var ut=(e={})=>{let t=e.size??ot(),n=e.encoding??On(),r=e.description??`string(${n.description}; ${ft(t)})`;return t==="variable"?{...n,description:r}:typeof t=="number"?we(n,t,r):{description:r,encode:o=>{let i=n.encode(o),s=t.encode(i.length);return oe([s,i])},fixedSize:null,maxSize:null}},lt=(e={})=>{let t=e.size??it(),n=e.encoding??Pn(),r=e.description??`string(${n.description}; ${ft(t)})`;return t==="variable"?{...n,description:r}:typeof t=="number"?Ee(n,t,r):{decode:(o,i=0)=>{q("string",o,i);let[s,a]=t.decode(o,i),c=Number(s);i=a;let l=o.slice(i,i+c);U("string",c,l);let[f,m]=n.decode(l);return i+=m,[f,i]},description:r,fixedSize:null,maxSize:null}};function ft(e){return typeof e=="object"?e.description:`${e}`}d();function Y(){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 P;async function $n(e){return P===void 0&&(P=new Promise(t=>{e.generateKey("Ed25519",!1,["sign","verify"]).catch(()=>{t(P=!1);}).then(()=>{t(P=!0);});})),typeof P=="boolean"?P:await P}async function mt(){if(Y(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.digest!="function")throw new Error("No digest implementation could be found")}async function pt(){if(Y(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.generateKey!="function")throw new Error("No key generation implementation could be found");if(!await $n(globalThis.crypto.subtle))throw new Error(`This runtime does not support the generation of Ed25519 key pairs.
6
6
 
7
7
  Install and import \`@solana/webcrypto-ed25519-polyfill\` before generating keys in environments that do not support Ed25519.
8
8
 
9
- For a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20`)}async function ye(){if($(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.exportKey!="function")throw new Error("No key export implementation could be found")}async function xe(){if($(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.sign!="function")throw new Error("No signing implementation could be found")}async function we(){if($(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.verify!="function")throw new Error("No signature verification implementation could be found")}function lo(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=C.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 P(e){return D({description:e?.description??(""),encoding:C,size:32})}function ee(){return new Intl.Collator("en",{caseFirst:"lower",ignorePunctuation:!1,localeMatcher:"best fit",numeric:!1,sensitivity:"variant",usage:"sort"}).compare}var lr=37095705934669439343138083508754565189542113879843219016388785533085940283555n,b=57896044618658097711785492504343953926634992332820282019728792003956564819949n,Ee=19681161376707505956807079304988542015446066515923890162744021073123829784752n;function x(e){let r=e%b;return r>=0n?r:b+r}function A(e,r){let t=e;for(;r-- >0n;)t*=t,t%=b;return t}function dr(e){let t=e*e%b*e%b,n=A(t,2n)*t%b,o=A(n,1n)*e%b,s=A(o,5n)*o%b,i=A(s,10n)*s%b,c=A(i,20n)*i%b,u=A(c,40n)*c%b,l=A(u,80n)*u%b,d=A(l,80n)*u%b,m=A(d,10n)*s%b;return A(m,2n)*e%b}function fr(e,r){let t=x(r*r*r),n=x(t*t*r),o=dr(e*n),s=x(e*t*o),i=x(r*s*s),c=s,u=x(s*Ee),l=i===e,d=i===x(-e),m=i===x(-e*Ee);return l&&(s=c),(d||m)&&(s=u),(x(s)&1n)===1n&&(s=x(-s)),!l&&!d?null:s}function pr(e,r){let t=x(e*e),n=x(t-1n),o=x(lr*t+1n),s=fr(n,o);if(s===null)return !1;let i=(r&128)!==0;return !(s===0n&&i)}function mr(e){let r=e.toString(16);return r.length===1?`0${r}`:r}function gr(e){let t=`0x${e.reduce((n,o,s)=>`${mr(s===31?o&-129:o)}${n}`,"")}`;return BigInt(t)}async function hr(e){if(e.byteLength!==32)return !1;let r=gr(e);return pr(r,e[31])}var br=32,Se=16,yr=[80,114,111,103,114,97,109,68,101,114,105,118,101,100,65,100,100,114,101,115,115],Ae=class extends Error{};async function xr({programAddress:e,seeds:r}){if(await he(),r.length>Se)throw new Error(`A maximum of ${Se} seeds may be supplied when creating an address`);let t,n=r.reduce((u,l,d)=>{let m=typeof l=="string"?(t||(t=new TextEncoder)).encode(l):l;if(m.byteLength>br)throw new Error(`The seed at index ${d} exceeds the maximum length of 32 bytes`);return u.push(...m),u},[]),o=P(),s=o.serialize(e),i=await crypto.subtle.digest("SHA-256",new Uint8Array([...n,...s,...yr])),c=new Uint8Array(i);if(await hr(c))throw new Ae("Invalid seeds; point must fall off the Ed25519 curve");return o.deserialize(c)[0]}async function fo({programAddress:e,seeds:r}){let t=255;for(;t>0;)try{return {bumpSeed:t,pda:await xr({programAddress:e,seeds:[...r,new Uint8Array([t])]})}}catch(n){if(n instanceof Ae)t--;else throw n}throw new Error("Unable to find a viable program address bump seed")}async function ze(e){if(await ye(),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]=P().deserialize(new Uint8Array(r));return t}a();var wr=(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))(wr||{}),Te=2,ie=1;function ho(e){return e&~Te}function bo(e){return e&~ie}function yo(e){return e>=2}function xo(e){return (e&ie)!==0}function wo(e,r){return e|r}function Eo(e){return e|Te}function So(e){return e|ie}a();async function Io(){return await be(),await crypto.subtle.generateKey("Ed25519",!1,["sign","verify"])}async function Ie(e,r){await xe();let t=await crypto.subtle.sign("Ed25519",e,r);return new Uint8Array(t)}async function Ro(e,r,t){return await we(),await crypto.subtle.verify("Ed25519",e,r,t)}a();function K(e){if("signatures"in e){let{signatures:r,...t}=e;return t}else return e}function ko(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=C.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 blockhash`,{cause:r})}}function Oo(e,r){if("lifetimeConstraint"in r&&r.lifetimeConstraint.blockhash===e.blockhash&&r.lifetimeConstraint.lastValidBlockHeight===e.lastValidBlockHeight)return r;let t={...K(r),lifetimeConstraint:e};return Object.freeze(t),t}function Lo({version:e}){let r={instructions:[],version:e};return Object.freeze(r),r}var E=(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))(E||{}),Er=1;function U(e){return e>=2}function j(e){return (e&Er)!==0}function Re(e,r){return e|r}var Ce="SysvarRecentB1ockHashes11111111111111111111",Be="11111111111111111111111111111111";function Do(e){if(!_e(e))throw new Error("Transaction is not a durable nonce transaction")}function Sr(e,r){return {accounts:[{address:e,role:E.WRITABLE},{address:Ce,role:E.READONLY},{address:r,role:E.READONLY_SIGNER}],data:new Uint8Array([4,0,0,0]),programAddress:Be}}function Ar(e){return e.programAddress===Be&&e.data!=null&&zr(e.data)&&e.accounts?.length===3&&e.accounts[0].address!=null&&e.accounts[0].role===E.WRITABLE&&e.accounts[1].address===Ce&&e.accounts[1].role===E.READONLY&&e.accounts[2].address!=null&&e.accounts[2].role===E.READONLY_SIGNER}function zr(e){return e.byteLength===4&&e[0]===4&&e[1]===0&&e[2]===0&&e[3]===0}function _e(e){return "lifetimeConstraint"in e&&typeof e.lifetimeConstraint.nonce=="string"&&e.instructions[0]!=null&&Ar(e.instructions[0])}function $o({nonce:e,nonceAccountAddress:r,nonceAuthorityAddress:t},n){let o=_e(n);if(o&&n.lifetimeConstraint.nonce===e&&n.instructions[0].accounts[0].address===r&&n.instructions[0].accounts[2].address===t)return n;let s={...K(n),instructions:[Sr(r,t),...o?n.instructions.slice(1):n.instructions],lifetimeConstraint:{nonce:e}};return Object.freeze(s),s}function Po(e,r){if("feePayer"in r&&e===r.feePayer)return r;let t={...K(r),feePayer:e};return Object.freeze(t),t}function Uo(e,r){let t={...K(r),instructions:[...r.instructions,e]};return Object.freeze(t),t}function jo(e,r){let t={...K(r),instructions:[e,...r.instructions]};return Object.freeze(t),t}function Ne(e,r,t){e[r]=t(e[r]??{role:E.READONLY});}var g=Symbol("AddressMapTypeProperty");function Tr(e,r){let t={[e]:{[g]:0,role:E.WRITABLE_SIGNER}},n=new Set;for(let o of r){Ne(t,o.programAddress,i=>{if(n.add(o.programAddress),g in i){if(j(i.role))switch(i[g]){case 0:throw new Error(`This transaction includes an address (\`${o.programAddress}\`) which is both invoked and set as the fee payer. Program addresses may not pay fees.`);default:throw new Error(`This transaction includes an address (\`${o.programAddress}\`) which is both invoked and marked writable. Program addresses may not be writable.`)}if(i[g]===2)return i}return {[g]:2,role:E.READONLY}});let s;if(o.accounts)for(let i of o.accounts)Ne(t,i.address,c=>{let{address:u,...l}=i;if(g in c)switch(c[g]){case 0:return c;case 1:{let d=Re(c.role,l.role);if("lookupTableAddress"in l){if(c.lookupTableAddress!==l.lookupTableAddress&&(s||(s=ee()))(l.lookupTableAddress,c.lookupTableAddress)<0)return {[g]:1,...l,role:d}}else if(U(l.role))return {[g]:2,role:d};return c.role!==d?{...c,role:d}:c}case 2:{let d=Re(c.role,l.role);if(n.has(i.address)){if(j(l.role))throw new Error(`This transaction includes an address (\`${i.address}\`) which is both invoked and marked writable. Program addresses may not be writable.`);return c.role!==d?{...c,role:d}:c}else return "lookupTableAddress"in l&&!U(c.role)?{...l,[g]:1,role:d}:c.role!==d?{...c,role:d}:c}}return "lookupTableAddress"in l?{...l,[g]:1}:{...l,[g]:2}});}return t}function Ir(e){let r;return Object.entries(e).sort(([n,o],[s,i])=>{if(o[g]!==i[g]){if(o[g]===0)return -1;if(i[g]===0)return 1;if(o[g]===2)return -1;if(i[g]===2)return 1}let c=U(o.role);if(c!==U(i.role))return c?-1:1;let u=j(o.role);return u!==j(i.role)?u?-1:1:(r||(r=ee()),o[g]===1&&i[g]===1&&o.lookupTableAddress!==i.lookupTableAddress?r(o.lookupTableAddress,i.lookupTableAddress):r(n,s))}).map(([n,o])=>({address:n,...o}))}function Rr(e){var r;let t={};for(let n of e){if(!("lookupTableAddress"in n))continue;let o=t[r=n.lookupTableAddress]||(t[r]={readableIndices:[],writableIndices:[]});n.role===E.WRITABLE?o.writableIndices.push(n.addressIndex):o.readableIndices.push(n.addressIndex);}return Object.keys(t).sort(ee()).map(n=>({lookupTableAddress:n,...t[n]}))}function Nr(e){let r=0,t=0,n=0;for(let o of e){if("lookupTableAddress"in o)break;let s=j(o.role);U(o.role)?(n++,s||t++):s||r++;}return {numReadonlyNonSignerAccounts:r,numReadonlySignerAccounts:t,numSignerAccounts:n}}function vr(e){let r={};for(let[t,n]of e.entries())r[n.address]=t;return r}function Cr(e,r){let t=vr(r);return e.map(({accounts:n,data:o,programAddress:s})=>({programAddressIndex:t[s],...n?{accountIndices:n.map(({address:i})=>t[i])}:null,...o?{data:o}:null}))}function Br(e){return "nonce"in e?e.nonce:e.blockhash}function _r(e){let r=e.findIndex(n=>"lookupTableAddress"in n);return (r===-1?e:e.slice(0,r)).map(({address:n})=>n)}function ke(e){let r=Tr(e.feePayer,e.instructions),t=Ir(r);return {...e.version!=="legacy"?{addressTableLookups:Rr(t)}:null,header:Nr(t),instructions:Cr(e.instructions,t),lifetimeToken:Br(e.lifetimeConstraint),staticAccounts:_r(t),version:e.version}}function kr(){return N([["lookupTableAddress",P(void 0)],["writableIndices",R(I(),{...null,size:S()})],["readableIndices",R(I(),{...void 0,size:S()})]],void 0)}function Or(){return N([["numSignerAccounts",I(void 0)],["numReadonlySignerAccounts",I(void 0)],["numReadonlyNonSignerAccounts",I(void 0)]],void 0)}function Lr(){return G(N([["programAddressIndex",I(void 0)],["accountIndices",R(I({description:""}),{description:"",size:S()})],["data",Q({description:"",size:S()})]]),e=>e.accountIndices!==void 0&&e.data!==void 0?e:{...e,accountIndices:e.accountIndices??[],data:e.data??new Uint8Array(0)},e=>{if(e.accountIndices.length&&e.data.byteLength)return e;let{accountIndices:r,data:t,...n}=e;return {...n,...r.length?{accountIndices:r}:null,...t.byteLength?{data:t}:null}})}function Dr(e,r){let t=r+e[0].toUpperCase()+e.slice(1);return new Error(`No ${e} exists for ${r}. Use \`get${t}()\` if you need a ${e}, and \`get${r}Codec()\` if you need to both encode and decode ${r}`)}function Oe(e){return ()=>{throw Dr("decoder",e)}}var ae=128,$r={description:"",fixedSize:null,maxSize:1};function Pr(e,r=0){let t=e[r];return t&ae?[t^ae,r+1]:["legacy",r]}function Ur(e){if(e==="legacy")return new Uint8Array;if(e<0||e>127)throw new Error(`Transaction version must be in the range [0, 127]. \`${e}\` given.`);return new Uint8Array([e|ae])}function jr(){return {...$r,deserialize:Pr,serialize:Ur}}var Kr={description:"",fixedSize:null,maxSize:null};function Fr(e){return e.version==="legacy"?N(ve()).serialize(e):G(N([...ve(),["addressTableLookups",Mr()]]),r=>r.version==="legacy"?r:{...r,addressTableLookups:r.addressTableLookups??[]}).serialize(e)}function ve(){return [["version",jr()],["header",Or()],["staticAccounts",R(P(),{description:"",size:S()})],["lifetimeToken",D({description:"",encoding:C,size:32})],["instructions",R(Lr(),{description:"",size:S()})]]}function Mr(){return R(kr(),{...null,size:S()})}function Le(){return {...Kr,deserialize:Oe("CompiledMessage"),serialize:Fr}}async function Hr(e,r){let t=Le().serialize(e);return await Ie(r,t)}async function Ko(e,r){let t=ke(r),[n,o]=await Promise.all([ze(e.publicKey),Hr(t,e.privateKey)]),s={..."signatures"in r?r.signatures:null,[n]:o},i={...r,signatures:s};return Object.freeze(i),i}function Gr(e){let r=ke(e),t;if("signatures"in e){t=[];for(let n=0;n<r.header.numSignerAccounts;n++)t[n]=e.signatures[r.staticAccounts[n]]??new Uint8Array(Array(64).fill(0));}else t=Array(r.header.numSignerAccounts).fill(new Uint8Array(Array(64).fill(0)));return {compiledMessage:r,signatures:t}}var Wr={description:"",fixedSize:null,maxSize:null};function Vr(e){let r=Gr(e);return N([["signatures",R(Q({size:64}),{...null,size:S()})],["compiledMessage",Le()]]).serialize(r)}function qr(){return {...Wr,deserialize:Oe("CompiledMessage"),serialize:Vr}}function Fo(e){let r=qr().serialize(e);return btoa(String.fromCharCode(...r))}a();a();function ce(e,r,t){if(Array.isArray(e))return e.map((n,o)=>ce(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]=ce(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 Yr(e,r){return ce(e,[],r)}var p={},Jr={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",p,"state","olderTransferFee","transferFeeBasisPoints"],["value","data","parsed","info","extensions",p,"state","newerTransferFee","transferFeeBasisPoints"],["value","data","parsed","info","extensions",p,"state","preUpdateAverageRate"],["value","data","parsed","info","extensions",p,"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",p,"confirmationCount"]],getBlockTime:[[]],getInflationGovernor:[["initial"],["foundation"],["foundationTerm"],["taper"],["terminal"]],getInflationRate:[["foundation"],["total"],["validator"]],getInflationReward:[[p,"commission"]],getRecentPerformanceSamples:[[p,"samplePeriodSecs"]],getTokenLargestAccounts:[["value",p,"decimals"],["value",p,"uiAmount"]],getTransaction:[["meta","preTokenBalances",p,"accountIndex"],["meta","preTokenBalances",p,"uiTokenAmount","decimals"],["meta","postTokenBalances",p,"accountIndex"],["meta","postTokenBalances",p,"uiTokenAmount","decimals"],["meta","rewards",p,"commission"],["meta","innerInstructions",p,"index"],["meta","innerInstructions",p,"instructions",p,"programIdIndex"],["meta","innerInstructions",p,"instructions",p,"accounts",p],["transaction","message","addressTableLookups",p,"writableIndexes",p],["transaction","message","addressTableLookups",p,"readonlyIndexes",p],["transaction","message","instructions",p,"programIdIndex"],["transaction","message","instructions",p,"accounts",p],["transaction","message","header","numReadonlySignedAccounts"],["transaction","message","header","numReadonlyUnsignedAccounts"],["transaction","message","header","numRequiredSignatures"]],getVersion:[["feature-set"]],getVoteAccounts:[["current",p,"commission"],["delinquent",p,"commission"]]};function De(e,r){return e.filter(t=>t[0]===p&&typeof r=="number"||t[0]===r).map(t=>t.slice(1))}function ue(e,r){if(Array.isArray(e))return e.map((t,n)=>{let o=De(r,n);return ue(t,o)});if(typeof e=="object"&&e!==null){let t={};for(let[n,o]of Object.entries(e)){let s=De(r,n);t[n]=ue(o,s);}return t}else return typeof e=="number"&&r.length===0&&Number.isInteger(e)?BigInt(e):e}function Xr(e,r){let t=r?Jr[r]:void 0;return ue(e,t??[])}function $e(e){return new Proxy({},{defineProperty(){return !1},deleteProperty(){return !1},get(...r){let[t,n]=r,o=n.toString();return function(...s){let i=e?.onIntegerOverflow,c=Yr(s,i?(u,l)=>i(o,u,l):void 0);return {methodName:o,params:c,responseProcessor:u=>Xr(u,o)}}}})}a();var Zr=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"}},le=0;function Qr(){let e=le;return le=(le+1)%Number.MAX_SAFE_INTEGER,e}function et(e,r){return {id:Qr(),jsonrpc:"2.0",method:e,params:r}}function rt(e,r){return {async send(t){let{methodName:n,params:o,responseProcessor:s}=r,i=et(n,o),c=await e.transport({payload:i,signal:t?.abortSignal});if("error"in c)throw new Zr(c.error);return s?s(c.result):c.result}}}function tt(e){return new Proxy(e.api,{defineProperty(){return !1},deleteProperty(){return !1},get(r,t,n){return function(...o){let s=t.toString(),i=Reflect.get(r,s,n),c=i?i(...o):{methodName:s,params:o};return rt(e,c)}}})}function Ue(e){return tt(e)}var nt=globalThis.fetch,ot=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 ct(e){let r={};for(let t in e)r[t.toLowerCase()]=e[t];return r}function je({httpAgentNodeOnly:e,headers:r,url:t}){let n=void 0;let o=r&&ct(r);return async function({payload:i,signal:c}){let u=JSON.stringify(i),l={agent:n,body:u,headers:{...o,accept:"application/json","content-length":u.length.toString(),"content-type":"application/json; charset=utf-8"},method:"POST",signal:c},d=await nt(t,l);if(!d.ok)throw new ot({message:d.statusText,statusCode:d.status});return await d.json()}}a();a();var re=class extends Error{constructor(t,n,o){let s=(typeof n[0]=="number"?n[0]:parseInt(n[0],10))+1,i="",c=s%10,u=s%100;c==1&&u!=11?i=s+"st":c==2&&u!=12?i=s+"nd":c==3&&u!=13?i=s+"rd":i=s+"th";let l=n.length>1?n.slice(1).map(d=>typeof d=="number"?`[${d}]`:d).join("."):null;super(`The ${i} argument to the \`${t}\` RPC method${l?` at path \`${l}\``:""} 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 Ke={onIntegerOverflow(e,r,t){throw new re(e,r,t)}};function is(e){return Ue({...e,api:$e(Ke)})}a();a();function Fe(e,r){let t;return async function(o){let{payload:s,signal:i}=o,c=r(s);if(c===void 0)return await e(o);if(t||(Promise.resolve().then(()=>{t=void 0;}),t={}),t[c]==null){let l=new AbortController;t[c]={abortController:l,numConsumers:0,responsePromise:e({...o,signal:l.signal})};}let u=t[c];if(u.numConsumers++,i){let l=u.responsePromise;return await new Promise((d,m)=>{let M=Ve=>{i.removeEventListener("abort",M),u.numConsumers-=1,u.numConsumers===0&&u.abortController.abort();let qe=new DOMException(Ve.target.reason,"AbortError");m(qe);};i.addEventListener("abort",M),l.then(d).finally(()=>{i.removeEventListener("abort",M);});})}else return await u.responsePromise}}a();var Ge=or(He(),1);function We(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, Ge.default)([e.method,e.params])}function dt(e){let r={};for(let t in e)r[t.toLowerCase()]=e[t];return r}function ys(e){return Fe(je({...e,headers:{...e.headers?dt(e.headers):void 0,"solana-client":"js/2.0.0-development"}}),We)}
9
+ For a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20`)}async function gt(){if(Y(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.exportKey!="function")throw new Error("No key export implementation could be found")}async function bt(){if(Y(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.sign!="function")throw new Error("No signing implementation could be found")}async function ht(){if(Y(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.verify!="function")throw new Error("No signature verification implementation could be found")}var ze,Ae;function Ie(){return ze||(ze=ct()),ze}function Ln(){return Ae||(Ae=dt()),Ae}function Un(e){return !(e.length<32||e.length>44||Ie().encode(e).byteLength!==32)}function xt(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 r=Ie().encode(e).byteLength;if(r!==32)throw new Error(`Expected input string to decode to a byte array of length 32. Actual length: ${r}`)}catch(t){throw new Error(`\`${e}\` is not a base-58 encoded address`,{cause:t})}}function Fn(e){return xt(e),e}function Wn(e){return et(ut({description:e?.description??"Base58EncodedAddress",encoding:Ie(),size:32}),t=>Fn(t))}function wt(e){return lt({description:e?.description??"Base58EncodedAddress",encoding:Ln(),size:32})}function J(e){return B(Wn(e),wt(e))}function se(){return new Intl.Collator("en",{caseFirst:"lower",ignorePunctuation:!1,localeMatcher:"best fit",numeric:!1,sensitivity:"variant",usage:"sort"}).compare}var Mn=37095705934669439343138083508754565189542113879843219016388785533085940283555n,z=57896044618658097711785492504343953926634992332820282019728792003956564819949n,St=19681161376707505956807079304988542015446066515923890162744021073123829784752n;function I(e){let t=e%z;return t>=0n?t:z+t}function v(e,t){let n=e;for(;t-- >0n;)n*=n,n%=z;return n}function Hn(e){let n=e*e%z*e%z,r=v(n,2n)*n%z,o=v(r,1n)*e%z,i=v(o,5n)*o%z,s=v(i,10n)*i%z,a=v(s,20n)*s%z,c=v(a,40n)*a%z,l=v(c,80n)*c%z,f=v(l,80n)*c%z,m=v(f,10n)*i%z;return v(m,2n)*e%z}function Kn(e,t){let n=I(t*t*t),r=I(n*n*t),o=Hn(e*r),i=I(e*n*o),s=I(t*i*i),a=i,c=I(i*St),l=s===e,f=s===I(-e),m=s===I(-e*St);return l&&(i=a),(f||m)&&(i=c),(I(i)&1n)===1n&&(i=I(-i)),!l&&!f?null:i}function jn(e,t){let n=I(e*e),r=I(n-1n),o=I(Mn*n+1n),i=Kn(r,o);if(i===null)return !1;let s=(t&128)!==0;return !(i===0n&&s)}function Vn(e){let t=e.toString(16);return t.length===1?`0${t}`:t}function Gn(e){let n=`0x${e.reduce((r,o,i)=>`${Vn(i===31?o&-129:o)}${r}`,"")}`;return BigInt(n)}async function qn(e){if(e.byteLength!==32)return !1;let t=Gn(e);return jn(t,e[31])}function vo(e){return Array.isArray(e)&&e.length===2&&typeof e[0]=="string"&&typeof e[1]=="number"&&e[1]>=0&&e[1]<=255&&Un(e[0])}function Ro(e){if(!(Array.isArray(e)&&e.length===2&&typeof e[0]=="string"&&typeof e[1]=="number"))throw new Error("Expected given program derived address to have the following format: [Base58EncodedAddress, ProgramDerivedAddressBump].");if(e[1]<0||e[1]>255)throw new Error(`Expected program derived address bump to be in the range [0, 255], got: ${e[1]}.`);xt(e[0]);}var Et=32,yt=16,ie=[80,114,111,103,114,97,109,68,101,114,105,118,101,100,65,100,100,114,101,115,115],zt=class extends Error{};async function Yn({programAddress:e,seeds:t}){if(await mt(),t.length>yt)throw new Error(`A maximum of ${yt} seeds may be supplied when creating an address`);let n,r=t.reduce((c,l,f)=>{let m=typeof l=="string"?(n||(n=new TextEncoder)).encode(l):l;if(m.byteLength>Et)throw new Error(`The seed at index ${f} exceeds the maximum length of 32 bytes`);return c.push(...m),c},[]),o=J(),i=o.encode(e),s=await crypto.subtle.digest("SHA-256",new Uint8Array([...r,...i,...ie])),a=new Uint8Array(s);if(await qn(a))throw new zt("Invalid seeds; point must fall off the Ed25519 curve");return o.decode(a)[0]}async function Bo({programAddress:e,seeds:t}){let n=255;for(;n>0;)try{return [await Yn({programAddress:e,seeds:[...t,new Uint8Array([n])]}),n]}catch(r){if(r instanceof zt)n--;else throw r}throw new Error("Unable to find a viable program address bump seed")}async function No({baseAddress:e,programAddress:t,seed:n}){let{encode:r,decode:o}=J(),i=typeof n=="string"?new TextEncoder().encode(n):n;if(i.byteLength>Et)throw new Error("The seed exceeds the maximum length of 32 bytes");let s=r(t);if(s.length>=ie.length&&s.slice(-ie.length).every((l,f)=>l===ie[f]))throw new Error("programAddress cannot end with the PDA marker");let a=await crypto.subtle.digest("SHA-256",new Uint8Array([...r(e),...i,...s])),c=new Uint8Array(a);return o(c)[0]}async function At(e){if(await gt(),e.type!=="public"||e.algorithm.name!=="Ed25519")throw new Error("The `CryptoKey` must be an `Ed25519` public key");let t=await crypto.subtle.exportKey("raw",e),[n]=wt().decode(new Uint8Array(t));return n}d();var Jn=(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))(Jn||{}),It=2,Ce=1;function Oo(e){return e&~It}function Po(e){return e&~Ce}function $o(e){return e>=2}function Lo(e){return (e&Ce)!==0}function Uo(e,t){return e|t}function Fo(e){return e|It}function Wo(e){return e|Ce}d();async function jo(){return await pt(),await crypto.subtle.generateKey("Ed25519",!1,["sign","verify"])}async function Ct(e,t){await bt();let n=await crypto.subtle.sign("Ed25519",e,t);return new Uint8Array(n)}async function Vo(e,t,n){return await ht(),await crypto.subtle.verify("Ed25519",e,t,n)}d();d();d();d();var N=e=>{let t=e.reduce((o,i)=>o+i.length,0),n=new Uint8Array(t),r=0;return e.forEach(o=>{n.set(o,r),r+=o.length;}),n},Tt=(e,t)=>{if(e.length>=t)return e;let n=new Uint8Array(t).fill(0);return n.set(e),n},ae=(e,t)=>Tt(e.slice(0,t),t);d();var k=class extends Error{constructor(n){super(`Serializer [${n}] cannot deserialize empty buffers.`);A(this,"name","DeserializingEmptyBufferError");}},C=class extends Error{constructor(n,r,o){super(`Serializer [${n}] expected ${r} bytes, got ${o}.`);A(this,"name","NotEnoughBytesError");}},$=class extends Error{constructor(n){n??(n="Expected a fixed-size serializer, got a variable-size one.");super(n);A(this,"name","ExpectedFixedSizeSerializerError");}};d();function X(e,t,n){return {description:n??`fixed(${t}, ${e.description})`,fixedSize:t,maxSize:t,serialize:r=>ae(e.serialize(r),t),deserialize:(r,o=0)=>{if(r=r.slice(o,o+t),r.length<t)throw new C("fixSerializer",t,r.length);e.fixedSize!==null&&(r=ae(r,e.fixedSize));let[i]=e.deserialize(r,0);return [i,o+t]}}}d();function F(e,t,n){return {description:e.description,fixedSize:e.fixedSize,maxSize:e.maxSize,serialize:r=>e.serialize(t(r)),deserialize:(r,o=0)=>{let[i,s]=e.deserialize(r,o);return n?[n(i,r,o),s]:[i,s]}}}d();d();d();var W=class extends Error{constructor(n,r,o){let i=`Expected a string of base ${r}, got [${n}].`;super(i);A(this,"name","InvalidBaseStringError");this.cause=o;}};var vt=e=>{let t=e.length,n=BigInt(t);return {description:`base${t}`,fixedSize:null,maxSize:null,serialize(r){if(!r.match(new RegExp(`^[${e}]*$`)))throw new W(r,t);if(r==="")return new Uint8Array;let o=[...r],i=o.findIndex(m=>m!==e[0]);i=i===-1?o.length:i;let s=Array(i).fill(0);if(i===o.length)return Uint8Array.from(s);let a=o.slice(i),c=0n,l=1n;for(let m=a.length-1;m>=0;m-=1)c+=l*BigInt(e.indexOf(a[m])),l*=n;let f=[];for(;c>0n;)f.unshift(Number(c%256n)),c/=256n;return Uint8Array.from(s.concat(f))},deserialize(r,o=0){if(r.length===0)return ["",0];let i=r.slice(o),s=i.findIndex(f=>f!==0);s=s===-1?i.length:s;let a=e[0].repeat(s);if(s===i.length)return [a,r.length];let c=i.slice(s).reduce((f,m)=>f*256n+BigInt(m),0n),l=[];for(;c>0n;)l.unshift(e[Number(c%n)]),c/=n;return [a+l.join(""),r.length]}}};d();var O=vt("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");d();d();var Rt=(e,t)=>{let n=e.length,r=(o,i,s,a)=>{let c=[],l=0,f=0,m=(1<<s)-1;for(let g of o)for(l=l<<i|g,f+=i;f>=s;)f-=s,c.push(l>>f&m);return a&&f>0&&c.push(l<<s-f&m),c};return {description:`base${n}`,fixedSize:null,maxSize:null,serialize(o){if(!o.match(new RegExp(`^[${e}]*$`)))throw new W(o,n);if(o==="")return new Uint8Array;let i=[...o].map(a=>e.indexOf(a)),s=r(i,t,8,!1);return Uint8Array.from(s)},deserialize(o,i=0){if(o.length===0)return ["",0];let s=[...o.slice(i)];return [r(s,8,t,!0).map(c=>e[c]).join(""),o.length]}}};var Te=F(Rt("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",6),e=>e.replace(/=/g,""),e=>e.padEnd(Math.ceil(e.length/4)*4,"="));d();var Bt=e=>e.replace(/\u0000/g,"");d();var ve={description:"utf8",fixedSize:null,maxSize:null,serialize(e){return new TextEncoder().encode(e)},deserialize(e,t=0){let n=new TextDecoder().decode(e.slice(t));return [Bt(n),e.length]}};d();d();var ce;(function(e){e.Little="le",e.Big="be";})(ce||(ce={}));d();var de=class extends RangeError{constructor(n,r,o,i){super(`Serializer [${n}] expected number to be between ${r} and ${o}, got ${i}.`);A(this,"name","NumberOutOfRangeError");}};d();function ue(e){let t,n=e.name;return e.size>1&&(t=!("endian"in e.options)||e.options.endian===ce.Little,n+=t?"(le)":"(be)"),{description:e.options.description??n,fixedSize:e.size,maxSize:e.size,serialize(r){e.range&&Re(e.name,e.range[0],e.range[1],r);let o=new ArrayBuffer(e.size);return e.set(new DataView(o),r,t),new Uint8Array(o)},deserialize(r,o=0){let i=r.slice(o,o+e.size);Qn("i8",i,e.size);let s=Zn(i);return [e.get(s,t),o+e.size]}}}var Xn=e=>e.buffer.slice(e.byteOffset,e.byteLength+e.byteOffset),Zn=e=>new DataView(Xn(e)),Re=(e,t,n,r)=>{if(r<t||r>n)throw new de(e,t,n,r)},Qn=(e,t,n)=>{if(t.length===0)throw new k(e);if(t.length<n)throw new C(e,n,t.length)};d();var M=(e={})=>ue({name:"u8",size:1,range:[0,+"0xff"],set:(t,n)=>t.setUint8(0,Number(n)),get:t=>t.getUint8(0),options:e});d();var Z=(e={})=>ue({name:"u32",size:4,range:[0,+"0xffffffff"],set:(t,n,r)=>t.setUint32(0,Number(n),r),get:(t,n)=>t.getUint32(0,n),options:e});d();var R=(e={})=>({description:e.description??"shortU16",fixedSize:null,maxSize:3,serialize:t=>{Re("shortU16",0,65535,t);let n=[0];for(let r=0;;r+=1){let o=t>>r*7;if(o===0)break;let i=127&o;n[r]=i,r>0&&(n[r-1]|=128);}return new Uint8Array(n)},deserialize:(t,n=0)=>{let r=0,o=0;for(;++o;){let i=o-1,s=t[n+i],a=127&s;if(r|=a<<i*7,!(s&128))break}return [r,n+o]}});d();d();var le=class extends Error{constructor(n,r,o){super(`Expected [${n}] to have ${r} items, got ${o}.`);A(this,"name","InvalidNumberOfItemsError");}},fe=class extends Error{constructor(n,r){super(`The remainder of the buffer (${n} bytes) cannot be split into chunks of ${r} bytes. Serializers of "remainder" size must have a remainder that is a multiple of its item size. In other words, ${n} modulo ${r} should be equal to zero.`);A(this,"name","InvalidArrayLikeRemainderSizeError");}},me=class extends Error{constructor(n){super(`Unrecognized array-like serializer size: ${JSON.stringify(n)}`);A(this,"name","UnrecognizedArrayLikeSerializerSizeError");}};d();d();function H(e){return e.reduce((t,n)=>t===null||n===null?null:t+n,0)}function Nt(e,t,n,r){if(typeof e=="number")return [e,r];if(typeof e=="object")return e.deserialize(n,r);if(e==="remainder"){let o=H(t);if(o===null)throw new $('Serializers of "remainder" size must have fixed-size items.');let i=n.slice(r).length;if(i%o!==0)throw new fe(i,o);return [i/o,r]}throw new me(e)}function K(e){return typeof e=="object"?e.description:`${e}`}function Be(e,t){if(typeof e!="number")return null;if(e===0)return 0;let n=H(t);return n===null?null:n*e}function kt(e,t){return typeof e=="object"?e.serialize(t):new Uint8Array}function D(e,t={}){let n=t.size??Z();if(n==="remainder"&&e.fixedSize===null)throw new $('Serializers of "remainder" size must have fixed-size items.');return {description:t.description??`array(${e.description}; ${K(n)})`,fixedSize:Be(n,[e.fixedSize]),maxSize:Be(n,[e.maxSize]),serialize:r=>{if(typeof n=="number"&&r.length!==n)throw new le("array",n,r.length);return N([kt(n,r.length),...r.map(o=>e.serialize(o))])},deserialize:(r,o=0)=>{if(typeof n=="object"&&r.slice(o).length===0)return [[],o];let[i,s]=Nt(n,[e.fixedSize],r,o);o=s;let a=[];for(let c=0;c<i;c+=1){let[l,f]=e.deserialize(r,o);a.push(l),o=f;}return [a,o]}}}d();function pe(e={}){let t=e.size??"variable",n=e.description??`bytes(${K(t)})`,r={description:n,fixedSize:null,maxSize:null,serialize:o=>new Uint8Array(o),deserialize:(o,i=0)=>{let s=o.slice(i);return [s,i+s.length]}};return t==="variable"?r:typeof t=="number"?X(r,t,n):{description:n,fixedSize:null,maxSize:null,serialize:o=>{let i=r.serialize(o),s=t.serialize(i.length);return N([s,i])},deserialize:(o,i=0)=>{if(o.slice(i).length===0)throw new k("bytes");let[s,a]=t.deserialize(o,i),c=Number(s);i=a;let l=o.slice(i,i+c);if(l.length<c)throw new C("bytes",c,l.length);let[f,m]=r.deserialize(l);return i+=m,[f,i]}}}d();function Ne(e={}){let t=e.size??Z(),n=e.encoding??ve,r=e.description??`string(${n.description}; ${K(t)})`;return t==="variable"?{...n,description:r}:typeof t=="number"?X(n,t,r):{description:r,fixedSize:null,maxSize:null,serialize:o=>{let i=n.serialize(o),s=t.serialize(i.length);return N([s,i])},deserialize:(o,i=0)=>{if(o.slice(i).length===0)throw new k("string");let[s,a]=t.deserialize(o,i),c=Number(s);i=a;let l=o.slice(i,i+c);if(l.length<c)throw new C("string",c,l.length);let[f,m]=n.deserialize(l);return i+=m,[f,i]}}}d();function L(e,t={}){let n=e.map(([r,o])=>`${String(r)}: ${o.description}`).join(", ");return {description:t.description??`struct(${n})`,fixedSize:H(e.map(([,r])=>r.fixedSize)),maxSize:H(e.map(([,r])=>r.maxSize)),serialize:r=>{let o=e.map(([i,s])=>s.serialize(r[i]));return N(o)},deserialize:(r,o=0)=>{let i={};return e.forEach(([s,a])=>{let[c,l]=a.deserialize(r,o);o=l,i[s]=c;}),[i,o]}}}d();function Dt(e){return e.reduce((t,n)=>t===null||n===null?null:t+n,0)}function _t(e,t){let n=e.map(([r,o])=>`${String(r)}: ${o.description}`).join(", ");return {description:t??`struct(${n})`,fixedSize:Dt(e.map(([,r])=>r.fixedSize)),maxSize:Dt(e.map(([,r])=>r.maxSize))}}function er(e,t={}){return {..._t(e,t.description),encode:n=>{let r=e.map(([o,i])=>i.encode(n[o]));return oe(r)}}}function tr(e,t={}){return {..._t(e,t.description),decode:(n,r=0)=>{let o={};return e.forEach(([i,s])=>{let[a,c]=s.decode(n,r);r=c,o[i]=a;}),[o,r]}}}function Ot(e,t={}){return B(er(e,t),tr(e,t))}function te(e){if("signatures"in e){let{signatures:t,...n}=e;return n}else return e}function ra(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 n=O.serialize(e).byteLength;if(n!==32)throw new Error(`Expected input string to decode to a byte array of length 32. Actual length: ${n}`)}catch(t){throw new Error(`\`${e}\` is not a blockhash`,{cause:t})}}function oa(e,t){if("lifetimeConstraint"in t&&t.lifetimeConstraint.blockhash===e.blockhash&&t.lifetimeConstraint.lastValidBlockHeight===e.lastValidBlockHeight)return t;let n={...te(t),lifetimeConstraint:e};return Object.freeze(n),n}function ia({version:e}){let t={instructions:[],version:e};return Object.freeze(t),t}var T=(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))(T||{}),nr=1;function Q(e){return e>=2}function ee(e){return (e&nr)!==0}function Pt(e,t){return e|t}var Ut="SysvarRecentB1ockHashes11111111111111111111",Ft="11111111111111111111111111111111";function sa(e){if(!Wt(e))throw new Error("Transaction is not a durable nonce transaction")}function rr(e,t){return {accounts:[{address:e,role:T.WRITABLE},{address:Ut,role:T.READONLY},{address:t,role:T.READONLY_SIGNER}],data:new Uint8Array([4,0,0,0]),programAddress:Ft}}function or(e){return e.programAddress===Ft&&e.data!=null&&ir(e.data)&&e.accounts?.length===3&&e.accounts[0].address!=null&&e.accounts[0].role===T.WRITABLE&&e.accounts[1].address===Ut&&e.accounts[1].role===T.READONLY&&e.accounts[2].address!=null&&e.accounts[2].role===T.READONLY_SIGNER}function ir(e){return e.byteLength===4&&e[0]===4&&e[1]===0&&e[2]===0&&e[3]===0}function Wt(e){return "lifetimeConstraint"in e&&typeof e.lifetimeConstraint.nonce=="string"&&e.instructions[0]!=null&&or(e.instructions[0])}function aa({nonce:e,nonceAccountAddress:t,nonceAuthorityAddress:n},r){let o=Wt(r);if(o&&r.lifetimeConstraint.nonce===e&&r.instructions[0].accounts[0].address===t&&r.instructions[0].accounts[2].address===n)return r;let i={...te(r),instructions:[rr(t,n),...o?r.instructions.slice(1):r.instructions],lifetimeConstraint:{nonce:e}};return Object.freeze(i),i}function ca(e,t){if("feePayer"in t&&e===t.feePayer)return t;let n={...te(t),feePayer:e};return Object.freeze(n),n}function da(e,t){let n={...te(t),instructions:[...t.instructions,e]};return Object.freeze(n),n}function ua(e,t){let n={...te(t),instructions:[e,...t.instructions]};return Object.freeze(n),n}function $t(e,t,n){e[t]=n(e[t]??{role:T.READONLY});}var x=Symbol("AddressMapTypeProperty");function sr(e,t){let n={[e]:{[x]:0,role:T.WRITABLE_SIGNER}},r=new Set;for(let o of t){$t(n,o.programAddress,s=>{if(r.add(o.programAddress),x in s){if(ee(s.role))switch(s[x]){case 0:throw new Error(`This transaction includes an address (\`${o.programAddress}\`) which is both invoked and set as the fee payer. Program addresses may not pay fees.`);default:throw new Error(`This transaction includes an address (\`${o.programAddress}\`) which is both invoked and marked writable. Program addresses may not be writable.`)}if(s[x]===2)return s}return {[x]:2,role:T.READONLY}});let i;if(o.accounts)for(let s of o.accounts)$t(n,s.address,a=>{let{address:c,...l}=s;if(x in a)switch(a[x]){case 0:return a;case 1:{let f=Pt(a.role,l.role);if("lookupTableAddress"in l){if(a.lookupTableAddress!==l.lookupTableAddress&&(i||(i=se()))(l.lookupTableAddress,a.lookupTableAddress)<0)return {[x]:1,...l,role:f}}else if(Q(l.role))return {[x]:2,role:f};return a.role!==f?{...a,role:f}:a}case 2:{let f=Pt(a.role,l.role);if(r.has(s.address)){if(ee(l.role))throw new Error(`This transaction includes an address (\`${s.address}\`) which is both invoked and marked writable. Program addresses may not be writable.`);return a.role!==f?{...a,role:f}:a}else return "lookupTableAddress"in l&&!Q(a.role)?{...l,[x]:1,role:f}:a.role!==f?{...a,role:f}:a}}return "lookupTableAddress"in l?{...l,[x]:1}:{...l,[x]:2}});}return n}function ar(e){let t;return Object.entries(e).sort(([r,o],[i,s])=>{if(o[x]!==s[x]){if(o[x]===0)return -1;if(s[x]===0)return 1;if(o[x]===2)return -1;if(s[x]===2)return 1}let a=Q(o.role);if(a!==Q(s.role))return a?-1:1;let c=ee(o.role);return c!==ee(s.role)?c?-1:1:(t||(t=se()),o[x]===1&&s[x]===1&&o.lookupTableAddress!==s.lookupTableAddress?t(o.lookupTableAddress,s.lookupTableAddress):t(r,i))}).map(([r,o])=>({address:r,...o}))}function cr(e){var t;let n={};for(let r of e){if(!("lookupTableAddress"in r))continue;let o=n[t=r.lookupTableAddress]||(n[t]={readableIndices:[],writableIndices:[]});r.role===T.WRITABLE?o.writableIndices.push(r.addressIndex):o.readableIndices.push(r.addressIndex);}return Object.keys(n).sort(se()).map(r=>({lookupTableAddress:r,...n[r]}))}function dr(e){let t=0,n=0,r=0;for(let o of e){if("lookupTableAddress"in o)break;let i=ee(o.role);Q(o.role)?(r++,i||n++):i||t++;}return {numReadonlyNonSignerAccounts:t,numReadonlySignerAccounts:n,numSignerAccounts:r}}function ur(e){let t={};for(let[n,r]of e.entries())t[r.address]=n;return t}function lr(e,t){let n=ur(t);return e.map(({accounts:r,data:o,programAddress:i})=>({programAddressIndex:n[i],...r?{accountIndices:r.map(({address:s})=>n[s])}:null,...o?{data:o}:null}))}function fr(e){return "nonce"in e?e.nonce:e.blockhash}function mr(e){let t=e.findIndex(r=>"lookupTableAddress"in r);return (t===-1?e:e.slice(0,t)).map(({address:r})=>r)}function Mt(e){let t=sr(e.feePayer,e.instructions),n=ar(t);return {...e.version!=="legacy"?{addressTableLookups:cr(n)}:null,header:dr(n),instructions:lr(e.instructions,n),lifetimeToken:fr(e.lifetimeConstraint),staticAccounts:mr(n),version:e.version}}function pr(e){let t=Mt(e),n;if("signatures"in e){n=[];for(let r=0;r<t.header.numSignerAccounts;r++)n[r]=e.signatures[t.staticAccounts[r]]??new Uint8Array(Array(64).fill(0));}else n=Array(t.header.numSignerAccounts).fill(new Uint8Array(Array(64).fill(0)));return {compiledMessage:t,signatures:n}}function gr(e){let t=J();return {description:e?.description??t.description,deserialize:t.decode,fixedSize:t.fixedSize,maxSize:t.maxSize,serialize:t.encode}}function br(){return L([["lookupTableAddress",gr(void 0)],["writableIndices",D(M(),{...null,size:R()})],["readableIndices",D(M(),{...void 0,size:R()})]],void 0)}var ke;function hr(){return ke||(ke=st()),ke}function De(e){let t=hr();return {...t,description:e??t.description}}var Sr=void 0,yr=void 0,xr=void 0,wr=void 0;function Er(){return Ot([["numSignerAccounts",De(Sr)],["numReadonlySignerAccounts",De(yr)],["numReadonlyNonSignerAccounts",De(xr)]],{description:wr})}function zr(){return F(L([["programAddressIndex",M(void 0)],["accountIndices",D(M({description:""}),{description:"",size:R()})],["data",pe({description:"",size:R()})]]),e=>e.accountIndices!==void 0&&e.data!==void 0?e:{...e,accountIndices:e.accountIndices??[],data:e.data??new Uint8Array(0)},e=>{if(e.accountIndices.length&&e.data.byteLength)return e;let{accountIndices:t,data:n,...r}=e;return {...r,...t.length?{accountIndices:t}:null,...n.byteLength?{data:n}:null}})}var Oe=128,Ht={description:"",fixedSize:null,maxSize:1};function Ar(e,t=0){let n=e[t];return n&Oe?[n^Oe,t+1]:["legacy",t]}function Ir(e){if(e==="legacy")return new Uint8Array;if(e<0||e>127)throw new Error(`Transaction version must be in the range [0, 127]. \`${e}\` given.`);return new Uint8Array([e|Oe])}function Cr(){return {...Ht,decode:Ar}}function Tr(){return {...Ht,encode:Ir}}function vr(){return B(Tr(),Cr())}function Rr(e,t){let n=t+e[0].toUpperCase()+e.slice(1);return new Error(`No ${e} exists for ${t}. Use \`get${n}()\` if you need a ${e}, and \`get${t}Codec()\` if you need to both encode and decode ${t}`)}function Kt(e){return ()=>{throw Rr("decoder",e)}}var Br={description:"",fixedSize:null,maxSize:null};function Nr(e){return e.version==="legacy"?L(Lt()).serialize(e):F(L([...Lt(),["addressTableLookups",kr()]]),t=>t.version==="legacy"?t:{...t,addressTableLookups:t.addressTableLookups??[]}).serialize(e)}function _e(e){return {description:e.description,deserialize:e.decode,fixedSize:e.fixedSize,maxSize:e.maxSize,serialize:e.encode}}function Lt(){return [["version",_e(vr())],["header",_e(Er())],["staticAccounts",D(_e(J()),{description:"",size:R()})],["lifetimeToken",Ne({description:"",encoding:O,size:32})],["instructions",D(zr(),{description:"",size:R()})]]}function kr(){return D(br(),{...null,size:R()})}function jt(){return {...Br,deserialize:Kt("CompiledMessage"),serialize:Nr}}var Dr={description:"",fixedSize:null,maxSize:null};function _r(e){let t=pr(e);return L([["signatures",D(pe({size:64}),{...null,size:R()})],["compiledMessage",jt()]]).serialize(t)}function Or(){return {...Dr,deserialize:Kt("CompiledMessage"),serialize:_r}}function Pr(e){try{if(e.length<64||e.length>88)throw new Error("Expected input string to decode to a byte array of length 64.");let n=O.serialize(e).byteLength;if(n!==64)throw new Error(`Expected input string to decode to a byte array of length 64. Actual length: ${n}`)}catch(t){throw new Error(`\`${e}\` is not a transaction signature`,{cause:t})}}function la(e){return !(e.length<64||e.length>88||O.serialize(e).byteLength!==64)}async function $r(e,t){let n=jt().serialize(e);return await Ct(t,n)}function Pe(e){let t=e.signatures[e.feePayer];if(!t)throw new Error("Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.");return t}async function fa(e,t){let n=Mt(t),r="signatures"in t?{...t.signatures}:{},o=await Promise.all(e.map(s=>Promise.all([At(s.publicKey),$r(n,s.privateKey)])));for(let[s,a]of o)r[s]=a;let i={...t,signatures:r};return Object.freeze(i),i}function ma(e){return Pr(e),e}function pa(e){let t=Or().serialize(e);return btoa(String.fromCharCode(...t))}d();d();function j(e,...t){return t.reduce((n,r)=>r(n),e)}d();function Vt(e){switch(e){case"finalized":return 2;case"confirmed":return 1;case"processed":return 0;default:return (t=>{throw new Error(`Unrecognized commitment \`${e}\`.`)})()}}function qt(e,t){return e===t?0:Vt(e)<Vt(t)?-1:1}function Ue(e,t,n){if(Array.isArray(e))return e.map((r,o)=>Ue(r,[...t,o],n));if(typeof e=="object"&&e!==null){let r={};for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=Ue(e[o],[...t,o],n));return r}else return typeof e=="bigint"?(n&&(e>Number.MAX_SAFE_INTEGER||e<-Number.MAX_SAFE_INTEGER)&&n(t,e),Number(e)):e}function Yt(e,t){return Ue(e,[],t)}var u={},Fe=[["data","parsed","info","tokenAmount","decimals"],["data","parsed","info","tokenAmount","uiAmount"],["data","parsed","info","rentExemptReserve","decimals"],["data","parsed","info","rentExemptReserve","uiAmount"],["data","parsed","info","delegatedAmount","decimals"],["data","parsed","info","delegatedAmount","uiAmount"],["data","parsed","info","extensions",u,"state","olderTransferFee","transferFeeBasisPoints"],["data","parsed","info","extensions",u,"state","newerTransferFee","transferFeeBasisPoints"],["data","parsed","info","extensions",u,"state","preUpdateAverageRate"],["data","parsed","info","extensions",u,"state","currentRate"]],V=[...Fe,["data","parsed","info","lastExtendedSlotStartIndex"],["data","parsed","info","slashPenalty"],["data","parsed","info","warmupCooldownRate"],["data","parsed","info","decimals"],["data","parsed","info","numRequiredSigners"],["data","parsed","info","numValidSigners"],["data","parsed","info","stake","delegation","warmupCooldownRate"],["data","parsed","info","exemptionThreshold"],["data","parsed","info","burnPercent"],["data","parsed","info","commission"],["data","parsed","info","votes",u,"confirmationCount"]],$e,Le;function Lr(){return $e||($e={accountNotifications:V.map(e=>["value",...e]),blockNotifications:[["value","block","blockTime"],["value","block","transactions",u,"meta","preTokenBalances",u,"accountIndex"],["value","block","transactions",u,"meta","preTokenBalances",u,"uiTokenAmount","decimals"],["value","block","transactions",u,"meta","postTokenBalances",u,"accountIndex"],["value","block","transactions",u,"meta","postTokenBalances",u,"uiTokenAmount","decimals"],["value","block","transactions",u,"meta","rewards",u,"commission"],["value","block","transactions",u,"meta","innerInstructions",u,"index"],["value","block","transactions",u,"meta","innerInstructions",u,"instructions",u,"programIdIndex"],["value","block","transactions",u,"meta","innerInstructions",u,"instructions",u,"accounts",u],["value","block","transactions",u,"transaction","message","addressTableLookups",u,"writableIndexes",u],["value","block","transactions",u,"transaction","message","addressTableLookups",u,"readonlyIndexes",u],["value","block","transactions",u,"transaction","message","instructions",u,"programIdIndex"],["value","block","transactions",u,"transaction","message","instructions",u,"accounts",u],["value","block","transactions",u,"transaction","message","header","numReadonlySignedAccounts"],["value","block","transactions",u,"transaction","message","header","numReadonlyUnsignedAccounts"],["value","block","transactions",u,"transaction","message","header","numRequiredSignatures"],["value","block","rewards",u,"commission"]],programNotifications:V.flatMap(e=>[["value",u,"account",...e],[u,"account",...e]])}),$e}function Ur(){return Le||(Le={getAccountInfo:V.map(e=>["value",...e]),getBlock:[["blockTime"],["transactions",u,"meta","preTokenBalances",u,"accountIndex"],["transactions",u,"meta","preTokenBalances",u,"uiTokenAmount","decimals"],["transactions",u,"meta","postTokenBalances",u,"accountIndex"],["transactions",u,"meta","postTokenBalances",u,"uiTokenAmount","decimals"],["transactions",u,"meta","rewards",u,"commission"],["transactions",u,"meta","innerInstructions",u,"index"],["transactions",u,"meta","innerInstructions",u,"instructions",u,"programIdIndex"],["transactions",u,"meta","innerInstructions",u,"instructions",u,"accounts",u],["transactions",u,"transaction","message","addressTableLookups",u,"writableIndexes",u],["transactions",u,"transaction","message","addressTableLookups",u,"readonlyIndexes",u],["transactions",u,"transaction","message","instructions",u,"programIdIndex"],["transactions",u,"transaction","message","instructions",u,"accounts",u],["transactions",u,"transaction","message","header","numReadonlySignedAccounts"],["transactions",u,"transaction","message","header","numReadonlyUnsignedAccounts"],["transactions",u,"transaction","message","header","numRequiredSignatures"],["rewards",u,"commission"]],getBlockTime:[[]],getClusterNodes:[[u,"featureSet"],[u,"shredVersion"]],getInflationGovernor:[["initial"],["foundation"],["foundationTerm"],["taper"],["terminal"]],getInflationRate:[["foundation"],["total"],["validator"]],getInflationReward:[[u,"commission"]],getMultipleAccounts:V.map(e=>["value",u,...e]),getProgramAccounts:V.flatMap(e=>[["value",u,"account",...e],[u,"account",...e]]),getRecentPerformanceSamples:[[u,"samplePeriodSecs"]],getTokenAccountBalance:[["value","decimals"],["value","uiAmount"]],getTokenAccountsByDelegate:Fe.map(e=>["value",u,"account",...e]),getTokenAccountsByOwner:Fe.map(e=>["value",u,"account",...e]),getTokenLargestAccounts:[["value",u,"decimals"],["value",u,"uiAmount"]],getTokenSupply:[["value","decimals"],["value","uiAmount"]],getTransaction:[["meta","preTokenBalances",u,"accountIndex"],["meta","preTokenBalances",u,"uiTokenAmount","decimals"],["meta","postTokenBalances",u,"accountIndex"],["meta","postTokenBalances",u,"uiTokenAmount","decimals"],["meta","rewards",u,"commission"],["meta","innerInstructions",u,"index"],["meta","innerInstructions",u,"instructions",u,"programIdIndex"],["meta","innerInstructions",u,"instructions",u,"accounts",u],["transaction","message","addressTableLookups",u,"writableIndexes",u],["transaction","message","addressTableLookups",u,"readonlyIndexes",u],["transaction","message","instructions",u,"programIdIndex"],["transaction","message","instructions",u,"accounts",u],["transaction","message","header","numReadonlySignedAccounts"],["transaction","message","header","numReadonlyUnsignedAccounts"],["transaction","message","header","numRequiredSignatures"]],getVersion:[["feature-set"]],getVoteAccounts:[["current",u,"commission"],["delinquent",u,"commission"]],simulateTransaction:V.map(e=>["value","accounts",u,...e])}),Le}function Gt(e,t){return e.filter(n=>n[0]===u&&typeof t=="number"||n[0]===t).map(n=>n.slice(1))}function ge(e,t){if(Array.isArray(e))return e.map((n,r)=>{let o=Gt(t,r);return ge(n,o)});if(typeof e=="object"&&e!==null){let n={};for(let[r,o]of Object.entries(e)){let i=Gt(t,r);n[r]=ge(o,i);}return n}else return typeof e=="number"&&t.length===0&&Number.isInteger(e)?BigInt(e):e}function Fr(e,t){let n=t?Ur()[t]:void 0;return ge(e,n??[])}function Wr(e,t){let n=t?Lr()[t]:void 0;return ge(e,n??[])}function Jt(e){return new Proxy({},{defineProperty(){return !1},deleteProperty(){return !1},get(...t){let[n,r]=t,o=r.toString();return function(...i){let s=e?.onIntegerOverflow,a=Yt(i,s?(c,l)=>s(o,c,l):void 0);return {methodName:o,params:a,responseProcessor:c=>Fr(c,o)}}}})}function We(e){return new Proxy({},{defineProperty(){return !1},deleteProperty(){return !1},get(...t){let[n,r]=t,o=r.toString();return function(...i){let s=e?.onIntegerOverflow;return {params:Yt(i,s?(c,l)=>s(o,c,l):void 0),responseProcessor:c=>Wr(c,o),subscribeMethodName:o.replace(/Notifications$/,"Subscribe"),unsubscribeMethodName:o.replace(/Notifications$/,"Unsubscribe")}}}})}function Xt(e){return We(e)}d();var Qt=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"}},Me=0;function Mr(){let e=Me;return Me=(Me+1)%Number.MAX_SAFE_INTEGER,e}function Ke(e,t){return {id:Mr(),jsonrpc:"2.0",method:e,params:t}}function Hr(e,t){return {async send(n){let{methodName:r,params:o,responseProcessor:i}=t,s=Ke(r,o),a=await e.transport({payload:s,signal:n?.abortSignal});if("error"in a)throw new Qt(a.error);return i?i(a.result):a.result}}}function Kr(e){return new Proxy(e.api,{defineProperty(){return !1},deleteProperty(){return !1},get(t,n,r){return function(...o){let i=n.toString(),s=Reflect.get(t,i,r),a=s?s(...o):{methodName:i,params:o};return Hr(e,a)}}})}function en(e){return Kr(e)}function jr(e,t){(async()=>{try{for await(let n of e);}catch{}finally{t();}})();}function Vr(e,{params:t,subscribeMethodName:n,unsubscribeMethodName:r,responseProcessor:o}){return {async subscribe({abortSignal:i}){i.throwIfAborted();let s;function a(){if(s!==void 0){let g=Ke(r,[s]);f.send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(g).finally(()=>{c.abort();});}else c.abort();}i.addEventListener("abort",a);let c=new AbortController,l=Ke(n,t),f=await e.transport({payload:l,signal:c.signal});function m(){i.removeEventListener("abort",a);}jr(f,m);for await(let g of f)if("id"in g&&g.id===l.id){if("error"in g)throw new Qt(g.error);s=g.result;break}if(s==null)throw new Error("Failed to obtain a subscription id from the server");return {async*[Symbol.asyncIterator](){for await(let g of f){if(!("params"in g)||g.params.subscription!==s)continue;let S=g.params.result;yield o?o(S):S;}}}}}}function Gr(e){return new Proxy(e.api,{defineProperty(){return !1},deleteProperty(){return !1},get(t,n,r){return function(...o){let i=n.toString(),s=Reflect.get(t,i,r);if(n.toString().endsWith("Notifications")===!1&&!s)throw new Error("Either the notification name must end in 'Notifications' or the API must supply a subscription creator function to map between the notification name and the subscribe/unsubscribe method names.");let a=s?s(...o):{params:o,subscribeMethodName:i.replace(/Notifications$/,"Subscribe"),unsubscribeMethodName:i.replace(/Notifications$/,"Unsubscribe")};return Vr(e,a)}}})}function je(e){return Gr(e)}var qr=globalThis.fetch,Yr=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 Qr(e){let t={};for(let n in e)t[n.toLowerCase()]=e[n];return t}function tn({httpAgentNodeOnly:e,headers:t,url:n}){let r=void 0;let o=t&&Qr(t);return async function({payload:s,signal:a}){let c=JSON.stringify(s),l={agent:r,body:c,headers:{...o,accept:"application/json","content-length":c.length.toString(),"content-type":"application/json; charset=utf-8"},method:"POST",signal:a},f=await qr(n,l);if(!f.ok)throw new Yr({message:f.statusText,statusCode:f.status});return await f.json()}}var ne=globalThis.WebSocket,Zt=Symbol(void 0);async function eo({sendBufferHighWatermark:e,signal:t,url:n}){return new Promise((r,o)=>{t.addEventListener("abort",a,{once:!0});let i=new Map;function s(h){let y=[...i.values()].filter(E=>E.__hasPolled).map(({onError:E})=>E);i.clear(),y.forEach(E=>{try{E(h);}catch{}});}function a(){s(Zt),b.readyState!==ne.CLOSED&&b.readyState!==ne.CLOSING&&b.close(1e3);}function c(h){m?.onCancel(),t.removeEventListener("abort",a),b.removeEventListener("close",c),b.removeEventListener("error",l),b.removeEventListener("open",g),b.removeEventListener("message",S),s(h);}function l(h){f||o(new Error("WebSocket failed to connect",{cause:h}));}let f=!1,m;function g(){f=!0,r({async send(h){let y=JSON.stringify(h);if(!m&&b.readyState===ne.OPEN&&b.bufferedAmount>e){let E,_=new Promise((G,pn)=>{let Xe=setInterval(()=>{(b.readyState!==ne.OPEN||!(b.bufferedAmount>e))&&(clearInterval(Xe),m=void 0,G());},16);E=()=>{m=void 0,clearInterval(Xe),pn(new Error("WebSocket was closed before payload could be sent"));};});m={onCancel:E,promise:_};}m&&await m.promise,b.send(y);},async*[Symbol.asyncIterator](){let h=Symbol();i.set(h,{__hasPolled:!1,queuedMessages:[]});try{for(;;){let y=i.get(h);if(!y)throw new Error("Invariant: WebSocket message iterator is missing state storage");if(y.__hasPolled)throw new Error("Invariant: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise");let E=y.queuedMessages;if(E.length)y.queuedMessages=[],yield*E;else try{yield await new Promise((_,G)=>{i.set(h,{__hasPolled:!0,onError:G,onMessage:_});});}catch(_){if(_===Zt)return;throw new Error("WebSocket connection closed",{cause:_})}}}finally{i.delete(h);}}});}function S({data:h}){let y=JSON.parse(h);i.forEach((E,_)=>{if(E.__hasPolled){let{onMessage:G}=E;i.set(_,{__hasPolled:!1,queuedMessages:[]}),G(y);}else E.queuedMessages.push(y);});}let b=new ne(n);b.addEventListener("close",c),b.addEventListener("error",l),b.addEventListener("open",g),b.addEventListener("message",S);})}function nn({sendBufferHighWatermark:e,url:t}){if(/^wss?:/i.test(t)===!1){let n=t.match(/^([^:]+):/);throw new DOMException(n?`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${n[1]}:' is not allowed.`:`Failed to construct 'WebSocket': The URL '${t}' is invalid.`)}return async function({payload:r,signal:o}){o?.throwIfAborted();let i=await eo({sendBufferHighWatermark:e,signal:o,url:t});return o?.throwIfAborted(),await i.send(r),{[Symbol.asyncIterator]:i[Symbol.asyncIterator].bind(i),send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:i.send.bind(i)}}}var sn=Ze(Ve(),1);d();d();var be=class extends Error{constructor(n,r,o){let i=(typeof r[0]=="number"?r[0]:parseInt(r[0],10))+1,s="",a=i%10,c=i%100;a==1&&c!=11?s=i+"st":a==2&&c!=12?s=i+"nd":a==3&&c!=13?s=i+"rd":s=i+"th";let l=r.length>1?r.slice(1).map(f=>typeof f=="number"?`[${f}]`:f).join("."):null;super(`The ${s} argument to the \`${n}\` RPC method${l?` at path \`${l}\``:""} was \`${o}\`. This number is unsafe for use with the Solana JSON-RPC because it exceeds \`Number.MAX_SAFE_INTEGER\`.`);this.keyPath=r,this.methodName=n,this.value=o;}get name(){return "SolanaJsonRpcIntegerOverflowError"}};var he={onIntegerOverflow(e,t,n){throw new be(e,t,n)}};d();d();function ro(e,t){(async()=>{try{for await(let n of e);}catch{}finally{t();}})();}function Se({getAbortSignalFromInputArgs:e,getCacheEntryMissingError:t,getCacheKeyFromInputArgs:n,onCacheHit:r,onCreateIterable:o}){let i=new Map;function s(a){let c=i.get(a);if(!c)throw t(a);return c}return async(...a)=>{let c=n(...a),l=e(...a);if(c===void 0)return await o(l,...a);let f=()=>{i.delete(c),l.removeEventListener("abort",m);},m=()=>{let g=s(c);g.purgeScheduled!==!0&&(g.purgeScheduled=!0,globalThis.queueMicrotask(()=>{g.purgeScheduled=!1,g.referenceCount===0&&(g.abortController.abort(),f());})),g.referenceCount--;};l.addEventListener("abort",m);try{let g=i.get(c);if(g){g.referenceCount++;let S=g.iterable,b="then"in S?await S:S;return await r(b,...a),b}else {let S=new AbortController,b=o(S.signal,...a),h={abortController:S,iterable:b,purgeScheduled:!1,referenceCount:1};i.set(c,h);let y=await b;return ro(y,f),h.iterable=y,y}}catch(g){throw f(),g}}}var Ge=Symbol(void 0);function oo(e,t){(async()=>{try{for await(let n of e);}catch{}finally{t();}})();}function on({getDeduplicationKey:e,rpcSubscriptions:t}){let n=new Map;return new Proxy(t,{defineProperty(){return !1},deleteProperty(){return !1},get(r,o,i){let s=Reflect.get(r,o,i);return typeof s!="function"?s:function(...a){let c=e(o,a);if(c===void 0)return s(...a);if(n.has(c))return n.get(c);let l=Se({getAbortSignalFromInputArgs:({abortSignal:m})=>m,getCacheEntryMissingError(m){return new Error(`Found no cache entry for subscription with deduplication key \`${m?.toString()}\``)},getCacheKeyFromInputArgs:()=>c,async onCacheHit(m,g){},async onCreateIterable(m,g){let b=await s(...a).subscribe({...g,abortSignal:m});return oo(b,()=>{n.delete(c);}),b}}),f={async subscribe(...m){let g=await l(...m),{abortSignal:S}=m[0],b;return {...g,async*[Symbol.asyncIterator](){b||(b=S.aborted?Promise.reject(Ge):new Promise((h,y)=>{S.addEventListener("abort",()=>{y(Ge);});}));try{let h=g[Symbol.asyncIterator]();for(;;){let y=await Promise.race([h.next(),b]);if(y.done)return;yield y.value;}}catch(h){if(h===Ge)return;throw n.delete(c),h}}}}};return n.set(c,f),f}}})}function ja(e){return en({...e,api:Jt(he)})}function Va(e){return j(je({...e,api:We(he)}),t=>on({getDeduplicationKey:(...n)=>(0, sn.default)(n),rpcSubscriptions:t}))}function Ga(e){return je({...e,api:Xt(he)})}d();d();function an(e,t){let n;return async function(o){let{payload:i,signal:s}=o,a=t(i);if(a===void 0)return await e(o);if(n||(Promise.resolve().then(()=>{n=void 0;}),n={}),n[a]==null){let l=new AbortController;n[a]={abortController:l,numConsumers:0,responsePromise:e({...o,signal:l.signal})};}let c=n[a];if(c.numConsumers++,s){let l=c.responsePromise;return await new Promise((f,m)=>{let g=S=>{s.removeEventListener("abort",g),c.numConsumers-=1,c.numConsumers===0&&c.abortController.abort();let b=new DOMException(S.target.reason,"AbortError");m(b);};s.addEventListener("abort",g),l.then(f).finally(()=>{s.removeEventListener("abort",g);});})}else return await c.responsePromise}}d();var cn=Ze(Ve(),1);function io(e){return e==null||typeof e!="object"||Array.isArray(e)?!1:"jsonrpc"in e&&e.jsonrpc==="2.0"&&"method"in e&&typeof e.method=="string"&&"params"in e}function dn(e){return io(e)?(0, cn.default)([e.method,e.params]):void 0}function so(e){let t={};for(let n in e)t[n.toLowerCase()]=e[n];return t}function oc(e){return j(tn({...e,headers:{...e.headers?so(e.headers):void 0,"solana-client":"js/2.0.0-development"}}),t=>an(t,dn))}d();d();var ao={jsonrpc:"2.0",method:"ping"};function un({intervalMs:e,transport:t}){let n=new Map;return async(...r)=>{let o=await t(...r),i;function s(){o.send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(ao);}function a(){clearInterval(i),i=setInterval(s,e);}if(n.has(o)===!1){n.set(o,{[Symbol.asyncIterator]:o[Symbol.asyncIterator].bind(o),send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:(...f)=>(a(),o.send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(...f))}),(async()=>{try{for await(let f of o)a();}catch{}finally{n.delete(o),clearInterval(i),c&&globalThis.window.removeEventListener("offline",c),l&&globalThis.window.removeEventListener("online",l);}})(),globalThis.navigator.onLine&&a();let c,l;c=()=>{clearInterval(i);},l=()=>{s(),a();},globalThis.window.addEventListener("offline",c),globalThis.window.addEventListener("online",l);}return n.get(o)}}d();var co=Symbol(void 0);function ln({getShard:e,transport:t}){return Se({getAbortSignalFromInputArgs:({signal:n})=>n,getCacheEntryMissingError(n){return new Error(`Found no cache entry for connection with shard key \`${n?.toString()}\``)},getCacheKeyFromInputArgs:({payload:n})=>e?e(n):co,onCacheHit:(n,{payload:r})=>n.send_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(r),onCreateIterable:(n,r)=>t({...r,signal:n})})}function bc(e){let{getShard:t,intervalMs:n,...r}=e;return j(nn({...r,sendBufferHighWatermark:e.sendBufferHighWatermark??131072}),o=>un({intervalMs:n??5e3,transport:o}),o=>ln({getShard:t,transport:o}))}d();d();function fn(e){return async function({abortSignal:n,lastValidBlockHeight:r}){let o=new AbortController;function i(){o.abort();}n.addEventListener("abort",i,{signal:o.signal});let s=await e.slotNotifications().subscribe({abortSignal:o.signal});try{for await(let a of s)if(a.slot>r)throw new Error("The network has progressed past the last block for which this transaction could have committed.")}finally{o.abort();}}}d();var qe=4+4+32;function mn(e,t){return async function({abortSignal:r,commitment:o,currentNonceValue:i,nonceAccountAddress:s}){let a=new AbortController;function c(){a.abort();}r.addEventListener("abort",c,{signal:a.signal});let l=await t.accountNotifications(s,{commitment:o,encoding:"base64"}).subscribe({abortSignal:a.signal});function f([S]){let h=Te.serialize(S).slice(qe,qe+32);return O.deserialize(h)[0]}let m=(async()=>{for await(let S of l){let b=f(S.value.data);if(b!==i)throw new Error(`The nonce \`${i}\` is no longer valid. It has advanced to \`${b}\`.`)}})(),g=(async()=>{let{value:S}=await e.getAccountInfo(s,{commitment:o,dataSlice:{length:32,offset:qe},encoding:"base58"}).send({abortSignal:a.signal});if(!S)throw new Error(`No nonce account could be found at address \`${s}\`.`);let b=S.data[0];if(b!==i)throw new Error(`The nonce \`${i}\` is no longer valid. It has advanced to \`${b}\`.`);await new Promise(()=>{});})();try{return await Promise.race([m,g])}finally{a.abort();}}}d();async function Ye(e,t,n){let{abortSignal:r,commitment:o,getRecentSignatureConfirmationPromise:i}=t;r.throwIfAborted();let s=new AbortController;function a(){s.abort();}r.addEventListener("abort",a,{signal:s.signal});try{let c=n({...t,abortSignal:s.signal});return await Promise.race([i({abortSignal:s.signal,commitment:o,signature:e}),...c])}finally{s.abort();}}d();function Je(e,t){return async function({abortSignal:r,commitment:o,signature:i}){let s=new AbortController;function a(){s.abort();}r.addEventListener("abort",a,{signal:s.signal});let c=await t.signatureNotifications(i,{commitment:o}).subscribe({abortSignal:s.signal}),l=(async()=>{for await(let m of c){if(m.value.err)throw new Error(`The transaction with signature \`${i}\` failed.`,{cause:m.value.err});return}})(),f=(async()=>{let{value:m}=await e.getSignatureStatuses([i]).send({abortSignal:s.signal}),g=m[0];g&&g.confirmationStatus&&qt(g.confirmationStatus,o)>=0||await new Promise(()=>{});})();try{return await Promise.race([l,f])}finally{s.abort();}}}function Uc({rpc:e,rpcSubscriptions:t}){let n=mn(e,t),r=Je(e,t);return async function(i){await uo({...i,getNonceInvalidationPromise:n,getRecentSignatureConfirmationPromise:r});}}function Fc({rpc:e,rpcSubscriptions:t}){let n=fn(t),r=Je(e,t);return async function(i){await lo({...i,getBlockHeightExceedencePromise:n,getRecentSignatureConfirmationPromise:r});}}async function uo(e){await Ye(Pe(e.transaction),e,function({abortSignal:n,commitment:r,getNonceInvalidationPromise:o,transaction:i}){return [o({abortSignal:n,commitment:r,currentNonceValue:i.lifetimeConstraint.nonce,nonceAccountAddress:i.instructions[0].accounts[0].address})]});}async function lo(e){await Ye(Pe(e.transaction),e,function({abortSignal:n,getBlockHeightExceedencePromise:r,transaction:o}){return [r({abortSignal:n,lastValidBlockHeight:o.lifetimeConstraint.lastValidBlockHeight})]});}
10
10
 
11
- exports.AccountRole = wr;
12
- exports.appendTransactionInstruction = Uo;
13
- exports.assertIsBase58EncodedAddress = lo;
14
- exports.assertIsBlockhash = ko;
15
- exports.assertIsDurableNonceTransaction = Do;
16
- exports.createDefaultRpcTransport = ys;
17
- exports.createSolanaRpc = is;
18
- exports.createTransaction = Lo;
19
- exports.downgradeRoleToNonSigner = ho;
20
- exports.downgradeRoleToReadonly = bo;
21
- exports.generateKeyPair = Io;
22
- exports.getBase58EncodedAddressCodec = P;
23
- exports.getBase58EncodedAddressComparator = ee;
24
- exports.getBase58EncodedAddressFromPublicKey = ze;
25
- exports.getBase64EncodedWireTransaction = Fo;
26
- exports.getProgramDerivedAddress = fo;
27
- exports.isSignerRole = yo;
28
- exports.isWritableRole = xo;
29
- exports.mergeRoles = wo;
30
- exports.prependTransactionInstruction = jo;
31
- exports.setTransactionFeePayer = Po;
32
- exports.setTransactionLifetimeUsingBlockhash = Oo;
33
- exports.setTransactionLifetimeUsingDurableNonce = $o;
34
- exports.signBytes = Ie;
35
- exports.signTransaction = Ko;
36
- exports.upgradeRoleToSigner = Eo;
37
- exports.upgradeRoleToWritable = So;
38
- exports.verifySignature = Ro;
11
+ exports.AccountRole = Jn;
12
+ exports.address = Fn;
13
+ exports.appendTransactionInstruction = da;
14
+ exports.assertIsAddress = xt;
15
+ exports.assertIsBlockhash = ra;
16
+ exports.assertIsDurableNonceTransaction = sa;
17
+ exports.assertIsProgramDerivedAddress = Ro;
18
+ exports.assertIsTransactionSignature = Pr;
19
+ exports.createAddressWithSeed = No;
20
+ exports.createBlockHeightExceedencePromiseFactory = fn;
21
+ exports.createDefaultDurableNonceTransactionConfirmer = Uc;
22
+ exports.createDefaultRecentTransactionConfirmer = Fc;
23
+ exports.createDefaultRpcSubscriptionsTransport = bc;
24
+ exports.createDefaultRpcTransport = oc;
25
+ exports.createNonceInvalidationPromiseFactory = mn;
26
+ exports.createRecentSignatureConfirmationPromiseFactory = Je;
27
+ exports.createSolanaRpc = ja;
28
+ exports.createSolanaRpcSubscriptions = Va;
29
+ exports.createSolanaRpcSubscriptions_UNSTABLE = Ga;
30
+ exports.createTransaction = ia;
31
+ exports.downgradeRoleToNonSigner = Oo;
32
+ exports.downgradeRoleToReadonly = Po;
33
+ exports.generateKeyPair = jo;
34
+ exports.getAddressCodec = J;
35
+ exports.getAddressComparator = se;
36
+ exports.getAddressDecoder = wt;
37
+ exports.getAddressEncoder = Wn;
38
+ exports.getAddressFromPublicKey = At;
39
+ exports.getBase64EncodedWireTransaction = pa;
40
+ exports.getProgramDerivedAddress = Bo;
41
+ exports.getSignatureFromTransaction = Pe;
42
+ exports.getTransactionEncoder = Or;
43
+ exports.isAddress = Un;
44
+ exports.isProgramDerivedAddress = vo;
45
+ exports.isSignerRole = $o;
46
+ exports.isTransactionSignature = la;
47
+ exports.isWritableRole = Lo;
48
+ exports.mergeRoles = Uo;
49
+ exports.prependTransactionInstruction = ua;
50
+ exports.setTransactionFeePayer = ca;
51
+ exports.setTransactionLifetimeUsingBlockhash = oa;
52
+ exports.setTransactionLifetimeUsingDurableNonce = aa;
53
+ exports.signBytes = Ct;
54
+ exports.signTransaction = fa;
55
+ exports.transactionSignature = ma;
56
+ exports.upgradeRoleToSigner = Fo;
57
+ exports.upgradeRoleToWritable = Wo;
58
+ exports.verifySignature = Vo;
59
+ exports.waitForDurableNonceTransactionConfirmation = uo;
60
+ exports.waitForRecentTransactionConfirmation = lo;
39
61
 
40
62
  return exports;
41
63
 
@@ -0,0 +1,11 @@
1
+ type CacheKey = string | symbol;
2
+ type Config<TInput extends unknown[], TIterable extends AsyncIterable<unknown>> = Readonly<{
3
+ getAbortSignalFromInputArgs: (...args: TInput) => AbortSignal;
4
+ getCacheEntryMissingError: (cacheKey: CacheKey) => Error;
5
+ getCacheKeyFromInputArgs: (...args: TInput) => CacheKey | undefined;
6
+ onCacheHit: (iterable: TIterable, ...args: TInput) => Promise<void>;
7
+ onCreateIterable: (abortSignal: AbortSignal, ...args: TInput) => Promise<TIterable>;
8
+ }>;
9
+ export declare function getCachedAbortableIterableFactory<TInput extends unknown[], TIterable extends AsyncIterable<unknown>>({ getAbortSignalFromInputArgs, getCacheEntryMissingError, getCacheKeyFromInputArgs, onCacheHit, onCreateIterable, }: Config<TInput, TIterable>): (...args: TInput) => Promise<TIterable>;
10
+ export {};
11
+ //# sourceMappingURL=cached-abortable-iterable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached-abortable-iterable.d.ts","sourceRoot":"","sources":["../../src/cached-abortable-iterable.ts"],"names":[],"mappings":"AAMA,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAChC,KAAK,MAAM,CAAC,MAAM,SAAS,OAAO,EAAE,EAAE,SAAS,SAAS,aAAa,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC;IACvF,2BAA2B,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC;IAC9D,yBAAyB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC;IACzD,wBAAwB,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,KACpC,QAAQ,GAER,SAAS,CAAC;IAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,gBAAgB,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;CACvF,CAAC,CAAC;AAgBH,wBAAgB,iCAAiC,CAAC,MAAM,SAAS,OAAO,EAAE,EAAE,SAAS,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,EAClH,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EACV,gBAAgB,GACnB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CA+DrE"}
@@ -4,4 +4,9 @@ export * from '@solana/keys';
4
4
  export * from '@solana/transactions';
5
5
  export * from './rpc';
6
6
  export * from './rpc-transport';
7
+ export * from './rpc-websocket-transport';
8
+ export * from './transaction-confirmation';
9
+ export * from './transaction-confirmation-strategy-blockheight';
10
+ export * from './transaction-confirmation-strategy-nonce';
11
+ export * from './transaction-confirmation-strategy-recent-signature';
7
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iDAAiD,CAAC;AAChE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sDAAsD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-request-deduplication.d.ts","sourceRoot":"","sources":["../../src/rpc-request-deduplication.ts"],"names":[],"mappings":"AAIA,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOxF"}
1
+ {"version":3,"file":"rpc-request-deduplication.d.ts","sourceRoot":"","sources":["../../src/rpc-request-deduplication.ts"],"names":[],"mappings":"AAiBA,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAExF"}
@@ -0,0 +1,10 @@
1
+ import { RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';
2
+ type CacheKey = string | undefined;
3
+ type Config<TRpcSubscriptionsMethods> = Readonly<{
4
+ getDeduplicationKey: GetDeduplicationKeyFn;
5
+ rpcSubscriptions: RpcSubscriptions<TRpcSubscriptionsMethods>;
6
+ }>;
7
+ type GetDeduplicationKeyFn = (subscriptionMethod: string | symbol, payload: unknown) => CacheKey;
8
+ export declare function getRpcSubscriptionsWithSubscriptionCoalescing<TRpcSubscriptionsMethods>({ getDeduplicationKey, rpcSubscriptions, }: Config<TRpcSubscriptionsMethods>): RpcSubscriptions<TRpcSubscriptionsMethods>;
9
+ export {};
10
+ //# sourceMappingURL=rpc-subscription-coalescer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-subscription-coalescer.d.ts","sourceRoot":"","sources":["../../src/rpc-subscription-coalescer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAI3G,KAAK,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AACnC,KAAK,MAAM,CAAC,wBAAwB,IAAI,QAAQ,CAAC;IAC7C,mBAAmB,EAAE,qBAAqB,CAAC;IAC3C,gBAAgB,EAAE,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;CAChE,CAAC,CAAC;AACH,KAAK,qBAAqB,GAAG,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC;AAuBjG,wBAAgB,6CAA6C,CAAC,wBAAwB,EAAE,EACpF,mBAAmB,EACnB,gBAAgB,GACnB,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,CAgG/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-transport.d.ts","sourceRoot":"","sources":["../../src/rpc-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAkB5F,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAc1G"}
1
+ {"version":3,"file":"rpc-transport.d.ts","sourceRoot":"","sources":["../../src/rpc-transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAkB5F,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAc1G"}
@@ -0,0 +1,8 @@
1
+ import { IRpcWebSocketTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';
2
+ type Config = Readonly<{
3
+ intervalMs: number;
4
+ transport: IRpcWebSocketTransport;
5
+ }>;
6
+ export declare function getWebSocketTransportWithAutoping({ intervalMs, transport }: Config): IRpcWebSocketTransport;
7
+ export {};
8
+ //# sourceMappingURL=rpc-websocket-autopinger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-websocket-autopinger.d.ts","sourceRoot":"","sources":["../../src/rpc-websocket-autopinger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AAErG,KAAK,MAAM,GAAG,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,sBAAsB,CAAC;CACrC,CAAC,CAAC;AAOH,wBAAgB,iCAAiC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,GAAG,sBAAsB,CA+D3G"}