@solana/web3.js 2.0.0-development → 2.0.0-experimental.0099b2a

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 (32) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -4
  3. package/dist/index.browser.cjs +779 -10
  4. package/dist/index.browser.cjs.map +1 -1
  5. package/dist/index.browser.js +750 -11
  6. package/dist/index.browser.js.map +1 -1
  7. package/dist/index.development.js +3531 -395
  8. package/dist/index.development.js.map +1 -1
  9. package/dist/index.native.js +737 -11
  10. package/dist/index.native.js.map +1 -1
  11. package/dist/index.node.cjs +768 -10
  12. package/dist/index.node.cjs.map +1 -1
  13. package/dist/index.node.js +737 -11
  14. package/dist/index.node.js.map +1 -1
  15. package/dist/index.production.min.js +78 -16
  16. package/dist/types/airdrop-confirmer.d.ts +20 -0
  17. package/dist/types/airdrop.d.ts +23 -0
  18. package/dist/types/cached-abortable-iterable.d.ts +11 -0
  19. package/dist/types/index.d.ts +10 -0
  20. package/dist/types/rpc-subscription-coalescer.d.ts +10 -0
  21. package/dist/types/rpc-websocket-autopinger.d.ts +8 -0
  22. package/dist/types/rpc-websocket-connection-sharding.d.ts +13 -0
  23. package/dist/types/rpc-websocket-transport.d.ts +13 -0
  24. package/dist/types/rpc.d.ts +5 -3
  25. package/dist/types/send-transaction.d.ts +37 -0
  26. package/dist/types/transaction-confirmation-strategy-blockheight.d.ts +10 -0
  27. package/dist/types/transaction-confirmation-strategy-nonce.d.ts +15 -0
  28. package/dist/types/transaction-confirmation-strategy-racer.d.ts +14 -0
  29. package/dist/types/transaction-confirmation-strategy-recent-signature.d.ts +13 -0
  30. package/dist/types/transaction-confirmation-strategy-timeout.d.ts +8 -0
  31. package/dist/types/transaction-confirmation.d.ts +37 -0
  32. package/package.json +24 -22
