@dynamic-labs-sdk/solana 0.1.1 → 0.2.3
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/dist/SolanaNetworkProvider.types.d.ts.map +1 -0
- package/dist/SolanaWalletAccount.types.d.ts.map +1 -0
- package/dist/SolanaWalletProvider.types.d.ts.map +1 -0
- package/{src → dist}/addSolanaExtension/addSolanaExtension.d.ts +1 -1
- package/dist/addSolanaExtension/addSolanaExtension.d.ts.map +1 -0
- package/dist/addSolanaExtension/index.d.ts.map +1 -0
- package/dist/addSolanaWalletStandardExtension-BToyMUc9.cjs.js +231 -0
- package/dist/addSolanaWalletStandardExtension-BToyMUc9.cjs.js.map +1 -0
- package/dist/addSolanaWalletStandardExtension-nZhmVofg.esm.js +192 -0
- package/dist/addSolanaWalletStandardExtension-nZhmVofg.esm.js.map +1 -0
- package/dist/addWaasSolanaExtension-CUJHPuv5.esm.js +145 -0
- package/dist/addWaasSolanaExtension-CUJHPuv5.esm.js.map +1 -0
- package/dist/addWaasSolanaExtension-DB0ZNIuG.cjs.js +157 -0
- package/dist/addWaasSolanaExtension-DB0ZNIuG.cjs.js.map +1 -0
- package/dist/errors/NotSolanaProviderError/NotSolanaProviderError.d.ts.map +1 -0
- package/dist/errors/NotSolanaProviderError/index.d.ts.map +1 -0
- package/dist/exports/index.d.ts.map +1 -0
- package/dist/exports/waas.d.ts.map +1 -0
- package/dist/exports/walletStandard.d.ts.map +1 -0
- package/dist/getSolanaConnection/getSolanaConnection.d.ts.map +1 -0
- package/dist/getSolanaConnection/index.d.ts.map +1 -0
- package/dist/index.cjs.js +132 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.esm.js +125 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/isSolanaNetworkProvider/index.d.ts.map +1 -0
- package/dist/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts.map +1 -0
- package/dist/isSolanaWalletAccount/index.d.ts.map +1 -0
- package/dist/isSolanaWalletAccount/isSolanaWalletAccount.d.ts.map +1 -0
- package/dist/isSolanaWalletProvider/index.d.ts.map +1 -0
- package/dist/isSolanaWalletProvider/isSolanaWalletProvider.d.ts.map +1 -0
- package/dist/isVersionedTransaction-B-yrMKci.esm.js +48 -0
- package/dist/isVersionedTransaction-B-yrMKci.esm.js.map +1 -0
- package/dist/isVersionedTransaction-BAaz3ONI.cjs.js +72 -0
- package/dist/isVersionedTransaction-BAaz3ONI.cjs.js.map +1 -0
- package/dist/registerSolanaNetworkProviderBuilder/index.d.ts.map +1 -0
- package/dist/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.d.ts.map +1 -0
- package/dist/signAllTransactions/index.d.ts.map +1 -0
- package/{src → dist}/signAllTransactions/signAllTransactions.d.ts +1 -1
- package/dist/signAllTransactions/signAllTransactions.d.ts.map +1 -0
- package/dist/signAndSendTransaction/index.d.ts.map +1 -0
- package/{src → dist}/signAndSendTransaction/signAndSendTransaction.d.ts +1 -1
- package/dist/signAndSendTransaction/signAndSendTransaction.d.ts.map +1 -0
- package/dist/signTransaction/index.d.ts.map +1 -0
- package/{src → dist}/signTransaction/signTransaction.d.ts +1 -1
- package/dist/signTransaction/signTransaction.d.ts.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/utils/createEmptyEventEmitter/createEmptyEventEmitter.d.ts.map +1 -0
- package/dist/utils/createEmptyEventEmitter/index.d.ts.map +1 -0
- package/dist/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts.map +1 -0
- package/dist/utils/createSolanaNetworkProvider/index.d.ts.map +1 -0
- package/dist/utils/fetchSolBalance/fetchSolBalance.d.ts.map +1 -0
- package/dist/utils/fetchSolBalance/index.d.ts.map +1 -0
- package/dist/utils/isVersionedTransaction/index.d.ts.map +1 -0
- package/dist/utils/isVersionedTransaction/isVersionedTransaction.d.ts.map +1 -0
- package/dist/waas/WaasSolanaWalletProvider.types.d.ts.map +1 -0
- package/{src → dist}/waas/addWaasSolanaExtension/addWaasSolanaExtension.d.ts +1 -1
- package/dist/waas/addWaasSolanaExtension/addWaasSolanaExtension.d.ts.map +1 -0
- package/dist/waas/addWaasSolanaExtension/index.d.ts.map +1 -0
- package/dist/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +1 -0
- package/dist/waas/utils/createWalletProviderForWaasSolana/index.d.ts.map +1 -0
- package/dist/waas.cjs.js +11 -0
- package/dist/waas.cjs.js.map +1 -0
- package/dist/waas.esm.js +10 -0
- package/dist/waas.esm.js.map +1 -0
- package/{src → dist}/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts +1 -1
- package/dist/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts.map +1 -0
- package/dist/walletStandard/addSolanaWalletStandardExtension/index.d.ts.map +1 -0
- package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts.map +1 -0
- package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/getActiveNetworkId.d.ts.map +1 -0
- package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/index.d.ts.map +1 -0
- package/dist/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/index.d.ts.map +1 -0
- package/dist/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts.map +1 -0
- package/dist/walletStandard/utils/getActiveNetworkCluster/index.d.ts.map +1 -0
- package/{src → dist}/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts +1 -1
- package/dist/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts.map +1 -0
- package/dist/walletStandard/utils/getFeaturesForSolanaStandardWallet/index.d.ts.map +1 -0
- package/dist/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.d.ts.map +1 -0
- package/dist/walletStandard/utils/hasAllRequiredFeatures/index.d.ts.map +1 -0
- package/dist/walletStandard.cjs.js +10 -0
- package/dist/walletStandard.cjs.js.map +1 -0
- package/dist/walletStandard.esm.js +10 -0
- package/dist/walletStandard.esm.js.map +1 -0
- package/package.json +31 -17
- package/CHANGELOG.md +0 -600
- package/addSolanaWalletStandardExtension.cjs.js +0 -268
- package/addSolanaWalletStandardExtension.esm.js +0 -266
- package/addWaasSolanaExtension.cjs.js +0 -163
- package/addWaasSolanaExtension.esm.js +0 -160
- package/index.cjs.d.ts +0 -1
- package/index.cjs.js +0 -131
- package/index.esm.d.ts +0 -1
- package/index.esm.js +0 -123
- package/isVersionedTransaction.cjs.js +0 -64
- package/isVersionedTransaction.esm.js +0 -58
- package/src/SolanaNetworkProvider.types.d.ts.map +0 -1
- package/src/SolanaWalletAccount.types.d.ts.map +0 -1
- package/src/SolanaWalletProvider.types.d.ts.map +0 -1
- package/src/addSolanaExtension/addSolanaExtension.d.ts.map +0 -1
- package/src/addSolanaExtension/index.d.ts.map +0 -1
- package/src/errors/NotSolanaProviderError/NotSolanaProviderError.d.ts.map +0 -1
- package/src/errors/NotSolanaProviderError/index.d.ts.map +0 -1
- package/src/exports/index.d.ts.map +0 -1
- package/src/exports/waas.d.ts.map +0 -1
- package/src/exports/walletStandard.d.ts.map +0 -1
- package/src/getSolanaConnection/getSolanaConnection.d.ts.map +0 -1
- package/src/getSolanaConnection/index.d.ts.map +0 -1
- package/src/isSolanaNetworkProvider/index.d.ts.map +0 -1
- package/src/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts.map +0 -1
- package/src/isSolanaWalletAccount/index.d.ts.map +0 -1
- package/src/isSolanaWalletAccount/isSolanaWalletAccount.d.ts.map +0 -1
- package/src/isSolanaWalletProvider/index.d.ts.map +0 -1
- package/src/isSolanaWalletProvider/isSolanaWalletProvider.d.ts.map +0 -1
- package/src/registerSolanaNetworkProviderBuilder/index.d.ts.map +0 -1
- package/src/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.d.ts.map +0 -1
- package/src/signAllTransactions/index.d.ts.map +0 -1
- package/src/signAllTransactions/signAllTransactions.d.ts.map +0 -1
- package/src/signAndSendTransaction/index.d.ts.map +0 -1
- package/src/signAndSendTransaction/signAndSendTransaction.d.ts.map +0 -1
- package/src/signTransaction/index.d.ts.map +0 -1
- package/src/signTransaction/signTransaction.d.ts.map +0 -1
- package/src/utils/createEmptyEventEmitter/createEmptyEventEmitter.d.ts.map +0 -1
- package/src/utils/createEmptyEventEmitter/index.d.ts.map +0 -1
- package/src/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts.map +0 -1
- package/src/utils/createSolanaNetworkProvider/index.d.ts.map +0 -1
- package/src/utils/fetchSolBalance/fetchSolBalance.d.ts.map +0 -1
- package/src/utils/fetchSolBalance/index.d.ts.map +0 -1
- package/src/utils/isVersionedTransaction/index.d.ts.map +0 -1
- package/src/utils/isVersionedTransaction/isVersionedTransaction.d.ts.map +0 -1
- package/src/waas/WaasSolanaWalletProvider.types.d.ts.map +0 -1
- package/src/waas/addWaasSolanaExtension/addWaasSolanaExtension.d.ts.map +0 -1
- package/src/waas/addWaasSolanaExtension/index.d.ts.map +0 -1
- package/src/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts.map +0 -1
- package/src/waas/utils/createWalletProviderForWaasSolana/index.d.ts.map +0 -1
- package/src/walletStandard/addSolanaWalletStandardExtension/addSolanaWalletStandardExtension.d.ts.map +0 -1
- package/src/walletStandard/addSolanaWalletStandardExtension/index.d.ts.map +0 -1
- package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts.map +0 -1
- package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/getActiveNetworkId.d.ts.map +0 -1
- package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/index.d.ts.map +0 -1
- package/src/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/index.d.ts.map +0 -1
- package/src/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts.map +0 -1
- package/src/walletStandard/utils/getActiveNetworkCluster/index.d.ts.map +0 -1
- package/src/walletStandard/utils/getFeaturesForSolanaStandardWallet/getFeaturesForSolanaStandardWallet.d.ts.map +0 -1
- package/src/walletStandard/utils/getFeaturesForSolanaStandardWallet/index.d.ts.map +0 -1
- package/src/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.d.ts.map +0 -1
- package/src/walletStandard/utils/hasAllRequiredFeatures/index.d.ts.map +0 -1
- package/waas.cjs.d.ts +0 -1
- package/waas.cjs.js +0 -14
- package/waas.esm.d.ts +0 -1
- package/waas.esm.js +0 -10
- package/walletStandard.cjs.d.ts +0 -1
- package/walletStandard.cjs.js +0 -15
- package/walletStandard.esm.d.ts +0 -1
- package/walletStandard.esm.js +0 -11
- /package/{src → dist}/SolanaNetworkProvider.types.d.ts +0 -0
- /package/{src → dist}/SolanaWalletAccount.types.d.ts +0 -0
- /package/{src → dist}/SolanaWalletProvider.types.d.ts +0 -0
- /package/{src → dist}/addSolanaExtension/index.d.ts +0 -0
- /package/{src → dist}/errors/NotSolanaProviderError/NotSolanaProviderError.d.ts +0 -0
- /package/{src → dist}/errors/NotSolanaProviderError/index.d.ts +0 -0
- /package/{src → dist}/exports/index.d.ts +0 -0
- /package/{src → dist}/exports/waas.d.ts +0 -0
- /package/{src → dist}/exports/walletStandard.d.ts +0 -0
- /package/{src → dist}/getSolanaConnection/getSolanaConnection.d.ts +0 -0
- /package/{src → dist}/getSolanaConnection/index.d.ts +0 -0
- /package/{src → dist}/isSolanaNetworkProvider/index.d.ts +0 -0
- /package/{src → dist}/isSolanaNetworkProvider/isSolanaNetworkProvider.d.ts +0 -0
- /package/{src → dist}/isSolanaWalletAccount/index.d.ts +0 -0
- /package/{src → dist}/isSolanaWalletAccount/isSolanaWalletAccount.d.ts +0 -0
- /package/{src → dist}/isSolanaWalletProvider/index.d.ts +0 -0
- /package/{src → dist}/isSolanaWalletProvider/isSolanaWalletProvider.d.ts +0 -0
- /package/{src → dist}/registerSolanaNetworkProviderBuilder/index.d.ts +0 -0
- /package/{src → dist}/registerSolanaNetworkProviderBuilder/registerSolanaNetworkProviderBuilder.d.ts +0 -0
- /package/{src → dist}/signAllTransactions/index.d.ts +0 -0
- /package/{src → dist}/signAndSendTransaction/index.d.ts +0 -0
- /package/{src → dist}/signTransaction/index.d.ts +0 -0
- /package/{src → dist}/utils/createEmptyEventEmitter/createEmptyEventEmitter.d.ts +0 -0
- /package/{src → dist}/utils/createEmptyEventEmitter/index.d.ts +0 -0
- /package/{src → dist}/utils/createSolanaNetworkProvider/createSolanaNetworkProvider.d.ts +0 -0
- /package/{src → dist}/utils/createSolanaNetworkProvider/index.d.ts +0 -0
- /package/{src → dist}/utils/fetchSolBalance/fetchSolBalance.d.ts +0 -0
- /package/{src → dist}/utils/fetchSolBalance/index.d.ts +0 -0
- /package/{src → dist}/utils/isVersionedTransaction/index.d.ts +0 -0
- /package/{src → dist}/utils/isVersionedTransaction/isVersionedTransaction.d.ts +0 -0
- /package/{src → dist}/waas/WaasSolanaWalletProvider.types.d.ts +0 -0
- /package/{src → dist}/waas/addWaasSolanaExtension/index.d.ts +0 -0
- /package/{src → dist}/waas/utils/createWalletProviderForWaasSolana/createWalletProviderForWaasSolana.d.ts +0 -0
- /package/{src → dist}/waas/utils/createWalletProviderForWaasSolana/index.d.ts +0 -0
- /package/{src → dist}/walletStandard/addSolanaWalletStandardExtension/index.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/createWalletProviderFromSolanaStandardWallet.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/getActiveNetworkId.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/getActiveNetworkId/index.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/createWalletProviderFromSolanaStandardWallet/index.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/getActiveNetworkCluster/getActiveNetworkCluster.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/getActiveNetworkCluster/index.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/getFeaturesForSolanaStandardWallet/index.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/hasAllRequiredFeatures/hasAllRequiredFeatures.d.ts +0 -0
- /package/{src → dist}/walletStandard/utils/hasAllRequiredFeatures/index.d.ts +0 -0
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var core = require('@dynamic-labs-sdk/client/core');
|
|
4
|
-
var isVersionedTransaction = require('./isVersionedTransaction.cjs.js');
|
|
5
|
-
var client = require('@dynamic-labs-sdk/client');
|
|
6
|
-
var core$1 = require('@dynamic-labs-sdk/client/waas/core');
|
|
7
|
-
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
8
|
-
var web3_js = require('@solana/web3.js');
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Returns a new Solana connection for the given network provider.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
|
|
16
|
-
* import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';
|
|
17
|
-
*
|
|
18
|
-
* const { networkData } = getActiveNetworkData({ walletAccount });
|
|
19
|
-
*
|
|
20
|
-
* if(!networkData) {
|
|
21
|
-
* throw new Error('No network data found');
|
|
22
|
-
* }
|
|
23
|
-
*
|
|
24
|
-
* const connection = getSolanaConnection({
|
|
25
|
-
* networkData,
|
|
26
|
-
* });
|
|
27
|
-
* ```
|
|
28
|
-
*/ const getSolanaConnection = ({ networkData, commitmentOrConfig })=>{
|
|
29
|
-
return new web3_js.Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const createWalletProviderForWaasSolana = (sdkClient)=>{
|
|
33
|
-
const chain = 'SOL';
|
|
34
|
-
const walletProviderType = sdkApiCore.WalletProviderEnum.EmbeddedWallet;
|
|
35
|
-
const key = core.formatWalletProviderKey({
|
|
36
|
-
chain,
|
|
37
|
-
displayName: core$1.DYNAMIC_WAAS_METADATA.displayName,
|
|
38
|
-
walletProviderType
|
|
39
|
-
});
|
|
40
|
-
const waasProvider = core$1.createWaasProvider({
|
|
41
|
-
chain,
|
|
42
|
-
sdkClient
|
|
43
|
-
});
|
|
44
|
-
const getActiveNetworkId = async ()=>core.getActiveNetworkIdFromLastKnownRegistry({
|
|
45
|
-
client: sdkClient,
|
|
46
|
-
walletProviderKey: key
|
|
47
|
-
});
|
|
48
|
-
const switchActiveNetwork = async ({ networkId })=>core.switchActiveNetworkInLastKnownRegistry({
|
|
49
|
-
client: sdkClient,
|
|
50
|
-
networkId,
|
|
51
|
-
walletProviderKey: key
|
|
52
|
-
});
|
|
53
|
-
const getConnectedAddresses = async ()=>{
|
|
54
|
-
const waasSolanaAddresses = core$1.getAllUserWaasAddressesForChain({
|
|
55
|
-
chain
|
|
56
|
-
}, sdkClient);
|
|
57
|
-
return {
|
|
58
|
-
addresses: waasSolanaAddresses
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
const signAndSendTransaction = async ({ transaction, walletAccount })=>{
|
|
62
|
-
const { signedTransaction } = await signTransaction({
|
|
63
|
-
transaction,
|
|
64
|
-
walletAccount
|
|
65
|
-
});
|
|
66
|
-
const { networkData } = await client.getActiveNetworkData({
|
|
67
|
-
walletAccount
|
|
68
|
-
}, sdkClient);
|
|
69
|
-
core.assertDefined(networkData, 'Network data is required');
|
|
70
|
-
const connection = getSolanaConnection({
|
|
71
|
-
networkData
|
|
72
|
-
});
|
|
73
|
-
const rawTransaction = signedTransaction.serialize();
|
|
74
|
-
const signature = await connection.sendRawTransaction(rawTransaction);
|
|
75
|
-
return {
|
|
76
|
-
signature
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
const signTransaction = async ({ transaction, walletAccount })=>{
|
|
80
|
-
const messageBytes = isVersionedTransaction.isVersionedTransaction(transaction) ? transaction.message.serialize() : transaction.serializeMessage();
|
|
81
|
-
const serializedTransaction = core.getBuffer()// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
82
|
-
.from(messageBytes).toString('hex');
|
|
83
|
-
const { signature } = await waasProvider.signSerializedTransaction({
|
|
84
|
-
serializedTransaction,
|
|
85
|
-
walletAccount
|
|
86
|
-
});
|
|
87
|
-
const publicKey = new web3_js.PublicKey(walletAccount.address);
|
|
88
|
-
transaction.addSignature(publicKey, // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
|
-
core.getBuffer().from(signature, 'hex'));
|
|
90
|
-
transaction.serialize({
|
|
91
|
-
requireAllSignatures: false,
|
|
92
|
-
verifySignatures: true
|
|
93
|
-
});
|
|
94
|
-
return {
|
|
95
|
-
signedTransaction: transaction
|
|
96
|
-
};
|
|
97
|
-
};
|
|
98
|
-
const signAllTransactions = async ({ transactions, walletAccount })=>{
|
|
99
|
-
const signedTransactions = await Promise.all(transactions.map(async (transaction)=>{
|
|
100
|
-
const { signedTransaction } = await signTransaction({
|
|
101
|
-
transaction,
|
|
102
|
-
walletAccount
|
|
103
|
-
});
|
|
104
|
-
return signedTransaction;
|
|
105
|
-
}));
|
|
106
|
-
return {
|
|
107
|
-
signedTransactions
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
const signMessage = async ({ message, walletAccount })=>{
|
|
111
|
-
core.assertDefined(walletAccount, 'Wallet account is required');
|
|
112
|
-
return waasProvider.signMessage({
|
|
113
|
-
message,
|
|
114
|
-
walletAccount
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
return isVersionedTransaction._extends({}, waasProvider, {
|
|
118
|
-
chain,
|
|
119
|
-
getActiveNetworkId,
|
|
120
|
-
getConnectedAddresses,
|
|
121
|
-
groupKey: core.formatWalletProviderGroupKey(core$1.DYNAMIC_WAAS_METADATA.displayName),
|
|
122
|
-
key,
|
|
123
|
-
metadata: {
|
|
124
|
-
displayName: core$1.DYNAMIC_WAAS_METADATA.displayName,
|
|
125
|
-
icon: core$1.DYNAMIC_WAAS_METADATA.icon
|
|
126
|
-
},
|
|
127
|
-
signAllTransactions,
|
|
128
|
-
signAndSendTransaction,
|
|
129
|
-
signMessage,
|
|
130
|
-
signTransaction,
|
|
131
|
-
switchActiveNetwork,
|
|
132
|
-
walletProviderType
|
|
133
|
-
});
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
const WAAS_SOLANA_EXTENSION_KEY = 'waasSolana';
|
|
137
|
-
/**
|
|
138
|
-
* Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.
|
|
139
|
-
*
|
|
140
|
-
* This extension enables embedded wallet functionality for Solana blockchain,
|
|
141
|
-
* allowing users to have wallets managed by Dynamic's infrastructure.
|
|
142
|
-
*
|
|
143
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
144
|
-
*/ const addWaasSolanaExtension = (client = core.getDefaultClient())=>{
|
|
145
|
-
if (core.hasExtension({
|
|
146
|
-
extensionKey: WAAS_SOLANA_EXTENSION_KEY
|
|
147
|
-
}, client)) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
core.registerExtension({
|
|
151
|
-
extensionKey: WAAS_SOLANA_EXTENSION_KEY
|
|
152
|
-
}, client);
|
|
153
|
-
isVersionedTransaction.registerSolanaNetworkProviderBuilder(client);
|
|
154
|
-
const walletProviderRegistry = core.getWalletProviderRegistry(client);
|
|
155
|
-
const walletProvider = createWalletProviderForWaasSolana(client);
|
|
156
|
-
walletProviderRegistry.register({
|
|
157
|
-
priority: core.WalletProviderPriority.WALLET_SDK,
|
|
158
|
-
walletProvider
|
|
159
|
-
});
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
exports.addWaasSolanaExtension = addWaasSolanaExtension;
|
|
163
|
-
exports.getSolanaConnection = getSolanaConnection;
|
|
@@ -1,160 +0,0 @@
|
|
|
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, r as registerSolanaNetworkProviderBuilder } from './isVersionedTransaction.esm.js';
|
|
3
|
-
import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
|
|
4
|
-
import { DYNAMIC_WAAS_METADATA, createWaasProvider, getAllUserWaasAddressesForChain } from '@dynamic-labs-sdk/client/waas/core';
|
|
5
|
-
import { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
|
|
6
|
-
import { Connection, PublicKey } from '@solana/web3.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Returns a new Solana connection for the given network provider.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* import { getActiveNetworkData } from '@dynamic-labs-sdk/client';
|
|
14
|
-
* import { isSolanaNetworkProvider, getSolanaConnection } from '@dynamic-labs-sdk/solana';
|
|
15
|
-
*
|
|
16
|
-
* const { networkData } = getActiveNetworkData({ walletAccount });
|
|
17
|
-
*
|
|
18
|
-
* if(!networkData) {
|
|
19
|
-
* throw new Error('No network data found');
|
|
20
|
-
* }
|
|
21
|
-
*
|
|
22
|
-
* const connection = getSolanaConnection({
|
|
23
|
-
* networkData,
|
|
24
|
-
* });
|
|
25
|
-
* ```
|
|
26
|
-
*/ const getSolanaConnection = ({ networkData, commitmentOrConfig })=>{
|
|
27
|
-
return new Connection(networkData.rpcUrls.http[0], commitmentOrConfig);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const createWalletProviderForWaasSolana = (sdkClient)=>{
|
|
31
|
-
const chain = 'SOL';
|
|
32
|
-
const walletProviderType = WalletProviderEnum.EmbeddedWallet;
|
|
33
|
-
const key = formatWalletProviderKey({
|
|
34
|
-
chain,
|
|
35
|
-
displayName: DYNAMIC_WAAS_METADATA.displayName,
|
|
36
|
-
walletProviderType
|
|
37
|
-
});
|
|
38
|
-
const waasProvider = createWaasProvider({
|
|
39
|
-
chain,
|
|
40
|
-
sdkClient
|
|
41
|
-
});
|
|
42
|
-
const getActiveNetworkId = async ()=>getActiveNetworkIdFromLastKnownRegistry({
|
|
43
|
-
client: sdkClient,
|
|
44
|
-
walletProviderKey: key
|
|
45
|
-
});
|
|
46
|
-
const switchActiveNetwork = async ({ networkId })=>switchActiveNetworkInLastKnownRegistry({
|
|
47
|
-
client: sdkClient,
|
|
48
|
-
networkId,
|
|
49
|
-
walletProviderKey: key
|
|
50
|
-
});
|
|
51
|
-
const getConnectedAddresses = async ()=>{
|
|
52
|
-
const waasSolanaAddresses = getAllUserWaasAddressesForChain({
|
|
53
|
-
chain
|
|
54
|
-
}, sdkClient);
|
|
55
|
-
return {
|
|
56
|
-
addresses: waasSolanaAddresses
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
const signAndSendTransaction = async ({ transaction, walletAccount })=>{
|
|
60
|
-
const { signedTransaction } = await signTransaction({
|
|
61
|
-
transaction,
|
|
62
|
-
walletAccount
|
|
63
|
-
});
|
|
64
|
-
const { networkData } = await getActiveNetworkData({
|
|
65
|
-
walletAccount
|
|
66
|
-
}, sdkClient);
|
|
67
|
-
assertDefined(networkData, 'Network data is required');
|
|
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,
|
|
112
|
-
walletAccount
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
return _extends({}, waasProvider, {
|
|
116
|
-
chain,
|
|
117
|
-
getActiveNetworkId,
|
|
118
|
-
getConnectedAddresses,
|
|
119
|
-
groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),
|
|
120
|
-
key,
|
|
121
|
-
metadata: {
|
|
122
|
-
displayName: DYNAMIC_WAAS_METADATA.displayName,
|
|
123
|
-
icon: DYNAMIC_WAAS_METADATA.icon
|
|
124
|
-
},
|
|
125
|
-
signAllTransactions,
|
|
126
|
-
signAndSendTransaction,
|
|
127
|
-
signMessage,
|
|
128
|
-
signTransaction,
|
|
129
|
-
switchActiveNetwork,
|
|
130
|
-
walletProviderType
|
|
131
|
-
});
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
const WAAS_SOLANA_EXTENSION_KEY = 'waasSolana';
|
|
135
|
-
/**
|
|
136
|
-
* Adds the Dynamic WaaS (Wallet as a Service) Solana extension to the Dynamic client.
|
|
137
|
-
*
|
|
138
|
-
* This extension enables embedded wallet functionality for Solana blockchain,
|
|
139
|
-
* allowing users to have wallets managed by Dynamic's infrastructure.
|
|
140
|
-
*
|
|
141
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
142
|
-
*/ const addWaasSolanaExtension = (client = getDefaultClient())=>{
|
|
143
|
-
if (hasExtension({
|
|
144
|
-
extensionKey: WAAS_SOLANA_EXTENSION_KEY
|
|
145
|
-
}, client)) {
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
registerExtension({
|
|
149
|
-
extensionKey: WAAS_SOLANA_EXTENSION_KEY
|
|
150
|
-
}, client);
|
|
151
|
-
registerSolanaNetworkProviderBuilder(client);
|
|
152
|
-
const walletProviderRegistry = getWalletProviderRegistry(client);
|
|
153
|
-
const walletProvider = createWalletProviderForWaasSolana(client);
|
|
154
|
-
walletProviderRegistry.register({
|
|
155
|
-
priority: WalletProviderPriority.WALLET_SDK,
|
|
156
|
-
walletProvider
|
|
157
|
-
});
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
export { addWaasSolanaExtension as a, getSolanaConnection as g };
|
package/index.cjs.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./src/exports/index";
|
package/index.cjs.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var assertPackageVersion = require('@dynamic-labs-sdk/assert-package-version');
|
|
4
|
-
var isVersionedTransaction = require('./isVersionedTransaction.cjs.js');
|
|
5
|
-
var core = require('@dynamic-labs-sdk/client/core');
|
|
6
|
-
var addWaasSolanaExtension = require('./addWaasSolanaExtension.cjs.js');
|
|
7
|
-
var addSolanaWalletStandardExtension = require('./addSolanaWalletStandardExtension.cjs.js');
|
|
8
|
-
var client = require('@dynamic-labs-sdk/client');
|
|
9
|
-
require('@solana/web3.js');
|
|
10
|
-
require('@dynamic-labs-sdk/client/waas/core');
|
|
11
|
-
require('@dynamic-labs/sdk-api-core');
|
|
12
|
-
require('@wallet-standard/app');
|
|
13
|
-
require('bs58');
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Adds the Solana extension to the Dynamic client.
|
|
17
|
-
*
|
|
18
|
-
* This is a convenience function that adds both the Solana Wallet Standard extension
|
|
19
|
-
* and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types
|
|
20
|
-
* including standard wallets and embedded wallets managed by Dynamic's infrastructure.
|
|
21
|
-
*
|
|
22
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
23
|
-
*/ const addSolanaExtension = (client = core.getDefaultClient())=>{
|
|
24
|
-
addSolanaWalletStandardExtension.addSolanaWalletStandardExtension(client);
|
|
25
|
-
addWaasSolanaExtension.addWaasSolanaExtension(client);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
class NotSolanaProviderError extends client.BaseError {
|
|
29
|
-
constructor(params){
|
|
30
|
-
super({
|
|
31
|
-
cause: null,
|
|
32
|
-
code: 'not_solana_provider_error',
|
|
33
|
-
docsUrl: null,
|
|
34
|
-
name: 'NotSolanaProviderError',
|
|
35
|
-
shortMessage: 'Provider is not a Solana wallet provider'
|
|
36
|
-
});
|
|
37
|
-
this.providerKey = params.providerKey;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
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
|
-
|
|
55
|
-
const isSolanaWalletProvider = (provider)=>{
|
|
56
|
-
return provider.chain === 'SOL';
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
/**
|
|
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
|
|
63
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
64
|
-
* @returns An object containing the signed transactions
|
|
65
|
-
*/ const signAllTransactions = async ({ walletAccount, transactions }, client$1 = client.getDefaultClient())=>{
|
|
66
|
-
const provider = core.getWalletProviderFromWalletAccount({
|
|
67
|
-
walletAccount
|
|
68
|
-
}, client$1);
|
|
69
|
-
if (!isSolanaWalletProvider(provider)) {
|
|
70
|
-
throw new NotSolanaProviderError({
|
|
71
|
-
providerKey: provider.key
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
return provider.signAllTransactions({
|
|
75
|
-
transactions,
|
|
76
|
-
walletAccount
|
|
77
|
-
});
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
/**
|
|
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
|
-
};
|
|
100
|
-
|
|
101
|
-
/**
|
|
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
|
-
};
|
|
121
|
-
|
|
122
|
-
assertPackageVersion.assertPackageVersion(isVersionedTransaction.name, isVersionedTransaction.version);
|
|
123
|
-
|
|
124
|
-
exports.getSolanaConnection = addWaasSolanaExtension.getSolanaConnection;
|
|
125
|
-
exports.NotSolanaProviderError = NotSolanaProviderError;
|
|
126
|
-
exports.addSolanaExtension = addSolanaExtension;
|
|
127
|
-
exports.isSolanaNetworkProvider = isSolanaNetworkProvider;
|
|
128
|
-
exports.isSolanaWalletAccount = isSolanaWalletAccount;
|
|
129
|
-
exports.signAllTransactions = signAllTransactions;
|
|
130
|
-
exports.signAndSendTransaction = signAndSendTransaction;
|
|
131
|
-
exports.signTransaction = signTransaction;
|
package/index.esm.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./src/exports/index";
|
package/index.esm.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';
|
|
2
|
-
import { n as name, v as version } from './isVersionedTransaction.esm.js';
|
|
3
|
-
import { getDefaultClient, getWalletProviderFromWalletAccount } from '@dynamic-labs-sdk/client/core';
|
|
4
|
-
import { a as addWaasSolanaExtension } from './addWaasSolanaExtension.esm.js';
|
|
5
|
-
export { g as getSolanaConnection } from './addWaasSolanaExtension.esm.js';
|
|
6
|
-
import { a as addSolanaWalletStandardExtension } from './addSolanaWalletStandardExtension.esm.js';
|
|
7
|
-
import { BaseError, getDefaultClient as getDefaultClient$1 } from '@dynamic-labs-sdk/client';
|
|
8
|
-
import '@solana/web3.js';
|
|
9
|
-
import '@dynamic-labs-sdk/client/waas/core';
|
|
10
|
-
import '@dynamic-labs/sdk-api-core';
|
|
11
|
-
import '@wallet-standard/app';
|
|
12
|
-
import 'bs58';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Adds the Solana extension to the Dynamic client.
|
|
16
|
-
*
|
|
17
|
-
* This is a convenience function that adds both the Solana Wallet Standard extension
|
|
18
|
-
* and the Dynamic WaaS Solana extension, enabling support for all Solana wallet types
|
|
19
|
-
* including standard wallets and embedded wallets managed by Dynamic's infrastructure.
|
|
20
|
-
*
|
|
21
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
22
|
-
*/ const addSolanaExtension = (client = getDefaultClient())=>{
|
|
23
|
-
addSolanaWalletStandardExtension(client);
|
|
24
|
-
addWaasSolanaExtension(client);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
class NotSolanaProviderError extends BaseError {
|
|
28
|
-
constructor(params){
|
|
29
|
-
super({
|
|
30
|
-
cause: null,
|
|
31
|
-
code: 'not_solana_provider_error',
|
|
32
|
-
docsUrl: null,
|
|
33
|
-
name: 'NotSolanaProviderError',
|
|
34
|
-
shortMessage: 'Provider is not a Solana wallet provider'
|
|
35
|
-
});
|
|
36
|
-
this.providerKey = params.providerKey;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
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
|
-
|
|
54
|
-
const isSolanaWalletProvider = (provider)=>{
|
|
55
|
-
return provider.chain === 'SOL';
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
/**
|
|
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
|
|
62
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
63
|
-
* @returns An object containing the signed transactions
|
|
64
|
-
*/ const signAllTransactions = async ({ walletAccount, transactions }, client = getDefaultClient$1())=>{
|
|
65
|
-
const provider = getWalletProviderFromWalletAccount({
|
|
66
|
-
walletAccount
|
|
67
|
-
}, client);
|
|
68
|
-
if (!isSolanaWalletProvider(provider)) {
|
|
69
|
-
throw new NotSolanaProviderError({
|
|
70
|
-
providerKey: provider.key
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
return provider.signAllTransactions({
|
|
74
|
-
transactions,
|
|
75
|
-
walletAccount
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
/**
|
|
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
|
-
};
|
|
99
|
-
|
|
100
|
-
/**
|
|
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
|
-
};
|
|
120
|
-
|
|
121
|
-
assertPackageVersion(name, version);
|
|
122
|
-
|
|
123
|
-
export { NotSolanaProviderError, addSolanaExtension, isSolanaNetworkProvider, isSolanaWalletAccount, signAllTransactions, signAndSendTransaction, signTransaction };
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var core = require('@dynamic-labs-sdk/client/core');
|
|
4
|
-
var web3_js = require('@solana/web3.js');
|
|
5
|
-
|
|
6
|
-
var name = "@dynamic-labs-sdk/solana";
|
|
7
|
-
var version = "0.1.1";
|
|
8
|
-
|
|
9
|
-
function _extends() {
|
|
10
|
-
_extends = Object.assign || function assign(target) {
|
|
11
|
-
for(var i = 1; i < arguments.length; i++){
|
|
12
|
-
var source = arguments[i];
|
|
13
|
-
for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
|
|
14
|
-
}
|
|
15
|
-
return target;
|
|
16
|
-
};
|
|
17
|
-
return _extends.apply(this, arguments);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const fetchSolBalance = async ({ address, rpcUrl })=>{
|
|
21
|
-
// Establish a connection to the Solana network using the provided RPC URL.
|
|
22
|
-
const connection = new web3_js.Connection(rpcUrl);
|
|
23
|
-
// Convert the string address into a PublicKey object.
|
|
24
|
-
const publicKey = new web3_js.PublicKey(address);
|
|
25
|
-
// Fetch the balance of the public key. The balance is in lamports.
|
|
26
|
-
const balanceInLamports = await connection.getBalance(publicKey);
|
|
27
|
-
// The getBalance method returns the balance in lamports.
|
|
28
|
-
// 1 SOL = 1,000,000,000 lamports.
|
|
29
|
-
const balanceInSol = balanceInLamports / 1000000000;
|
|
30
|
-
// Return the balance in SOL as a string
|
|
31
|
-
return balanceInSol.toString();
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const createSolanaNetworkProvider = (networkData)=>_extends({}, core.createBaseNetworkProvider('SOL', networkData), {
|
|
35
|
-
cluster: networkData.cluster,
|
|
36
|
-
genesisHash: networkData.genesisHash,
|
|
37
|
-
getBalance: async ({ address })=>({
|
|
38
|
-
balance: await fetchSolBalance({
|
|
39
|
-
address,
|
|
40
|
-
rpcUrl: networkData.rpcUrls.http[0]
|
|
41
|
-
})
|
|
42
|
-
})
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
const registerSolanaNetworkProviderBuilder = (client)=>{
|
|
46
|
-
const networkProviderBuilderRegistry = core.getNetworkProviderBuilderRegistry(client);
|
|
47
|
-
/**
|
|
48
|
-
* If the Solana network provider builder is already registered, return.
|
|
49
|
-
*/ if (networkProviderBuilderRegistry.get().get('SOL')) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
networkProviderBuilderRegistry.register({
|
|
53
|
-
builder: createSolanaNetworkProvider,
|
|
54
|
-
chain: 'SOL'
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const isVersionedTransaction = (transaction)=>!('instructions' in transaction);
|
|
59
|
-
|
|
60
|
-
exports._extends = _extends;
|
|
61
|
-
exports.isVersionedTransaction = isVersionedTransaction;
|
|
62
|
-
exports.name = name;
|
|
63
|
-
exports.registerSolanaNetworkProviderBuilder = registerSolanaNetworkProviderBuilder;
|
|
64
|
-
exports.version = version;
|