@mysten/dapp-kit 0.5.0 → 0.6.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 (123) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +4 -4
  3. package/dist/cjs/components/AccountDropdownMenu.js +34 -6
  4. package/dist/cjs/components/AccountDropdownMenu.js.map +2 -2
  5. package/dist/cjs/components/ConnectButton.js +49 -14
  6. package/dist/cjs/components/ConnectButton.js.map +3 -3
  7. package/dist/cjs/components/WalletProvider.js +91 -28
  8. package/dist/cjs/components/WalletProvider.js.map +3 -3
  9. package/dist/cjs/components/connect-modal/ConnectModal.js +15 -8
  10. package/dist/cjs/components/connect-modal/ConnectModal.js.map +2 -2
  11. package/dist/cjs/hooks/useResolveSuiNSNames.d.ts +1 -105
  12. package/dist/cjs/hooks/useResolveSuiNSNames.js +3 -3
  13. package/dist/cjs/hooks/useResolveSuiNSNames.js.map +2 -2
  14. package/dist/cjs/hooks/useSuiClientInfiniteQuery.d.ts +7 -8
  15. package/dist/cjs/hooks/useSuiClientInfiniteQuery.js +11 -7
  16. package/dist/cjs/hooks/useSuiClientInfiniteQuery.js.map +2 -2
  17. package/dist/cjs/hooks/useSuiClientMutation.d.ts +1 -1
  18. package/dist/cjs/hooks/useSuiClientQuery.d.ts +3 -2
  19. package/dist/cjs/hooks/useSuiClientQuery.js.map +2 -2
  20. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +65 -15
  21. package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +3 -3
  22. package/dist/cjs/hooks/wallet/useAutoConnectionStatus.d.ts +4 -0
  23. package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js +50 -0
  24. package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js.map +7 -0
  25. package/dist/cjs/hooks/wallet/useConnectWallet.d.ts +1 -1
  26. package/dist/cjs/hooks/wallet/useConnectWallet.js +15 -8
  27. package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
  28. package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +19 -1
  29. package/dist/cjs/hooks/wallet/useCurrentWallet.js +29 -1
  30. package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +2 -2
  31. package/dist/cjs/hooks/wallet/useDisconnectWallet.d.ts +1 -1
  32. package/dist/cjs/hooks/wallet/useDisconnectWallet.js +30 -2
  33. package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +2 -2
  34. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +1 -1
  35. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js +30 -2
  36. package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
  37. package/dist/cjs/hooks/wallet/useSignPersonalMessage.d.ts +1 -1
  38. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +30 -2
  39. package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +2 -2
  40. package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +1 -1
  41. package/dist/cjs/hooks/wallet/useSignTransactionBlock.js +30 -2
  42. package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +2 -2
  43. package/dist/cjs/hooks/wallet/useSwitchAccount.d.ts +1 -1
  44. package/dist/cjs/hooks/wallet/useSwitchAccount.js +30 -2
  45. package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +2 -2
  46. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +30 -2
  47. package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
  48. package/dist/cjs/index.d.ts +1 -0
  49. package/dist/cjs/index.js +112 -37
  50. package/dist/cjs/index.js.map +4 -4
  51. package/dist/cjs/walletStore.d.ts +10 -2
  52. package/dist/cjs/walletStore.js +23 -4
  53. package/dist/cjs/walletStore.js.map +2 -2
  54. package/dist/esm/components/AccountDropdownMenu.js +34 -6
  55. package/dist/esm/components/AccountDropdownMenu.js.map +2 -2
  56. package/dist/esm/components/ConnectButton.js +49 -14
  57. package/dist/esm/components/ConnectButton.js.map +3 -3
  58. package/dist/esm/components/WalletProvider.js +91 -28
  59. package/dist/esm/components/WalletProvider.js.map +3 -3
  60. package/dist/esm/components/connect-modal/ConnectModal.js +15 -8
  61. package/dist/esm/components/connect-modal/ConnectModal.js.map +2 -2
  62. package/dist/esm/hooks/useResolveSuiNSNames.d.ts +1 -105
  63. package/dist/esm/hooks/useResolveSuiNSNames.js +3 -3
  64. package/dist/esm/hooks/useResolveSuiNSNames.js.map +2 -2
  65. package/dist/esm/hooks/useSuiClientInfiniteQuery.d.ts +7 -8
  66. package/dist/esm/hooks/useSuiClientInfiniteQuery.js +11 -7
  67. package/dist/esm/hooks/useSuiClientInfiniteQuery.js.map +2 -2
  68. package/dist/esm/hooks/useSuiClientMutation.d.ts +1 -1
  69. package/dist/esm/hooks/useSuiClientQuery.d.ts +3 -2
  70. package/dist/esm/hooks/useSuiClientQuery.js.map +2 -2
  71. package/dist/esm/hooks/wallet/useAutoConnectWallet.js +65 -15
  72. package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +3 -3
  73. package/dist/esm/hooks/wallet/useAutoConnectionStatus.d.ts +4 -0
  74. package/dist/esm/hooks/wallet/useAutoConnectionStatus.js +27 -0
  75. package/dist/esm/hooks/wallet/useAutoConnectionStatus.js.map +7 -0
  76. package/dist/esm/hooks/wallet/useConnectWallet.d.ts +1 -1
  77. package/dist/esm/hooks/wallet/useConnectWallet.js +15 -8
  78. package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
  79. package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +19 -1
  80. package/dist/esm/hooks/wallet/useCurrentWallet.js +29 -1
  81. package/dist/esm/hooks/wallet/useCurrentWallet.js.map +2 -2
  82. package/dist/esm/hooks/wallet/useDisconnectWallet.d.ts +1 -1
  83. package/dist/esm/hooks/wallet/useDisconnectWallet.js +30 -2
  84. package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +2 -2
  85. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +1 -1
  86. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js +30 -2
  87. package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
  88. package/dist/esm/hooks/wallet/useSignPersonalMessage.d.ts +1 -1
  89. package/dist/esm/hooks/wallet/useSignPersonalMessage.js +30 -2
  90. package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +2 -2
  91. package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +1 -1
  92. package/dist/esm/hooks/wallet/useSignTransactionBlock.js +30 -2
  93. package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +2 -2
  94. package/dist/esm/hooks/wallet/useSwitchAccount.d.ts +1 -1
  95. package/dist/esm/hooks/wallet/useSwitchAccount.js +30 -2
  96. package/dist/esm/hooks/wallet/useSwitchAccount.js.map +2 -2
  97. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +30 -2
  98. package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
  99. package/dist/esm/index.d.ts +1 -0
  100. package/dist/esm/index.js +112 -37
  101. package/dist/esm/index.js.map +4 -4
  102. package/dist/esm/walletStore.d.ts +10 -2
  103. package/dist/esm/walletStore.js +23 -4
  104. package/dist/esm/walletStore.js.map +2 -2
  105. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  106. package/dist/tsconfig.tsbuildinfo +1 -1
  107. package/package.json +5 -5
  108. package/src/components/WalletProvider.tsx +1 -0
  109. package/src/hooks/useResolveSuiNSNames.ts +5 -6
  110. package/src/hooks/useSuiClientInfiniteQuery.ts +38 -24
  111. package/src/hooks/useSuiClientQuery.ts +11 -7
  112. package/src/hooks/wallet/useAutoConnectWallet.ts +24 -7
  113. package/src/hooks/wallet/useAutoConnectionStatus.ts +12 -0
  114. package/src/hooks/wallet/useConnectWallet.ts +17 -8
  115. package/src/hooks/wallet/useCurrentWallet.ts +30 -1
  116. package/src/hooks/wallet/useDisconnectWallet.ts +1 -1
  117. package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +1 -1
  118. package/src/hooks/wallet/useSignPersonalMessage.ts +1 -1
  119. package/src/hooks/wallet/useSignTransactionBlock.ts +1 -1
  120. package/src/hooks/wallet/useSwitchAccount.ts +1 -1
  121. package/src/hooks/wallet/useWalletPropertiesChanged.ts +1 -1
  122. package/src/index.ts +1 -0
  123. package/src/walletStore.ts +30 -2
