@mysten/dapp-kit 0.10.1 → 0.10.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +2 -3
  3. package/dist/cjs/components/AccountDropdownMenu.css +15 -11
  4. package/dist/cjs/components/AccountDropdownMenu.css.css +15 -11
  5. package/dist/cjs/components/AccountDropdownMenu.css.css.map +3 -3
  6. package/dist/cjs/components/AccountDropdownMenu.css.d.ts +1 -0
  7. package/dist/cjs/components/AccountDropdownMenu.css.js +6 -4
  8. package/dist/cjs/components/AccountDropdownMenu.css.js.map +2 -2
  9. package/dist/cjs/components/AccountDropdownMenu.css.map +3 -3
  10. package/dist/cjs/components/AccountDropdownMenu.js +6 -5
  11. package/dist/cjs/components/AccountDropdownMenu.js.map +2 -2
  12. package/dist/cjs/components/ConnectButton.css +15 -11
  13. package/dist/cjs/components/ConnectButton.css.map +3 -3
  14. package/dist/cjs/components/ConnectButton.js +16 -9
  15. package/dist/cjs/components/ConnectButton.js.map +3 -3
  16. package/dist/cjs/components/WalletProvider.d.ts +2 -2
  17. package/dist/cjs/components/WalletProvider.js +30 -24
  18. package/dist/cjs/components/WalletProvider.js.map +4 -4
  19. package/dist/cjs/components/connect-modal/ConnectModal.js +10 -4
  20. package/dist/cjs/components/connect-modal/ConnectModal.js.map +3 -3
  21. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js +8 -2
  22. package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +3 -3
  23. package/dist/cjs/hooks/useSuiClientQueries.d.ts +1 -1
  24. package/dist/cjs/hooks/useSuiClientQueries.js.map +1 -1
  25. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +12 -1
  26. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +3 -3
  27. package/dist/cjs/hooks/wallet/useWalletsChanged.js.map +1 -1
  28. package/dist/cjs/index.css +15 -11
  29. package/dist/cjs/index.css.map +3 -3
  30. package/dist/cjs/index.d.ts +1 -0
  31. package/dist/cjs/index.js +69 -39
  32. package/dist/cjs/index.js.map +4 -4
  33. package/dist/cjs/utils/walletUtils.d.ts +1 -0
  34. package/dist/cjs/utils/walletUtils.js +5 -1
  35. package/dist/cjs/utils/walletUtils.js.map +2 -2
  36. package/dist/cjs/walletStore.d.ts +2 -2
  37. package/dist/cjs/walletStore.js +9 -1
  38. package/dist/cjs/walletStore.js.map +3 -3
  39. package/dist/esm/components/AccountDropdownMenu.css +15 -11
  40. package/dist/esm/components/AccountDropdownMenu.css.css +15 -11
  41. package/dist/esm/components/AccountDropdownMenu.css.css.map +3 -3
  42. package/dist/esm/components/AccountDropdownMenu.css.d.ts +1 -0
  43. package/dist/esm/components/AccountDropdownMenu.css.js +6 -4
  44. package/dist/esm/components/AccountDropdownMenu.css.js.map +2 -2
  45. package/dist/esm/components/AccountDropdownMenu.css.map +3 -3
  46. package/dist/esm/components/AccountDropdownMenu.js +6 -5
  47. package/dist/esm/components/AccountDropdownMenu.js.map +2 -2
  48. package/dist/esm/components/ConnectButton.css +15 -11
  49. package/dist/esm/components/ConnectButton.css.map +3 -3
  50. package/dist/esm/components/ConnectButton.js +16 -9
  51. package/dist/esm/components/ConnectButton.js.map +3 -3
  52. package/dist/esm/components/WalletProvider.d.ts +2 -2
  53. package/dist/esm/components/WalletProvider.js +28 -22
  54. package/dist/esm/components/WalletProvider.js.map +4 -4
  55. package/dist/esm/components/connect-modal/ConnectModal.js +10 -4
  56. package/dist/esm/components/connect-modal/ConnectModal.js.map +3 -3
  57. package/dist/esm/components/connect-modal/wallet-list/WalletList.js +8 -2
  58. package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +3 -3
  59. package/dist/esm/hooks/useSuiClientQueries.d.ts +1 -1
  60. package/dist/esm/hooks/useSuiClientQueries.js.map +1 -1
  61. package/dist/esm/hooks/wallet/useAutoConnectWallet.js +12 -1
  62. package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +3 -3
  63. package/dist/esm/hooks/wallet/useWalletsChanged.js.map +1 -1
  64. package/dist/esm/index.css +15 -11
  65. package/dist/esm/index.css.map +3 -3
  66. package/dist/esm/index.d.ts +1 -0
  67. package/dist/esm/index.js +61 -31
  68. package/dist/esm/index.js.map +4 -4
  69. package/dist/esm/utils/walletUtils.d.ts +1 -0
  70. package/dist/esm/utils/walletUtils.js +5 -1
  71. package/dist/esm/utils/walletUtils.js.map +2 -2
  72. package/dist/esm/walletStore.js +9 -1
  73. package/dist/esm/walletStore.js.map +3 -3
  74. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  75. package/dist/tsconfig.tsbuildinfo +1 -1
  76. package/package.json +4 -4
  77. package/src/components/AccountDropdownMenu.css.ts +4 -0
  78. package/src/components/AccountDropdownMenu.tsx +1 -1
  79. package/src/components/WalletProvider.tsx +3 -1
  80. package/src/components/connect-modal/ConnectModal.tsx +6 -2
  81. package/src/components/connect-modal/wallet-list/WalletList.tsx +3 -2
  82. package/src/hooks/useSuiClientQueries.ts +1 -1
  83. package/src/hooks/wallet/useAutoConnectWallet.ts +8 -1
  84. package/src/index.ts +1 -0
  85. package/src/utils/walletUtils.ts +4 -0
  86. package/src/walletStore.ts +4 -2
