@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.
- package/CHANGELOG.md +303 -0
- package/addSolanaWalletStandardExtension.cjs.js +118 -156
- package/addSolanaWalletStandardExtension.esm.js +121 -159
- package/addWaasSolanaExtension.cjs.js +60 -74
- package/addWaasSolanaExtension.esm.js +62 -76
- package/index.cjs.js +66 -21
- package/index.esm.js +64 -21
- package/isVersionedTransaction.cjs.js +1 -42
- package/isVersionedTransaction.esm.js +2 -42
- package/package.json +5 -5
- package/src/SolanaWalletProvider.types.d.ts +21 -3
- package/src/SolanaWalletProvider.types.d.ts.map +1 -1
- package/src/exports/index.d.ts +3 -1
- package/src/exports/index.d.ts.map +1 -1
- package/src/signAllTransactions/index.d.ts +2 -0
- package/src/signAllTransactions/index.d.ts.map +1 -0
- package/src/signAllTransactions/signAllTransactions.d.ts +18 -0
- package/src/signAllTransactions/signAllTransactions.d.ts.map +1 -0
- package/src/signAndSendTransaction/index.d.ts +2 -0
- package/src/signAndSendTransaction/index.d.ts.map +1 -0
- package/src/signAndSendTransaction/signAndSendTransaction.d.ts +18 -0
- package/src/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -0
- package/src/signTransaction/index.d.ts +2 -0
- package/src/signTransaction/index.d.ts.map +1 -0
- package/src/signTransaction/signTransaction.d.ts +18 -0
- package/src/signTransaction/signTransaction.d.ts.map +1 -0
- package/src/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts.map +1 -1
- package/src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +1 -1
- package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts.map +1 -1
- package/src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts +7 -0
- package/src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts.map +1 -0
- package/src/walletStandard/utils/getActiveNetworkCluster/index.d.ts +2 -0
- package/src/walletStandard/utils/getActiveNetworkCluster/index.d.ts.map +1 -0
- package/waas.cjs.js +0 -1
- package/waas.esm.js +0 -1
- package/src/SolanaSigner.types.d.ts +0 -40
- package/src/SolanaSigner.types.d.ts.map +0 -1
- package/src/getSigner/getSigner.d.ts +0 -16
- package/src/getSigner/getSigner.d.ts.map +0 -1
- package/src/getSigner/index.d.ts +0 -2
- package/src/getSigner/index.d.ts.map +0 -1
- package/src/waas/utils/createSolanaSignerFromSolanaWaasProvider/createSolanaSignerFromSolanaWaasProvider.d.ts +0 -11
- package/src/waas/utils/createSolanaSignerFromSolanaWaasProvider/createSolanaSignerFromSolanaWaasProvider.d.ts.map +0 -1
- package/src/waas/utils/createSolanaSignerFromSolanaWaasProvider/index.d.ts +0 -2
- package/src/waas/utils/createSolanaSignerFromSolanaWaasProvider/index.d.ts.map +0 -1
- package/src/walletStandard/utils/createSolanaSignerFromSolanaStandardWallet/createSolanaSignerFromSolanaStandardWallet.d.ts +0 -10
- package/src/walletStandard/utils/createSolanaSignerFromSolanaStandardWallet/createSolanaSignerFromSolanaStandardWallet.d.ts.map +0 -1
- package/src/walletStandard/utils/createSolanaSignerFromSolanaStandardWallet/index.d.ts +0 -2
- package/src/walletStandard/utils/createSolanaSignerFromSolanaStandardWallet/index.d.ts.map +0 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { _ as _extends,
|
|
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
|
|
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
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
126
|
-
networkData
|
|
127
|
-
|
|
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
|
-
|
|
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.
|
|
122
|
+
displayName: DYNAMIC_WAAS_METADATA.displayName,
|
|
141
123
|
icon: DYNAMIC_WAAS_METADATA.icon
|
|
142
124
|
},
|
|
125
|
+
signAllTransactions,
|
|
126
|
+
signAndSendTransaction,
|
|
143
127
|
signMessage,
|
|
144
|
-
|
|
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
|
-
*
|
|
47
|
-
*
|
|
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
|
|
52
|
-
|
|
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.
|
|
74
|
+
return provider.signAllTransactions({
|
|
75
|
+
transactions,
|
|
76
|
+
walletAccount
|
|
77
|
+
});
|
|
63
78
|
};
|
|
64
79
|
|
|
65
80
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* @param
|
|
69
|
-
* @
|
|
70
|
-
|
|
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
|
-
*
|
|
74
|
-
*
|
|
75
|
-
* @param walletAccount - The wallet account to
|
|
76
|
-
* @
|
|
77
|
-
|
|
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
|
-
*
|
|
46
|
-
*
|
|
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
|
|
51
|
-
|
|
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.
|
|
73
|
+
return provider.signAllTransactions({
|
|
74
|
+
transactions,
|
|
75
|
+
walletAccount
|
|
76
|
+
});
|
|
62
77
|
};
|
|
63
78
|
|
|
64
79
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* @param
|
|
68
|
-
* @
|
|
69
|
-
|
|
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
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* @param walletAccount - The wallet account to
|
|
75
|
-
* @
|
|
76
|
-
|
|
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,
|
|
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.
|
|
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.
|
|
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 _,
|
|
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
|
+
"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.
|
|
28
|
-
"@dynamic-labs-sdk/client": "0.1.0-alpha.
|
|
29
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
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": "
|
|
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 {
|
|
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
|
-
|
|
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,
|
|
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"}
|
package/src/exports/index.d.ts
CHANGED
|
@@ -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,
|
|
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 @@
|
|
|
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"}
|