@mysten/dapp-kit 0.10.2 → 0.11.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 (92) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +3 -4
  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 +5 -5
  17. package/dist/cjs/components/WalletProvider.js +54 -32
  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/constants/walletDefaults.d.ts +5 -0
  24. package/dist/cjs/constants/walletDefaults.js +53 -0
  25. package/dist/cjs/constants/walletDefaults.js.map +7 -0
  26. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +9 -1
  27. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +3 -3
  28. package/dist/cjs/hooks/wallet/useWalletsChanged.js.map +1 -1
  29. package/dist/cjs/index.css +15 -11
  30. package/dist/cjs/index.css.map +3 -3
  31. package/dist/cjs/index.js +64 -41
  32. package/dist/cjs/index.js.map +4 -4
  33. package/dist/cjs/utils/stateStorage.d.ts +2 -0
  34. package/dist/cjs/utils/stateStorage.js +40 -0
  35. package/dist/cjs/utils/stateStorage.js.map +7 -0
  36. package/dist/cjs/utils/walletUtils.d.ts +1 -0
  37. package/dist/cjs/utils/walletUtils.js +5 -1
  38. package/dist/cjs/utils/walletUtils.js.map +2 -2
  39. package/dist/cjs/walletStore.d.ts +2 -2
  40. package/dist/cjs/walletStore.js +9 -1
  41. package/dist/cjs/walletStore.js.map +3 -3
  42. package/dist/esm/components/AccountDropdownMenu.css +15 -11
  43. package/dist/esm/components/AccountDropdownMenu.css.css +15 -11
  44. package/dist/esm/components/AccountDropdownMenu.css.css.map +3 -3
  45. package/dist/esm/components/AccountDropdownMenu.css.d.ts +1 -0
  46. package/dist/esm/components/AccountDropdownMenu.css.js +6 -4
  47. package/dist/esm/components/AccountDropdownMenu.css.js.map +2 -2
  48. package/dist/esm/components/AccountDropdownMenu.css.map +3 -3
  49. package/dist/esm/components/AccountDropdownMenu.js +6 -5
  50. package/dist/esm/components/AccountDropdownMenu.js.map +2 -2
  51. package/dist/esm/components/ConnectButton.css +15 -11
  52. package/dist/esm/components/ConnectButton.css.map +3 -3
  53. package/dist/esm/components/ConnectButton.js +16 -9
  54. package/dist/esm/components/ConnectButton.js.map +3 -3
  55. package/dist/esm/components/WalletProvider.d.ts +5 -5
  56. package/dist/esm/components/WalletProvider.js +52 -30
  57. package/dist/esm/components/WalletProvider.js.map +4 -4
  58. package/dist/esm/components/connect-modal/ConnectModal.js +10 -4
  59. package/dist/esm/components/connect-modal/ConnectModal.js.map +3 -3
  60. package/dist/esm/components/connect-modal/wallet-list/WalletList.js +8 -2
  61. package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +3 -3
  62. package/dist/esm/constants/walletDefaults.d.ts +5 -0
  63. package/dist/esm/constants/walletDefaults.js +30 -0
  64. package/dist/esm/constants/walletDefaults.js.map +7 -0
  65. package/dist/esm/hooks/wallet/useAutoConnectWallet.js +9 -1
  66. package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +3 -3
  67. package/dist/esm/hooks/wallet/useWalletsChanged.js.map +1 -1
  68. package/dist/esm/index.css +15 -11
  69. package/dist/esm/index.css.map +3 -3
  70. package/dist/esm/index.js +62 -39
  71. package/dist/esm/index.js.map +4 -4
  72. package/dist/esm/utils/stateStorage.d.ts +2 -0
  73. package/dist/esm/utils/stateStorage.js +19 -0
  74. package/dist/esm/utils/stateStorage.js.map +7 -0
  75. package/dist/esm/utils/walletUtils.d.ts +1 -0
  76. package/dist/esm/utils/walletUtils.js +5 -1
  77. package/dist/esm/utils/walletUtils.js.map +2 -2
  78. package/dist/esm/walletStore.js +9 -1
  79. package/dist/esm/walletStore.js.map +3 -3
  80. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  81. package/dist/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +4 -5
  83. package/src/components/AccountDropdownMenu.css.ts +4 -0
  84. package/src/components/AccountDropdownMenu.tsx +1 -1
  85. package/src/components/WalletProvider.tsx +14 -13
  86. package/src/components/connect-modal/ConnectModal.tsx +6 -2
  87. package/src/components/connect-modal/wallet-list/WalletList.tsx +3 -2
  88. package/src/constants/walletDefaults.ts +17 -0
  89. package/src/hooks/wallet/useAutoConnectWallet.ts +4 -1
  90. package/src/utils/stateStorage.ts +19 -0
  91. package/src/utils/walletUtils.ts +4 -0
  92. package/src/walletStore.ts +4 -2