package/dist/esm/index.js CHANGED
@@ -136,6 +136,25 @@ function getSelectedAccount(connectedAccounts, accountAddress) {
136
136
  return connectedAccounts[0];
137
137
  }
138
138
 
139
+ // src/utils/walletUtils.ts
140
+ import { getWallets, isWalletWithRequiredFeatureSet } from "@mysten/wallet-standard";
141
+ function getRegisteredWallets(preferredWallets, requiredFeatures) {
142
+ const walletsApi = getWallets();
143
+ const wallets = walletsApi.get();
144
+ const suiWallets = wallets.filter(
145
+ (wallet) => isWalletWithRequiredFeatureSet(wallet, requiredFeatures)
146
+ );
147
+ return [
148
+ // Preferred wallets, in order:
149
+ ...preferredWallets.map((name) => suiWallets.find((wallet) => wallet.name === name)).filter(Boolean),
150
+ // Wallets in default order:
151
+ ...suiWallets.filter((wallet) => !preferredWallets.includes(wallet.name))
152
+ ];
153
+ }
154
+ function getWalletUniqueIdentifier(wallet) {
155
+ return wallet?.id ?? wallet?.name;
156
+ }
157
+
139
158
  // src/components/icons/BackIcon.tsx
140
159
  import { jsx } from "react/jsx-runtime";
