@vue-solana/core 1.2.0 → 2.1.0

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 (82) hide show
  1. package/README.md +48 -35
  2. package/dist/action.cjs +15 -0
  3. package/dist/action.d.cts +28 -0
  4. package/dist/action.d.mts +28 -0
  5. package/dist/action.d.ts +28 -0
  6. package/dist/action.mjs +12 -0
  7. package/dist/address.cjs +10 -10
  8. package/dist/address.d.cts +11 -13
  9. package/dist/address.d.mts +11 -13
  10. package/dist/address.d.ts +11 -13
  11. package/dist/address.mjs +10 -10
  12. package/dist/buffer-polyfill.d.cts +0 -1
  13. package/dist/buffer-polyfill.d.mts +0 -1
  14. package/dist/buffer-polyfill.d.ts +0 -1
  15. package/dist/clusters.d.cts +1 -4
  16. package/dist/clusters.d.mts +1 -4
  17. package/dist/clusters.d.ts +1 -4
  18. package/dist/index.cjs +14 -20
  19. package/dist/index.d.cts +7 -10
  20. package/dist/index.d.mts +7 -10
  21. package/dist/index.d.ts +7 -10
  22. package/dist/index.mjs +8 -9
  23. package/dist/ios-wallet.cjs +2 -2
  24. package/dist/ios-wallet.d.cts +1 -4
  25. package/dist/ios-wallet.d.mts +1 -4
  26. package/dist/ios-wallet.d.ts +1 -4
  27. package/dist/ios-wallet.mjs +2 -2
  28. package/dist/kit.cjs +4 -0
  29. package/dist/kit.d.cts +2 -5
  30. package/dist/kit.d.mts +2 -5
  31. package/dist/kit.d.ts +2 -5
  32. package/dist/kit.mjs +1 -1
  33. package/dist/mobile-wallet.d.cts +1 -4
  34. package/dist/mobile-wallet.d.mts +1 -4
  35. package/dist/mobile-wallet.d.ts +1 -4
  36. package/dist/rpc.cjs +0 -12
  37. package/dist/rpc.d.cts +2 -11
  38. package/dist/rpc.d.mts +2 -11
  39. package/dist/rpc.d.ts +2 -11
  40. package/dist/rpc.mjs +1 -12
  41. package/dist/shared/{core.Ch_Z7_17.mjs → core.BwW4HVQI.mjs} +12 -28
  42. package/dist/shared/{core.DAUuCWrr.d.mts → core.CQ_yMDAL.d.cts} +65 -30
  43. package/dist/shared/{core.DAUuCWrr.d.ts → core.CQ_yMDAL.d.mts} +65 -30
  44. package/dist/shared/{core.DAUuCWrr.d.cts → core.CQ_yMDAL.d.ts} +65 -30
  45. package/dist/shared/{core.BsekSwcZ.cjs → core.Cb48vQvC.cjs} +12 -28
  46. package/dist/shared/{core.DjbtrJWl.mjs → core.DEcQDbtz.mjs} +89 -37
  47. package/dist/shared/{core.BQoh-5Wu.cjs → core.DjxUirkw.cjs} +101 -49
  48. package/dist/token-accounts.cjs +44 -28
  49. package/dist/token-accounts.d.cts +20 -20
  50. package/dist/token-accounts.d.mts +20 -20
  51. package/dist/token-accounts.d.ts +20 -20
  52. package/dist/token-accounts.mjs +44 -28
  53. package/dist/transaction.cjs +50 -31
  54. package/dist/transaction.d.cts +9 -15
  55. package/dist/transaction.d.mts +9 -15
  56. package/dist/transaction.d.ts +9 -15
  57. package/dist/transaction.mjs +51 -32
  58. package/dist/types.d.cts +1 -4
  59. package/dist/types.d.mts +1 -4
  60. package/dist/types.d.ts +1 -4
  61. package/dist/wallet-standard.cjs +1 -4
  62. package/dist/wallet-standard.d.cts +1 -4
  63. package/dist/wallet-standard.d.mts +1 -4
  64. package/dist/wallet-standard.d.ts +1 -4
  65. package/dist/wallet-standard.mjs +1 -4
  66. package/dist/wallet.cjs +33 -0
  67. package/dist/wallet.d.cts +5 -5
  68. package/dist/wallet.d.mts +5 -5
  69. package/dist/wallet.d.ts +5 -5
  70. package/dist/wallet.mjs +31 -1
  71. package/package.json +6 -13
  72. package/dist/spl-token.cjs +0 -12
  73. package/dist/spl-token.d.cts +0 -4
  74. package/dist/spl-token.d.mts +0 -4
  75. package/dist/spl-token.d.ts +0 -4
  76. package/dist/spl-token.mjs +0 -1
  77. package/dist/web3.cjs +0 -13
  78. package/dist/web3.d.cts +0 -3
  79. package/dist/web3.d.mts +0 -3
  80. package/dist/web3.d.ts +0 -3
  81. package/dist/web3.mjs +0 -1
  82. package/types/web3-compat.d.ts +0 -140
