@dynamic-labs-sdk/solana 0.1.0-alpha.3 → 0.1.0-alpha.30

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 (49) hide show
  1. package/CHANGELOG.md +303 -0
  2. package/addSolanaWalletStandardExtension.cjs.js +118 -156
  3. package/addSolanaWalletStandardExtension.esm.js +121 -159
  4. package/addWaasSolanaExtension.cjs.js +60 -74
  5. package/addWaasSolanaExtension.esm.js +62 -76
  6. package/index.cjs.js +66 -21
  7. package/index.esm.js +64 -21
  8. package/isVersionedTransaction.cjs.js +1 -42
  9. package/isVersionedTransaction.esm.js +2 -42
  10. package/package.json +5 -5
  11. package/src/SolanaWalletProvider.types.d.ts +21 -3
  12. package/src/SolanaWalletProvider.types.d.ts.map +1 -1
  13. package/src/exports/index.d.ts +3 -1
  14. package/src/exports/index.d.ts.map +1 -1
  15. package/src/signAllTransactions/index.d.ts +2 -0
  16. package/src/signAllTransactions/index.d.ts.map +1 -0
  17. package/src/signAllTransactions/signAllTransactions.d.ts +18 -0
  18. package/src/signAllTransactions/signAllTransactions.d.ts.map +1 -0
  19. package/src/signAndSendTransaction/index.d.ts +2 -0
  20. package/src/signAndSendTransaction/index.d.ts.map +1 -0
  21. package/src/signAndSendTransaction/signAndSendTransaction.d.ts +18 -0
  22. package/src/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -0
  23. package/src/signTransaction/index.d.ts +2 -0
  24. package/src/signTransaction/index.d.ts.map +1 -0
  25. package/src/signTransaction/signTransaction.d.ts +18 -0
  26. package/src/signTransaction/signTransaction.d.ts.map +1 -0
  27. package/src/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts.map +1 -1
  28. package/src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +1 -1
  29. package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts.map +1 -1
  30. package/src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts +7 -0
  31. package/src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts.map +1 -0
  32. package/src/walletStandard/utils/getActiveNetworkCluster/index.d.ts +2 -0
  33. package/src/walletStandard/utils/getActiveNetworkCluster/index.d.ts.map +1 -0
  34. package/waas.cjs.js +0 -1
  35. package/waas.esm.js +0 -1
  36. package/src/SolanaSigner.types.d.ts +0 -40
  37. package/src/SolanaSigner.types.d.ts.map +0 -1
  38. package/src/getSigner/getSigner.d.ts +0 -16
  39. package/src/getSigner/getSigner.d.ts.map +0 -1
  40. package/src/getSigner/index.d.ts +0 -2
  41. package/src/getSigner/index.d.ts.map +0 -1
  42. package/src/waas/utils/createSolanaSignerFromSolanaWaasProvider/createSolanaSignerFromSolanaWaasProvider.d.ts +0 -11
  43. package/src/waas/utils/createSolanaSignerFromSolanaWaasProvider/createSolanaSignerFromSolanaWaasProvider.d.ts.map +0 -1
  44. package/src/waas/utils/createSolanaSignerFromSolanaWaasProvider/index.d.ts +0 -2
  45. package/src/waas/utils/createSolanaSignerFromSolanaWaasProvider/index.d.ts.map +0 -1
  46. package/src/walletStandard/utils/createSolanaSignerFromSolanaStandardWallet/createSolanaSignerFromSolanaStandardWallet.d.ts +0 -10
  47. package/src/walletStandard/utils/createSolanaSignerFromSolanaStandardWallet/createSolanaSignerFromSolanaStandardWallet.d.ts.map +0 -1
  48. package/src/walletStandard/utils/createSolanaSignerFromSolanaStandardWallet/index.d.ts +0 -2
  49. package/src/walletStandard/utils/createSolanaSignerFromSolanaStandardWallet/index.d.ts.map +0 -1