@@ -0,0 +1,13 @@
1
+ import { createWebSocketTransport } from '@solana/rpc-transport';
2
+ import { IRpcWebSocketTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';
3
+ export declare function createDefaultRpcSubscriptionsTransport(config: Omit<Parameters<typeof createWebSocketTransport>[0], 'sendBufferHighWatermark'> & {
4
+ /**
5
+ * You might like to open more subscriptions per connection than your RPC provider allows
6
+ * for. Using the initial payload as input, return a shard key from this method to assign
7
+ * subscriptions to separate connections. One socket will be opened per shard key.
8
+ */
9
+ getShard?: (payload: unknown) => string;
10
+ intervalMs?: number;
11
+ sendBufferHighWatermark?: number;
12
+ }): IRpcWebSocketTransport;
13
+ //# sourceMappingURL=rpc-websocket-transport.d.ts.map
@@ -1,5 +1,7 @@
1
- import { SolanaRpcMethods } from '@solana/rpc-core';
2
- import { createJsonRpc } from '@solana/rpc-transport';
3
- import type { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';
1
+ import { SolanaRpcMethods, SolanaRpcSubscriptions, SolanaRpcSubscriptionsUnstable } from '@solana/rpc-core';
2
+ import { createJsonRpc, createJsonSubscriptionRpc } from '@solana/rpc-transport';
3
+ import type { Rpc, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';
4
4
  export declare function createSolanaRpc(config: Omit<Parameters<typeof createJsonRpc>[0], 'api'>): Rpc<SolanaRpcMethods>;
5
+ export declare function createSolanaRpcSubscriptions(config: Omit<Parameters<typeof createJsonSubscriptionRpc>[0], 'api'>): RpcSubscriptions<SolanaRpcSubscriptions>;
6
+ export declare function createSolanaRpcSubscriptions_UNSTABLE(config: Omit<Parameters<typeof createJsonSubscriptionRpc>[0], 'api'>): RpcSubscriptions<SolanaRpcSubscriptions & SolanaRpcSubscriptionsUnstable>;
5
7
  //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { SendTransactionApi } from '@solana/rpc-core/dist/types/rpc-methods/sendTransaction';
2
+ import { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';
3
+ import { Commitment } from '@solana/rpc-types';
4
+ import { BaseTransaction, IDurableNonceTransaction, IFullySignedTransaction, ITransactionWithBlockhashLifetime, ITransactionWithFeePayer, TransactionSignature } from '@solana/transactions';
5
+ import { createDefaultDurableNonceTransactionConfirmer, createDefaultRecentTransactionConfirmer } from './transaction-confirmation';
6
+ interface DurableNonceTransactionSenderFactoryConfig {
7
+ rpc: Rpc<SendTransactionApi> & Parameters<typeof createDefaultDurableNonceTransactionConfirmer>[0]['rpc'];
8
+ rpcSubscriptions: Parameters<typeof createDefaultDurableNonceTransactionConfirmer>[0]['rpcSubscriptions'];
9
+ }
10
+ interface TransactionWithBlockhashLifetimeSenderFactoryConfig {
11
+ rpc: Rpc<SendTransactionApi> & Parameters<typeof createDefaultRecentTransactionConfirmer>[0]['rpc'];
12
+ rpcSubscriptions: Parameters<typeof createDefaultRecentTransactionConfirmer>[0]['rpcSubscriptions'];
13
+ }
14
+ interface SendAndConfirmDurableNonceTransactionConfig extends SendTransactionInternalConfig, SendTransactionConfigWithoutEncoding {
15
+ confirmDurableNonceTransaction: ReturnType<typeof createDefaultDurableNonceTransactionConfirmer>;
16
+ transaction: SendableTransaction & IDurableNonceTransaction;
17
+ }
18
+ interface SendAndConfirmTransactionWithBlockhashLifetimeConfig extends SendTransactionInternalConfig, SendTransactionConfigWithoutEncoding {
19
+ confirmRecentTransaction: ReturnType<typeof createDefaultRecentTransactionConfirmer>;
20
+ transaction: SendableTransaction & ITransactionWithBlockhashLifetime;
21
+ }
22
+ interface SendTransactionInternalConfig extends SendTransactionConfigWithoutEncoding {
23
+ abortSignal?: AbortSignal;
24
+ commitment: Commitment;
25
+ rpc: Rpc<SendTransactionApi>;
26
+ transaction: SendableTransaction;
27
+ }
28
+ type SendableTransaction = BaseTransaction & (ITransactionWithBlockhashLifetime | IDurableNonceTransaction) & ITransactionWithFeePayer & IFullySignedTransaction;
29
+ type SendTransactionConfig = Parameters<SendTransactionApi['sendTransaction']>[1];
30
+ interface SendTransactionConfigWithoutEncoding extends Omit<NonNullable<SendTransactionConfig>, 'encoding'> {
31
+ }
32
+ export declare function createDefaultDurableNonceTransactionSender({ rpc, rpcSubscriptions, }: DurableNonceTransactionSenderFactoryConfig): (transaction: BaseTransaction & ITransactionWithFeePayer & IDurableNonceTransaction & IFullySignedTransaction, config: Omit<Parameters<typeof sendAndConfirmDurableNonceTransaction>[0], 'confirmDurableNonceTransaction' | 'rpc' | 'transaction'>) => Promise<void>;
33
+ export declare function createDefaultTransactionSender({ rpc, rpcSubscriptions, }: TransactionWithBlockhashLifetimeSenderFactoryConfig): (transaction: SendableTransaction & ITransactionWithBlockhashLifetime, config: Omit<Parameters<typeof sendAndConfirmTransaction>[0], 'confirmRecentTransaction' | 'rpc' | 'transaction'>) => Promise<void>;
34
+ export declare function sendAndConfirmDurableNonceTransaction({ abortSignal, commitment, confirmDurableNonceTransaction, rpc, transaction, ...sendTransactionConfig }: SendAndConfirmDurableNonceTransactionConfig): Promise<TransactionSignature>;
35
+ export declare function sendAndConfirmTransaction({ abortSignal, commitment, confirmRecentTransaction, rpc, transaction, ...sendTransactionConfig }: SendAndConfirmTransactionWithBlockhashLifetimeConfig): Promise<TransactionSignature>;
36
+ export {};
37
+ //# sourceMappingURL=send-transaction.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';
2
+ import type { SlotNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/slot-notifications';
3
+ import { RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';
4
+ type GetBlockHeightExceedencePromiseFn = (config: {
5
+ abortSignal: AbortSignal;
6
+ lastValidBlockHeight: Slot;
7
+ }) => Promise<void>;
8
+ export declare function createBlockHeightExceedencePromiseFactory(rpcSubscriptions: RpcSubscriptions<SlotNotificationsApi>): GetBlockHeightExceedencePromiseFn;
9
+ export {};
10
+ //# sourceMappingURL=transaction-confirmation-strategy-blockheight.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { Base58EncodedAddress } from '@solana/addresses';
2
+ import { GetAccountInfoApi } from '@solana/rpc-core/dist/types/rpc-methods/getAccountInfo';
3
+ import { AccountNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/account-notifications';
4
+ import { Rpc, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';
5
+ import { Commitment } from '@solana/rpc-types';
6
+ import { Nonce } from '@solana/transactions';
7
+ type GetNonceInvalidationPromiseFn = (config: {
8
+ abortSignal: AbortSignal;
9
+ commitment: Commitment;
10
+ currentNonceValue: Nonce;
11
+ nonceAccountAddress: Base58EncodedAddress;
12
+ }) => Promise<void>;
13
+ export declare function createNonceInvalidationPromiseFactory(rpc: Rpc<GetAccountInfoApi>, rpcSubscriptions: RpcSubscriptions<AccountNotificationsApi>): GetNonceInvalidationPromiseFn;
14
+ export {};
15
+ //# sourceMappingURL=transaction-confirmation-strategy-nonce.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { Commitment } from '@solana/rpc-types';
2
+ import { TransactionSignature } from '@solana/transactions';
3
+ import { createRecentSignatureConfirmationPromiseFactory } from './transaction-confirmation-strategy-recent-signature';
4
+ export interface BaseTransactionConfirmationStrategyConfig {
5
+ abortSignal?: AbortSignal;
6
+ commitment: Commitment;
7
+ getRecentSignatureConfirmationPromise: ReturnType<typeof createRecentSignatureConfirmationPromiseFactory>;
8
+ }
9
+ type WithNonNullableAbortSignal<T> = Omit<T, 'abortSignal'> & Readonly<{
10
+ abortSignal: AbortSignal;
11
+ }>;
12
+ export declare function raceStrategies<TConfig extends BaseTransactionConfirmationStrategyConfig>(signature: TransactionSignature, config: TConfig, getSpecificStrategiesForRace: (config: WithNonNullableAbortSignal<TConfig>) => readonly Promise<unknown>[]): Promise<unknown>;
13
+ export {};
14
+ //# sourceMappingURL=transaction-confirmation-strategy-racer.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { GetSignatureStatusesApi } from '@solana/rpc-core/dist/types/rpc-methods/getSignatureStatuses';
2
+ import { SignatureNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/signature-notifications';
3
+ import { Rpc, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';
4
+ import { Commitment } from '@solana/rpc-types';
5
+ import { TransactionSignature } from '@solana/transactions';
6
+ type GetRecentSignatureConfirmationPromiseFn = (config: {
7
+ abortSignal: AbortSignal;
8
+ commitment: Commitment;
9
+ signature: TransactionSignature;
10
+ }) => Promise<void>;
11
+ export declare function createRecentSignatureConfirmationPromiseFactory(rpc: Rpc<GetSignatureStatusesApi>, rpcSubscriptions: RpcSubscriptions<SignatureNotificationsApi>): GetRecentSignatureConfirmationPromiseFn;
12
+ export {};
13
+ //# sourceMappingURL=transaction-confirmation-strategy-recent-signature.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { Commitment } from '@solana/rpc-types';
2
+ type Config = Readonly<{
3
+ abortSignal: AbortSignal;
4
+ commitment: Commitment;
5
+ }>;
6
+ export declare function getTimeoutPromise({ abortSignal: callerAbortSignal, commitment }: Config): Promise<unknown>;
7
+ export {};
8
+ //# sourceMappingURL=transaction-confirmation-strategy-timeout.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';
2
+ import type { GetAccountInfoApi } from '@solana/rpc-core/dist/types/rpc-methods/getAccountInfo';
3
+ import type { GetSignatureStatusesApi } from '@solana/rpc-core/dist/types/rpc-methods/getSignatureStatuses';
4
+ import type { AccountNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/account-notifications';
5
+ import type { SignatureNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/signature-notifications';
6
+ import type { SlotNotificationsApi } from '@solana/rpc-core/dist/types/rpc-subscriptions/slot-notifications';
7
+ import type { Rpc, RpcSubscriptions } from '@solana/rpc-transport/dist/types/json-rpc-types';
8
+ import { IDurableNonceTransaction, ITransactionWithFeePayer, ITransactionWithSignatures } from '@solana/transactions';
9
+ import { createBlockHeightExceedencePromiseFactory } from './transaction-confirmation-strategy-blockheight';
10
+ import { createNonceInvalidationPromiseFactory } from './transaction-confirmation-strategy-nonce';
11
+ import { BaseTransactionConfirmationStrategyConfig } from './transaction-confirmation-strategy-racer';
12
+ interface DefaultDurableNonceTransactionConfirmerConfig {
13
+ rpc: Rpc<GetSignatureStatusesApi & GetAccountInfoApi>;
14
+ rpcSubscriptions: RpcSubscriptions<AccountNotificationsApi & SignatureNotificationsApi>;
15
+ }
16
+ interface DefaultRecentTransactionConfirmerConfig {
17
+ rpc: Rpc<GetSignatureStatusesApi>;
18
+ rpcSubscriptions: RpcSubscriptions<SignatureNotificationsApi & SlotNotificationsApi>;
19
+ }
20
+ interface WaitForDurableNonceTransactionConfirmationConfig extends BaseTransactionConfirmationStrategyConfig {
21
+ getNonceInvalidationPromise: ReturnType<typeof createNonceInvalidationPromiseFactory>;
22
+ transaction: ITransactionWithFeePayer & ITransactionWithSignatures & IDurableNonceTransaction;
23
+ }
24
+ interface WaitForRecentTransactionWithBlockhashLifetimeConfirmationConfig extends BaseTransactionConfirmationStrategyConfig {
25
+ getBlockHeightExceedencePromise: ReturnType<typeof createBlockHeightExceedencePromiseFactory>;
26
+ transaction: ITransactionWithFeePayer & ITransactionWithSignatures & Readonly<{
27
+ lifetimeConstraint: {
28
+ lastValidBlockHeight: Slot;
29
+ };
30
+ }>;
31
+ }
32
+ export declare function createDefaultDurableNonceTransactionConfirmer({ rpc, rpcSubscriptions, }: DefaultDurableNonceTransactionConfirmerConfig): (config: Omit<Parameters<typeof waitForDurableNonceTransactionConfirmation>[0], 'getNonceInvalidationPromise' | 'getRecentSignatureConfirmationPromise'>) => Promise<void>;
33
+ export declare function createDefaultRecentTransactionConfirmer({ rpc, rpcSubscriptions, }: DefaultRecentTransactionConfirmerConfig): (config: Omit<Parameters<typeof waitForRecentTransactionConfirmation>[0], 'getBlockHeightExceedencePromise' | 'getRecentSignatureConfirmationPromise'>) => Promise<void>;
34
+ export declare function waitForDurableNonceTransactionConfirmation(config: WaitForDurableNonceTransactionConfirmationConfig): Promise<void>;
35
+ export declare function waitForRecentTransactionConfirmation(config: WaitForRecentTransactionWithBlockhashLifetimeConfirmationConfig): Promise<void>;
36
+ export {};
37
+ //# sourceMappingURL=transaction-confirmation.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solana/web3.js",
3
- "version": "2.0.0-development",
3
+ "version": "2.0.0-experimental.0099b2a",
4
4
  "description": "Solana Javascript API",
5
5
  "exports": {
6
6
  "browser": {
@@ -50,32 +50,33 @@
50
50
  ],
51
51
  "dependencies": {
52
52
  "fast-stable-stringify": "^1.0.0",
53
- "@solana/instructions": "2.0.0-experimental.457d032",
54
- "@solana/keys": "2.0.0-experimental.457d032",
55
- "@solana/rpc-core": "2.0.0-experimental.457d032",
56
- "@solana/rpc-transport": "2.0.0-experimental.457d032"
53
+ "@solana/addresses": "2.0.0-experimental.0099b2a",
54
+ "@solana/codecs-strings": "2.0.0-experimental.0099b2a",
55
+ "@solana/functional": "2.0.0-experimental.0099b2a",
56
+ "@solana/instructions": "2.0.0-experimental.0099b2a",
57
+ "@solana/keys": "2.0.0-experimental.0099b2a",
58
+ "@solana/rpc-core": "2.0.0-experimental.0099b2a",
59
+ "@solana/rpc-transport": "2.0.0-experimental.0099b2a",
60
+ "@solana/rpc-types": "2.0.0-experimental.0099b2a",
61
+ "@solana/transactions": "2.0.0-experimental.0099b2a"
57
62
  },
58
63
  "devDependencies": {
59
64
  "@solana/eslint-config-solana": "^1.0.2",
60
- "@swc/core": "^1.3.18",
61
- "@swc/jest": "^0.2.26",
62
- "@types/jest": "^29.5.2",
63
- "@typescript-eslint/eslint-plugin": "^6.0.0",
64
- "@typescript-eslint/parser": "^6.0.0",
65
+ "@swc/jest": "^0.2.29",
66
+ "@types/jest": "^29.5.6",
67
+ "@typescript-eslint/eslint-plugin": "^6.7.0",
68
+ "@typescript-eslint/parser": "^6.3.0",
65
69
  "agadoo": "^3.0.0",
66
70
  "eslint": "^8.45.0",
67
- "eslint-plugin-jest": "^27.2.3",
68
- "eslint-plugin-react-hooks": "^4.6.0",
71
+ "eslint-plugin-jest": "^27.4.2",
69
72
  "eslint-plugin-sort-keys-fix": "^1.1.2",
70
- "jest": "^29.6.1",
71
- "jest-environment-jsdom": "^29.6.0",
72
- "jest-runner-eslint": "^2.1.0",
73
+ "jest": "^29.7.0",
74
+ "jest-environment-jsdom": "^29.7.0",
75
+ "jest-runner-eslint": "^2.1.2",
73
76
  "jest-runner-prettier": "^1.0.0",
74
- "postcss": "^8.4.12",
75
- "prettier": "^2.8.8",
76
- "ts-node": "^10.9.1",
77
- "tsup": "6.7.0",
78
- "typescript": "^5.1.6",
77
+ "prettier": "^2.8",
78
+ "tsup": "7.2.0",
79
+ "typescript": "^5.2.2",
79
80
  "version-from-git": "^1.1.1",
80
81
  "build-scripts": "0.0.0",
81
82
  "test-config": "0.0.0",
@@ -94,11 +95,12 @@
94
95
  "compile:typedefs": "tsc -p ./tsconfig.declarations.json",
95
96
  "dev": "jest -c node_modules/test-config/jest-dev.config.ts --rootDir . --watch",
96
97
  "publish-packages": "sed -i 's/@solana\\/web3\\.js-experimental/@solana\\/web3\\.js/g' package.json && sed -i 's/@solana\\/web3\\.js/@solana\\/web3\\.js-bak/g' ../library-legacy/package.json && pnpm publish --tag experimental --access public --no-git-checks && git reset --hard",
98
+ "style:fix": "pnpm eslint --fix src/* && pnpm prettier -w src/* package.json",
97
99
  "test:lint": "jest -c node_modules/test-config/jest-lint.config.ts --rootDir . --silent",
98
100
  "test:prettier": "jest -c node_modules/test-config/jest-prettier.config.ts --rootDir . --silent",
99
101
  "test:treeshakability:browser": "agadoo dist/index.browser.js",
100
- "test:treeshakability:native": "agadoo dist/index.node.js",
101
- "test:treeshakability:node": "agadoo dist/index.native.js",
102
+ "test:treeshakability:native": "agadoo dist/index.native.js",
103
+ "test:treeshakability:node": "agadoo dist/index.node.js",
102
104
  "test:typecheck": "tsc --noEmit",
103
105
  "test:unit:browser": "jest -c node_modules/test-config/jest-unit.config.browser.ts --rootDir . --silent",
104
106
  "test:unit:node": "jest -c node_modules/test-config/jest-unit.config.node.ts --rootDir . --silent"