@@ -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 } 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 = {}) {\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\treturn useWalletStore((state) => state.currentWallet);\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,SAAO,eAAe,CAAC,UAAU,MAAM,aAAa;AACrD;;;ALkBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAAG;AACxC,QAAM,gBAAgB,iBAAiB;AACvC,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 } 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 = {}) {\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,GAAG;AACxC,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
  }
@@ -22,12 +22,40 @@ function useWalletStore(selector) {
22
22
 
23
23
  // src/hooks/wallet/useCurrentWallet.ts
24
24
  function useCurrentWallet() {
25
- return useWalletStore((state) => state.currentWallet);
25
+ const currentWallet = useWalletStore((state) => state.currentWallet);
26
+ const connectionStatus = useWalletStore((state) => state.connectionStatus);
27
+ switch (connectionStatus) {
28
+ case "connecting":
29
+ return {
30
+ connectionStatus,
31
+ currentWallet: null,
32
+ isDisconnected: false,
33
+ isConnecting: true,
34
+ isConnected: false
35
+ };
36
+ case "disconnected":
37
+ return {
38
+ connectionStatus,
39
+ currentWallet: null,
40
+ isDisconnected: true,
41
+ isConnecting: false,
42
+ isConnected: false
43
+ };
44
+ case "connected": {
45
+ return {
46
+ connectionStatus,
47
+ currentWallet,
48
+ isDisconnected: false,
49
+ isConnecting: false,
50
+ isConnected: true
51
+ };
52
+ }
53
+ }
26
54
  }
27
55
 
28
56
  // src/hooks/wallet/useWalletPropertiesChanged.ts
29
57
  function useWalletPropertiesChanged() {
30
- const currentWallet = useCurrentWallet();
58
+ const { currentWallet } = useCurrentWallet();
31
59
  const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);
32
60
  useEffect(() => {
33
61
  const unsubscribeFromEvents = currentWallet?.features["standard:events"].on(
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/hooks/wallet/useWalletPropertiesChanged.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 { useEffect } from 'react';\n\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Internal hook for easily handling various changes in properties for a wallet.\n */\nexport function useWalletPropertiesChanged() {\n\tconst currentWallet = useCurrentWallet();\n\tconst updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);\n\n\tuseEffect(() => {\n\t\tconst unsubscribeFromEvents = currentWallet?.features['standard:events'].on(\n\t\t\t'change',\n\t\t\t({ accounts }) => {\n\t\t\t\t// TODO: We should handle features changing that might make the list of wallets\n\t\t\t\t// or even the current wallet incompatible with the dApp.\n\t\t\t\tif (accounts) {\n\t\t\t\t\tupdateWalletAccounts(accounts);\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t\treturn unsubscribeFromEvents;\n\t}, [currentWallet?.features, updateWalletAccounts]);\n}\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\treturn useWalletStore((state) => state.currentWallet);\n}\n"],
5
- "mappings": ";AAGA,SAAS,iBAAiB;;;ACA1B,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,SAAO,eAAe,CAAC,UAAU,MAAM,aAAa;AACrD;;;AHCO,SAAS,6BAA6B;AAC5C,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,uBAAuB,eAAe,CAAC,UAAU,MAAM,oBAAoB;AAEjF,YAAU,MAAM;AACf,UAAM,wBAAwB,eAAe,SAAS,iBAAiB,EAAE;AAAA,MACxE;AAAA,MACA,CAAC,EAAE,SAAS,MAAM;AAGjB,YAAI,UAAU;AACb,+BAAqB,QAAQ;AAAA,QAC9B;AAAA,MACD;AAAA,IACD;AACA,WAAO;AAAA,EACR,GAAG,CAAC,eAAe,UAAU,oBAAoB,CAAC;AACnD;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from 'react';\n\nimport { useCurrentWallet } from './useCurrentWallet.js';\nimport { useWalletStore } from './useWalletStore.js';\n\n/**\n * Internal hook for easily handling various changes in properties for a wallet.\n */\nexport function useWalletPropertiesChanged() {\n\tconst { currentWallet } = useCurrentWallet();\n\tconst updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);\n\n\tuseEffect(() => {\n\t\tconst unsubscribeFromEvents = currentWallet?.features['standard:events'].on(\n\t\t\t'change',\n\t\t\t({ accounts }) => {\n\t\t\t\t// TODO: We should handle features changing that might make the list of wallets\n\t\t\t\t// or even the current wallet incompatible with the dApp.\n\t\t\t\tif (accounts) {\n\t\t\t\t\tupdateWalletAccounts(accounts);\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t\treturn unsubscribeFromEvents;\n\t}, [currentWallet?.features, updateWalletAccounts]);\n}\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": ";AAGA,SAAS,iBAAiB;;;ACA1B,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;;;AH5BO,SAAS,6BAA6B;AAC5C,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,uBAAuB,eAAe,CAAC,UAAU,MAAM,oBAAoB;AAEjF,YAAU,MAAM;AACf,UAAM,wBAAwB,eAAe,SAAS,iBAAiB,EAAE;AAAA,MACxE;AAAA,MACA,CAAC,EAAE,SAAS,MAAM;AAGjB,YAAI,UAAU;AACb,+BAAqB,QAAQ;AAAA,QAC9B;AAAA,MACD;AAAA,IACD;AACA,WAAO;AAAA,EACR,GAAG,CAAC,eAAe,UAAU,oBAAoB,CAAC;AACnD;",
6
6
  "names": []
7
7
  }
@@ -10,6 +10,7 @@ export * from './hooks/useSuiClientInfiniteQuery.js';
10
10
  export * from './hooks/useSuiClientMutation.js';
11
11
  export * from './hooks/useSuiClientQuery.js';
12
12
  export * from './hooks/wallet/useAccounts.js';
13
+ export * from './hooks/wallet/useAutoConnectionStatus.js';
13
14
  export * from './hooks/wallet/useConnectWallet.js';
14
15
  export * from './hooks/wallet/useCurrentAccount.js';
15
16
  export * from './hooks/wallet/useCurrentWallet.js';
package/dist/esm/index.js CHANGED
@@ -103,16 +103,23 @@ function useConnectWallet({
103
103
  ...mutationOptions
104
104
  } = {}) {
105
105
  const setWalletConnected = useWalletStore((state) => state.setWalletConnected);
106
+ const setConnectionStatus = useWalletStore((state) => state.setConnectionStatus);
106
107
  return useMutation({
107
108
  mutationKey: walletMutationKeys.connectWallet(mutationKey),
108
- mutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {
109
- const connectResult = await wallet.features["standard:connect"].connect(standardConnectInput);
110
- const connectedSuiAccounts = connectResult.accounts.filter(
111
- (account) => account.chains.some((chain) => chain.split(":")[0] === "sui")
112
- );
113
- const selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);
114
- setWalletConnected(wallet, connectedSuiAccounts, selectedAccount);
115
- return { accounts: connectedSuiAccounts };
109
+ mutationFn: async ({ wallet, accountAddress, ...connectArgs }) => {
110
+ try {
111
+ setConnectionStatus("connecting");
112
+ const connectResult = await wallet.features["standard:connect"].connect(connectArgs);
113
+ const connectedSuiAccounts = connectResult.accounts.filter(
114
+ (account) => account.chains.some((chain) => chain.split(":")[0] === "sui")
115
+ );
116
+ const selectedAccount = getSelectedAccount(connectedSuiAccounts, accountAddress);
117
+ setWalletConnected(wallet, connectedSuiAccounts, selectedAccount);
118
+ return { accounts: connectedSuiAccounts };
119
+ } catch (error) {
120
+ setConnectionStatus("disconnected");
121
+ throw error;
122
+ }
116
123
  },
117
124
  ...mutationOptions
118
125
  });
@@ -650,20 +657,20 @@ function useSuiClientQuery(...args) {
650
657
 
651
658
  // src/hooks/useResolveSuiNSNames.ts
652
659
  function useResolveSuiNSName(address, options) {
653
- const { data, ...rest } = useSuiClientQuery(
660
+ return useSuiClientQuery(
654
661
  "resolveNameServiceNames",
655
662
  {
656
663
  address,
657
664
  limit: 1
658
665
  },
659
666
  {
667
+ ...options,
660
668
  refetchOnWindowFocus: false,
661
669
  retry: false,
662
- ...options,
670
+ select: (data) => data.data.length > 0 ? data.data[0] : null,
663
671
  enabled: !!address && options?.enabled !== false
664
672
  }
665
673
  );
666
- return { data: data?.data?.[0] ?? null, ...rest };
667
674
  }
668
675
 
669
676
  // src/hooks/wallet/useAccounts.ts
@@ -686,7 +693,35 @@ var WalletAccountNotFoundError = class extends Error {
686
693
 
687
694
  // src/hooks/wallet/useCurrentWallet.ts
688
695
  function useCurrentWallet() {
689
- return useWalletStore((state) => state.currentWallet);
696
+ const currentWallet = useWalletStore((state) => state.currentWallet);
697
+ const connectionStatus2 = useWalletStore((state) => state.connectionStatus);
698
+ switch (connectionStatus2) {
699
+ case "connecting":
700
+ return {
701
+ connectionStatus: connectionStatus2,
702
+ currentWallet: null,
703
+ isDisconnected: false,
704
+ isConnecting: true,
705
+ isConnected: false
706
+ };
707
+ case "disconnected":
708
+ return {
709
+ connectionStatus: connectionStatus2,
710
+ currentWallet: null,
711
+ isDisconnected: true,
712
+ isConnecting: false,
713
+ isConnected: false
714
+ };
715
+ case "connected": {
716
+ return {
717
+ connectionStatus: connectionStatus2,
718
+ currentWallet,
719
+ isDisconnected: false,
720
+ isConnecting: false,
721
+ isConnected: true
722
+ };
723
+ }
724
+ }
690
725
  }
691
726
 
692
727
  // src/hooks/wallet/useDisconnectWallet.ts
@@ -694,7 +729,7 @@ function useDisconnectWallet({
694
729
  mutationKey,
695
730
  ...mutationOptions
696
731
  } = {}) {
697
- const currentWallet = useCurrentWallet();
732
+ const { currentWallet } = useCurrentWallet();
698
733
  const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);
699
734
  return useMutation2({
700
735
  mutationKey: walletMutationKeys.disconnectWallet(mutationKey),
@@ -719,7 +754,7 @@ function useSwitchAccount({
719
754
  mutationKey,
720
755
  ...mutationOptions
721
756
  } = {}) {
722
- const currentWallet = useCurrentWallet();
757
+ const { currentWallet } = useCurrentWallet();
723
758
  const setAccountSwitched = useWalletStore((state) => state.setAccountSwitched);
724
759
  return useMutation3({
725
760
  mutationKey: walletMutationKeys.switchAccount(mutationKey),
@@ -845,25 +880,35 @@ import { useRef } from "react";
845
880
  import { useEffect } from "react";
846
881
  function useAutoConnectWallet(autoConnectEnabled) {
847
882
  const { mutate: connectWallet } = useConnectWallet();
848
- const wallets = useWallets();
883
+ const setAutoConnectionStatus = useWalletStore((state) => state.setAutoConnectionStatus);
849
884
  const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);
850
885
  const lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);
886
+ const wallets = useWallets();
887
+ const { isDisconnected } = useCurrentWallet();
851
888
  useEffect(() => {
852
- if (!autoConnectEnabled || !lastConnectedWalletName)
889
+ if (!autoConnectEnabled || !lastConnectedWalletName || !lastConnectedAccountAddress || !isDisconnected) {
853
890
  return;
891
+ }
854
892
  const wallet = wallets.find((wallet2) => wallet2.name === lastConnectedWalletName);
855
893
  if (wallet) {
856
- connectWallet({
857
- wallet,
858
- accountAddress: lastConnectedAccountAddress || void 0,
859
- silent: true
860
- });
894
+ connectWallet(
895
+ {
896
+ wallet,
897
+ accountAddress: lastConnectedAccountAddress,
898
+ silent: true
899
+ },
900
+ {
901
+ onSettled: () => setAutoConnectionStatus("settled")
902
+ }
903
+ );
861
904
  }
862
905
  }, [
863
906
  autoConnectEnabled,
864
907
  connectWallet,
908
+ isDisconnected,
865
909
  lastConnectedAccountAddress,
866
910
  lastConnectedWalletName,
911
+ setAutoConnectionStatus,
867
912
  wallets
868
913
  ]);
869
914
  }
@@ -987,7 +1032,7 @@ function registerUnsafeBurnerWallet(suiClient) {
987
1032
  // src/hooks/wallet/useWalletPropertiesChanged.ts
988
1033
  import { useEffect as useEffect3 } from "react";
989
1034
  function useWalletPropertiesChanged() {
990
- const currentWallet = useCurrentWallet();
1035
+ const { currentWallet } = useCurrentWallet();
991
1036
  const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts);
992
1037
  useEffect3(() => {
993
1038
  const unsubscribeFromEvents = currentWallet?.features["standard:events"].on(
@@ -1106,7 +1151,12 @@ var lightTheme = {
1106
1151
  // src/walletStore.ts
1107
1152
  import { createStore } from "zustand";
1108
1153
  import { createJSONStorage, persist } from "zustand/middleware";
1109
- function createWalletStore({ wallets, storage, storageKey }) {
1154
+ function createWalletStore({
1155
+ wallets,
1156
+ storage,
1157
+ storageKey,
1158
+ autoConnect
1159
+ }) {
1110
1160
  return createStore()(
1111
1161
  persist(
1112
1162
  (set, get) => ({
@@ -1117,13 +1167,25 @@ function createWalletStore({ wallets, storage, storageKey }) {
1117
1167
  lastConnectedAccountAddress: null,
1118
1168
  lastConnectedWalletName: null,
1119
1169
  connectionStatus: "disconnected",
1170
+ autoConnectionStatus: autoConnect ? "idle" : "disabled",
1171
+ setConnectionStatus(connectionStatus2) {
1172
+ set(() => ({
1173
+ connectionStatus: connectionStatus2
1174
+ }));
1175
+ },
1176
+ setAutoConnectionStatus(autoConnectionStatus) {
1177
+ set(() => ({
1178
+ autoConnectionStatus
1179
+ }));
1180
+ },
1120
1181
  setWalletConnected(wallet, connectedAccounts, selectedAccount) {
1121
1182
  set(() => ({
1122
1183
  accounts: connectedAccounts,
1123
1184
  currentWallet: wallet,
1124
1185
  currentAccount: selectedAccount,
1125
1186
  lastConnectedWalletName: wallet.name,
1126
- lastConnectedAccountAddress: selectedAccount?.address
1187
+ lastConnectedAccountAddress: selectedAccount?.address,
1188
+ connectionStatus: "connected"
1127
1189
  }));
1128
1190
  },
1129
1191
  setWalletDisconnected() {
@@ -1132,7 +1194,8 @@ function createWalletStore({ wallets, storage, storageKey }) {
1132
1194
  currentWallet: null,
1133
1195
  currentAccount: null,
1134
1196
  lastConnectedWalletName: null,
1135
- lastConnectedAccountAddress: null
1197
+ lastConnectedAccountAddress: null,
1198
+ connectionStatus: "disconnected"
1136
1199
  }));
1137
1200
  },
1138
1201
  setAccountSwitched(selectedAccount) {
@@ -1152,7 +1215,8 @@ function createWalletStore({ wallets, storage, storageKey }) {
1152
1215
  currentWallet: null,
1153
1216
  currentAccount: null,
1154
1217
  lastConnectedWalletName: null,
1155
- lastConnectedAccountAddress: null
1218
+ lastConnectedAccountAddress: null,
1219
+ connectionStatus: "disconnected"
1156
1220
  }));
1157
1221
  } else {
1158
1222
  set(() => ({ wallets: updatedWallets }));
@@ -1293,7 +1357,8 @@ function WalletProvider({
1293
1357
  createWalletStore({
1294
1358
  wallets: getRegisteredWallets(preferredWallets, requiredFeatures),
1295
1359
  storageKey,
1296
- storage
1360
+ storage,
1361
+ autoConnect
1297
1362
  })
1298
1363
  );
1299
1364
  return /* @__PURE__ */ jsx22(WalletContext.Provider, { value: storeRef.current, children: /* @__PURE__ */ jsxs9(
@@ -1351,18 +1416,22 @@ function createNetworkConfig(networkConfig) {
1351
1416
 
1352
1417
  // src/hooks/useSuiClientInfiniteQuery.ts
1353
1418
  import { useInfiniteQuery } from "@tanstack/react-query";
1354
- function useSuiClientInfiniteQuery(method, params, { queryKey = [], enabled = !!params, ...options } = {}) {
1419
+ function useSuiClientInfiniteQuery(method, params, {
1420
+ queryKey = [],
1421
+ enabled = !!params,
1422
+ ...options
1423
+ } = {}) {
1355
1424
  const suiContext = useSuiClientContext();
1356
1425
  return useInfiniteQuery({
1357
1426
  ...options,
1427
+ initialPageParam: null,
1358
1428
  queryKey: [suiContext.network, method, params, ...queryKey],
1359
1429
  enabled,
1360
- queryFn: async () => {
1361
- return await suiContext.client[method](params);
1362
- },
1363
- getNextPageParam: (lastPage) => {
1364
- return lastPage.nextCursor ?? null;
1365
- }
1430
+ queryFn: ({ pageParam }) => suiContext.client[method]({
1431
+ ...params ?? {},
1432
+ cursor: pageParam
1433
+ }),
1434
+ getNextPageParam: ({ nextCursor }) => nextCursor ?? null
1366
1435
  });
1367
1436
  }
1368
1437
 
@@ -1378,6 +1447,11 @@ function useSuiClientMutation(method, options = {}) {
1378
1447
  });
1379
1448
  }
1380
1449
 
1450
+ // src/hooks/wallet/useAutoConnectionStatus.ts
1451
+ function useAutoConnectionStatus() {
1452
+ return useWalletStore((state) => state.autoConnectionStatus);
1453
+ }
1454
+
1381
1455
  // src/hooks/wallet/useSignAndExecuteTransactionBlock.ts
1382
1456
  import { useMutation as useMutation5 } from "@tanstack/react-query";
1383
1457
  function useSignAndExecuteTransactionBlock({
@@ -1385,7 +1459,7 @@ function useSignAndExecuteTransactionBlock({
1385
1459
  executeFromWallet,
1386
1460
  ...mutationOptions
1387
1461
  } = {}) {
1388
- const currentWallet = useCurrentWallet();
1462
+ const { currentWallet } = useCurrentWallet();
1389
1463
  const currentAccount = useCurrentAccount();
1390
1464
  const client = useSuiClient();
1391
1465
  return useMutation5({
@@ -1443,7 +1517,7 @@ function useSignPersonalMessage({
1443
1517
  mutationKey,
1444
1518
  ...mutationOptions
1445
1519
  } = {}) {
1446
- const currentWallet = useCurrentWallet();
1520
+ const { currentWallet } = useCurrentWallet();
1447
1521
  const currentAccount = useCurrentAccount();
1448
1522
  return useMutation6({
1449
1523
  mutationKey: walletMutationKeys.signPersonalMessage(mutationKey),
@@ -1478,7 +1552,7 @@ function useSignTransactionBlock({
1478
1552
  mutationKey,
1479
1553
  ...mutationOptions
1480
1554
  } = {}) {
1481
- const currentWallet = useCurrentWallet();
1555
+ const { currentWallet } = useCurrentWallet();
1482
1556
  const currentAccount = useCurrentAccount();
1483
1557
  return useMutation7({
1484
1558
  mutationKey: walletMutationKeys.signTransactionBlock(mutationKey),
@@ -1516,6 +1590,7 @@ export {
1516
1590
  createNetworkConfig,
1517
1591
  lightTheme,
1518
1592
  useAccounts,
1593
+ useAutoConnectionStatus,
1519
1594
  useConnectWallet,
1520
1595
  useCurrentAccount,
1521
1596
  useCurrentWallet,