@@ -1,10 +1,9 @@
1
- import { MethodNotImplementedError, getBuffer, formatWalletProviderKey, formatWalletProviderGroupKey, switchActiveNetworkInLastKnownRegistry, getActiveNetworkIdFromLastKnownRegistry, assertDefined, getDefaultClient, hasExtension, registerExtension, getWalletProviderRegistry, WalletProviderPriority } from '@dynamic-labs-sdk/client/core';
2
- import { _ as _extends, c as createEmptyEventEmitter, i as isVersionedTransaction } from './isVersionedTransaction.esm.js';
1
+ import { formatWalletProviderKey, formatWalletProviderGroupKey, switchActiveNetworkInLastKnownRegistry, getActiveNetworkIdFromLastKnownRegistry, getBuffer, assertDefined, getDefaultClient, hasExtension, registerExtension, getWalletProviderRegistry, WalletProviderPriority } from '@dynamic-labs-sdk/client/core';
2
+ import { _ as _extends, i as isVersionedTransaction } from './isVersionedTransaction.esm.js';
3
3
  import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
4
4
  import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from '@dynamic-labs-sdk/client/waas/core';
5
5
  import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
6
6
  import { Connection, PublicKey } from '@solana/web3.js';
7
- import bs58 from 'bs58';
8
7
 
