@mysten/dapp-kit 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/components/AccountDropdownMenu.js +94 -35
  3. package/dist/cjs/components/AccountDropdownMenu.js.map +4 -4
  4. package/dist/cjs/components/ConnectButton.js +163 -104
  5. package/dist/cjs/components/ConnectButton.js.map +4 -4
  6. package/dist/cjs/components/WalletProvider.js +1 -2
  7. package/dist/cjs/components/WalletProvider.js.map +2 -2
  8. package/dist/cjs/hooks/useResolveSuiNSNames.d.ts +105 -0
  9. package/dist/cjs/hooks/useResolveSuiNSNames.js +82 -0
  10. package/dist/cjs/hooks/useResolveSuiNSNames.js.map +7 -0
  11. package/dist/cjs/index.js +51 -32
  12. package/dist/cjs/index.js.map +4 -4
  13. package/dist/cjs/walletStore.js +1 -2
  14. package/dist/cjs/walletStore.js.map +2 -2
  15. package/dist/esm/components/AccountDropdownMenu.js +83 -24
  16. package/dist/esm/components/AccountDropdownMenu.js.map +4 -4
  17. package/dist/esm/components/ConnectButton.js +135 -76
  18. package/dist/esm/components/ConnectButton.js.map +4 -4
  19. package/dist/esm/components/WalletProvider.js +1 -2
  20. package/dist/esm/components/WalletProvider.js.map +2 -2
  21. package/dist/esm/hooks/useResolveSuiNSNames.d.ts +105 -0
  22. package/dist/esm/hooks/useResolveSuiNSNames.js +59 -0
  23. package/dist/esm/hooks/useResolveSuiNSNames.js.map +7 -0
  24. package/dist/esm/index.js +37 -18
  25. package/dist/esm/index.js.map +3 -3
  26. package/dist/esm/walletStore.js +1 -2
  27. package/dist/esm/walletStore.js.map +2 -2
  28. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +1 -1
  31. package/src/components/AccountDropdownMenu.tsx +6 -2
  32. package/src/hooks/useResolveSuiNSNames.ts +21 -0
  33. package/src/walletStore.ts +3 -4
package/dist/cjs/index.js CHANGED
@@ -177,13 +177,44 @@ var import_utils = require("@mysten/sui.js/utils");
177
177
  var DropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
178
178
  var import_clsx3 = __toESM(require("clsx"));
179
179
 
180
+ // src/hooks/useSuiClientQuery.ts
181
+ var import_react_query = require("@tanstack/react-query");
182
+ function useSuiClientQuery(...args) {
183
+ const [method, params, { queryKey = [], ...options } = {}] = args;
184
+ const suiContext = useSuiClientContext();
185
+ return (0, import_react_query.useQuery)({
186
+ ...options,
187
+ queryKey: [suiContext.network, method, params, ...queryKey],
188
+ queryFn: async () => {
189
+ return await suiContext.client[method](params);
190
+ }
191
+ });
192
+ }
193
+
194
+ // src/hooks/useResolveSuiNSNames.ts
195
+ function useResolveSuiNSName(address) {
196
+ const { data, ...rest } = useSuiClientQuery(
197
+ "resolveNameServiceNames",
198
+ {
199
+ address,
200
+ limit: 1
201
+ },
202
+ {
203
+ enabled: !!address,
204
+ refetchOnWindowFocus: false,
205
+ retry: false
206
+ }
207
+ );
208
+ return { data: data?.data?.[0] ?? null, ...rest };
209
+ }
210
+
180
211
  // src/hooks/wallet/useAccounts.ts
181
212
  function useAccounts() {
182
213
  return useWalletStore((state) => state.accounts);
183
214
  }
184
215
 
185
216
  // src/hooks/wallet/useDisconnectWallet.ts
186
- var import_react_query = require("@tanstack/react-query");
217
+ var import_react_query2 = require("@tanstack/react-query");
187
218
 
188
219
  // src/constants/walletMutationKeys.ts