@@ -1,21 +1,5 @@
1
- /// <reference path="../../types/web3-compat.d.ts" />
2
- /// <reference path="../../types/buffer.d.ts" />
3
- import { Commitment, SendOptions, Connection, Transaction, VersionedTransaction, PublicKey, TransactionSignature, RpcResponseAndContext, SignatureResult } from '@solana/web3-compat';
4
1
  import * as _solana_kit from '@solana/kit';
5
- import { Address } from '@solana/kit';
6
-
7
- /**
8
- * Create a @solana/kit client for the given Solana configuration.
9
- *
10
- * The returned client exposes read-only `rpc` and `rpcSubscriptions`; use
11
- * `client.rpc.getSlot().send()` and friends instead of the legacy
12
- * `connection` APIs.
13
- */
14
- declare function createSolanaClient(config?: SolanaConfig): _solana_kit.Client<_solana_kit.ExtendedClient<object, {
15
- rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
16
- rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
17
- }>>;
18
- type SolanaClient = ReturnType<typeof createSolanaClient>;
2
+ import { Commitment, Slot, Address, Signature } from '@solana/kit';
19
3
 
20
4
  type SolanaCluster = "mainnet-beta" | "testnet" | "devnet" | "localnet";
21
5
  type SolanaChain = "solana:mainnet" | "solana:testnet" | "solana:devnet" | "solana:localnet";
@@ -30,17 +14,42 @@ interface SolanaContext {
30
14
  cluster: SolanaCluster;
31
15
  endpoint: string;
32
16
  wsEndpoint: string;
33
- connection: Connection;
34
17
  client: SolanaClient;
35
18
  }
36
- type SolanaTransaction = Transaction | VersionedTransaction;
19
+ type SolanaTransaction = Uint8Array;
37
20
  interface SolanaSignMessageResult {
38
21
  signedMessage: Uint8Array;
39
22
  signature: Uint8Array;
40
23
  }