9
8
  /**
10
9
  * Returns a new Solana connection for the given network provider.
@@ -28,66 +27,14 @@ import bs58 from 'bs58';
28
27
  return new Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
29
28
  };
30
29
 
31
- const createSolanaSignerFromSolanaWaasProvider = ({ networkData, waasProvider, walletAccount })=>{
32
- const publicKey = new PublicKey(walletAccount.address);
33
- const signAndSendTransaction = async (transaction)=>{
34
- const signedTransaction = await signTransaction(transaction);
35
- const connection = getSolanaConnection({
36
- networkData
37
- });
38
- const rawTransaction = signedTransaction.serialize();
39
- const signature = await connection.sendRawTransaction(rawTransaction);
40
- return {
41
- signature
42
- };
43
- };
44
- const signMessage = async (messageArrayBuffer)=>{
45
- const message = bs58.encode(messageArrayBuffer);
46
- const { signature } = await waasProvider.signMessage({
47
- message,
48
- walletAccount
49
- });
50
- return {
51
- signature: bs58.decode(signature)
52
- };
53
- };
54
- const signTransaction = async (transaction)=>{
55
- const messageBytes = isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
56
- const serializedTransaction = getBuffer().from(messageBytes).toString('hex');
57
- const { signature } = await waasProvider.signSerializedTransaction({
58
- serializedTransaction,
59
- walletAccount
60
- });
61
- transaction.addSignature(publicKey, getBuffer().from(signature, 'hex'));
62
- transaction.serialize({
63
- requireAllSignatures: false,
64
- verifySignatures: true
65
- });
66
- return transaction;
67
- };
68
- const signAllTransactions = async (transactions)=>{
69
- return Promise.all(transactions.map(signTransaction));
70
- };
71
- return _extends({}, createEmptyEventEmitter(), {
72
- connect: ()=>{
73
- throw new MethodNotImplementedError('connect');
74
- },
75
- disconnect: ()=>{
76
- throw new MethodNotImplementedError('disconnect');
77
- },
78
- isConnected: true,
79
- providers: [],
80
- publicKey,
81
- signAllTransactions,
82
- signAndSendTransaction,
83
- signMessage,
84
- signTransaction
85
- });
86
- };
87
-
88
30
  const createWalletProviderForWaasSolana = (sdkClient)=>{
89
31
  const chain = 'SOL';
90
- const key = formatWalletProviderKey(DYNAMIC_WAAS_METADATA.name, chain);
32
+ const walletProviderType = WalletProviderEnum.EmbeddedWallet;
33
+ const key = formatWalletProviderKey({
34
+ chain,
35
+ displayName: DYNAMIC_WAAS_METADATA.displayName,
36
+ walletProviderType
37
+ });
91
38
  const waasProvider = createWaasProvider({
92
39
  chain,
93
40
  sdkClient
@@ -109,22 +56,59 @@ const createWalletProviderForWaasSolana = (sdkClient)=>{
109
56
  addresses: waasSolanaAddresses
110
57
  };
111
58
  };
112
- const signMessage = async ({ message, walletAccount })=>{
113
- assertDefined(walletAccount, 'Wallet account is required');
114
- return waasProvider.signMessage({
115
- message,
59
+ const signAndSendTransaction = async ({ transaction, walletAccount })=>{
60
+ const { signedTransaction } = await signTransaction({
61
+ transaction,
116
62
  walletAccount
117
63
  });
118
- };
119
- const getSigner = async (walletAccount)=>{
120
- assertDefined(walletAccount, 'Wallet account is required');
121
64
  const { networkData } = await getActiveNetworkData({
122
65
  walletAccount
123
66
  }, sdkClient);
124
67
  assertDefined(networkData, 'Network data is required');
125
- return createSolanaSignerFromSolanaWaasProvider({
126
- networkData,
127
- waasProvider,
68
+ const connection = getSolanaConnection({
69
+ networkData
70
+ });
71
+ const rawTransaction = signedTransaction.serialize();
72
+ const signature = await connection.sendRawTransaction(rawTransaction);
73
+ return {
74
+ signature
75
+ };
76
+ };
77
+ const signTransaction = async ({ transaction, walletAccount })=>{
78
+ const messageBytes = isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
79
+ const serializedTransaction = getBuffer()// eslint-disable-next-line @typescript-eslint/no-explicit-any
80
+ .from(messageBytes).toString('hex');
81
+ const { signature } = await waasProvider.signSerializedTransaction({
82
+ serializedTransaction,
83
+ walletAccount
84
+ });
85
+ const publicKey = new PublicKey(walletAccount.address);
86
+ transaction.addSignature(publicKey, // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
+ getBuffer().from(signature, 'hex'));
88
+ transaction.serialize({
89
+ requireAllSignatures: false,
90
+ verifySignatures: true
91
+ });
92
+ return {
93
+ signedTransaction: transaction
94
+ };
95
+ };
96
+ const signAllTransactions = async ({ transactions, walletAccount })=>{
97
+ const signedTransactions = await Promise.all(transactions.map(async (transaction)=>{
98
+ const { signedTransaction } = await signTransaction({
99
+ transaction,
100
+ walletAccount
101
+ });
102
+ return signedTransaction;
103
+ }));
104
+ return {
105
+ signedTransactions
106
+ };
107
+ };
108
+ const signMessage = async ({ message, walletAccount })=>{
109
+ assertDefined(walletAccount, 'Wallet account is required');
110
+ return waasProvider.signMessage({
111
+ message,
128
112
  walletAccount
129
113
  });
130
114
  };
@@ -132,16 +116,18 @@ const createWalletProviderForWaasSolana = (sdkClient)=>{
132
116
  chain,
133
117
  getActiveNetworkId,
134
118
  getConnectedAddresses,
135
- getSigner,
136
- getWalletProviderType: ()=>WalletProviderEnum.EmbeddedWallet,
137
- groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.name),
119
+ groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),
138
120
  key,
139
121
  metadata: {
140
- displayName: DYNAMIC_WAAS_METADATA.name,
122
+ displayName: DYNAMIC_WAAS_METADATA.displayName,
141
123
  icon: DYNAMIC_WAAS_METADATA.icon
142
124
  },
125
+ signAllTransactions,
126
+ signAndSendTransaction,
143
127
  signMessage,
144
- switchActiveNetwork
128
+ signTransaction,
129
+ switchActiveNetwork,
130
+ walletProviderType
145
131
  });
146
132
  };
147
133
 
package/index.cjs.js CHANGED
@@ -9,8 +9,8 @@ var client = require('@dynamic-labs-sdk/client');
9
9
  require('@dynamic-labs-sdk/client/waas/core');
10
10
  require('@dynamic-labs/sdk-api-core');
11
11
  require('@solana/web3.js');
12
- require('bs58');
13
12
  require('@wallet-standard/app');
13
+ require('bs58');
14
14
 
15
15
  /**
16
16
  * Adds the Solana extension to the Dynamic client.
@@ -38,49 +38,94 @@ class NotSolanaProviderError extends client.BaseError {
38
38
  }
39
39
  }
40
40
 
41
+ /**
42
+ * Type guard function to check if a network provider is a Solana network provider.
43
+ *
44
+ * @param networkProvider - The network provider to check.
45
+ * @returns True if the network provider is a Solana network provider, false otherwise.
46
+ */ const isSolanaNetworkProvider = (networkProvider)=>networkProvider.chain === 'SOL';
47
+
48
+ /**
49
+ * Type guard function to check if a wallet account is a Solana wallet account.
50
+ *
51
+ * @param walletAccount - The wallet account to check.
52
+ * @returns True if the wallet account is a Solana wallet account, false otherwise.
53
+ */ const isSolanaWalletAccount = (walletAccount)=>walletAccount.chain === 'SOL';
54
+
41
55
  const isSolanaWalletProvider = (provider)=>{
42
56
  return provider.chain === 'SOL';
43
57
  };