@@ -0,0 +1,17 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';
5
+
6
+ import { createInMemoryStore } from '../utils/stateStorage.js';
7
+
8
+ export const SUI_WALLET_NAME = 'Sui Wallet';
9
+
10
+ export const DEFAULT_STORAGE =
11
+ typeof window !== 'undefined' && window.localStorage ? localStorage : createInMemoryStore();
12
+
13
+ export const DEFAULT_STORAGE_KEY = 'sui-dapp-kit:wallet-connection-info';
14
+
15
+ export const DEFAULT_REQUIRED_FEATURES: (keyof WalletWithRequiredFeatures['features'])[] = [
16
+ 'sui:signTransactionBlock',
17
+ ];
@@ -4,6 +4,7 @@
4
4
  import { useQuery } from '@tanstack/react-query';
5
5
  import { useLayoutEffect, useState } from 'react';
6
6
 
7
+ import { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';
7
8
  import { useConnectWallet } from './useConnectWallet.js';
8
9
  import { useCurrentWallet } from './useCurrentWallet.js';
9
10
  import { useWallets } from './useWallets.js';
@@ -43,7 +44,9 @@ export function useAutoConnectWallet(): 'disabled' | 'idle' | 'attempted' {
43
44
  return 'attempted';
44
45
  }
45
46
 
46
- const wallet = wallets.find((wallet) => wallet.name === lastConnectedWalletName);
47
+ const wallet = wallets.find(
48
+ (wallet) => getWalletUniqueIdentifier(wallet) === lastConnectedWalletName,
49
+ );
47
50
  if (wallet) {
48
51
  await connectWallet({
49
52
  wallet,
@@ -0,0 +1,19 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import type { StateStorage } from 'zustand/middleware';
5
+
6
+ export function createInMemoryStore(): StateStorage {
7
+ const store = new Map();
8
+ return {
9
+ getItem(key: string) {
10
+ return store.get(key);
11
+ },
12
+ setItem(key: string, value: string) {
13
+ store.set(key, value);
14
+ },
15
+ removeItem(key: string) {
16
+ store.delete(key);
17
+ },
18
+ };
19
+ }
@@ -30,3 +30,7 @@ export function getRegisteredWallets<AdditionalFeatures extends Wallet['features
30
30
  ...suiWallets.filter((wallet) => !preferredWallets.includes(wallet.name)),
31
31
  ];
32
32
  }
33
+
34
+ export function getWalletUniqueIdentifier(wallet?: Wallet) {
35
+ return wallet?.id ?? wallet?.name;
36
+ }
@@ -6,6 +6,8 @@ import { createStore } from 'zustand';
6
6
  import type { StateStorage } from 'zustand/middleware';
7
7
  import { createJSONStorage, persist } from 'zustand/middleware';
8
8
 
9
+ import { getWalletUniqueIdentifier } from './utils/walletUtils.js';
10
+
9
11
  type WalletConnectionStatus = 'disconnected' | 'connecting' | 'connected';
10
12
 
11
13
  export type WalletActions = {
@@ -56,7 +58,7 @@ export function createWalletStore({
56
58
  (set, get) => ({
57
59
  autoConnectEnabled,
58
60
  wallets,
59
- accounts: [],
61
+ accounts: [] as WalletAccount[],
60
62
  currentWallet: null,
61
63
  currentAccount: null,
62
64
  lastConnectedAccountAddress: null,
@@ -72,7 +74,7 @@ export function createWalletStore({
72
74
  accounts: connectedAccounts,
73
75
  currentWallet: wallet,
74
76
  currentAccount: selectedAccount,
75
- lastConnectedWalletName: wallet.name,
77
+ lastConnectedWalletName: getWalletUniqueIdentifier(wallet),
76
78
  lastConnectedAccountAddress: selectedAccount?.address,
77
79
  connectionStatus: 'connected',
78
80
  }));