141
160
  function BackIcon(props) {
@@ -450,10 +469,10 @@ function WalletList({ selectedWalletName, onPlaceholderClick, onSelect }) {
450
469
  {
451
470
  name: wallet.name,
452
471
  icon: wallet.icon,
453
- isSelected: wallet.name === selectedWalletName,
472
+ isSelected: getWalletUniqueIdentifier(wallet) === selectedWalletName,
454
473
  onClick: () => onSelect(wallet)
455
474
  },
456
- wallet.name
475
+ getWalletUniqueIdentifier(wallet)
457
476
  )) : /* @__PURE__ */ jsx14(
458
477
  WalletListItem,
459
478
  {
@@ -528,10 +547,10 @@ function ConnectModal({ trigger, open, defaultOpen, onOpenChange }) {
528
547
  /* @__PURE__ */ jsx15(
529
548
  WalletList,
530
549
  {
531
- selectedWalletName: selectedWallet?.name,
550
+ selectedWalletName: getWalletUniqueIdentifier(selectedWallet),
532
551
  onPlaceholderClick: () => setCurrentView("getting-started"),
533
552
  onSelect: (wallet) => {
534
- if (selectedWallet?.name !== wallet.name) {
553
+ if (getWalletUniqueIdentifier(selectedWallet) !== getWalletUniqueIdentifier(wallet)) {
535
554
  setSelectedWallet(wallet);
536
555
  connectWallet(wallet);
537
556
  }
@@ -779,10 +798,11 @@ function useSwitchAccount({
779
798
 
780
799
  // src/components/AccountDropdownMenu.css.ts
781
800
  var connectedAccount = "AccountDropdownMenu_connectedAccount__div2ql0";
782
- var menuContent = "AccountDropdownMenu_menuContent__div2ql1";
783
- var menuItem = "AccountDropdownMenu_menuItem__div2ql2";
784
- var separator = "AccountDropdownMenu_separator__div2ql4";
785
- var switchAccountMenuItem = "AccountDropdownMenu_switchAccountMenuItem__div2ql3";
801
+ var menuContainer = "AccountDropdownMenu_menuContainer__div2ql1";
802
+ var menuContent = "AccountDropdownMenu_menuContent__div2ql2";
803
+ var menuItem = "AccountDropdownMenu_menuItem__div2ql3";
804
+ var separator = "AccountDropdownMenu_separator__div2ql5";
805
+ var switchAccountMenuItem = "AccountDropdownMenu_switchAccountMenuItem__div2ql4";
786
806
 
787
807
  // src/components/icons/CheckIcon.tsx
788
808
  import { jsx as jsx17 } from "react/jsx-runtime";
@@ -824,7 +844,7 @@ function AccountDropdownMenu({ currentAccount }) {
824
844
  /* @__PURE__ */ jsx19(Text, { mono: true, weight: "bold", children: currentAccount.label ?? domain ?? formatAddress(currentAccount.address) }),
825
845
  /* @__PURE__ */ jsx19(ChevronIcon, {})
826
846
  ] }) }) }),
827
- /* @__PURE__ */ jsx19(DropdownMenu.Portal, { children: /* @__PURE__ */ jsx19(StyleMarker, { children: /* @__PURE__ */ jsxs8(DropdownMenu.Content, { className: menuContent, children: [
847
+ /* @__PURE__ */ jsx19(DropdownMenu.Portal, { children: /* @__PURE__ */ jsx19(StyleMarker, { className: menuContainer, children: /* @__PURE__ */ jsxs8(DropdownMenu.Content, { className: menuContent, children: [
828
848
  accounts.map((account) => /* @__PURE__ */ jsx19(
829
849
  AccountDropdownMenuItem,
830
850
  {
@@ -915,7 +935,9 @@ function useAutoConnectWallet() {
915
935
  if (!lastConnectedWalletName || !lastConnectedAccountAddress || isConnected) {
916
936
  return "attempted";
917
937
  }
918
- const wallet = wallets.find((wallet2) => wallet2.name === lastConnectedWalletName);
938
+ const wallet = wallets.find(
939
+ (wallet2) => getWalletUniqueIdentifier(wallet2) === lastConnectedWalletName
940
+ );
919
941
  if (wallet) {
920
942
  await connectWallet({
921
943
  wallet,
@@ -944,6 +966,9 @@ function useAutoConnectWallet() {
944
966
  if (!clientOnly) {
945
967
  return "idle";
946
968
  }
969
+ if (isConnected) {
970
+ return "attempted";
971
+ }
947
972
  if (!lastConnectedWalletName) {
948
973
  return "attempted";
949
974
  }
@@ -952,7 +977,7 @@ function useAutoConnectWallet() {
952
977
 
953
978
  // src/hooks/wallet/useUnsafeBurnerWallet.ts
954
979
  import { Ed25519Keypair } from "@mysten/sui.js/keypairs/ed25519";
955
- import { getWallets, ReadonlyWalletAccount, SUI_CHAINS } from "@mysten/wallet-standard";
980
+ import { getWallets as getWallets2, ReadonlyWalletAccount, SUI_CHAINS } from "@mysten/wallet-standard";
956
981
  import { useEffect } from "react";
957
982
  var WALLET_NAME = "Unsafe Burner Wallet";
958
983
  function useUnsafeBurnerWallet(enabled) {
@@ -967,7 +992,7 @@ function useUnsafeBurnerWallet(enabled) {
967
992
  }
968
993
  function registerUnsafeBurnerWallet(suiClient) {
969
994
  var _on, _connect, _signPersonalMessage, _signTransactionBlock, _signAndExecuteTransactionBlock;
970
- const walletsApi = getWallets();
995
+ const walletsApi = getWallets2();
971
996
  const registeredWallets = walletsApi.get();
972
997
  if (registeredWallets.find((wallet) => wallet.name === WALLET_NAME)) {
973
998
  console.warn(
@@ -1087,24 +1112,6 @@ function useWalletPropertiesChanged() {
1087
1112
  // src/hooks/wallet/useWalletsChanged.ts
1088
1113
  import { getWallets as getWallets3 } from "@mysten/wallet-standard";
1089
1114
  import { useEffect as useEffect3 } from "react";
1090
-
1091
- // src/utils/walletUtils.ts
1092
- import { getWallets as getWallets2, isWalletWithRequiredFeatureSet } from "@mysten/wallet-standard";
1093
- function getRegisteredWallets(preferredWallets, requiredFeatures) {
1094
- const walletsApi = getWallets2();
1095
- const wallets = walletsApi.get();
1096
- const suiWallets = wallets.filter(
1097
- (wallet) => isWalletWithRequiredFeatureSet(wallet, requiredFeatures)
1098
- );
1099
- return [
1100
- // Preferred wallets, in order:
1101
- ...preferredWallets.map((name) => suiWallets.find((wallet) => wallet.name === name)).filter(Boolean),
1102
- // Wallets in default order:
1103
- ...suiWallets.filter((wallet) => !preferredWallets.includes(wallet.name))
1104
- ];
1105
- }
1106
-
1107
- // src/hooks/wallet/useWalletsChanged.ts
1108
1115
  function useWalletsChanged(preferredWallets, requiredFeatures) {
1109
1116
  const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);
1110
1117
  const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);
@@ -1215,7 +1222,7 @@ function createWalletStore({
1215
1222
  accounts: connectedAccounts,
1216
1223
  currentWallet: wallet,
1217
1224
  currentAccount: selectedAccount,
1218
- lastConnectedWalletName: wallet.name,
1225
+ lastConnectedWalletName: getWalletUniqueIdentifier(wallet),
1219
1226
  lastConnectedAccountAddress: selectedAccount?.address,
1220
1227
  connectionStatus: "connected"
1221
1228
  }));
@@ -1477,6 +1484,28 @@ function useSuiClientMutation(method, options = {}) {
1477
1484
  });
1478
1485
  }
1479
1486
 
1487
+ // src/hooks/useSuiClientQueries.ts
1488
+ import { useQueries } from "@tanstack/react-query";
1489
+ function useSuiClientQueries({
1490
+ queries,
1491
+ combine
1492
+ }) {
1493
+ const suiContext = useSuiClientContext();
1494
+ return useQueries({
1495
+ combine,
1496
+ queries: queries.map((query) => {
1497
+ const { method, params, options: { queryKey = [], ...restOptions } = {} } = query;
1498
+ return {
1499
+ ...restOptions,
1500
+ queryKey: [suiContext.network, method, params, ...queryKey],
1501
+ queryFn: async () => {
1502
+ return await suiContext.client[method](params);
1503
+ }
1504
+ };
1505
+ })
1506
+ });
1507
+ }
1508
+
1480
1509
  // src/hooks/wallet/useSignAndExecuteTransactionBlock.ts
1481
1510
  import { useMutation as useMutation5 } from "@tanstack/react-query";
1482
1511
  function useSignAndExecuteTransactionBlock({
@@ -1639,6 +1668,7 @@ export {
1639
1668
  useSuiClientContext,
1640
1669
  useSuiClientInfiniteQuery,
1641
1670
  useSuiClientMutation,
1671
+ useSuiClientQueries,
1642
1672
  useSuiClientQuery,
1643
1673
  useSwitchAccount,
1644
1674
  useWallets