44
58
 
45
59
  /**
46
- * Gets a Solana signer instance from a wallet account.
47
- * You can use this signer to sign Solana transactions.
48
- *
49
- * @param params.walletAccount - The wallet account to get the signer for.
60
+ * Signs multiple Solana transactions
61
+ * @param params.transactions - The transactions to sign
62
+ * @param params.walletAccount - The wallet account to sign the transactions with
50
63
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
51
- * @returns A promise that resolves to a Solana signer instance.
52
- * @throws NotSolanaProviderError When the wallet account's provider is not a Solana provider.
53
- */ const getSigner = async ({ walletAccount }, client = core.getDefaultClient())=>{
64
+ * @returns An object containing the signed transactions
65
+ */ const signAllTransactions = async ({ walletAccount, transactions }, client$1 = client.getDefaultClient())=>{
54
66
  const provider = core.getWalletProviderFromWalletAccount({
55
67
  walletAccount
56
- }, client);
68
+ }, client$1);
57
69
  if (!isSolanaWalletProvider(provider)) {
58
70
  throw new NotSolanaProviderError({
59
71
  providerKey: provider.key
60
72
  });
61
73
  }
62
- return provider.getSigner(walletAccount);
74
+ return provider.signAllTransactions({
75
+ transactions,
76
+ walletAccount
77
+ });
63
78
  };
64
79
 
65
80
  /**
66
- * Type guard function to check if a network provider is a Solana network provider.
67
- *
68
- * @param networkProvider - The network provider to check.
69
- * @returns True if the network provider is a Solana network provider, false otherwise.
70
- */ const isSolanaNetworkProvider = (networkProvider)=>networkProvider.chain === 'SOL';
81
+ * Signs and sends a Solana transaction
82
+ * @param params.transaction - The transaction to sign and send
83
+ * @param params.walletAccount - The wallet account to sign and send the transaction with
84
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
85
+ * @returns An object containing the signature
86
+ */ const signAndSendTransaction = async ({ walletAccount, transaction }, client$1 = client.getDefaultClient())=>{
87
+ const provider = core.getWalletProviderFromWalletAccount({
88
+ walletAccount
89
+ }, client$1);
90
+ if (!isSolanaWalletProvider(provider)) {
91
+ throw new NotSolanaProviderError({
92
+ providerKey: provider.key
93
+ });
94
+ }
95
+ return provider.signAndSendTransaction({
96
+ transaction,
97
+ walletAccount
98
+ });
99
+ };
71
100
 
72
101
  /**
73
- * Type guard function to check if a wallet account is a Solana wallet account.
74
- *
75
- * @param walletAccount - The wallet account to check.
76
- * @returns True if the wallet account is a Solana wallet account, false otherwise.
77
- */ const isSolanaWalletAccount = (walletAccount)=>walletAccount.chain === 'SOL';
102
+ * Signs a Solana transaction
103
+ * @param params.transaction - The transaction to sign
104
+ * @param params.walletAccount - The wallet account to sign the transaction with
105
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
106
+ * @returns An object containing the signed transaction
107
+ */ const signTransaction = async ({ walletAccount, transaction }, client$1 = client.getDefaultClient())=>{
108
+ const provider = core.getWalletProviderFromWalletAccount({
109
+ walletAccount
110
+ }, client$1);
111
+ if (!isSolanaWalletProvider(provider)) {
112
+ throw new NotSolanaProviderError({
113
+ providerKey: provider.key
114
+ });
115
+ }
116
+ return provider.signTransaction({
117
+ transaction,
118
+ walletAccount
119
+ });
120
+ };
78
121
 
79
122
  assertPackageVersion.assertPackageVersion(isVersionedTransaction.name, isVersionedTransaction.version);
80
123
 
81
124
  exports.getSolanaConnection = addWaasSolanaExtension.getSolanaConnection;
82
125
  exports.NotSolanaProviderError = NotSolanaProviderError;
83
126
  exports.addSolanaExtension = addSolanaExtension;