189
220
  var walletMutationKeys = {
@@ -223,7 +254,7 @@ function useDisconnectWallet({
223
254
  } = {}) {
224
255
  const currentWallet = useCurrentWallet();
225
256
  const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);
226
- return (0, import_react_query.useMutation)({
257
+ return (0, import_react_query2.useMutation)({
227
258
  mutationKey: walletMutationKeys.disconnectWallet(mutationKey),
228
259
  mutationFn: async () => {
229
260
  if (!currentWallet) {
@@ -241,14 +272,14 @@ function useDisconnectWallet({
241
272
  }
242
273
 
243
274
  // src/hooks/wallet/useSwitchAccount.ts
244
- var import_react_query2 = require("@tanstack/react-query");
275
+ var import_react_query3 = require("@tanstack/react-query");
245
276
  function useSwitchAccount({
246
277
  mutationKey,
247
278
  ...mutationOptions
248
279
  } = {}) {
249
280
  const currentWallet = useCurrentWallet();
250
281
  const setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);
251
- return (0, import_react_query2.useMutation)({
282
+ return (0, import_react_query3.useMutation)({
252
283
  mutationKey: walletMutationKeys.switchAccount(mutationKey),
253
284
  mutationFn: async ({ account }) => {
254
285
  if (!currentWallet) {
@@ -384,10 +415,13 @@ var import_jsx_runtime7 = require("react/jsx-runtime");
384
415
  function AccountDropdownMenu({ currentAccount }) {
385
416
  const { mutate: disconnectWallet } = useDisconnectWallet();
386
417
  const { mutate: switchAccount } = useSwitchAccount();
418
+ const { data: domain } = useResolveSuiNSName(
419
+ currentAccount.label ? null : currentAccount.address
420
+ );
387
421
  const accounts = useAccounts();
388
422
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(DropdownMenu.Root, { modal: false, children: [
389
423
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(StyleMarker, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Button, { size: "lg", className: connectedAccount, children: [
390
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { mono: true, weight: "bold", children: (0, import_utils.formatAddress)(currentAccount.address) }),
424
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { mono: true, weight: "bold", children: currentAccount.label ?? domain ?? (0, import_utils.formatAddress)(currentAccount.address) }),
391
425
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ChevronIcon, {})
392
426
  ] }) }) }),
393
427
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DropdownMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(StyleMarker, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(DropdownMenu.Content, { className: menuContent, children: [
@@ -397,7 +431,7 @@ function AccountDropdownMenu({ currentAccount }) {
397
431
  className: (0, import_clsx3.default)(menuItem, switchAccountMenuItem),
398
432
  onSelect: () => switchAccount({ account }),
399
433
  children: [
400
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { mono: true, children: (0, import_utils.formatAddress)(account.address) }),
434
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { mono: true, children: account.label ?? (0, import_utils.formatAddress)(account.address) }),
401
435
  currentAccount.address === account.address ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CheckIcon, {}) : null
402
436
  ]
403
437
  },
@@ -422,13 +456,13 @@ var import_clsx7 = __toESM(require("clsx"));
422
456
  var import_react10 = require("react");
423
457
 
424
458
  // src/hooks/wallet/useConnectWallet.ts
425
- var import_react_query3 = require("@tanstack/react-query");
459
+ var import_react_query4 = require("@tanstack/react-query");
426
460
  function useConnectWallet({
427
461
  mutationKey,
428
462
  ...mutationOptions
429
463
  } = {}) {
430
464
  const setWalletConnected = useWalletStore((state) => state.setWalletConnected);
431
- return (0, import_react_query3.useMutation)({
465
+ return (0, import_react_query4.useMutation)({
432
466
  mutationKey: walletMutationKeys.connectWallet(mutationKey),
433
467
  mutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {
434
468
  const connectResult = await wallet.features["standard:connect"].connect(standardConnectInput);
@@ -1140,10 +1174,9 @@ function createWalletStore({ wallets, storage, storageKey }) {
1140
1174
  },
1141
1175
  updateWalletAccounts(accounts) {
1142
1176
  const currentAccount = get().currentAccount;
1143
- const isCurrentAccountStillAuthorized = currentAccount ? accounts.some(({ address }) => address === currentAccount.address) : false;
1144
1177
  set(() => ({
1145
1178
  accounts,
1146
- currentAccount: isCurrentAccountStillAuthorized ? currentAccount : accounts[0]
1179
+ currentAccount: currentAccount ? accounts.find(({ address }) => address === currentAccount.address) : accounts[0]
1147
1180
  }));
1148
1181
  }
1149
1182
  }),
@@ -1306,14 +1339,14 @@ function WalletConnectionManager({
1306
1339
  }
1307
1340
 
1308
1341
  // src/hooks/wallet/useSignPersonalMessage.ts
1309
- var import_react_query4 = require("@tanstack/react-query");
1342
+ var import_react_query5 = require("@tanstack/react-query");
1310
1343
  function useSignPersonalMessage({
1311
1344
  mutationKey,
1312
1345
  ...mutationOptions
1313
1346
  } = {}) {
1314
1347
  const currentWallet = useCurrentWallet();
1315
1348
  const currentAccount = useCurrentAccount();
1316
- return (0, import_react_query4.useMutation)({
1349
+ return (0, import_react_query5.useMutation)({
1317
1350
  mutationKey: walletMutationKeys.signPersonalMessage(mutationKey),
1318
1351
  mutationFn: async (signPersonalMessageArgs) => {
1319
1352
  if (!currentWallet) {
@@ -1341,14 +1374,14 @@ function useSignPersonalMessage({
1341
1374
  }
1342
1375
 
1343
1376
  // src/hooks/wallet/useSignTransactionBlock.ts
1344
- var import_react_query5 = require("@tanstack/react-query");
1377
+ var import_react_query6 = require("@tanstack/react-query");
1345
1378
  function useSignTransactionBlock({
1346
1379
  mutationKey,
1347
1380
  ...mutationOptions
1348
1381
  } = {}) {
1349
1382
  const currentWallet = useCurrentWallet();
1350
1383
  const currentAccount = useCurrentAccount();
1351
- return (0, import_react_query5.useMutation)({
1384
+ return (0, import_react_query6.useMutation)({
1352
1385
  mutationKey: walletMutationKeys.signTransactionBlock(mutationKey),
1353
1386
  mutationFn: async (signTransactionBlockArgs) => {
1354
1387
  if (!currentWallet) {
@@ -1377,7 +1410,7 @@ function useSignTransactionBlock({
1377
1410
  }
1378
1411
 
1379
1412
  // src/hooks/wallet/useSignAndExecuteTransactionBlock.ts
1380
- var import_react_query6 = require("@tanstack/react-query");
1413
+ var import_react_query7 = require("@tanstack/react-query");
1381
1414
  function useSignAndExecuteTransactionBlock({
1382
1415
  mutationKey,
1383
1416
  executeFromWallet,
@@ -1386,7 +1419,7 @@ function useSignAndExecuteTransactionBlock({
1386
1419
  const currentWallet = useCurrentWallet();
1387
1420
  const currentAccount = useCurrentAccount();
1388
1421
  const client = useSuiClient();
1389
- return (0, import_react_query6.useMutation)({
1422
+ return (0, import_react_query7.useMutation)({
1390
1423
  mutationKey: walletMutationKeys.signAndExecuteTransactionBlock(mutationKey),
1391
1424
  mutationFn: async ({ requestType, options, ...signTransactionBlockArgs }) => {
1392
1425
  if (!currentWallet) {
@@ -1436,10 +1469,10 @@ function useSignAndExecuteTransactionBlock({
1436
1469
  }
1437
1470
 
1438
1471
  // src/hooks/useSuiClientMutation.ts
1439
- var import_react_query7 = require("@tanstack/react-query");
1472
+ var import_react_query8 = require("@tanstack/react-query");
1440
1473
  function useSuiClientMutation(method, options = {}) {
1441
1474
  const suiContext = useSuiClientContext();
1442
- return (0, import_react_query7.useMutation)({
1475
+ return (0, import_react_query8.useMutation)({
1443
1476
  ...options,
1444
1477
  mutationFn: async (params) => {
1445
1478
  return await suiContext.client[method](params);
@@ -1447,20 +1480,6 @@ function useSuiClientMutation(method, options = {}) {
1447
1480
  });
1448
1481
  }
1449
1482
 
1450
- // src/hooks/useSuiClientQuery.ts
1451
- var import_react_query8 = require("@tanstack/react-query");
1452
- function useSuiClientQuery(...args) {
1453
- const [method, params, { queryKey = [], ...options } = {}] = args;
1454
- const suiContext = useSuiClientContext();
1455
- return (0, import_react_query8.useQuery)({
1456
- ...options,
1457
- queryKey: [suiContext.network, method, params, ...queryKey],
1458
- queryFn: async () => {
1459
- return await suiContext.client[method](params);
1460
- }
1461
- });
1462
- }
1463
-
1464
1483
  // src/hooks/useSuiClientInfiniteQuery.ts
1465
1484
  var import_react_query9 = require("@tanstack/react-query");
1466
1485
  function useSuiClientInfiniteQuery(method, params, { queryKey = [], enabled = !!params, ...options } = {}) {