@mysten/dapp-kit 0.9.0 → 0.10.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 (88) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +19 -4
  3. package/dist/cjs/components/AccountDropdownMenu.js +1 -0
  4. package/dist/cjs/components/AccountDropdownMenu.js.map +2 -2
  5. package/dist/cjs/components/ConnectButton.js +1 -0
  6. package/dist/cjs/components/ConnectButton.js.map +2 -2
  7. package/dist/cjs/components/WalletProvider.js +67 -51
  8. package/dist/cjs/components/WalletProvider.js.map +3 -3
  9. package/dist/cjs/components/connect-modal/ConnectModal.js +1 -0
  10. package/dist/cjs/components/connect-modal/ConnectModal.js.map +2 -2
  11. package/dist/cjs/constants/walletMutationKeys.d.ts +1 -0
  12. package/dist/cjs/constants/walletMutationKeys.js +1 -0
  13. package/dist/cjs/constants/walletMutationKeys.js.map +2 -2
  14. package/dist/cjs/hooks/useSuiClientQueries.d.ts +27 -0
  15. package/dist/cjs/hooks/useSuiClientQueries.js +71 -0
  16. package/dist/cjs/hooks/useSuiClientQueries.js.map +7 -0
  17. package/dist/cjs/hooks/wallet/useAutoConnectWallet.d.ts +1 -1
  18. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +50 -27
  19. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +3 -3
  20. package/dist/cjs/hooks/wallet/useConnectWallet.js +1 -0
  21. package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
  22. package/dist/cjs/hooks/wallet/useDisconnectWallet.js +1 -0
  23. package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +2 -2
  24. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js +1 -0
  25. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
  26. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +1 -0
  27. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +2 -2
  28. package/dist/cjs/hooks/wallet/useSignTransactionBlock.js +1 -0
  29. package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +2 -2
  30. package/dist/cjs/hooks/wallet/useSwitchAccount.js +1 -0
  31. package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +2 -2
  32. package/dist/cjs/index.d.ts +1 -2
  33. package/dist/cjs/index.js +74 -63
  34. package/dist/cjs/index.js.map +4 -4
  35. package/dist/cjs/walletStore.d.ts +3 -5
  36. package/dist/cjs/walletStore.js +2 -7
  37. package/dist/cjs/walletStore.js.map +2 -2
  38. package/dist/esm/components/AccountDropdownMenu.js +1 -0
  39. package/dist/esm/components/AccountDropdownMenu.js.map +2 -2
  40. package/dist/esm/components/ConnectButton.js +1 -0
  41. package/dist/esm/components/ConnectButton.js.map +2 -2
  42. package/dist/esm/components/WalletProvider.js +61 -45
  43. package/dist/esm/components/WalletProvider.js.map +3 -3
  44. package/dist/esm/components/connect-modal/ConnectModal.js +1 -0
  45. package/dist/esm/components/connect-modal/ConnectModal.js.map +2 -2
  46. package/dist/esm/constants/walletMutationKeys.d.ts +1 -0
  47. package/dist/esm/constants/walletMutationKeys.js +1 -0
  48. package/dist/esm/constants/walletMutationKeys.js.map +2 -2
  49. package/dist/esm/hooks/useSuiClientQueries.d.ts +27 -0
  50. package/dist/esm/hooks/useSuiClientQueries.js +50 -0
  51. package/dist/esm/hooks/useSuiClientQueries.js.map +7 -0
  52. package/dist/esm/hooks/wallet/useAutoConnectWallet.d.ts +1 -1
  53. package/dist/esm/hooks/wallet/useAutoConnectWallet.js +50 -27
  54. package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +2 -2
  55. package/dist/esm/hooks/wallet/useConnectWallet.js +1 -0
  56. package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
  57. package/dist/esm/hooks/wallet/useDisconnectWallet.js +1 -0
  58. package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +2 -2
  59. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js +1 -0
  60. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
  61. package/dist/esm/hooks/wallet/useSignPersonalMessage.js +1 -0
  62. package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +2 -2
  63. package/dist/esm/hooks/wallet/useSignTransactionBlock.js +1 -0
  64. package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +2 -2
  65. package/dist/esm/hooks/wallet/useSwitchAccount.js +1 -0
  66. package/dist/esm/hooks/wallet/useSwitchAccount.js.map +2 -2
  67. package/dist/esm/index.d.ts +1 -2
  68. package/dist/esm/index.js +62 -51
  69. package/dist/esm/index.js.map +4 -4
  70. package/dist/esm/walletStore.d.ts +3 -5
  71. package/dist/esm/walletStore.js +2 -7
  72. package/dist/esm/walletStore.js.map +2 -2
  73. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  74. package/dist/tsconfig.tsbuildinfo +1 -1
  75. package/package.json +4 -6
  76. package/src/components/WalletProvider.tsx +3 -5
  77. package/src/constants/walletMutationKeys.ts +1 -0
  78. package/src/hooks/useSuiClientQueries.ts +66 -0
  79. package/src/hooks/wallet/useAutoConnectWallet.ts +55 -33
  80. package/src/index.ts +1 -2
  81. package/src/walletStore.ts +4 -12
  82. package/dist/cjs/hooks/wallet/useAutoConnectionStatus.d.ts +0 -4
  83. package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js +0 -50
  84. package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js.map +0 -7
  85. package/dist/esm/hooks/wallet/useAutoConnectionStatus.d.ts +0 -4
  86. package/dist/esm/hooks/wallet/useAutoConnectionStatus.js +0 -27
  87. package/dist/esm/hooks/wallet/useAutoConnectionStatus.js.map +0 -7
  88. package/src/hooks/wallet/useAutoConnectionStatus.ts +0 -12
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useSwitchAccount.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/errors/walletErrors.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useCurrentWallet.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@mysten/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletAccountNotFoundError, WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype SwitchAccountArgs = {\n\taccount: WalletAccount;\n};\n\ntype SwitchAccountResult = void;\n\ntype UseSwitchAccountError = WalletNotConnectedError | WalletAccountNotFoundError | Error;\n\ntype UseSwitchAccountMutationOptions = Omit<\n\tUseMutationOptions<SwitchAccountResult, UseSwitchAccountError, SwitchAccountArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for switching to a specific wallet account.\n */\nexport function useSwitchAccount({\n\tmutationKey,\n\t...mutationOptions\n}: UseSwitchAccountMutationOptions = {}): UseMutationResult<\n\tSwitchAccountResult,\n\tUseSwitchAccountError,\n\tSwitchAccountArgs\n> {\n\tconst { currentWallet } = useCurrentWallet();\n\tconst setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.switchAccount(mutationKey),\n\t\tmutationFn: async ({ account }) => {\n\t\t\tif (!currentWallet) {\n\t\t\t\tthrow new WalletNotConnectedError('No wallet is connected.');\n\t\t\t}\n\n\t\t\tconst accountToSelect = currentWallet.accounts.find(\n\t\t\t\t(walletAccount) => walletAccount.address === account.address,\n\t\t\t);\n\t\t\tif (!accountToSelect) {\n\t\t\t\tthrow new WalletAccountNotFoundError(\n\t\t\t\t\t`No account with address ${account.address} is connected to ${currentWallet.name}.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetAccountSwitched(accountToSelect);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n\tsignAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n"],
5
- "mappings": ";AAKA,SAAS,mBAAmB;;;ACArB,IAAM,qBAAqB;AAAA,EACjC,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,sBAAsB,kBAAkB,wBAAwB;AAAA,EAChE,gCAAgC,kBAAkB,oCAAoC;AAAA,EACtF,eAAe,kBAAkB,gBAAgB;AAClD;AAEA,SAAS,kBAAkB,YAAoB;AAC9C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC/D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACrE;AACD;;;ACbO,IAAM,0BAAN,cAAsC,MAAM;AAAC;AAiB7C,IAAM,6BAAN,cAAyC,MAAM;AAAC;;;ACpBvD,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;;;ACDzB,SAAS,qBAAqB;AAIvB,IAAM,gBAAgB,cAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,QAAQ,WAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO,SAAS,OAAO,QAAQ;AAChC;;;AETO,SAAS,mBAAmB;AAClC,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACzB,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD,KAAK,aAAa;AACjB,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD;AAAA,EACD;AACD;;;ALXO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAIpC;AACD,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAE7E,SAAO,YAAY;AAAA,IAClB,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,MAAM;AAClC,UAAI,CAAC,eAAe;AACnB,cAAM,IAAI,wBAAwB,yBAAyB;AAAA,MAC5D;AAEA,YAAM,kBAAkB,cAAc,SAAS;AAAA,QAC9C,CAAC,kBAAkB,cAAc,YAAY,QAAQ;AAAA,MACtD;AACA,UAAI,CAAC,iBAAiB;AACrB,cAAM,IAAI;AAAA,UACT,2BAA2B,QAAQ,2BAA2B,cAAc;AAAA,QAC7E;AAAA,MACD;AAEA,yBAAmB,eAAe;AAAA,IACnC;AAAA,IACA,GAAG;AAAA,EACJ,CAAC;AACF;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { WalletAccount } from '@mysten/wallet-standard';\nimport type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { walletMutationKeys } from '../../constants/walletMutationKeys.js';\nimport { WalletAccountNotFoundError, WalletNotConnectedError } from '../../errors/walletErrors.js';\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\ntype SwitchAccountArgs = {\n\taccount: WalletAccount;\n};\n\ntype SwitchAccountResult = void;\n\ntype UseSwitchAccountError = WalletNotConnectedError | WalletAccountNotFoundError | Error;\n\ntype UseSwitchAccountMutationOptions = Omit<\n\tUseMutationOptions<SwitchAccountResult, UseSwitchAccountError, SwitchAccountArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for switching to a specific wallet account.\n */\nexport function useSwitchAccount({\n\tmutationKey,\n\t...mutationOptions\n}: UseSwitchAccountMutationOptions = {}): UseMutationResult<\n\tSwitchAccountResult,\n\tUseSwitchAccountError,\n\tSwitchAccountArgs\n> {\n\tconst { currentWallet } = useCurrentWallet();\n\tconst setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.switchAccount(mutationKey),\n\t\tmutationFn: async ({ account }) => {\n\t\t\tif (!currentWallet) {\n\t\t\t\tthrow new WalletNotConnectedError('No wallet is connected.');\n\t\t\t}\n\n\t\t\tconst accountToSelect = currentWallet.accounts.find(\n\t\t\t\t(walletAccount) => walletAccount.address === account.address,\n\t\t\t);\n\t\t\tif (!accountToSelect) {\n\t\t\t\tthrow new WalletAccountNotFoundError(\n\t\t\t\t\t`No account with address ${account.address} is connected to ${currentWallet.name}.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetAccountSwitched(accountToSelect);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MutationKey } from '@tanstack/react-query';\n\nexport const walletMutationKeys = {\n\tall: { baseScope: 'wallet' },\n\tconnectWallet: formMutationKeyFn('connect-wallet'),\n\tautoconnectWallet: formMutationKeyFn('autoconnect-wallet'),\n\tdisconnectWallet: formMutationKeyFn('disconnect-wallet'),\n\tsignPersonalMessage: formMutationKeyFn('sign-personal-message'),\n\tsignTransactionBlock: formMutationKeyFn('sign-transaction-block'),\n\tsignAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),\n\tswitchAccount: formMutationKeyFn('switch-account'),\n};\n\nfunction formMutationKeyFn(baseEntity: string) {\n\treturn function mutationKeyFn(additionalKeys: MutationKey = []) {\n\t\treturn [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];\n\t};\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.\n */\nexport class WalletNotConnectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.\n * This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any\n * accounts when connecting a wallet.\n */\nexport class WalletNoAccountSelectedError extends Error {}\n\n/**\n * An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.\n */\nexport class WalletFeatureNotSupportedError extends Error {}\n\n/**\n * An error that is instantiated when a wallet account can't be found for a specific wallet.\n */\nexport class WalletAccountNotFoundError extends Error {}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport { WalletContext } from '../../contexts/walletContext.js';\nimport type { StoreState } from '../../walletStore.js';\n\nexport function useWalletStore<T>(selector: (state: StoreState) => T): T {\n\tconst store = useContext(WalletContext);\n\tif (!store) {\n\t\tthrow new Error(\n\t\t\t'Could not find WalletContext. Ensure that you have set up the WalletProvider.',\n\t\t);\n\t}\n\treturn useStore(store, selector);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createContext } from 'react';\n\nimport type { WalletStore } from '../walletStore.js';\n\nexport const WalletContext = createContext<WalletStore | null>(null);\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Retrieves the wallet that is currently connected to the dApp, if one exists.\n */\nexport function useCurrentWallet() {\n\tconst currentWallet = useWalletStore((state) => state.currentWallet);\n\tconst connectionStatus = useWalletStore((state) => state.connectionStatus);\n\n\tswitch (connectionStatus) {\n\t\tcase 'connecting':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: true,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'disconnected':\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: null,\n\t\t\t\tisDisconnected: true,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: false,\n\t\t\t} as const;\n\t\tcase 'connected': {\n\t\t\treturn {\n\t\t\t\tconnectionStatus,\n\t\t\t\tcurrentWallet: currentWallet!,\n\t\t\t\tisDisconnected: false,\n\t\t\t\tisConnecting: false,\n\t\t\t\tisConnected: true,\n\t\t\t} as const;\n\t\t}\n\t}\n}\n"],
5
+ "mappings": ";AAKA,SAAS,mBAAmB;;;ACArB,IAAM,qBAAqB;AAAA,EACjC,KAAK,EAAE,WAAW,SAAS;AAAA,EAC3B,eAAe,kBAAkB,gBAAgB;AAAA,EACjD,mBAAmB,kBAAkB,oBAAoB;AAAA,EACzD,kBAAkB,kBAAkB,mBAAmB;AAAA,EACvD,qBAAqB,kBAAkB,uBAAuB;AAAA,EAC9D,sBAAsB,kBAAkB,wBAAwB;AAAA,EAChE,gCAAgC,kBAAkB,oCAAoC;AAAA,EACtF,eAAe,kBAAkB,gBAAgB;AAClD;AAEA,SAAS,kBAAkB,YAAoB;AAC9C,SAAO,SAAS,cAAc,iBAA8B,CAAC,GAAG;AAC/D,WAAO,CAAC,EAAE,GAAG,mBAAmB,KAAK,WAAW,GAAG,GAAG,cAAc;AAAA,EACrE;AACD;;;ACdO,IAAM,0BAAN,cAAsC,MAAM;AAAC;AAiB7C,IAAM,6BAAN,cAAyC,MAAM;AAAC;;;ACpBvD,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;;;ACDzB,SAAS,qBAAqB;AAIvB,IAAM,gBAAgB,cAAkC,IAAI;;;ADE5D,SAAS,eAAkB,UAAuC;AACxE,QAAM,QAAQ,WAAW,aAAa;AACtC,MAAI,CAAC,OAAO;AACX,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,SAAO,SAAS,OAAO,QAAQ;AAChC;;;AETO,SAAS,mBAAmB;AAClC,QAAM,gBAAgB,eAAe,CAAC,UAAU,MAAM,aAAa;AACnE,QAAM,mBAAmB,eAAe,CAAC,UAAU,MAAM,gBAAgB;AAEzE,UAAQ,kBAAkB;AAAA,IACzB,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN;AAAA,QACA,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD,KAAK,aAAa;AACjB,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,aAAa;AAAA,MACd;AAAA,IACD;AAAA,EACD;AACD;;;ALXO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAIpC;AACD,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAE7E,SAAO,YAAY;AAAA,IAClB,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,MAAM;AAClC,UAAI,CAAC,eAAe;AACnB,cAAM,IAAI,wBAAwB,yBAAyB;AAAA,MAC5D;AAEA,YAAM,kBAAkB,cAAc,SAAS;AAAA,QAC9C,CAAC,kBAAkB,cAAc,YAAY,QAAQ;AAAA,MACtD;AACA,UAAI,CAAC,iBAAiB;AACrB,cAAM,IAAI;AAAA,UACT,2BAA2B,QAAQ,2BAA2B,cAAc;AAAA,QAC7E;AAAA,MACD;AAEA,yBAAmB,eAAe;AAAA,IACnC;AAAA,IACA,GAAG;AAAA,EACJ,CAAC;AACF;",
6
6
  "names": []
7
7
  }
@@ -6,11 +6,10 @@ export * from './hooks/networkConfig.js';
6
6
  export * from './hooks/useResolveSuiNSNames.js';
7
7
  export * from './hooks/useSuiClient.js';
8
8
  export * from './hooks/useSuiClientInfiniteQuery.js';
9
- export * from './hooks/useSuiClientInfiniteQuery.js';
10
9
  export * from './hooks/useSuiClientMutation.js';
11
10
  export * from './hooks/useSuiClientQuery.js';
12
11
  export * from './hooks/wallet/useAccounts.js';
13
- export * from './hooks/wallet/useAutoConnectionStatus.js';
12
+ export * from './hooks/wallet/useAutoConnectWallet.js';
14
13
  export * from './hooks/wallet/useConnectWallet.js';
15
14
  export * from './hooks/wallet/useCurrentAccount.js';
16
15
  export * from './hooks/wallet/useCurrentWallet.js';
package/dist/esm/index.js CHANGED
@@ -66,6 +66,7 @@ import { useMutation } from "@tanstack/react-query";
66
66
  var walletMutationKeys = {
67
67
  all: { baseScope: "wallet" },
68
68
  connectWallet: formMutationKeyFn("connect-wallet"),
69
+ autoconnectWallet: formMutationKeyFn("autoconnect-wallet"),
69
70
  disconnectWallet: formMutationKeyFn("disconnect-wallet"),
70
71
  signPersonalMessage: formMutationKeyFn("sign-personal-message"),
71
72
  signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
@@ -882,50 +883,72 @@ function ConnectButton({
882
883
  import { useRef } from "react";
883
884
 
884
885
  // src/hooks/wallet/useAutoConnectWallet.ts
885
- import { useEffect } from "react";
886
- function useAutoConnectWallet(autoConnectEnabled) {
887
- const { mutate: connectWallet } = useConnectWallet();
888
- const setAutoConnectionStatus = useWalletStore((state) => state.setAutoConnectionStatus);
886
+ import { useQuery as useQuery2 } from "@tanstack/react-query";
887
+ function useAutoConnectWallet() {
888
+ const { mutateAsync: connectWallet } = useConnectWallet();
889
+ const autoConnectEnabled = useWalletStore((state) => state.autoConnectEnabled);
889
890
  const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);
890
891
  const lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);
891
892
  const wallets = useWallets();
892
893
  const { isDisconnected } = useCurrentWallet();
893
- useEffect(() => {
894
- if (!autoConnectEnabled || !lastConnectedWalletName || !lastConnectedAccountAddress || !isDisconnected) {
895
- return;
896
- }
897
- const wallet = wallets.find((wallet2) => wallet2.name === lastConnectedWalletName);
898
- if (wallet) {
899
- connectWallet(
900
- {
894
+ const { data, isError } = useQuery2({
895
+ queryKey: [
896
+ "@mysten/dapp-kit",
897
+ "autoconnect",
898
+ {
899
+ isDisconnected,
900
+ autoConnectEnabled,
901
+ lastConnectedWalletName,
902
+ lastConnectedAccountAddress,
903
+ walletCount: wallets.length
904
+ }
905
+ ],
906
+ queryFn: async () => {
907
+ if (!autoConnectEnabled) {
908
+ return "disabled";
909
+ }
910
+ if (!lastConnectedWalletName || !lastConnectedAccountAddress || !isDisconnected) {
911
+ return "attempted";
912
+ }
913
+ const wallet = wallets.find((wallet2) => wallet2.name === lastConnectedWalletName);
914
+ if (wallet) {
915
+ await connectWallet({
901
916
  wallet,
902
917
  accountAddress: lastConnectedAccountAddress,
903
918
  silent: true
904
- },
905
- {
906
- onSettled: () => setAutoConnectionStatus("settled")
907
- }
908
- );
909
- }
910
- }, [
911
- autoConnectEnabled,
912
- connectWallet,
913
- isDisconnected,
914
- lastConnectedAccountAddress,
915
- lastConnectedWalletName,
916
- setAutoConnectionStatus,
917
- wallets
918
- ]);
919
+ });
920
+ }
921
+ return "attempted";
922
+ },
923
+ enabled: autoConnectEnabled,
924
+ persister: void 0,
925
+ gcTime: 0,
926
+ staleTime: 0,
927
+ retry: false,
928
+ retryOnMount: false,
929
+ refetchInterval: false,
930
+ refetchIntervalInBackground: false,
931
+ refetchOnMount: false,
932
+ refetchOnReconnect: false,
933
+ refetchOnWindowFocus: false
934
+ });
935
+ if (!autoConnectEnabled) {
936
+ return "disabled";
937
+ }
938
+ if (!lastConnectedWalletName) {
939
+ return "attempted";
940
+ }
941
+ return isError ? "attempted" : data ?? "idle";
919
942
  }
920
943
 
921
944
  // src/hooks/wallet/useUnsafeBurnerWallet.ts
922
945
  import { Ed25519Keypair } from "@mysten/sui.js/keypairs/ed25519";
923
946
  import { getWallets, ReadonlyWalletAccount, SUI_CHAINS } from "@mysten/wallet-standard";
924
- import { useEffect as useEffect2 } from "react";
947
+ import { useEffect } from "react";
925
948
  var WALLET_NAME = "Unsafe Burner Wallet";
926
949
  function useUnsafeBurnerWallet(enabled) {
927
950
  const suiClient = useSuiClient();
928
- useEffect2(() => {
951
+ useEffect(() => {
929
952
  if (!enabled) {
930
953
  return;
931
954
  }
@@ -1035,11 +1058,11 @@ function registerUnsafeBurnerWallet(suiClient) {
1035
1058
  }
1036
1059
 
1037
1060
  // src/hooks/wallet/useWalletPropertiesChanged.ts
1038
- import { useEffect as useEffect3 } from "react";
1061
+ import { useEffect as useEffect2 } from "react";
1039
1062
  function useWalletPropertiesChanged() {
1040
1063
  const { currentWallet } = useCurrentWallet();
1041
1064
  const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);
1042
- useEffect3(() => {
1065
+ useEffect2(() => {
1043
1066
  const unsubscribeFromEvents = currentWallet?.features["standard:events"].on(
1044
1067
  "change",
1045
1068
  ({ accounts }) => {
@@ -1054,7 +1077,7 @@ function useWalletPropertiesChanged() {
1054
1077
 
1055
1078
  // src/hooks/wallet/useWalletsChanged.ts
1056
1079
  import { getWallets as getWallets3 } from "@mysten/wallet-standard";
1057
- import { useEffect as useEffect4 } from "react";
1080
+ import { useEffect as useEffect3 } from "react";
1058
1081
 
1059
1082
  // src/utils/walletUtils.ts
1060
1083
  import { getWallets as getWallets2, isWalletWithRequiredFeatureSet } from "@mysten/wallet-standard";
@@ -1076,7 +1099,7 @@ function getRegisteredWallets(preferredWallets, requiredFeatures) {
1076
1099
  function useWalletsChanged(preferredWallets, requiredFeatures) {
1077
1100
  const setWalletRegistered = useWalletStore((state) => state.setWalletRegistered);
1078
1101
  const setWalletUnregistered = useWalletStore((state) => state.setWalletUnregistered);
1079
- useEffect4(() => {
1102
+ useEffect3(() => {
1080
1103
  const walletsApi = getWallets3();
1081
1104
  const unsubscribeFromRegister = walletsApi.on("register", () => {
1082
1105
  setWalletRegistered(getRegisteredWallets(preferredWallets, requiredFeatures));
@@ -1160,11 +1183,12 @@ function createWalletStore({
1160
1183
  wallets,
1161
1184
  storage,
1162
1185
  storageKey,
1163
- autoConnect
1186
+ autoConnectEnabled
1164
1187
  }) {
1165
1188
  return createStore()(
1166
1189
  persist(
1167
1190
  (set, get) => ({
1191
+ autoConnectEnabled,
1168
1192
  wallets,
1169
1193
  accounts: [],
1170
1194
  currentWallet: null,
@@ -1172,17 +1196,11 @@ function createWalletStore({
1172
1196
  lastConnectedAccountAddress: null,
1173
1197
  lastConnectedWalletName: null,
1174
1198
  connectionStatus: "disconnected",
1175
- autoConnectionStatus: autoConnect ? "idle" : "disabled",
1176
1199
  setConnectionStatus(connectionStatus2) {
1177
1200
  set(() => ({
1178
1201
  connectionStatus: connectionStatus2
1179
1202
  }));
1180
1203
  },
1181
- setAutoConnectionStatus(autoConnectionStatus) {
1182
- set(() => ({
1183
- autoConnectionStatus
1184
- }));
1185
- },
1186
1204
  setWalletConnected(wallet, connectedAccounts, selectedAccount) {
1187
1205
  set(() => ({
1188
1206
  accounts: connectedAccounts,
@@ -1360,10 +1378,10 @@ function WalletProvider({
1360
1378
  }) {
1361
1379
  const storeRef = useRef(
1362
1380
  createWalletStore({
1381
+ autoConnectEnabled: autoConnect,
1363
1382
  wallets: getRegisteredWallets(preferredWallets, requiredFeatures),
1364
1383
  storageKey,
1365
- storage,
1366
- autoConnect
1384
+ storage
1367
1385
  })
1368
1386
  );
1369
1387
  return /* @__PURE__ */ jsx22(WalletContext.Provider, { value: storeRef.current, children: /* @__PURE__ */ jsxs9(
@@ -1372,7 +1390,6 @@ function WalletProvider({
1372
1390
  preferredWallets,
1373
1391
  requiredFeatures,
1374
1392
  enableUnsafeBurner,
1375
- autoConnect,
1376
1393
  children: [
1377
1394
  theme ? /* @__PURE__ */ jsx22(InjectedThemeStyles, { theme }) : null,
1378
1395
  children
@@ -1384,13 +1401,12 @@ function WalletConnectionManager({
1384
1401
  preferredWallets,
1385
1402
  requiredFeatures,
1386
1403
  enableUnsafeBurner,
1387
- autoConnect,
1388
1404
  children
1389
1405
  }) {
1390
1406
  useWalletsChanged(preferredWallets, requiredFeatures);
1391
1407
  useWalletPropertiesChanged();
1392
1408
  useUnsafeBurnerWallet(enableUnsafeBurner);
1393
- useAutoConnectWallet(autoConnect);
1409
+ useAutoConnectWallet();
1394
1410
  return children;
1395
1411
  }
1396
1412
 
@@ -1452,11 +1468,6 @@ function useSuiClientMutation(method, options = {}) {
1452
1468
  });
1453
1469
  }
1454
1470
 
1455
- // src/hooks/wallet/useAutoConnectionStatus.ts
1456
- function useAutoConnectionStatus() {
1457
- return useWalletStore((state) => state.autoConnectionStatus);
1458
- }
1459
-
1460
1471
  // src/hooks/wallet/useSignAndExecuteTransactionBlock.ts
1461
1472
  import { useMutation as useMutation5 } from "@tanstack/react-query";
1462
1473
  function useSignAndExecuteTransactionBlock({
@@ -1606,7 +1617,7 @@ export {
1606
1617
  createNetworkConfig,
1607
1618
  lightTheme,
1608
1619
  useAccounts,
1609
- useAutoConnectionStatus,
1620
+ useAutoConnectWallet,
1610
1621
  useConnectWallet,
1611
1622
  useCurrentAccount,
1612
1623
  useCurrentWallet,