84
- exports.getSigner = getSigner;
85
127
  exports.isSolanaNetworkProvider = isSolanaNetworkProvider;
86
128
  exports.isSolanaWalletAccount = isSolanaWalletAccount;
129
+ exports.signAllTransactions = signAllTransactions;
130
+ exports.signAndSendTransaction = signAndSendTransaction;
131
+ exports.signTransaction = signTransaction;
package/index.esm.js CHANGED
@@ -4,12 +4,12 @@ import { getDefaultClient, getWalletProviderFromWalletAccount } from '@dynamic-l
4
4
  import { a as addWaasSolanaExtension } from './addWaasSolanaExtension.esm.js';
5
5
  export { g as getSolanaConnection } from './addWaasSolanaExtension.esm.js';
6
6
  import { a as addSolanaWalletStandardExtension } from './addSolanaWalletStandardExtension.esm.js';
7
- import { BaseError } from '@dynamic-labs-sdk/client';
7
+ import { BaseError, getDefaultClient as getDefaultClient$1 } from '@dynamic-labs-sdk/client';
8
8
  import '@dynamic-labs-sdk/client/waas/core';
9
9
  import '@dynamic-labs/sdk-api-core';
10
10
  import '@solana/web3.js';
11
- import 'bs58';
12
11
  import '@wallet-standard/app';
12
+ import 'bs58';
13
13
 
14
14
  /**
15
15
  * Adds the Solana extension to the Dynamic client.
@@ -37,19 +37,31 @@ class NotSolanaProviderError extends BaseError {
37
37
  }
38
38
  }
39
39
 
40
+ /**
41
+ * Type guard function to check if a network provider is a Solana network provider.
42
+ *
43
+ * @param networkProvider - The network provider to check.
44
+ * @returns True if the network provider is a Solana network provider, false otherwise.
45
+ */ const isSolanaNetworkProvider = (networkProvider)=>networkProvider.chain === 'SOL';
46
+
47
+ /**
48
+ * Type guard function to check if a wallet account is a Solana wallet account.
49
+ *
50
+ * @param walletAccount - The wallet account to check.
51
+ * @returns True if the wallet account is a Solana wallet account, false otherwise.
52
+ */ const isSolanaWalletAccount = (walletAccount)=>walletAccount.chain === 'SOL';
53
+
40
54
  const isSolanaWalletProvider = (provider)=>{
41
55
  return provider.chain === 'SOL';
42
56
  };
43
57
 
44
58
  /**
45
- * Gets a Solana signer instance from a wallet account.
46
- * You can use this signer to sign Solana transactions.
47
- *
48
- * @param params.walletAccount - The wallet account to get the signer for.
59
+ * Signs multiple Solana transactions
60
+ * @param params.transactions - The transactions to sign
61
+ * @param params.walletAccount - The wallet account to sign the transactions with
49
62
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
50
- * @returns A promise that resolves to a Solana signer instance.
51
- * @throws NotSolanaProviderError When the wallet account's provider is not a Solana provider.
52
- */ const getSigner = async ({ walletAccount }, client = getDefaultClient())=>{
63
+ * @returns An object containing the signed transactions
64
+ */ const signAllTransactions = async ({ walletAccount, transactions }, client = getDefaultClient$1())=>{
53
65
  const provider = getWalletProviderFromWalletAccount({
54
66
  walletAccount
55
67
  }, client);
@@ -58,23 +70,54 @@ const isSolanaWalletProvider = (provider)=>{
58
70
  providerKey: provider.key
59
71
  });
60
72
  }
61
- return provider.getSigner(walletAccount);
73
+ return provider.signAllTransactions({
74
+ transactions,
75
+ walletAccount
76
+ });
62
77
  };
63
78
 
