@dynamic-labs-sdk/sui 1.29.0 → 1.30.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/SuiWalletProvider.types.d.ts +1 -9
- package/dist/SuiWalletProvider.types.d.ts.map +1 -1
- package/dist/{addSuiWalletStandardExtension-4da_E4Pk.esm.js → addSuiWalletStandardExtension-CHVVZLzG.esm.js} +30 -43
- package/dist/addSuiWalletStandardExtension-CHVVZLzG.esm.js.map +1 -0
- package/dist/{addSuiWalletStandardExtension-Z8DM_vIL.cjs → addSuiWalletStandardExtension-D7vjfnUt.cjs} +30 -43
- package/dist/addSuiWalletStandardExtension-D7vjfnUt.cjs.map +1 -0
- package/dist/{addWaasSuiExtension-DtkMzhAT.cjs → addWaasSuiExtension-7Br6QczT.cjs} +2 -2
- package/dist/{addWaasSuiExtension-DtkMzhAT.cjs.map → addWaasSuiExtension-7Br6QczT.cjs.map} +1 -1
- package/dist/{addWaasSuiExtension-BQNXrF0f.esm.js → addWaasSuiExtension-Db66-Frh.esm.js} +2 -2
- package/dist/{addWaasSuiExtension-BQNXrF0f.esm.js.map → addWaasSuiExtension-Db66-Frh.esm.js.map} +1 -1
- package/dist/getSuiClient/getSuiClient.d.ts +2 -1
- package/dist/getSuiClient/getSuiClient.d.ts.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.esm.js +3 -3
- package/dist/{suiTransferAmount-6SgyhsN8.cjs → suiTransferAmount-Bv2YEe8B.cjs} +2 -2
- package/dist/suiTransferAmount-Bv2YEe8B.cjs.map +1 -0
- package/dist/{suiTransferAmount-BZ0dnhzm.esm.js → suiTransferAmount-DEoxDo_h.esm.js} +2 -2
- package/dist/suiTransferAmount-DEoxDo_h.esm.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/suiTransferAmount/suiTransferAmount.d.ts +5 -3
- package/dist/utils/suiTransferAmount/suiTransferAmount.d.ts.map +1 -1
- package/dist/waas.cjs +2 -2
- package/dist/waas.esm.js +2 -2
- package/dist/walletStandard/addSuiWalletStandardExtension/addSuiWalletStandardExtension.d.ts.map +1 -1
- package/dist/walletStandard/utils/createWalletProviderFromSuiStandardWallet/createWalletProviderFromSuiStandardWallet.d.ts.map +1 -1
- package/dist/walletStandard.cjs +2 -2
- package/dist/walletStandard.esm.js +2 -2
- package/package.json +4 -4
- package/dist/addSuiWalletStandardExtension-4da_E4Pk.esm.js.map +0 -1
- package/dist/addSuiWalletStandardExtension-Z8DM_vIL.cjs.map +0 -1
- package/dist/suiTransferAmount-6SgyhsN8.cjs.map +0 -1
- package/dist/suiTransferAmount-BZ0dnhzm.esm.js.map +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import type { WalletProvider } from '@dynamic-labs-sdk/client/core';
|
|
5
5
|
import type { ExecuteTransactionRequestType, SuiClient, SuiTransactionBlockResponseOptions } from '@mysten/sui/client';
|
|
6
6
|
import type { Transaction } from '@mysten/sui/transactions';
|
|
7
|
-
import type { SignedTransaction, SuiSignAndExecuteTransactionBlockOutput, SuiSignAndExecuteTransactionOutput, SuiSignTransactionBlockOutput
|
|
7
|
+
import type { SignedTransaction, SuiSignAndExecuteTransactionBlockOutput, SuiSignAndExecuteTransactionOutput, SuiSignTransactionBlockOutput } from '@mysten/wallet-standard';
|
|
8
8
|
import type { SuiWalletAccount } from './SuiWalletAccount.types';
|
|
9
9
|
export type { SuiClient } from '@mysten/sui/client';
|
|
10
10
|
export type { SuiSignAndExecuteTransactionBlockOutput as SuiSignAndExecuteTransactionBlockResult, SuiSignAndExecuteTransactionOutput as SuiSignAndExecuteTransactionResult, SuiSignTransactionBlockOutput as SuiSignTransactionBlockResult, SignedTransaction as SuiSignTransactionResult, } from '@mysten/wallet-standard';
|
|
@@ -18,14 +18,6 @@ export type SuiWalletProvider = WalletProvider & {
|
|
|
18
18
|
getSuiClient: (args: {
|
|
19
19
|
walletAccount: SuiWalletAccount;
|
|
20
20
|
}) => Promise<SuiClient>;
|
|
21
|
-
/**
|
|
22
|
-
* Re-points the provider at a new wallet object announced under the same key
|
|
23
|
-
* (e.g. an extension reload) without disconnecting or recreating the provider.
|
|
24
|
-
* This preserves existing event subscriptions.
|
|
25
|
-
*/
|
|
26
|
-
rotateUnderlyingWallet?: (args: {
|
|
27
|
-
walletStandardWallet: WalletWithFeatures<SuiWalletFeatures>;
|
|
28
|
-
}) => void;
|
|
29
21
|
signAndExecuteTransaction: (args: {
|
|
30
22
|
transaction: Transaction;
|
|
31
23
|
walletAccount: SuiWalletAccount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuiWalletProvider.types.d.ts","sourceRoot":"","sources":["../src/SuiWalletProvider.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,6BAA6B,EAC7B,SAAS,EACT,kCAAkC,EACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EACV,iBAAiB,EACjB,uCAAuC,EACvC,kCAAkC,EAClC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"SuiWalletProvider.types.d.ts","sourceRoot":"","sources":["../src/SuiWalletProvider.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,6BAA6B,EAC7B,SAAS,EACT,kCAAkC,EACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EACV,iBAAiB,EACjB,uCAAuC,EACvC,kCAAkC,EAClC,6BAA6B,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EACV,uCAAuC,IAAI,uCAAuC,EAClF,kCAAkC,IAAI,kCAAkC,EACxE,6BAA6B,IAAI,6BAA6B,EAC9D,iBAAiB,IAAI,wBAAwB,GAC9C,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,6BAA6B,IAAI,gCAAgC,EACjE,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,wCAAwC,GAAG;IACrD,OAAO,CAAC,EAAE,kCAAkC,CAAC;IAC7C,WAAW,CAAC,EAAE,6BAA6B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,CAAC,IAAI,EAAE;QACnB,aAAa,EAAE,gBAAgB,CAAC;KACjC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACzB,yBAAyB,EAAE,CAAC,IAAI,EAAE;QAChC,WAAW,EAAE,WAAW,CAAC;QACzB,aAAa,EAAE,gBAAgB,CAAC;KACjC,KAAK,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAClD,8BAA8B,CAAC,EAAE,CAAC,IAAI,EAAE;QACtC,OAAO,CAAC,EAAE,kCAAkC,CAAC;QAC7C,WAAW,CAAC,EAAE,6BAA6B,CAAC;QAC5C,gBAAgB,EAAE,WAAW,CAAC;QAC9B,aAAa,EAAE,gBAAgB,CAAC;KACjC,KAAK,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACvD,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,WAAW,EAAE,WAAW,CAAC;QACzB,aAAa,EAAE,gBAAgB,CAAC;KACjC,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,gBAAgB,EAAE,WAAW,CAAC;QAC9B,aAAa,EAAE,gBAAgB,CAAC;KACjC,KAAK,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAC9C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as suiConfirmTransaction, l as registerSuiNetworkProviderBuilder, r as suiExecuteSwapTransaction, t as suiTransferAmount } from "./suiTransferAmount-
|
|
1
|
+
import { i as suiConfirmTransaction, l as registerSuiNetworkProviderBuilder, r as suiExecuteSwapTransaction, t as suiTransferAmount } from "./suiTransferAmount-DEoxDo_h.esm.js";
|
|
2
2
|
import { WalletProviderPriority, assertDefined, createWalletProviderEventEmitter, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
|
|
3
3
|
import { SuiClient } from "@mysten/sui/client";
|
|
4
4
|
import { assertWalletAccountSigningAvailability, getActiveNetworkData } from "@dynamic-labs-sdk/client";
|
|
@@ -8,8 +8,7 @@ import { getWallets, isWalletWithRequiredFeatureSet } from "@mysten/wallet-stand
|
|
|
8
8
|
//#region src/walletStandard/utils/createWalletProviderFromSuiStandardWallet/createWalletProviderFromSuiStandardWallet.ts
|
|
9
9
|
/** @notInstrumented */
|
|
10
10
|
const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStandardWallet }) => {
|
|
11
|
-
|
|
12
|
-
const getFeatures = () => currentWallet.features;
|
|
11
|
+
const features = walletStandardWallet.features;
|
|
13
12
|
const walletProviderType = WalletProviderEnum.BrowserExtension;
|
|
14
13
|
const key = formatWalletProviderKey({
|
|
15
14
|
chain: "SUI",
|
|
@@ -17,7 +16,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
17
16
|
walletProviderType
|
|
18
17
|
});
|
|
19
18
|
const runConnectFeature = async ({ silent = false } = {}) => {
|
|
20
|
-
const connectMethod =
|
|
19
|
+
const connectMethod = features["standard:connect"]?.connect;
|
|
21
20
|
assertDefined(connectMethod, "connect method not found in wallet features");
|
|
22
21
|
return { addresses: (await connectMethod({ silent })).accounts?.map((account) => ({
|
|
23
22
|
address: account.address,
|
|
@@ -25,20 +24,21 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
25
24
|
})) };
|
|
26
25
|
};
|
|
27
26
|
const connect = async () => {
|
|
28
|
-
const autoConnectedAccounts =
|
|
27
|
+
const autoConnectedAccounts = walletStandardWallet.accounts;
|
|
29
28
|
if (autoConnectedAccounts?.length && autoConnectedAccounts[0].address) return { addresses: [{
|
|
30
29
|
address: autoConnectedAccounts[0].address,
|
|
31
30
|
publicKey: autoConnectedAccounts[0].publicKey?.toString()
|
|
32
31
|
}] };
|
|
33
32
|
return runConnectFeature();
|
|
34
33
|
};
|
|
34
|
+
const disconnectFeature = features["standard:disconnect"]?.disconnect;
|
|
35
35
|
const getActiveNetworkId = async () => getActiveNetworkIdFromLastKnownRegistry({
|
|
36
36
|
client: dynamicClient,
|
|
37
37
|
walletProviderKey: key
|
|
38
38
|
});
|
|
39
39
|
const getCurrentAccount = async () => {
|
|
40
40
|
if (!isConnected()) await runConnectFeature({ silent: true });
|
|
41
|
-
const account =
|
|
41
|
+
const account = walletStandardWallet.accounts?.[0];
|
|
42
42
|
assertDefined(account, "No connected accounts found");
|
|
43
43
|
return account;
|
|
44
44
|
};
|
|
@@ -50,15 +50,15 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
50
50
|
return new SuiClient({ url });
|
|
51
51
|
};
|
|
52
52
|
const isConnected = () => {
|
|
53
|
-
return
|
|
53
|
+
return walletStandardWallet.accounts?.length > 0;
|
|
54
54
|
};
|
|
55
55
|
const getConnectedAddresses = async () => {
|
|
56
56
|
if (!isConnected()) await runConnectFeature({ silent: true });
|
|
57
|
-
return { addresses:
|
|
57
|
+
return { addresses: walletStandardWallet.accounts.map((account) => account.address) };
|
|
58
58
|
};
|
|
59
59
|
const signAndExecuteTransaction = async ({ transaction, walletAccount }) => {
|
|
60
60
|
await assertWalletAccountSigningAvailability({ walletAccount }, dynamicClient);
|
|
61
|
-
const signAndExecuteTransactionMethod =
|
|
61
|
+
const signAndExecuteTransactionMethod = features["sui:signAndExecuteTransaction"]?.signAndExecuteTransaction;
|
|
62
62
|
assertDefined(signAndExecuteTransactionMethod, "signAndExecuteTransaction method not found in wallet features");
|
|
63
63
|
const account = await getCurrentAccount();
|
|
64
64
|
return signAndExecuteTransactionMethod({
|
|
@@ -69,7 +69,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
69
69
|
};
|
|
70
70
|
const signAndExecuteTransactionBlock = async ({ options, requestType, transactionBlock, walletAccount }) => {
|
|
71
71
|
await assertWalletAccountSigningAvailability({ walletAccount }, dynamicClient);
|
|
72
|
-
const signAndExecuteTransactionBlockMethod =
|
|
72
|
+
const signAndExecuteTransactionBlockMethod = features["sui:signAndExecuteTransactionBlock"]?.signAndExecuteTransactionBlock;
|
|
73
73
|
assertDefined(signAndExecuteTransactionBlockMethod, "signAndExecuteTransactionBlock method not found in wallet features");
|
|
74
74
|
const account = await getCurrentAccount();
|
|
75
75
|
return signAndExecuteTransactionBlockMethod({
|
|
@@ -81,7 +81,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
81
81
|
});
|
|
82
82
|
};
|
|
83
83
|
const signMessage = async ({ message, walletAccount }) => {
|
|
84
|
-
const signMessageMethod =
|
|
84
|
+
const signMessageMethod = features["sui:signPersonalMessage"]?.signPersonalMessage;
|
|
85
85
|
assertDefined(signMessageMethod, "signPersonalMessage method not found in wallet features");
|
|
86
86
|
assertDefined(walletAccount, "Wallet account not found");
|
|
87
87
|
await assertWalletAccountSigningAvailability({ walletAccount }, dynamicClient);
|
|
@@ -93,7 +93,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
93
93
|
return { signature };
|
|
94
94
|
};
|
|
95
95
|
const signTransaction = async ({ transaction, walletAccount }) => {
|
|
96
|
-
const signTransactionMethod =
|
|
96
|
+
const signTransactionMethod = features["sui:signTransaction"]?.signTransaction;
|
|
97
97
|
assertDefined(signTransactionMethod, "signTransaction method not found in wallet features");
|
|
98
98
|
await assertWalletAccountSigningAvailability({ walletAccount }, dynamicClient);
|
|
99
99
|
const account = await getCurrentAccount();
|
|
@@ -104,7 +104,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
104
104
|
});
|
|
105
105
|
};
|
|
106
106
|
const signTransactionBlock = async ({ transactionBlock, walletAccount }) => {
|
|
107
|
-
const signTransactionBlockMethod =
|
|
107
|
+
const signTransactionBlockMethod = features["sui:signTransactionBlock"]?.signTransactionBlock;
|
|
108
108
|
assertDefined(signTransactionBlockMethod, "signTransactionBlock method not found in wallet features");
|
|
109
109
|
await assertWalletAccountSigningAvailability({ walletAccount }, dynamicClient);
|
|
110
110
|
const account = await getCurrentAccount();
|
|
@@ -119,30 +119,24 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
119
119
|
networkId,
|
|
120
120
|
walletProviderKey: key
|
|
121
121
|
});
|
|
122
|
-
const
|
|
123
|
-
return getFeatures()["standard:events"].on("change", ({ accounts }) => {
|
|
124
|
-
handleAccountsChanged({ addresses: accounts?.map((account) => account.address) ?? [] });
|
|
125
|
-
});
|
|
126
|
-
};
|
|
127
|
-
const { getEventEmitter, cleanupEventEmitter, rewireEventListeners } = createWalletProviderEventEmitter({
|
|
122
|
+
const { getEventEmitter, cleanupEventEmitter } = createWalletProviderEventEmitter({
|
|
128
123
|
removeEventListeners: ({ setupReturnValue }) => {
|
|
129
124
|
assertDefined(setupReturnValue, "Setup return value not defined");
|
|
130
125
|
setupReturnValue();
|
|
131
126
|
},
|
|
132
|
-
setupEventListeners
|
|
127
|
+
setupEventListeners: ({ handleAccountsChanged }) => {
|
|
128
|
+
return features["standard:events"].on("change", ({ accounts }) => {
|
|
129
|
+
handleAccountsChanged({ addresses: accounts?.map((account) => account.address) ?? [] });
|
|
130
|
+
});
|
|
131
|
+
},
|
|
133
132
|
supportedEvents: ["accountsChanged"]
|
|
134
133
|
});
|
|
135
134
|
const destroy = async () => {
|
|
136
135
|
cleanupEventEmitter();
|
|
137
136
|
try {
|
|
138
|
-
await
|
|
137
|
+
await disconnectFeature?.();
|
|
139
138
|
} catch {}
|
|
140
139
|
};
|
|
141
|
-
const rotateUnderlyingWallet = ({ walletStandardWallet: nextWallet }) => {
|
|
142
|
-
if (nextWallet === currentWallet) return;
|
|
143
|
-
currentWallet = nextWallet;
|
|
144
|
-
rewireEventListeners(setupEventListeners);
|
|
145
|
-
};
|
|
146
140
|
return {
|
|
147
141
|
chain: "SUI",
|
|
148
142
|
confirmTransaction: (args) => suiConfirmTransaction(args, dynamicClient),
|
|
@@ -157,13 +151,10 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
157
151
|
getSuiClient,
|
|
158
152
|
groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),
|
|
159
153
|
key,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
icon: currentWallet.icon
|
|
164
|
-
};
|
|
154
|
+
metadata: {
|
|
155
|
+
displayName: walletStandardWallet.name,
|
|
156
|
+
icon: walletStandardWallet.icon
|
|
165
157
|
},
|
|
166
|
-
rotateUnderlyingWallet,
|
|
167
158
|
signAndExecuteTransaction,
|
|
168
159
|
signAndExecuteTransactionBlock,
|
|
169
160
|
signMessage,
|
|
@@ -178,11 +169,11 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
178
169
|
//#endregion
|
|
179
170
|
//#region src/walletStandard/addSuiWalletStandardExtension/addSuiWalletStandardExtension.ts
|
|
180
171
|
const SUI_WALLET_STANDARD_EXTENSION_KEY = "suiWalletStandard";
|
|
181
|
-
const
|
|
172
|
+
const requiredFeatures = [
|
|
182
173
|
"standard:events",
|
|
183
174
|
"standard:connect",
|
|
184
175
|
"sui:signPersonalMessage"
|
|
185
|
-
]
|
|
176
|
+
];
|
|
186
177
|
/**
|
|
187
178
|
* Adds the Sui Wallet Standard extension to the Dynamic client.
|
|
188
179
|
*
|
|
@@ -198,6 +189,7 @@ const addSuiWalletStandardExtension = (client = getDefaultClient()) => {
|
|
|
198
189
|
registerExtension({ extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY }, client);
|
|
199
190
|
registerSuiNetworkProviderBuilder(client);
|
|
200
191
|
const walletProviderRegistry = getWalletProviderRegistry(client);
|
|
192
|
+
const isSuiWallet = (wallet) => isWalletWithRequiredFeatureSet(wallet, requiredFeatures);
|
|
201
193
|
const getKeyForWallet = (wallet) => formatWalletProviderKey({
|
|
202
194
|
chain: "SUI",
|
|
203
195
|
displayName: wallet.name,
|
|
@@ -205,12 +197,7 @@ const addSuiWalletStandardExtension = (client = getDefaultClient()) => {
|
|
|
205
197
|
});
|
|
206
198
|
const registerSuiWallet = (walletStandardWallet) => {
|
|
207
199
|
const key = getKeyForWallet(walletStandardWallet);
|
|
208
|
-
|
|
209
|
-
if (existingProvider) {
|
|
210
|
-
assertDefined(existingProvider.rotateUnderlyingWallet, "Sui wallet provider is missing rotateUnderlyingWallet");
|
|
211
|
-
existingProvider.rotateUnderlyingWallet({ walletStandardWallet });
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
200
|
+
if (walletProviderRegistry.getByKey(key)) return;
|
|
214
201
|
const walletProvider = createWalletProviderFromSuiStandardWallet({
|
|
215
202
|
dynamicClient: client,
|
|
216
203
|
walletStandardWallet
|
|
@@ -222,12 +209,12 @@ const addSuiWalletStandardExtension = (client = getDefaultClient()) => {
|
|
|
222
209
|
};
|
|
223
210
|
const wallets = getWallets();
|
|
224
211
|
const removeRegisterListener = wallets.on("register", (...registeredWallets) => {
|
|
225
|
-
|
|
212
|
+
registeredWallets.filter(isSuiWallet).forEach(registerSuiWallet);
|
|
226
213
|
});
|
|
227
|
-
|
|
214
|
+
wallets.get().filter(isSuiWallet).forEach(registerSuiWallet);
|
|
228
215
|
return removeRegisterListener;
|
|
229
216
|
};
|
|
230
217
|
|
|
231
218
|
//#endregion
|
|
232
219
|
export { addSuiWalletStandardExtension as t };
|
|
233
|
-
//# sourceMappingURL=addSuiWalletStandardExtension-
|
|
220
|
+
//# sourceMappingURL=addSuiWalletStandardExtension-CHVVZLzG.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addSuiWalletStandardExtension-CHVVZLzG.esm.js","names":["connect: SuiWalletProvider['connect']","getActiveNetworkId: SuiWalletProvider['getActiveNetworkId']","getSuiClient: SuiWalletProvider['getSuiClient']","getConnectedAddresses: SuiWalletProvider['getConnectedAddresses']","signAndExecuteTransaction: SuiWalletProvider['signAndExecuteTransaction']","signAndExecuteTransactionBlock: SuiWalletProvider['signAndExecuteTransactionBlock']","signMessage: SuiWalletProvider['signMessage']","signTransaction: SuiWalletProvider['signTransaction']","signTransactionBlock: SuiWalletProvider['signTransactionBlock']","switchActiveNetwork: SuiWalletProvider['switchActiveNetwork']","destroy: SuiWalletProvider['destroy']","requiredFeatures: (keyof SuiWalletFeatures)[]"],"sources":["../src/walletStandard/utils/createWalletProviderFromSuiStandardWallet/createWalletProviderFromSuiStandardWallet.ts","../src/walletStandard/addSuiWalletStandardExtension/addSuiWalletStandardExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { SuiClient } from '@mysten/sui/client';\nimport type {\n StandardEventsChangeProperties,\n SuiWalletFeatures,\n WalletWithFeatures,\n} from '@mysten/wallet-standard';\n\nimport type { SuiWalletProvider } from '../../../SuiWalletProvider.types';\nimport { suiConfirmTransaction } from '../../../utils/suiConfirmTransaction';\nimport { suiExecuteSwapTransaction } from '../../../utils/suiExecuteSwapTransaction';\nimport { suiTransferAmount } from '../../../utils/suiTransferAmount';\n\ntype CreateWalletProviderFromSuiStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: WalletWithFeatures<SuiWalletFeatures>;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderFromSuiStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromSuiStandardWalletParams): SuiWalletProvider => {\n const features = walletStandardWallet.features;\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'SUI',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const runConnectFeature = async ({\n silent = false,\n }: {\n silent?: boolean;\n } = {}) => {\n const connectMethod = features['standard:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod({ silent });\n\n return {\n addresses: result.accounts?.map((account) => ({\n address: account.address,\n publicKey: account.publicKey?.toString(),\n })),\n };\n };\n\n const connect: SuiWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = walletStandardWallet.accounts;\n\n if (autoConnectedAccounts?.length && autoConnectedAccounts[0].address) {\n return {\n addresses: [\n {\n address: autoConnectedAccounts[0].address,\n publicKey: autoConnectedAccounts[0].publicKey?.toString(),\n },\n ],\n };\n }\n\n return runConnectFeature();\n };\n\n const disconnectFeature = features['standard:disconnect']?.disconnect;\n\n const getActiveNetworkId: SuiWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getCurrentAccount = async () => {\n if (!isConnected()) {\n await runConnectFeature({ silent: true });\n }\n\n const account = walletStandardWallet.accounts?.[0];\n\n assertDefined(account, 'No connected accounts found');\n\n return account;\n };\n\n const getSuiClient: SuiWalletProvider['getSuiClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n const client = new SuiClient({ url });\n return client;\n };\n\n const isConnected = (): boolean => {\n return walletStandardWallet.accounts?.length > 0;\n };\n\n const getConnectedAddresses: SuiWalletProvider['getConnectedAddresses'] =\n async () => {\n if (!isConnected()) {\n await runConnectFeature({ silent: true });\n }\n\n return {\n addresses: walletStandardWallet.accounts.map(\n (account) => account.address\n ),\n };\n };\n\n const signAndExecuteTransaction: SuiWalletProvider['signAndExecuteTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndExecuteTransactionMethod =\n features['sui:signAndExecuteTransaction']?.signAndExecuteTransaction;\n\n assertDefined(\n signAndExecuteTransactionMethod,\n 'signAndExecuteTransaction method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n return signAndExecuteTransactionMethod({\n account,\n chain: account.chains[0],\n transaction,\n });\n };\n\n /* This method is deprecated, but still required by some wallets for backwards compatibility. */\n const signAndExecuteTransactionBlock: SuiWalletProvider['signAndExecuteTransactionBlock'] =\n async ({ options, requestType, transactionBlock, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndExecuteTransactionBlockMethod =\n features['sui:signAndExecuteTransactionBlock']\n ?.signAndExecuteTransactionBlock;\n\n assertDefined(\n signAndExecuteTransactionBlockMethod,\n 'signAndExecuteTransactionBlock method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n return signAndExecuteTransactionBlockMethod({\n account,\n chain: account.chains[0],\n options,\n requestType,\n transactionBlock,\n });\n };\n\n const signMessage: SuiWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const signMessageMethod =\n features['sui:signPersonalMessage']?.signPersonalMessage;\n\n assertDefined(\n signMessageMethod,\n 'signPersonalMessage method not found in wallet features'\n );\n\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const encodedMessage = new TextEncoder().encode(message);\n\n const account = await getCurrentAccount();\n\n const { signature } = await signMessageMethod({\n account,\n message: encodedMessage,\n });\n\n return { signature };\n };\n\n const signTransaction: SuiWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const signTransactionMethod =\n features['sui:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n return signTransactionMethod({\n account,\n chain: account.chains[0],\n transaction,\n });\n };\n\n /* This method is deprecated, but still required by some wallets for backwards compatibility. */\n const signTransactionBlock: SuiWalletProvider['signTransactionBlock'] =\n async ({ transactionBlock, walletAccount }) => {\n const signTransactionBlockMethod =\n features['sui:signTransactionBlock']?.signTransactionBlock;\n\n assertDefined(\n signTransactionBlockMethod,\n 'signTransactionBlock method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n return signTransactionBlockMethod({\n account,\n chain: account.chains[0],\n transactionBlock,\n });\n };\n\n const switchActiveNetwork: SuiWalletProvider['switchActiveNetwork'] = async ({\n networkId,\n }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({ handleAccountsChanged }) => {\n const eventsFeature = features['standard:events'];\n\n return eventsFeature.on(\n 'change',\n ({ accounts }: StandardEventsChangeProperties) => {\n handleAccountsChanged({\n addresses: accounts?.map((account) => account.address) ?? [],\n });\n }\n );\n },\n\n supportedEvents: ['accountsChanged'],\n });\n\n const destroy: SuiWalletProvider['destroy'] = async () => {\n cleanupEventEmitter();\n try {\n await disconnectFeature?.();\n } catch {\n // Best-effort: wallet may already be disconnected\n }\n };\n\n const walletProvider: SuiWalletProvider = {\n chain: 'SUI',\n confirmTransaction: (args) => suiConfirmTransaction(args, dynamicClient),\n connect,\n destroy,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) =>\n suiExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getSuiClient,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAndExecuteTransaction,\n signAndExecuteTransactionBlock,\n signMessage,\n signTransaction,\n signTransactionBlock,\n switchActiveNetwork,\n transferAmount: (args) => suiTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import {\n WalletProviderPriority,\n formatWalletProviderKey,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport type {\n SuiWalletFeatures,\n Wallet,\n WalletWithFeatures,\n} from '@mysten/wallet-standard';\nimport {\n getWallets,\n isWalletWithRequiredFeatureSet,\n} from '@mysten/wallet-standard';\n\nimport { registerSuiNetworkProviderBuilder } from '../../registerSuiNetworkProviderBuilder';\nimport { createWalletProviderFromSuiStandardWallet } from '../utils/createWalletProviderFromSuiStandardWallet';\n\nexport const SUI_WALLET_STANDARD_EXTENSION_KEY = 'suiWalletStandard';\n\nconst requiredFeatures: (keyof SuiWalletFeatures)[] = [\n 'standard:events',\n 'standard:connect',\n 'sui:signPersonalMessage',\n];\n\n/**\n * Adds the Sui Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Sui Wallet Standard,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A function that removes the wallet-standard register listener when called.\n * @notInstrumented\n */\nexport const addSuiWalletStandardExtension = (\n client = getDefaultClient()\n): VoidFunction => {\n if (\n hasExtension({ extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return () => {\n // noop\n };\n }\n\n registerExtension(\n { extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerSuiNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const isSuiWallet = (\n wallet: Wallet\n ): wallet is WalletWithFeatures<SuiWalletFeatures> =>\n isWalletWithRequiredFeatureSet(wallet, requiredFeatures);\n\n const getKeyForWallet = (wallet: WalletWithFeatures<SuiWalletFeatures>) =>\n formatWalletProviderKey({\n chain: 'SUI',\n displayName: wallet.name,\n walletProviderType: WalletProviderEnum.BrowserExtension,\n });\n\n const registerSuiWallet = (\n walletStandardWallet: WalletWithFeatures<SuiWalletFeatures>\n ) => {\n const key = getKeyForWallet(walletStandardWallet);\n\n if (walletProviderRegistry.getByKey(key)) {\n return;\n }\n\n const walletProvider = createWalletProviderFromSuiStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n };\n\n const wallets = getWallets();\n\n const removeRegisterListener = wallets.on(\n 'register',\n (...registeredWallets) => {\n registeredWallets.filter(isSuiWallet).forEach(registerSuiWallet);\n }\n );\n\n wallets.get().filter(isSuiWallet).forEach(registerSuiWallet);\n\n return removeRegisterListener;\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_suiTransferAmount = require('./suiTransferAmount-
|
|
1
|
+
const require_suiTransferAmount = require('./suiTransferAmount-Bv2YEe8B.cjs');
|
|
2
2
|
let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
|
|
3
3
|
let _mysten_sui_client = require("@mysten/sui/client");
|
|
4
4
|
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
@@ -8,8 +8,7 @@ let _mysten_wallet_standard = require("@mysten/wallet-standard");
|
|
|
8
8
|
//#region src/walletStandard/utils/createWalletProviderFromSuiStandardWallet/createWalletProviderFromSuiStandardWallet.ts
|
|
9
9
|
/** @notInstrumented */
|
|
10
10
|
const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStandardWallet }) => {
|
|
11
|
-
|
|
12
|
-
const getFeatures = () => currentWallet.features;
|
|
11
|
+
const features = walletStandardWallet.features;
|
|
13
12
|
const walletProviderType = _dynamic_labs_sdk_api_core.WalletProviderEnum.BrowserExtension;
|
|
14
13
|
const key = (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
|
|
15
14
|
chain: "SUI",
|
|
@@ -17,7 +16,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
17
16
|
walletProviderType
|
|
18
17
|
});
|
|
19
18
|
const runConnectFeature = async ({ silent = false } = {}) => {
|
|
20
|
-
const connectMethod =
|
|
19
|
+
const connectMethod = features["standard:connect"]?.connect;
|
|
21
20
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(connectMethod, "connect method not found in wallet features");
|
|
22
21
|
return { addresses: (await connectMethod({ silent })).accounts?.map((account) => ({
|
|
23
22
|
address: account.address,
|
|
@@ -25,20 +24,21 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
25
24
|
})) };
|
|
26
25
|
};
|
|
27
26
|
const connect = async () => {
|
|
28
|
-
const autoConnectedAccounts =
|
|
27
|
+
const autoConnectedAccounts = walletStandardWallet.accounts;
|
|
29
28
|
if (autoConnectedAccounts?.length && autoConnectedAccounts[0].address) return { addresses: [{
|
|
30
29
|
address: autoConnectedAccounts[0].address,
|
|
31
30
|
publicKey: autoConnectedAccounts[0].publicKey?.toString()
|
|
32
31
|
}] };
|
|
33
32
|
return runConnectFeature();
|
|
34
33
|
};
|
|
34
|
+
const disconnectFeature = features["standard:disconnect"]?.disconnect;
|
|
35
35
|
const getActiveNetworkId = async () => (0, _dynamic_labs_sdk_client_core.getActiveNetworkIdFromLastKnownRegistry)({
|
|
36
36
|
client: dynamicClient,
|
|
37
37
|
walletProviderKey: key
|
|
38
38
|
});
|
|
39
39
|
const getCurrentAccount = async () => {
|
|
40
40
|
if (!isConnected()) await runConnectFeature({ silent: true });
|
|
41
|
-
const account =
|
|
41
|
+
const account = walletStandardWallet.accounts?.[0];
|
|
42
42
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(account, "No connected accounts found");
|
|
43
43
|
return account;
|
|
44
44
|
};
|
|
@@ -50,15 +50,15 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
50
50
|
return new _mysten_sui_client.SuiClient({ url });
|
|
51
51
|
};
|
|
52
52
|
const isConnected = () => {
|
|
53
|
-
return
|
|
53
|
+
return walletStandardWallet.accounts?.length > 0;
|
|
54
54
|
};
|
|
55
55
|
const getConnectedAddresses = async () => {
|
|
56
56
|
if (!isConnected()) await runConnectFeature({ silent: true });
|
|
57
|
-
return { addresses:
|
|
57
|
+
return { addresses: walletStandardWallet.accounts.map((account) => account.address) };
|
|
58
58
|
};
|
|
59
59
|
const signAndExecuteTransaction = async ({ transaction, walletAccount }) => {
|
|
60
60
|
await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
|
|
61
|
-
const signAndExecuteTransactionMethod =
|
|
61
|
+
const signAndExecuteTransactionMethod = features["sui:signAndExecuteTransaction"]?.signAndExecuteTransaction;
|
|
62
62
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(signAndExecuteTransactionMethod, "signAndExecuteTransaction method not found in wallet features");
|
|
63
63
|
const account = await getCurrentAccount();
|
|
64
64
|
return signAndExecuteTransactionMethod({
|
|
@@ -69,7 +69,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
69
69
|
};
|
|
70
70
|
const signAndExecuteTransactionBlock = async ({ options, requestType, transactionBlock, walletAccount }) => {
|
|
71
71
|
await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
|
|
72
|
-
const signAndExecuteTransactionBlockMethod =
|
|
72
|
+
const signAndExecuteTransactionBlockMethod = features["sui:signAndExecuteTransactionBlock"]?.signAndExecuteTransactionBlock;
|
|
73
73
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(signAndExecuteTransactionBlockMethod, "signAndExecuteTransactionBlock method not found in wallet features");
|
|
74
74
|
const account = await getCurrentAccount();
|
|
75
75
|
return signAndExecuteTransactionBlockMethod({
|
|
@@ -81,7 +81,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
81
81
|
});
|
|
82
82
|
};
|
|
83
83
|
const signMessage = async ({ message, walletAccount }) => {
|
|
84
|
-
const signMessageMethod =
|
|
84
|
+
const signMessageMethod = features["sui:signPersonalMessage"]?.signPersonalMessage;
|
|
85
85
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(signMessageMethod, "signPersonalMessage method not found in wallet features");
|
|
86
86
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(walletAccount, "Wallet account not found");
|
|
87
87
|
await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
|
|
@@ -93,7 +93,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
93
93
|
return { signature };
|
|
94
94
|
};
|
|
95
95
|
const signTransaction = async ({ transaction, walletAccount }) => {
|
|
96
|
-
const signTransactionMethod =
|
|
96
|
+
const signTransactionMethod = features["sui:signTransaction"]?.signTransaction;
|
|
97
97
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(signTransactionMethod, "signTransaction method not found in wallet features");
|
|
98
98
|
await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
|
|
99
99
|
const account = await getCurrentAccount();
|
|
@@ -104,7 +104,7 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
104
104
|
});
|
|
105
105
|
};
|
|
106
106
|
const signTransactionBlock = async ({ transactionBlock, walletAccount }) => {
|
|
107
|
-
const signTransactionBlockMethod =
|
|
107
|
+
const signTransactionBlockMethod = features["sui:signTransactionBlock"]?.signTransactionBlock;
|
|
108
108
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(signTransactionBlockMethod, "signTransactionBlock method not found in wallet features");
|
|
109
109
|
await (0, _dynamic_labs_sdk_client.assertWalletAccountSigningAvailability)({ walletAccount }, dynamicClient);
|
|
110
110
|
const account = await getCurrentAccount();
|
|
@@ -119,30 +119,24 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
119
119
|
networkId,
|
|
120
120
|
walletProviderKey: key
|
|
121
121
|
});
|
|
122
|
-
const
|
|
123
|
-
return getFeatures()["standard:events"].on("change", ({ accounts }) => {
|
|
124
|
-
handleAccountsChanged({ addresses: accounts?.map((account) => account.address) ?? [] });
|
|
125
|
-
});
|
|
126
|
-
};
|
|
127
|
-
const { getEventEmitter, cleanupEventEmitter, rewireEventListeners } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
|
|
122
|
+
const { getEventEmitter, cleanupEventEmitter } = (0, _dynamic_labs_sdk_client_core.createWalletProviderEventEmitter)({
|
|
128
123
|
removeEventListeners: ({ setupReturnValue }) => {
|
|
129
124
|
(0, _dynamic_labs_sdk_client_core.assertDefined)(setupReturnValue, "Setup return value not defined");
|
|
130
125
|
setupReturnValue();
|
|
131
126
|
},
|
|
132
|
-
setupEventListeners
|
|
127
|
+
setupEventListeners: ({ handleAccountsChanged }) => {
|
|
128
|
+
return features["standard:events"].on("change", ({ accounts }) => {
|
|
129
|
+
handleAccountsChanged({ addresses: accounts?.map((account) => account.address) ?? [] });
|
|
130
|
+
});
|
|
131
|
+
},
|
|
133
132
|
supportedEvents: ["accountsChanged"]
|
|
134
133
|
});
|
|
135
134
|
const destroy = async () => {
|
|
136
135
|
cleanupEventEmitter();
|
|
137
136
|
try {
|
|
138
|
-
await
|
|
137
|
+
await disconnectFeature?.();
|
|
139
138
|
} catch {}
|
|
140
139
|
};
|
|
141
|
-
const rotateUnderlyingWallet = ({ walletStandardWallet: nextWallet }) => {
|
|
142
|
-
if (nextWallet === currentWallet) return;
|
|
143
|
-
currentWallet = nextWallet;
|
|
144
|
-
rewireEventListeners(setupEventListeners);
|
|
145
|
-
};
|
|
146
140
|
return {
|
|
147
141
|
chain: "SUI",
|
|
148
142
|
confirmTransaction: (args) => require_suiTransferAmount.suiConfirmTransaction(args, dynamicClient),
|
|
@@ -157,13 +151,10 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
157
151
|
getSuiClient,
|
|
158
152
|
groupKey: (0, _dynamic_labs_sdk_client_core.formatWalletProviderGroupKey)(walletStandardWallet.name),
|
|
159
153
|
key,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
icon: currentWallet.icon
|
|
164
|
-
};
|
|
154
|
+
metadata: {
|
|
155
|
+
displayName: walletStandardWallet.name,
|
|
156
|
+
icon: walletStandardWallet.icon
|
|
165
157
|
},
|
|
166
|
-
rotateUnderlyingWallet,
|
|
167
158
|
signAndExecuteTransaction,
|
|
168
159
|
signAndExecuteTransactionBlock,
|
|
169
160
|
signMessage,
|
|
@@ -178,11 +169,11 @@ const createWalletProviderFromSuiStandardWallet = ({ dynamicClient, walletStanda
|
|
|
178
169
|
//#endregion
|
|
179
170
|
//#region src/walletStandard/addSuiWalletStandardExtension/addSuiWalletStandardExtension.ts
|
|
180
171
|
const SUI_WALLET_STANDARD_EXTENSION_KEY = "suiWalletStandard";
|
|
181
|
-
const
|
|
172
|
+
const requiredFeatures = [
|
|
182
173
|
"standard:events",
|
|
183
174
|
"standard:connect",
|
|
184
175
|
"sui:signPersonalMessage"
|
|
185
|
-
]
|
|
176
|
+
];
|
|
186
177
|
/**
|
|
187
178
|
* Adds the Sui Wallet Standard extension to the Dynamic client.
|
|
188
179
|
*
|
|
@@ -198,6 +189,7 @@ const addSuiWalletStandardExtension = (client = (0, _dynamic_labs_sdk_client_cor
|
|
|
198
189
|
(0, _dynamic_labs_sdk_client_core.registerExtension)({ extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY }, client);
|
|
199
190
|
require_suiTransferAmount.registerSuiNetworkProviderBuilder(client);
|
|
200
191
|
const walletProviderRegistry = (0, _dynamic_labs_sdk_client_core.getWalletProviderRegistry)(client);
|
|
192
|
+
const isSuiWallet = (wallet) => (0, _mysten_wallet_standard.isWalletWithRequiredFeatureSet)(wallet, requiredFeatures);
|
|
201
193
|
const getKeyForWallet = (wallet) => (0, _dynamic_labs_sdk_client_core.formatWalletProviderKey)({
|
|
202
194
|
chain: "SUI",
|
|
203
195
|
displayName: wallet.name,
|
|
@@ -205,12 +197,7 @@ const addSuiWalletStandardExtension = (client = (0, _dynamic_labs_sdk_client_cor
|
|
|
205
197
|
});
|
|
206
198
|
const registerSuiWallet = (walletStandardWallet) => {
|
|
207
199
|
const key = getKeyForWallet(walletStandardWallet);
|
|
208
|
-
|
|
209
|
-
if (existingProvider) {
|
|
210
|
-
(0, _dynamic_labs_sdk_client_core.assertDefined)(existingProvider.rotateUnderlyingWallet, "Sui wallet provider is missing rotateUnderlyingWallet");
|
|
211
|
-
existingProvider.rotateUnderlyingWallet({ walletStandardWallet });
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
200
|
+
if (walletProviderRegistry.getByKey(key)) return;
|
|
214
201
|
const walletProvider = createWalletProviderFromSuiStandardWallet({
|
|
215
202
|
dynamicClient: client,
|
|
216
203
|
walletStandardWallet
|
|
@@ -222,9 +209,9 @@ const addSuiWalletStandardExtension = (client = (0, _dynamic_labs_sdk_client_cor
|
|
|
222
209
|
};
|
|
223
210
|
const wallets = (0, _mysten_wallet_standard.getWallets)();
|
|
224
211
|
const removeRegisterListener = wallets.on("register", (...registeredWallets) => {
|
|
225
|
-
|
|
212
|
+
registeredWallets.filter(isSuiWallet).forEach(registerSuiWallet);
|
|
226
213
|
});
|
|
227
|
-
|
|
214
|
+
wallets.get().filter(isSuiWallet).forEach(registerSuiWallet);
|
|
228
215
|
return removeRegisterListener;
|
|
229
216
|
};
|
|
230
217
|
|
|
@@ -235,4 +222,4 @@ Object.defineProperty(exports, 'addSuiWalletStandardExtension', {
|
|
|
235
222
|
return addSuiWalletStandardExtension;
|
|
236
223
|
}
|
|
237
224
|
});
|
|
238
|
-
//# sourceMappingURL=addSuiWalletStandardExtension-
|
|
225
|
+
//# sourceMappingURL=addSuiWalletStandardExtension-D7vjfnUt.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addSuiWalletStandardExtension-D7vjfnUt.cjs","names":["WalletProviderEnum","connect: SuiWalletProvider['connect']","getActiveNetworkId: SuiWalletProvider['getActiveNetworkId']","getSuiClient: SuiWalletProvider['getSuiClient']","SuiClient","getConnectedAddresses: SuiWalletProvider['getConnectedAddresses']","signAndExecuteTransaction: SuiWalletProvider['signAndExecuteTransaction']","signAndExecuteTransactionBlock: SuiWalletProvider['signAndExecuteTransactionBlock']","signMessage: SuiWalletProvider['signMessage']","signTransaction: SuiWalletProvider['signTransaction']","signTransactionBlock: SuiWalletProvider['signTransactionBlock']","switchActiveNetwork: SuiWalletProvider['switchActiveNetwork']","destroy: SuiWalletProvider['destroy']","suiConfirmTransaction","suiExecuteSwapTransaction","suiTransferAmount","requiredFeatures: (keyof SuiWalletFeatures)[]","WalletProviderEnum","WalletProviderPriority"],"sources":["../src/walletStandard/utils/createWalletProviderFromSuiStandardWallet/createWalletProviderFromSuiStandardWallet.ts","../src/walletStandard/addSuiWalletStandardExtension/addSuiWalletStandardExtension.ts"],"sourcesContent":["import {\n type DynamicClient,\n assertWalletAccountSigningAvailability,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { SuiClient } from '@mysten/sui/client';\nimport type {\n StandardEventsChangeProperties,\n SuiWalletFeatures,\n WalletWithFeatures,\n} from '@mysten/wallet-standard';\n\nimport type { SuiWalletProvider } from '../../../SuiWalletProvider.types';\nimport { suiConfirmTransaction } from '../../../utils/suiConfirmTransaction';\nimport { suiExecuteSwapTransaction } from '../../../utils/suiExecuteSwapTransaction';\nimport { suiTransferAmount } from '../../../utils/suiTransferAmount';\n\ntype CreateWalletProviderFromSuiStandardWalletParams = {\n dynamicClient: DynamicClient;\n walletStandardWallet: WalletWithFeatures<SuiWalletFeatures>;\n};\n\n/** @notInstrumented */\nexport const createWalletProviderFromSuiStandardWallet = ({\n dynamicClient,\n walletStandardWallet,\n}: CreateWalletProviderFromSuiStandardWalletParams): SuiWalletProvider => {\n const features = walletStandardWallet.features;\n\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain: 'SUI',\n displayName: walletStandardWallet.name,\n walletProviderType,\n });\n\n const runConnectFeature = async ({\n silent = false,\n }: {\n silent?: boolean;\n } = {}) => {\n const connectMethod = features['standard:connect']?.connect;\n\n assertDefined(connectMethod, 'connect method not found in wallet features');\n\n const result = await connectMethod({ silent });\n\n return {\n addresses: result.accounts?.map((account) => ({\n address: account.address,\n publicKey: account.publicKey?.toString(),\n })),\n };\n };\n\n const connect: SuiWalletProvider['connect'] = async () => {\n const autoConnectedAccounts = walletStandardWallet.accounts;\n\n if (autoConnectedAccounts?.length && autoConnectedAccounts[0].address) {\n return {\n addresses: [\n {\n address: autoConnectedAccounts[0].address,\n publicKey: autoConnectedAccounts[0].publicKey?.toString(),\n },\n ],\n };\n }\n\n return runConnectFeature();\n };\n\n const disconnectFeature = features['standard:disconnect']?.disconnect;\n\n const getActiveNetworkId: SuiWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: dynamicClient,\n walletProviderKey: key,\n });\n\n const getCurrentAccount = async () => {\n if (!isConnected()) {\n await runConnectFeature({ silent: true });\n }\n\n const account = walletStandardWallet.accounts?.[0];\n\n assertDefined(account, 'No connected accounts found');\n\n return account;\n };\n\n const getSuiClient: SuiWalletProvider['getSuiClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n dynamicClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n const client = new SuiClient({ url });\n return client;\n };\n\n const isConnected = (): boolean => {\n return walletStandardWallet.accounts?.length > 0;\n };\n\n const getConnectedAddresses: SuiWalletProvider['getConnectedAddresses'] =\n async () => {\n if (!isConnected()) {\n await runConnectFeature({ silent: true });\n }\n\n return {\n addresses: walletStandardWallet.accounts.map(\n (account) => account.address\n ),\n };\n };\n\n const signAndExecuteTransaction: SuiWalletProvider['signAndExecuteTransaction'] =\n async ({ transaction, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndExecuteTransactionMethod =\n features['sui:signAndExecuteTransaction']?.signAndExecuteTransaction;\n\n assertDefined(\n signAndExecuteTransactionMethod,\n 'signAndExecuteTransaction method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n return signAndExecuteTransactionMethod({\n account,\n chain: account.chains[0],\n transaction,\n });\n };\n\n /* This method is deprecated, but still required by some wallets for backwards compatibility. */\n const signAndExecuteTransactionBlock: SuiWalletProvider['signAndExecuteTransactionBlock'] =\n async ({ options, requestType, transactionBlock, walletAccount }) => {\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const signAndExecuteTransactionBlockMethod =\n features['sui:signAndExecuteTransactionBlock']\n ?.signAndExecuteTransactionBlock;\n\n assertDefined(\n signAndExecuteTransactionBlockMethod,\n 'signAndExecuteTransactionBlock method not found in wallet features'\n );\n\n const account = await getCurrentAccount();\n\n return signAndExecuteTransactionBlockMethod({\n account,\n chain: account.chains[0],\n options,\n requestType,\n transactionBlock,\n });\n };\n\n const signMessage: SuiWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const signMessageMethod =\n features['sui:signPersonalMessage']?.signPersonalMessage;\n\n assertDefined(\n signMessageMethod,\n 'signPersonalMessage method not found in wallet features'\n );\n\n assertDefined(walletAccount, 'Wallet account not found');\n\n await assertWalletAccountSigningAvailability(\n {\n walletAccount,\n },\n dynamicClient\n );\n\n const encodedMessage = new TextEncoder().encode(message);\n\n const account = await getCurrentAccount();\n\n const { signature } = await signMessageMethod({\n account,\n message: encodedMessage,\n });\n\n return { signature };\n };\n\n const signTransaction: SuiWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const signTransactionMethod =\n features['sui:signTransaction']?.signTransaction;\n\n assertDefined(\n signTransactionMethod,\n 'signTransaction method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n return signTransactionMethod({\n account,\n chain: account.chains[0],\n transaction,\n });\n };\n\n /* This method is deprecated, but still required by some wallets for backwards compatibility. */\n const signTransactionBlock: SuiWalletProvider['signTransactionBlock'] =\n async ({ transactionBlock, walletAccount }) => {\n const signTransactionBlockMethod =\n features['sui:signTransactionBlock']?.signTransactionBlock;\n\n assertDefined(\n signTransactionBlockMethod,\n 'signTransactionBlock method not found in wallet features'\n );\n\n await assertWalletAccountSigningAvailability(\n { walletAccount },\n dynamicClient\n );\n\n const account = await getCurrentAccount();\n\n return signTransactionBlockMethod({\n account,\n chain: account.chains[0],\n transactionBlock,\n });\n };\n\n const switchActiveNetwork: SuiWalletProvider['switchActiveNetwork'] = async ({\n networkId,\n }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: dynamicClient,\n networkId,\n walletProviderKey: key,\n });\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n assertDefined(setupReturnValue, 'Setup return value not defined');\n\n setupReturnValue();\n },\n\n setupEventListeners: ({ handleAccountsChanged }) => {\n const eventsFeature = features['standard:events'];\n\n return eventsFeature.on(\n 'change',\n ({ accounts }: StandardEventsChangeProperties) => {\n handleAccountsChanged({\n addresses: accounts?.map((account) => account.address) ?? [],\n });\n }\n );\n },\n\n supportedEvents: ['accountsChanged'],\n });\n\n const destroy: SuiWalletProvider['destroy'] = async () => {\n cleanupEventEmitter();\n try {\n await disconnectFeature?.();\n } catch {\n // Best-effort: wallet may already be disconnected\n }\n };\n\n const walletProvider: SuiWalletProvider = {\n chain: 'SUI',\n confirmTransaction: (args) => suiConfirmTransaction(args, dynamicClient),\n connect,\n destroy,\n get events() {\n return getEventEmitter();\n },\n executeSwapTransaction: (args) =>\n suiExecuteSwapTransaction(args, dynamicClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getSuiClient,\n groupKey: formatWalletProviderGroupKey(walletStandardWallet.name),\n key,\n metadata: {\n displayName: walletStandardWallet.name,\n icon: walletStandardWallet.icon,\n },\n signAndExecuteTransaction,\n signAndExecuteTransactionBlock,\n signMessage,\n signTransaction,\n signTransactionBlock,\n switchActiveNetwork,\n transferAmount: (args) => suiTransferAmount(args, dynamicClient),\n walletProviderType,\n };\n\n return walletProvider;\n};\n","import {\n WalletProviderPriority,\n formatWalletProviderKey,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport type {\n SuiWalletFeatures,\n Wallet,\n WalletWithFeatures,\n} from '@mysten/wallet-standard';\nimport {\n getWallets,\n isWalletWithRequiredFeatureSet,\n} from '@mysten/wallet-standard';\n\nimport { registerSuiNetworkProviderBuilder } from '../../registerSuiNetworkProviderBuilder';\nimport { createWalletProviderFromSuiStandardWallet } from '../utils/createWalletProviderFromSuiStandardWallet';\n\nexport const SUI_WALLET_STANDARD_EXTENSION_KEY = 'suiWalletStandard';\n\nconst requiredFeatures: (keyof SuiWalletFeatures)[] = [\n 'standard:events',\n 'standard:connect',\n 'sui:signPersonalMessage',\n];\n\n/**\n * Adds the Sui Wallet Standard extension to the Dynamic client.\n *\n * This extension enables integration with wallets that implement the Sui Wallet Standard,\n * automatically detecting and registering compatible wallets for use with the Dynamic SDK.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns A function that removes the wallet-standard register listener when called.\n * @notInstrumented\n */\nexport const addSuiWalletStandardExtension = (\n client = getDefaultClient()\n): VoidFunction => {\n if (\n hasExtension({ extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY }, client)\n ) {\n return () => {\n // noop\n };\n }\n\n registerExtension(\n { extensionKey: SUI_WALLET_STANDARD_EXTENSION_KEY },\n client\n );\n\n registerSuiNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const isSuiWallet = (\n wallet: Wallet\n ): wallet is WalletWithFeatures<SuiWalletFeatures> =>\n isWalletWithRequiredFeatureSet(wallet, requiredFeatures);\n\n const getKeyForWallet = (wallet: WalletWithFeatures<SuiWalletFeatures>) =>\n formatWalletProviderKey({\n chain: 'SUI',\n displayName: wallet.name,\n walletProviderType: WalletProviderEnum.BrowserExtension,\n });\n\n const registerSuiWallet = (\n walletStandardWallet: WalletWithFeatures<SuiWalletFeatures>\n ) => {\n const key = getKeyForWallet(walletStandardWallet);\n\n if (walletProviderRegistry.getByKey(key)) {\n return;\n }\n\n const walletProvider = createWalletProviderFromSuiStandardWallet({\n dynamicClient: client,\n walletStandardWallet,\n });\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SELF_ANNOUNCEMENT_STANDARD,\n walletProvider,\n });\n };\n\n const wallets = getWallets();\n\n const removeRegisterListener = wallets.on(\n 'register',\n (...registeredWallets) => {\n registeredWallets.filter(isSuiWallet).forEach(registerSuiWallet);\n }\n );\n\n wallets.get().filter(isSuiWallet).forEach(registerSuiWallet);\n\n return removeRegisterListener;\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_suiTransferAmount = require('./suiTransferAmount-
|
|
1
|
+
const require_suiTransferAmount = require('./suiTransferAmount-Bv2YEe8B.cjs');
|
|
2
2
|
let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
|
|
3
3
|
let _mysten_sui_client = require("@mysten/sui/client");
|
|
4
4
|
let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
@@ -129,4 +129,4 @@ Object.defineProperty(exports, 'addWaasSuiExtension', {
|
|
|
129
129
|
return addWaasSuiExtension;
|
|
130
130
|
}
|
|
131
131
|
});
|
|
132
|
-
//# sourceMappingURL=addWaasSuiExtension-
|
|
132
|
+
//# sourceMappingURL=addWaasSuiExtension-7Br6QczT.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addWaasSuiExtension-
|
|
1
|
+
{"version":3,"file":"addWaasSuiExtension-7Br6QczT.cjs","names":["chain: Chain","WalletProviderEnum","DYNAMIC_WAAS_METADATA","getActiveNetworkId: WaasSuiWalletProvider['getActiveNetworkId']","getSuiClient: WaasSuiWalletProvider['getSuiClient']","SuiClient","switchActiveNetwork: WaasSuiWalletProvider['switchActiveNetwork']","getConnectedAddresses: WaasSuiWalletProvider['getConnectedAddresses']","signAndExecuteTransaction: WaasSuiWalletProvider['signAndExecuteTransaction']","signTransaction: WaasSuiWalletProvider['signTransaction']","signMessage: WaasSuiWalletProvider['signMessage']","suiConfirmTransaction","suiExecuteSwapTransaction","suiTransferAmount","WalletProviderPriority"],"sources":["../src/waas/utils/createWalletProviderForWaasSui/createWalletProviderForWaasSui.ts","../src/waas/addWaasSuiExtension/addWaasSuiExtension.ts"],"sourcesContent":["import {\n type Chain,\n type DynamicClient,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport {\n assertDefined,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n getBuffer,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport {\n DYNAMIC_WAAS_METADATA,\n createWaasProvider,\n getAllUserWaasAddressesForChain,\n} from '@dynamic-labs-sdk/client/waas/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\nimport { SuiClient } from '@mysten/sui/client';\n\nimport { suiConfirmTransaction } from '../../../utils/suiConfirmTransaction';\nimport { suiExecuteSwapTransaction } from '../../../utils/suiExecuteSwapTransaction';\nimport { suiTransferAmount } from '../../../utils/suiTransferAmount/suiTransferAmount';\nimport type { WaasSuiWalletProvider } from '../../WaasSuiWalletProvider.types';\n\n/** @notInstrumented */\nexport const createWalletProviderForWaasSui = (\n sdkClient: DynamicClient\n): WaasSuiWalletProvider => {\n const chain: Chain = 'SUI';\n\n const walletProviderType = WalletProviderEnum.EmbeddedWallet;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n walletProviderType,\n });\n\n const waasProvider = createWaasProvider({ chain, sdkClient });\n\n const getActiveNetworkId: WaasSuiWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client: sdkClient,\n walletProviderKey: key,\n });\n\n const getSuiClient: WaasSuiWalletProvider['getSuiClient'] = async ({\n walletAccount,\n }) => {\n const activeNetworkData = await getActiveNetworkData(\n { walletAccount },\n sdkClient\n );\n assertDefined(activeNetworkData, 'No active network data found');\n\n const url = activeNetworkData.networkData?.rpcUrls.http[0];\n assertDefined(url, 'No RPC URL found for active network');\n\n return new SuiClient({ url });\n };\n\n const switchActiveNetwork: WaasSuiWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) =>\n switchActiveNetworkInLastKnownRegistry({\n client: sdkClient,\n networkId,\n walletProviderKey: key,\n });\n\n const getConnectedAddresses: WaasSuiWalletProvider['getConnectedAddresses'] =\n async () => {\n const waasSolanaAddresses = getAllUserWaasAddressesForChain(\n { chain },\n sdkClient\n );\n\n return {\n addresses: waasSolanaAddresses,\n };\n };\n\n const signAndExecuteTransaction: WaasSuiWalletProvider['signAndExecuteTransaction'] =\n async ({ transaction, walletAccount }) => {\n const { bytes, signature } = await signTransaction({\n transaction,\n walletAccount,\n });\n\n const suiClient = await getSuiClient({ walletAccount });\n\n const response = await suiClient.executeTransactionBlock({\n signature,\n transactionBlock: bytes,\n });\n\n return {\n ...response,\n bytes,\n effects: response.effects?.toString() ?? '',\n signature,\n };\n };\n\n const signTransaction: WaasSuiWalletProvider['signTransaction'] = async ({\n transaction,\n walletAccount,\n }) => {\n const suiClient = await getSuiClient({ walletAccount });\n const txBytes = await transaction.build({ client: suiClient });\n const txBytesBase64 = getBuffer().from(txBytes).toString('base64');\n const txString = getBuffer().from(txBytes).toString('hex');\n\n const { signature } = await waasProvider.signSerializedTransaction({\n serializedTransaction: txString,\n walletAccount,\n });\n\n return { bytes: txBytesBase64, signature };\n };\n\n const signMessage: WaasSuiWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n assertDefined(walletAccount, 'Wallet account is required');\n\n return waasProvider.signMessage({ message, walletAccount });\n };\n\n return {\n ...waasProvider,\n chain,\n confirmTransaction: (args) => suiConfirmTransaction(args, sdkClient),\n executeSwapTransaction: (args) =>\n suiExecuteSwapTransaction(args, sdkClient),\n getActiveNetworkId,\n getConnectedAddresses,\n getSuiClient,\n groupKey: formatWalletProviderGroupKey(DYNAMIC_WAAS_METADATA.displayName),\n key,\n metadata: {\n displayName: DYNAMIC_WAAS_METADATA.displayName,\n icon: DYNAMIC_WAAS_METADATA.icon,\n },\n signAndExecuteTransaction,\n signMessage,\n signTransaction,\n switchActiveNetwork,\n transferAmount: (args) => suiTransferAmount(args, sdkClient),\n walletProviderType,\n };\n};\n","import {\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport { registerSuiNetworkProviderBuilder } from '../../registerSuiNetworkProviderBuilder';\nimport { createWalletProviderForWaasSui } from '../utils/createWalletProviderForWaasSui';\n\nexport const WAAS_SUI_EXTENSION_KEY = 'waasSui';\n\n/**\n * Adds the Dynamic WaaS (Wallet as a Service) Sui extension to the Dynamic client.\n *\n * This extension enables embedded wallet functionality for Sui blockchain,\n * allowing users to have wallets managed by Dynamic's infrastructure.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addWaasSuiExtension = (client = getDefaultClient()): void => {\n if (hasExtension({ extensionKey: WAAS_SUI_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: WAAS_SUI_EXTENSION_KEY }, client);\n registerSuiNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n\n const walletProvider = createWalletProviderForWaasSui(client);\n\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WALLET_SDK,\n walletProvider,\n });\n};\n"],"mappings":";;;;;;;;;AA2BA,MAAa,kCACX,cAC0B;CAC1B,MAAMA,QAAe;CAErB,MAAM,qBAAqBC,8CAAmB;CAE9C,MAAM,iEAA8B;EAClC;EACA,aAAaC,yDAAsB;EACnC;EACD,CAAC;CAEF,MAAM,0EAAkC;EAAE;EAAO;EAAW,CAAC;CAE7D,MAAMC,qBACJ,uFAC0C;EACtC,QAAQ;EACR,mBAAmB;EACpB,CAAC;CAEN,MAAMC,eAAsD,OAAO,EACjE,oBACI;EACJ,MAAM,oBAAoB,yDACxB,EAAE,eAAe,EACjB,UACD;AACD,mDAAc,mBAAmB,+BAA+B;EAEhE,MAAM,MAAM,kBAAkB,aAAa,QAAQ,KAAK;AACxD,mDAAc,KAAK,sCAAsC;AAEzD,SAAO,IAAIC,6BAAU,EAAE,KAAK,CAAC;;CAG/B,MAAMC,sBACJ,OAAO,EAAE,0FACgC;EACrC,QAAQ;EACR;EACA,mBAAmB;EACpB,CAAC;CAEN,MAAMC,wBACJ,YAAY;AAMV,SAAO,EACL,mFALA,EAAE,OAAO,EACT,UACD,EAIA;;CAGL,MAAMC,4BACJ,OAAO,EAAE,aAAa,oBAAoB;EACxC,MAAM,EAAE,OAAO,cAAc,MAAM,gBAAgB;GACjD;GACA;GACD,CAAC;EAIF,MAAM,WAAW,OAFC,MAAM,aAAa,EAAE,eAAe,CAAC,EAEtB,wBAAwB;GACvD;GACA,kBAAkB;GACnB,CAAC;AAEF,SAAO;GACL,GAAG;GACH;GACA,SAAS,SAAS,SAAS,UAAU,IAAI;GACzC;GACD;;CAGL,MAAMC,kBAA4D,OAAO,EACvE,aACA,oBACI;EACJ,MAAM,YAAY,MAAM,aAAa,EAAE,eAAe,CAAC;EACvD,MAAM,UAAU,MAAM,YAAY,MAAM,EAAE,QAAQ,WAAW,CAAC;EAC9D,MAAM,8DAA2B,CAAC,KAAK,QAAQ,CAAC,SAAS,SAAS;EAClE,MAAM,yDAAsB,CAAC,KAAK,QAAQ,CAAC,SAAS,MAAM;EAE1D,MAAM,EAAE,cAAc,MAAM,aAAa,0BAA0B;GACjE,uBAAuB;GACvB;GACD,CAAC;AAEF,SAAO;GAAE,OAAO;GAAe;GAAW;;CAG5C,MAAMC,cAAoD,OAAO,EAC/D,SACA,oBACI;AACJ,mDAAc,eAAe,6BAA6B;AAE1D,SAAO,aAAa,YAAY;GAAE;GAAS;GAAe,CAAC;;AAG7D,QAAO;EACL,GAAG;EACH;EACA,qBAAqB,SAASC,gDAAsB,MAAM,UAAU;EACpE,yBAAyB,SACvBC,oDAA0B,MAAM,UAAU;EAC5C;EACA;EACA;EACA,0EAAuCV,yDAAsB,YAAY;EACzE;EACA,UAAU;GACR,aAAaA,yDAAsB;GACnC,MAAMA,yDAAsB;GAC7B;EACD;EACA;EACA;EACA;EACA,iBAAiB,SAASW,4CAAkB,MAAM,UAAU;EAC5D;EACD;;;;;AC9IH,MAAa,yBAAyB;;;;;;;;;;AAWtC,MAAa,uBAAuB,8DAA2B,KAAW;AACxE,qDAAiB,EAAE,cAAc,wBAAwB,EAAE,OAAO,CAChE;AAGF,sDAAkB,EAAE,cAAc,wBAAwB,EAAE,OAAO;AACnE,6DAAkC,OAAO;CAEzC,MAAM,sFAAmD,OAAO;CAEhE,MAAM,iBAAiB,+BAA+B,OAAO;AAE7D,wBAAuB,SAAS;EAC9B,UAAUC,qDAAuB;EACjC;EACD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as suiConfirmTransaction, l as registerSuiNetworkProviderBuilder, r as suiExecuteSwapTransaction, t as suiTransferAmount } from "./suiTransferAmount-
|
|
1
|
+
import { i as suiConfirmTransaction, l as registerSuiNetworkProviderBuilder, r as suiExecuteSwapTransaction, t as suiTransferAmount } from "./suiTransferAmount-DEoxDo_h.esm.js";
|
|
2
2
|
import { WalletProviderPriority, assertDefined, formatWalletProviderGroupKey, formatWalletProviderKey, getActiveNetworkIdFromLastKnownRegistry, getBuffer, getDefaultClient, getWalletProviderRegistry, hasExtension, registerExtension, switchActiveNetworkInLastKnownRegistry } from "@dynamic-labs-sdk/client/core";
|
|
3
3
|
import { SuiClient } from "@mysten/sui/client";
|
|
4
4
|
import { getActiveNetworkData } from "@dynamic-labs-sdk/client";
|
|
@@ -124,4 +124,4 @@ const addWaasSuiExtension = (client = getDefaultClient()) => {
|
|
|
124
124
|
|
|
125
125
|
//#endregion
|
|
126
126
|
export { addWaasSuiExtension as t };
|
|
127
|
-
//# sourceMappingURL=addWaasSuiExtension-
|
|
127
|
+
//# sourceMappingURL=addWaasSuiExtension-Db66-Frh.esm.js.map
|