24
+ interface SolanaSignInAccount {
25
+ address: Address;
26
+ publicKey: Uint8Array;
27
+ chains: string[];
28
+ label?: string;
29
+ icon?: string;
30
+ }
31
+ interface SolanaSignInResult {
32
+ account: SolanaSignInAccount;
33
+ signedMessage: Uint8Array;
34
+ signature: Uint8Array;
35
+ signatureType?: "ed25519";
36
+ }
37
+ interface SolanaSignInInput {
38
+ domain?: string;
39
+ address?: string;
40
+ statement?: string;
41
+ uri?: string;
42
+ version?: string;
43
+ chainId?: string;
44
+ nonce?: string;
45
+ issuedAt?: string;
46
+ expirationTime?: string;
47
+ notBefore?: string;
48
+ requestId?: string;
49
+ resources?: readonly string[];
50
+ }
41
51
  interface SolanaWallet {
42
- publicKey: PublicKey | null;
43
- address?: Address;
52
+ publicKey: Address | null;
44
53
  connected: boolean;
45
54
  connecting?: boolean;
46
55
  disconnecting?: boolean;
@@ -49,11 +58,14 @@ interface SolanaWallet {
49
58
  connect: () => Promise<void>;
50
59
  disconnect: () => Promise<void>;
51
60
  signMessage?: (message: Uint8Array) => Promise<SolanaSignMessageResult>;
52
- signTransaction?: <T extends SolanaTransaction>(transaction: T) => Promise<T>;
53
- signAllTransactions?: <T extends SolanaTransaction>(transactions: T[]) => Promise<T[]>;
54
- signAndSendTransaction?: (transaction: SolanaTransaction, options?: SendOptions) => Promise<{
55
- signature: TransactionSignature;
61
+ signIn?: (input?: SolanaSignInInput) => Promise<SolanaSignInResult>;
62
+ signTransaction?: (transaction: SolanaTransaction) => Promise<SolanaTransaction>;
63
+ signAllTransactions?: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;
64
+ signTransactions?: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;
65
+ signAndSendTransaction?: (transaction: SolanaTransaction, options?: SendTransactionOptions) => Promise<{
66
+ signature: string;
56
67
  }>;
68
+ signAndSendTransactions?: (transactions: SolanaTransaction[], options?: SendTransactionOptions) => Promise<string[]>;
57
69
  }
58
70
  interface SolanaWalletInfo {
59
71
  name: string;
@@ -67,6 +79,7 @@ interface SolanaWalletInfo {
67
79
  capabilities?: {
68
80
  connect?: boolean;
69
81
  disconnect?: boolean;
82
+ signIn?: boolean;
70
83
  signMessage?: boolean;
71
84
  signTransaction?: boolean;
72
85
  signAllTransactions?: boolean;
@@ -81,18 +94,40 @@ interface SolanaWalletInfo {
81
94
  }[];
82
95
  wallet: unknown;
83
96
  }
84
- interface SendTransactionOptions extends SendOptions {
97
+ interface SendTransactionOptions {
85
98
  skipPreflight?: boolean;
99
+ maxRetries?: bigint;
100
+ minContextSlot?: Slot;
101
+ preflightCommitment?: Commitment;
86
102
  }
87
103
  interface ConfirmTransactionOptions {
88
104
  commitment?: Commitment;
89
105
  timeoutMs?: number;
90
106
  }
107
+ interface TransactionStatus {
108
+ slot: Slot;
109
+ confirmations: bigint | null;
110
+ err: unknown | null;
111
+ confirmationStatus: Commitment | null;
112
+ }
91
113
  interface TransactionConfirmation {
92
- signature: TransactionSignature;
114
+ signature: Signature;
93
115
  commitment: Commitment;
94
- result: RpcResponseAndContext<SignatureResult>;
116
+ status: TransactionStatus;
95
117
  }
96
118
 
97
- export { createSolanaClient as j };
98
- export type { ConfirmTransactionOptions as C, SendTransactionOptions as S, TransactionConfirmation as T, SolanaChain as a, SolanaClient as b, SolanaCluster as c, SolanaConfig as d, SolanaContext as e, SolanaSignMessageResult as f, SolanaTransaction as g, SolanaWallet as h, SolanaWalletInfo as i };
119
+ /**
120
+ * Create a @solana/kit client for the given Solana configuration.
121
+ *
122
+ * The returned client exposes read-only `rpc` and `rpcSubscriptions`; use
123
+ * `client.rpc.getSlot().send()` and friends instead of the legacy
124
+ * `connection` APIs.
125
+ */
126
+ declare function createSolanaClient(config?: SolanaConfig): _solana_kit.Client<_solana_kit.ExtendedClient<object, {
127
+ rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
128
+ rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
129
+ }>>;
130
+ type SolanaClient = ReturnType<typeof createSolanaClient>;
131
+
132
+ export { createSolanaClient as n };
133
+ export type { ConfirmTransactionOptions as C, SendTransactionOptions as S, TransactionConfirmation as T, SolanaChain as a, SolanaClient as b, SolanaCluster as c, SolanaConfig as d, SolanaContext as e, SolanaSignInAccount as f, SolanaSignInInput as g, SolanaSignInResult as h, SolanaSignMessageResult as i, SolanaTransaction as j, SolanaWallet as k, SolanaWalletInfo as l, TransactionStatus as m };
@@ -1,21 +1,5 @@
1
- /// <reference path="../../types/web3-compat.d.ts" />
2
- /// <reference path="../../types/buffer.d.ts" />
3
- import { Commitment, SendOptions, Connection, Transaction, VersionedTransaction, PublicKey, TransactionSignature, RpcResponseAndContext, SignatureResult } from '@solana/web3-compat';
4
1
  import * as _solana_kit from '@solana/kit';
5
- import { Address } from '@solana/kit';
6
-
7
- /**
8
- * Create a @solana/kit client for the given Solana configuration.
9
- *
10
- * The returned client exposes read-only `rpc` and `rpcSubscriptions`; use
11
- * `client.rpc.getSlot().send()` and friends instead of the legacy
12
- * `connection` APIs.
13
- */
14
- declare function createSolanaClient(config?: SolanaConfig): _solana_kit.Client<_solana_kit.ExtendedClient<object, {
15
- rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
16
- rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
17
- }>>;
18
- type SolanaClient = ReturnType<typeof createSolanaClient>;
2
+ import { Commitment, Slot, Address, Signature } from '@solana/kit';
19
3
 
20
4
  type SolanaCluster = "mainnet-beta" | "testnet" | "devnet" | "localnet";
21
5
  type SolanaChain = "solana:mainnet" | "solana:testnet" | "solana:devnet" | "solana:localnet";
@@ -30,17 +14,42 @@ interface SolanaContext {
30
14
  cluster: SolanaCluster;
31
15
  endpoint: string;
32
16
  wsEndpoint: string;
33
- connection: Connection;
34
17
  client: SolanaClient;
35
18
  }
36
- type SolanaTransaction = Transaction | VersionedTransaction;
19
+ type SolanaTransaction = Uint8Array;
37
20
  interface SolanaSignMessageResult {
38
21
  signedMessage: Uint8Array;
39
22
  signature: Uint8Array;
40
23
  }
24
+ interface SolanaSignInAccount {
25
+ address: Address;
26
+ publicKey: Uint8Array;
27
+ chains: string[];
28
+ label?: string;
29
+ icon?: string;
30
+ }
31
+ interface SolanaSignInResult {
32
+ account: SolanaSignInAccount;
33
+ signedMessage: Uint8Array;
34
+ signature: Uint8Array;
35
+ signatureType?: "ed25519";
36
+ }
37
+ interface SolanaSignInInput {
38
+ domain?: string;
39
+ address?: string;
40
+ statement?: string;
41
+ uri?: string;
42
+ version?: string;
43
+ chainId?: string;
44
+ nonce?: string;
45
+ issuedAt?: string;
46
+ expirationTime?: string;
47
+ notBefore?: string;
48
+ requestId?: string;
49
+ resources?: readonly string[];
50
+ }
41
51
  interface SolanaWallet {
42
- publicKey: PublicKey | null;
43
- address?: Address;
52
+ publicKey: Address | null;
44
53
  connected: boolean;
45
54
  connecting?: boolean;
46
55
  disconnecting?: boolean;
@@ -49,11 +58,14 @@ interface SolanaWallet {
49
58
  connect: () => Promise<void>;
50
59
  disconnect: () => Promise<void>;
51
60
  signMessage?: (message: Uint8Array) => Promise<SolanaSignMessageResult>;
52
- signTransaction?: <T extends SolanaTransaction>(transaction: T) => Promise<T>;
53
- signAllTransactions?: <T extends SolanaTransaction>(transactions: T[]) => Promise<T[]>;
54
- signAndSendTransaction?: (transaction: SolanaTransaction, options?: SendOptions) => Promise<{
55
- signature: TransactionSignature;
61
+ signIn?: (input?: SolanaSignInInput) => Promise<SolanaSignInResult>;
62
+ signTransaction?: (transaction: SolanaTransaction) => Promise<SolanaTransaction>;
63
+ signAllTransactions?: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;
64
+ signTransactions?: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;
65
+ signAndSendTransaction?: (transaction: SolanaTransaction, options?: SendTransactionOptions) => Promise<{
66
+ signature: string;
56
67
  }>;
68
+ signAndSendTransactions?: (transactions: SolanaTransaction[], options?: SendTransactionOptions) => Promise<string[]>;
57
69
  }
58
70
  interface SolanaWalletInfo {
59
71
  name: string;
@@ -67,6 +79,7 @@ interface SolanaWalletInfo {
67
79
  capabilities?: {
68
80
  connect?: boolean;
69
81
  disconnect?: boolean;
82
+ signIn?: boolean;
70
83
  signMessage?: boolean;
71
84
  signTransaction?: boolean;
72
85
  signAllTransactions?: boolean;
@@ -81,18 +94,40 @@ interface SolanaWalletInfo {
81
94
  }[];
82
95
  wallet: unknown;
83
96
  }
84
- interface SendTransactionOptions extends SendOptions {
97
+ interface SendTransactionOptions {
85
98
  skipPreflight?: boolean;
99
+ maxRetries?: bigint;
100
+ minContextSlot?: Slot;
101
+ preflightCommitment?: Commitment;
86
102
  }
87
103
  interface ConfirmTransactionOptions {
88
104
  commitment?: Commitment;
89
105
  timeoutMs?: number;
90
106
  }
107
+ interface TransactionStatus {
108
+ slot: Slot;
109
+ confirmations: bigint | null;
110
+ err: unknown | null;
111
+ confirmationStatus: Commitment | null;
112
+ }
91
113
  interface TransactionConfirmation {
92
- signature: TransactionSignature;
114
+ signature: Signature;
93
115
  commitment: Commitment;
94
- result: RpcResponseAndContext<SignatureResult>;
116
+ status: TransactionStatus;
95
117
  }
96
118
 
97
- export { createSolanaClient as j };
98
- export type { ConfirmTransactionOptions as C, SendTransactionOptions as S, TransactionConfirmation as T, SolanaChain as a, SolanaClient as b, SolanaCluster as c, SolanaConfig as d, SolanaContext as e, SolanaSignMessageResult as f, SolanaTransaction as g, SolanaWallet as h, SolanaWalletInfo as i };
119
+ /**
120
+ * Create a @solana/kit client for the given Solana configuration.
121
+ *
122
+ * The returned client exposes read-only `rpc` and `rpcSubscriptions`; use
123
+ * `client.rpc.getSlot().send()` and friends instead of the legacy
124
+ * `connection` APIs.
125
+ */
126
+ declare function createSolanaClient(config?: SolanaConfig): _solana_kit.Client<_solana_kit.ExtendedClient<object, {
127
+ rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
128
+ rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
129
+ }>>;
130
+ type SolanaClient = ReturnType<typeof createSolanaClient>;
131
+
132
+ export { createSolanaClient as n };
133
+ export type { ConfirmTransactionOptions as C, SendTransactionOptions as S, TransactionConfirmation as T, SolanaChain as a, SolanaClient as b, SolanaCluster as c, SolanaConfig as d, SolanaContext as e, SolanaSignInAccount as f, SolanaSignInInput as g, SolanaSignInResult as h, SolanaSignMessageResult as i, SolanaTransaction as j, SolanaWallet as k, SolanaWalletInfo as l, TransactionStatus as m };
@@ -1,21 +1,5 @@
1
- /// <reference path="../../types/web3-compat.d.ts" />
2
- /// <reference path="../../types/buffer.d.ts" />
3
- import { Commitment, SendOptions, Connection, Transaction, VersionedTransaction, PublicKey, TransactionSignature, RpcResponseAndContext, SignatureResult } from '@solana/web3-compat';
4
1
  import * as _solana_kit from '@solana/kit';
5
- import { Address } from '@solana/kit';
6
-
7
- /**
8
- * Create a @solana/kit client for the given Solana configuration.
9
- *
10
- * The returned client exposes read-only `rpc` and `rpcSubscriptions`; use
11
- * `client.rpc.getSlot().send()` and friends instead of the legacy
12
- * `connection` APIs.
13
- */
14
- declare function createSolanaClient(config?: SolanaConfig): _solana_kit.Client<_solana_kit.ExtendedClient<object, {
15
- rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
16
- rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
17
- }>>;
18
- type SolanaClient = ReturnType<typeof createSolanaClient>;
2
+ import { Commitment, Slot, Address, Signature } from '@solana/kit';
19
3
 
20
4
  type SolanaCluster = "mainnet-beta" | "testnet" | "devnet" | "localnet";
21
5
  type SolanaChain = "solana:mainnet" | "solana:testnet" | "solana:devnet" | "solana:localnet";
@@ -30,17 +14,42 @@ interface SolanaContext {
30
14
  cluster: SolanaCluster;
31
15
  endpoint: string;
32
16
  wsEndpoint: string;
33
- connection: Connection;
34
17
  client: SolanaClient;
35
18
  }
36
- type SolanaTransaction = Transaction | VersionedTransaction;
19
+ type SolanaTransaction = Uint8Array;
37
20
  interface SolanaSignMessageResult {
38
21
  signedMessage: Uint8Array;
39
22
  signature: Uint8Array;
40
23
  }
24
+ interface SolanaSignInAccount {
25
+ address: Address;
26
+ publicKey: Uint8Array;
27
+ chains: string[];
28
+ label?: string;
29
+ icon?: string;
30
+ }
31
+ interface SolanaSignInResult {
32
+ account: SolanaSignInAccount;
33
+ signedMessage: Uint8Array;
34
+ signature: Uint8Array;
35
+ signatureType?: "ed25519";
36
+ }
37
+ interface SolanaSignInInput {
38
+ domain?: string;
39
+ address?: string;
40
+ statement?: string;
41
+ uri?: string;
42
+ version?: string;
43
+ chainId?: string;
44
+ nonce?: string;
45
+ issuedAt?: string;
46
+ expirationTime?: string;
47
+ notBefore?: string;
48
+ requestId?: string;
49
+ resources?: readonly string[];
50
+ }
41
51
  interface SolanaWallet {
42
- publicKey: PublicKey | null;
43
- address?: Address;
52
+ publicKey: Address | null;
44
53
  connected: boolean;
45
54
  connecting?: boolean;
46
55
  disconnecting?: boolean;
@@ -49,11 +58,14 @@ interface SolanaWallet {
49
58
  connect: () => Promise<void>;
50
59
  disconnect: () => Promise<void>;
51
60
  signMessage?: (message: Uint8Array) => Promise<SolanaSignMessageResult>;
52
- signTransaction?: <T extends SolanaTransaction>(transaction: T) => Promise<T>;
53
- signAllTransactions?: <T extends SolanaTransaction>(transactions: T[]) => Promise<T[]>;
54
- signAndSendTransaction?: (transaction: SolanaTransaction, options?: SendOptions) => Promise<{
55
- signature: TransactionSignature;
61
+ signIn?: (input?: SolanaSignInInput) => Promise<SolanaSignInResult>;
62
+ signTransaction?: (transaction: SolanaTransaction) => Promise<SolanaTransaction>;
63
+ signAllTransactions?: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;
64
+ signTransactions?: (transactions: SolanaTransaction[]) => Promise<SolanaTransaction[]>;
65
+ signAndSendTransaction?: (transaction: SolanaTransaction, options?: SendTransactionOptions) => Promise<{
66
+ signature: string;
56
67
  }>;
68
+ signAndSendTransactions?: (transactions: SolanaTransaction[], options?: SendTransactionOptions) => Promise<string[]>;
57
69
  }
58
70
  interface SolanaWalletInfo {
59
71
  name: string;
@@ -67,6 +79,7 @@ interface SolanaWalletInfo {
67
79
  capabilities?: {
68
80
  connect?: boolean;
69
81
  disconnect?: boolean;
82
+ signIn?: boolean;
70
83
  signMessage?: boolean;
71
84
  signTransaction?: boolean;
72
85
  signAllTransactions?: boolean;
@@ -81,18 +94,40 @@ interface SolanaWalletInfo {
81
94
  }[];
82
95
  wallet: unknown;
83
96
  }
84
- interface SendTransactionOptions extends SendOptions {
97
+ interface SendTransactionOptions {
85
98
  skipPreflight?: boolean;
99
+ maxRetries?: bigint;
100
+ minContextSlot?: Slot;
101
+ preflightCommitment?: Commitment;
86
102
  }
87
103
  interface ConfirmTransactionOptions {
88
104
  commitment?: Commitment;
89
105
  timeoutMs?: number;
90
106
  }
107
+ interface TransactionStatus {
108
+ slot: Slot;
109
+ confirmations: bigint | null;
110
+ err: unknown | null;
111
+ confirmationStatus: Commitment | null;
112
+ }
91
113
  interface TransactionConfirmation {
92
- signature: TransactionSignature;
114
+ signature: Signature;
93
115
  commitment: Commitment;
94
- result: RpcResponseAndContext<SignatureResult>;
116
+ status: TransactionStatus;
95
117
  }
96
118
 
97
- export { createSolanaClient as j };
98
- export type { ConfirmTransactionOptions as C, SendTransactionOptions as S, TransactionConfirmation as T, SolanaChain as a, SolanaClient as b, SolanaCluster as c, SolanaConfig as d, SolanaContext as e, SolanaSignMessageResult as f, SolanaTransaction as g, SolanaWallet as h, SolanaWalletInfo as i };
119
+ /**
120
+ * Create a @solana/kit client for the given Solana configuration.
121
+ *
122
+ * The returned client exposes read-only `rpc` and `rpcSubscriptions`; use
123
+ * `client.rpc.getSlot().send()` and friends instead of the legacy
124
+ * `connection` APIs.
125
+ */
126
+ declare function createSolanaClient(config?: SolanaConfig): _solana_kit.Client<_solana_kit.ExtendedClient<object, {
127
+ rpc: _solana_kit.Rpc<_solana_kit.RequestAirdropApi & _solana_kit.GetAccountInfoApi & _solana_kit.GetAgGenesisCertApi & _solana_kit.GetBalanceApi & _solana_kit.GetBlockApi & _solana_kit.GetBlockCommitmentApi & _solana_kit.GetBlockHeightApi & _solana_kit.GetBlockProductionApi & _solana_kit.GetBlocksApi & _solana_kit.GetBlocksWithLimitApi & _solana_kit.GetBlockTimeApi & _solana_kit.GetClusterNodesApi & _solana_kit.GetEpochInfoApi & _solana_kit.GetEpochScheduleApi & _solana_kit.GetFeeForMessageApi & _solana_kit.GetFirstAvailableBlockApi & _solana_kit.GetGenesisHashApi & _solana_kit.GetHealthApi & _solana_kit.GetHighestSnapshotSlotApi & _solana_kit.GetIdentityApi & _solana_kit.GetInflationGovernorApi & _solana_kit.GetInflationRateApi & _solana_kit.GetInflationRewardApi & _solana_kit.GetLargestAccountsApi & _solana_kit.GetLatestBlockhashApi & _solana_kit.GetLeaderScheduleApi & _solana_kit.GetMaxRetransmitSlotApi & _solana_kit.GetMaxShredInsertSlotApi & _solana_kit.GetMinimumBalanceForRentExemptionApi & _solana_kit.GetMultipleAccountsApi & _solana_kit.GetProgramAccountsApi & _solana_kit.GetRecentPerformanceSamplesApi & _solana_kit.GetRecentPrioritizationFeesApi & _solana_kit.GetSignaturesForAddressApi & _solana_kit.GetSignatureStatusesApi & _solana_kit.GetSlotApi & _solana_kit.GetSlotLeaderApi & _solana_kit.GetSlotLeadersApi & _solana_kit.GetStakeMinimumDelegationApi & _solana_kit.GetSupplyApi & _solana_kit.GetTokenAccountBalanceApi & _solana_kit.GetTokenAccountsByDelegateApi & _solana_kit.GetTokenAccountsByOwnerApi & _solana_kit.GetTokenLargestAccountsApi & _solana_kit.GetTokenSupplyApi & _solana_kit.GetTransactionApi & _solana_kit.GetTransactionCountApi & _solana_kit.GetTransactionsForAddressApi & _solana_kit.GetVersionApi & _solana_kit.GetVoteAccountsApi & _solana_kit.IsBlockhashValidApi & _solana_kit.MinimumLedgerSlotApi & _solana_kit.SendTransactionApi & _solana_kit.SimulateTransactionApi>;
128
+ rpcSubscriptions: _solana_kit.RpcSubscriptions<_solana_kit.SolanaRpcSubscriptionsApi>;
129
+ }>>;
130
+ type SolanaClient = ReturnType<typeof createSolanaClient>;
131
+
132
+ export { createSolanaClient as n };
133
+ export type { ConfirmTransactionOptions as C, SendTransactionOptions as S, TransactionConfirmation as T, SolanaChain as a, SolanaClient as b, SolanaCluster as c, SolanaConfig as d, SolanaContext as e, SolanaSignInAccount as f, SolanaSignInInput as g, SolanaSignInResult as h, SolanaSignMessageResult as i, SolanaTransaction as j, SolanaWallet as k, SolanaWalletInfo as l, TransactionStatus as m };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const web3Compat = require('@solana/web3-compat');
3
+ const kit = require('@solana/kit');
4
4
  const bs58 = require('bs58');
5
5
  const naclModule = require('tweetnacl');
6
6
 
@@ -225,7 +225,7 @@ function getStoredIosWalletAccount(walletId, chains) {
225
225
  return [
226
226
  {
227
227
  address: session.publicKey,
228
- publicKey: new web3Compat.PublicKey(session.publicKey).toBytes(),
228
+ publicKey: bs58__default.decode(session.publicKey),
229
229
  chains
230
230
  }
231
231
  ];
@@ -237,7 +237,9 @@ function getStoredSession(walletId) {
237
237
  }
238
238
  try {
239
239
  const session = JSON.parse(value);
240
- new web3Compat.PublicKey(session.publicKey);
240
+ if (!kit.isAddress(session.publicKey)) {
241
+ throw new Error("Invalid stored public key");
242
+ }
241
243
  return session;
242
244
  } catch {
243
245
  removeStoredSession(walletId);
@@ -390,27 +392,12 @@ function getStringField(payload, field) {
390
392
  }
391
393
  function getPublicKeyField(payload, field) {
392
394
  const value = getStringField(payload, field);
393
- try {
394
- new web3Compat.PublicKey(value);
395
- } catch {
395
+ if (!kit.isAddress(value)) {
396
396
  throw new Error(`iOS wallet callback returned an invalid ${field}`);
397
397
  }
398
398
  return value;
399
399
  }
400
400
 
401
- function serializeTransaction(transaction) {
402
- if (transaction instanceof web3Compat.Transaction) {
403
- return transaction.serialize({ requireAllSignatures: false, verifySignatures: false });
404
- }
405
- return transaction.serialize();
406
- }
407
- function deserializeTransaction(source, bytes) {
408
- if (source instanceof web3Compat.Transaction) {
409
- return web3Compat.Transaction.from(bytes);
410
- }
411
- return web3Compat.VersionedTransaction.deserialize(bytes);
412
- }
413
-
414
401
  function launchConnect(definition, options) {
415
402
  const keyPair = nacl.box.keyPair();
416
403
  const pending = createPendingRequest(definition.id, "connect", keyPair, options.redirectUrl);
@@ -427,7 +414,7 @@ function launchConnect(definition, options) {
427
414
  }
428
415
  async function launchSignTransaction(definition, transaction, options) {
429
416
  const response = await launchEncryptedWalletRequest(definition, "signTransaction", options, {
430
- transaction: bs58__default.encode(serializeTransaction(transaction))
417
+ transaction: bs58__default.encode(transaction)
431
418
  });
432
419
  if (!response.transaction) {
433
420
  throw new Error("iOS wallet did not return a signed transaction");
@@ -436,7 +423,7 @@ async function launchSignTransaction(definition, transaction, options) {
436
423
  }
437
424
  async function launchSignAllTransactions(definition, transactions, options) {
438
425
  const response = await launchEncryptedWalletRequest(definition, "signAllTransactions", options, {
439
- transactions: transactions.map((transaction) => bs58__default.encode(serializeTransaction(transaction)))
426
+ transactions: transactions.map((transaction) => bs58__default.encode(transaction))
440
427
  });
441
428
  if (!response.transactions) {
442
429
  throw new Error("iOS wallet did not return signed transactions");
@@ -449,7 +436,7 @@ async function launchSignAndSendTransaction(definition, transaction, sendOptions
449
436
  "signAndSendTransaction",
450
437
  options,
451
438
  {
452
- transaction: bs58__default.encode(serializeTransaction(transaction)),
439
+ transaction: bs58__default.encode(transaction),
453
440
  sendOptions
454
441
  }
455
442
  );
@@ -534,7 +521,7 @@ function adaptSolanaIosWallet(walletInfo, options = {}) {
534
521
  }
535
522
  return {
536
523
  get publicKey() {
537
- return session?.publicKey ? new web3Compat.PublicKey(session.publicKey) : null;
524
+ return session?.publicKey ? session.publicKey : null;
538
525
  },
539
526
  get connected() {
540
527
  return Boolean(session?.publicKey && session.session);
@@ -573,8 +560,7 @@ function adaptSolanaIosWallet(walletInfo, options = {}) {
573
560
  }
574
561
  },
575
562
  signTransaction: definition.signTransactionUrl ? async (transaction) => {
576
- const signedTransaction = await launchSignTransaction(definition, transaction, options);
577
- return deserializeTransaction(transaction, signedTransaction);
563
+ return launchSignTransaction(definition, transaction, options);
578
564
  } : void 0,
579
565
  signAllTransactions: definition.signAllTransactionsUrl ? async (transactions) => {
580
566
  const signedTransactions = await launchSignAllTransactions(
@@ -587,9 +573,7 @@ function adaptSolanaIosWallet(walletInfo, options = {}) {
587
573
  `iOS wallet returned ${signedTransactions.length} signed transactions for ${transactions.length} requested transactions`
588
574
  );
589
575
  }
590
- return signedTransactions.map(
591
- (transaction, index) => deserializeTransaction(transactions[index], transaction)
592
- );
576
+ return signedTransactions;
593
577
  } : void 0,
594
578
  signAndSendTransaction: definition.signAndSendTransactionUrl ? async (transaction, sendOptions) => launchSignAndSendTransaction(definition, transaction, sendOptions, options) : void 0
595
579
  };