64
79
  /**
65
- * Type guard function to check if a network provider is a Solana network provider.
66
- *
67
- * @param networkProvider - The network provider to check.
68
- * @returns True if the network provider is a Solana network provider, false otherwise.
69
- */ const isSolanaNetworkProvider = (networkProvider)=>networkProvider.chain === 'SOL';
80
+ * Signs and sends a Solana transaction
81
+ * @param params.transaction - The transaction to sign and send
82
+ * @param params.walletAccount - The wallet account to sign and send the transaction with
83
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
84
+ * @returns An object containing the signature
85
+ */ const signAndSendTransaction = async ({ walletAccount, transaction }, client = getDefaultClient$1())=>{
86
+ const provider = getWalletProviderFromWalletAccount({
87
+ walletAccount
88
+ }, client);
89
+ if (!isSolanaWalletProvider(provider)) {
90
+ throw new NotSolanaProviderError({
91
+ providerKey: provider.key
92
+ });
93
+ }
94
+ return provider.signAndSendTransaction({
95
+ transaction,
96
+ walletAccount
97
+ });
98
+ };
70
99
 
71
100
  /**
72
- * Type guard function to check if a wallet account is a Solana wallet account.
73
- *
74
- * @param walletAccount - The wallet account to check.
75
- * @returns True if the wallet account is a Solana wallet account, false otherwise.
76
- */ const isSolanaWalletAccount = (walletAccount)=>walletAccount.chain === 'SOL';
101
+ * Signs a Solana transaction
102
+ * @param params.transaction - The transaction to sign
103
+ * @param params.walletAccount - The wallet account to sign the transaction with
104
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
105
+ * @returns An object containing the signed transaction
106
+ */ const signTransaction = async ({ walletAccount, transaction }, client = getDefaultClient$1())=>{
107
+ const provider = getWalletProviderFromWalletAccount({
108
+ walletAccount
109
+ }, client);
110
+ if (!isSolanaWalletProvider(provider)) {
111
+ throw new NotSolanaProviderError({
112
+ providerKey: provider.key
113
+ });
114
+ }
115
+ return provider.signTransaction({
116
+ transaction,
117
+ walletAccount
118
+ });
119
+ };
77
120
 
78
121
  assertPackageVersion(name, version);
79
122
 
80
- export { NotSolanaProviderError, addSolanaExtension, getSigner, isSolanaNetworkProvider, isSolanaWalletAccount };
123
+ export { NotSolanaProviderError, addSolanaExtension, isSolanaNetworkProvider, isSolanaWalletAccount, signAllTransactions, signAndSendTransaction, signTransaction };
@@ -1,9 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var core = require('@dynamic-labs-sdk/client/core');
4
-
5
3
  var name = "@dynamic-labs-sdk/solana";
6
- var version = "0.1.0-alpha.3";
4
+ var version = "0.1.0-alpha.30";
7
5
 
8
6
  function _extends() {
9
7
  _extends = Object.assign || function assign(target) {
@@ -16,48 +14,9 @@ function _extends() {
16
14
  return _extends.apply(this, arguments);
17
15
  }
18
16
 
19
- /**
20
- * Creates an empty event emitter that throws a MethodNotImplementedError when any method is called.
21
- * This is useful for creating a signer that doesn't need to emit events.
22
- */ const createEmptyEventEmitter = ()=>{
23
- return {
24
- addListener: ()=>{
25
- throw new core.MethodNotImplementedError('addListener');
26
- },
27
- emit: ()=>{
28
- throw new core.MethodNotImplementedError('emit');
29
- },
30
- eventNames: ()=>{
31
- return [];
32
- },
33
- listenerCount: ()=>{
34
- return 0;
35
- },
36
- listeners: ()=>{
37
- return [];
38
- },
39
- off: ()=>{
40
- throw new core.MethodNotImplementedError('off');
41
- },
42
- on: ()=>{
43
- throw new core.MethodNotImplementedError('on');
44
- },
45
- once: ()=>{
46
- throw new core.MethodNotImplementedError('once');
47
- },
48
- removeAllListeners: ()=>{
49
- throw new core.MethodNotImplementedError('removeAllListeners');
50
- },
51
- removeListener: ()=>{
52
- throw new core.MethodNotImplementedError('removeListener');
53
- }
54
- };
55
- };
56
-
57
17
  const isVersionedTransaction = (transaction)=>!('instructions' in transaction);
58
18
 
59
19
  exports._extends = _extends;
60
- exports.createEmptyEventEmitter = createEmptyEventEmitter;
61
20
  exports.isVersionedTransaction = isVersionedTransaction;
62
21
  exports.name = name;
63
22
  exports.version = version;
@@ -1,7 +1,5 @@
1
- import { MethodNotImplementedError } from '@dynamic-labs-sdk/client/core';
2
-
3
1
  var name = "@dynamic-labs-sdk/solana";
4
- var version = "0.1.0-alpha.3";
2
+ var version = "0.1.0-alpha.30";
5
3
 
6
4
  function _extends() {
7
5
  _extends = Object.assign || function assign(target) {
@@ -14,44 +12,6 @@ function _extends() {
14
12
  return _extends.apply(this, arguments);
15
13
  }
16
14
 
17
- /**
18
- * Creates an empty event emitter that throws a MethodNotImplementedError when any method is called.
19
- * This is useful for creating a signer that doesn't need to emit events.
20
- */ const createEmptyEventEmitter = ()=>{
21
- return {
22
- addListener: ()=>{
23
- throw new MethodNotImplementedError('addListener');
24
- },
25
- emit: ()=>{
26
- throw new MethodNotImplementedError('emit');
27
- },
28
- eventNames: ()=>{
29
- return [];
30
- },
31
- listenerCount: ()=>{
32
- return 0;
33
- },
34
- listeners: ()=>{
35
- return [];
36
- },
37
- off: ()=>{
38
- throw new MethodNotImplementedError('off');
39
- },
40
- on: ()=>{
41
- throw new MethodNotImplementedError('on');
42
- },
43
- once: ()=>{
44
- throw new MethodNotImplementedError('once');
45
- },
46
- removeAllListeners: ()=>{
47
- throw new MethodNotImplementedError('removeAllListeners');
48
- },
49
- removeListener: ()=>{
50
- throw new MethodNotImplementedError('removeListener');
51
- }
52
- };
53
- };
54
-
55
15
  const isVersionedTransaction = (transaction)=>!('instructions' in transaction);
56
16
 
57
- export { _extends as _, createEmptyEventEmitter as c, isVersionedTransaction as i, name as n, version as v };
17
+ export { _extends as _, isVersionedTransaction as i, name as n, version as v };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs-sdk/solana",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.1.0-alpha.30",
4
4
  "type": "module",
5
5
  "main": "./index.cjs.js",
6
6
  "module": "./index.esm.js",
@@ -24,15 +24,15 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@dynamic-labs-sdk/assert-package-version": "0.1.0-alpha.3",
28
- "@dynamic-labs-sdk/client": "0.1.0-alpha.3",
29
- "@dynamic-labs/sdk-api-core": "0.0.762",
27
+ "@dynamic-labs-sdk/assert-package-version": "0.1.0-alpha.30",
28
+ "@dynamic-labs-sdk/client": "0.1.0-alpha.30",
29
+ "@dynamic-labs/sdk-api-core": "0.0.823",
30
30
  "@solana/web3.js": "1.98.1",
31
31
  "@wallet-standard/app": "1.0.1",
32
32
  "@wallet-standard/base": "1.0.1",
33
33
  "@wallet-standard/experimental-features": "0.1.1",
34
34
  "@wallet-standard/features": "1.0.3",
35
35
  "bs58": "6.0.0",
36
- "eventemitter3": "^5.0.1"
36
+ "eventemitter3": "5.0.1"
37
37
  }
38
38
  }
@@ -1,11 +1,29 @@
1
1
  /**
2
2
  * Solana wallet provider specific types
3
3
  */
4
- import type { WalletAccount } from '@dynamic-labs-sdk/client';
5
4
  import type { WalletProvider } from '@dynamic-labs-sdk/client/core';
6
- import type { SolanaSigner } from './SolanaSigner.types';
5
+ import type { SendOptions, Transaction, VersionedTransaction } from '@solana/web3.js';
6
+ import type { SolanaWalletAccount } from './SolanaWalletAccount.types';
7
7
  export type SolanaWalletProvider = WalletProvider & {
8
8
  chain: 'SOL';
9
- getSigner(walletAccount?: WalletAccount): Promise<SolanaSigner>;
9
+ signAllTransactions<T extends Transaction | VersionedTransaction>({ transactions, walletAccount, }: {
10
+ transactions: T[];
11
+ walletAccount: SolanaWalletAccount;
12
+ }): Promise<{
13
+ signedTransactions: T[];
14
+ }>;
15
+ signAndSendTransaction<T extends Transaction | VersionedTransaction>({ transaction, options, walletAccount, }: {
16
+ options?: SendOptions;
17
+ transaction: T;
18
+ walletAccount: SolanaWalletAccount;
19
+ }): Promise<{
20
+ signature: string;
21
+ }>;
22
+ signTransaction<T extends Transaction | VersionedTransaction>({ transaction, walletAccount, }: {
23
+ transaction: T;
24
+ walletAccount: SolanaWalletAccount;
25
+ }): Promise<{
26
+ signedTransaction: T;
27
+ }>;
10
28
  };
11
29
  //# sourceMappingURL=SolanaWalletProvider.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolanaWalletProvider.types.d.ts","sourceRoot":"","sources":["../../../../packages/solana/src/SolanaWalletProvider.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACjE,CAAC"}
1
+ {"version":3,"file":"SolanaWalletProvider.types.d.ts","sourceRoot":"","sources":["../../../../packages/solana/src/SolanaWalletProvider.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,KAAK,EAAE,KAAK,CAAC;IACb,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAChE,YAAY,EACZ,aAAa,GACd,EAAE;QACD,YAAY,EAAE,CAAC,EAAE,CAAC;QAClB,aAAa,EAAE,mBAAmB,CAAC;KACpC,GAAG,OAAO,CAAC;QAAE,kBAAkB,EAAE,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;IACzC,sBAAsB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EACnE,WAAW,EACX,OAAO,EACP,aAAa,GACd,EAAE;QACD,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,WAAW,EAAE,CAAC,CAAC;QACf,aAAa,EAAE,mBAAmB,CAAC;KACpC,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnC,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAC5D,WAAW,EACX,aAAa,GACd,EAAE;QACD,WAAW,EAAE,CAAC,CAAC;QACf,aAAa,EAAE,mBAAmB,CAAC;KACpC,GAAG,OAAO,CAAC;QAAE,iBAAiB,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CACvC,CAAC"}
@@ -1,9 +1,11 @@
1
1
  export { addSolanaExtension } from '../addSolanaExtension';
2
2
  export { NotSolanaProviderError } from '../errors/NotSolanaProviderError';
3
- export { getSigner } from '../getSigner';
4
3
  export { getSolanaConnection } from '../getSolanaConnection';
5
4
  export { isSolanaNetworkProvider } from '../isSolanaNetworkProvider';
6
5
  export { isSolanaWalletAccount } from '../isSolanaWalletAccount';
7
6
  export type { SolanaNetworkProvider } from '../SolanaNetworkProvider.types';
8
7
  export type { SolanaWalletAccount } from '../SolanaWalletAccount.types';
8
+ export { signAllTransactions } from '../signAllTransactions';
9
+ export { signAndSendTransaction } from '../signAndSendTransaction';
10
+ export { signTransaction } from '../signTransaction';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/solana/src/exports/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/solana/src/exports/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { signAllTransactions } from './signAllTransactions';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/solana/src/signAllTransactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Transaction, VersionedTransaction } from '@solana/web3.js';
2
+ import type { SolanaWalletAccount } from '../SolanaWalletAccount.types';
3
+ type SignAllTransactionsParams = {
4
+ transactions: (Transaction | VersionedTransaction)[];
5
+ walletAccount: SolanaWalletAccount;
6
+ };
7
+ /**
8
+ * Signs multiple Solana transactions
9
+ * @param params.transactions - The transactions to sign
10
+ * @param params.walletAccount - The wallet account to sign the transactions with
11
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
12
+ * @returns An object containing the signed transactions
13
+ */
14
+ export declare const signAllTransactions: ({ walletAccount, transactions }: SignAllTransactionsParams, client?: any) => Promise<{
15
+ signedTransactions: (Transaction | VersionedTransaction)[];
16
+ }>;
17
+ export {};
18
+ //# sourceMappingURL=signAllTransactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signAllTransactions.d.ts","sourceRoot":"","sources":["../../../../../packages/solana/src/signAllTransactions/signAllTransactions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,KAAK,yBAAyB,GAAG;IAC/B,YAAY,EAAE,CAAC,WAAW,GAAG,oBAAoB,CAAC,EAAE,CAAC;IACrD,aAAa,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,oCACG,yBAAyB,mBAEzD,OAAO,CAAC;IAAE,kBAAkB,EAAE,CAAC,WAAW,GAAG,oBAAoB,CAAC,EAAE,CAAA;CAAE,CAaxE,CAAC"}