@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.
- package/CHANGELOG.md +22 -0
- package/README.md +4 -4
- package/dist/cjs/components/AccountDropdownMenu.js +34 -6
- package/dist/cjs/components/AccountDropdownMenu.js.map +2 -2
- package/dist/cjs/components/ConnectButton.js +49 -14
- package/dist/cjs/components/ConnectButton.js.map +3 -3
- package/dist/cjs/components/WalletProvider.js +91 -28
- package/dist/cjs/components/WalletProvider.js.map +3 -3
- package/dist/cjs/components/connect-modal/ConnectModal.js +15 -8
- package/dist/cjs/components/connect-modal/ConnectModal.js.map +2 -2
- package/dist/cjs/hooks/useResolveSuiNSNames.d.ts +1 -105
- package/dist/cjs/hooks/useResolveSuiNSNames.js +3 -3
- package/dist/cjs/hooks/useResolveSuiNSNames.js.map +2 -2
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.d.ts +7 -8
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.js +11 -7
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.js.map +2 -2
- package/dist/cjs/hooks/useSuiClientMutation.d.ts +1 -1
- package/dist/cjs/hooks/useSuiClientQuery.d.ts +3 -2
- package/dist/cjs/hooks/useSuiClientQuery.js.map +2 -2
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +65 -15
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +3 -3
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.d.ts +4 -0
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js +50 -0
- package/dist/cjs/hooks/wallet/useAutoConnectionStatus.js.map +7 -0
- package/dist/cjs/hooks/wallet/useConnectWallet.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useConnectWallet.js +15 -8
- package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +19 -1
- package/dist/cjs/hooks/wallet/useCurrentWallet.js +29 -1
- package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useDisconnectWallet.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js +30 -2
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js +30 -2
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +30 -2
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js +30 -2
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSwitchAccount.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSwitchAccount.js +30 -2
- package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +2 -2
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +30 -2
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +112 -37
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/walletStore.d.ts +10 -2
- package/dist/cjs/walletStore.js +23 -4
- package/dist/cjs/walletStore.js.map +2 -2
- package/dist/esm/components/AccountDropdownMenu.js +34 -6
- package/dist/esm/components/AccountDropdownMenu.js.map +2 -2
- package/dist/esm/components/ConnectButton.js +49 -14
- package/dist/esm/components/ConnectButton.js.map +3 -3
- package/dist/esm/components/WalletProvider.js +91 -28
- package/dist/esm/components/WalletProvider.js.map +3 -3
- package/dist/esm/components/connect-modal/ConnectModal.js +15 -8
- package/dist/esm/components/connect-modal/ConnectModal.js.map +2 -2
- package/dist/esm/hooks/useResolveSuiNSNames.d.ts +1 -105
- package/dist/esm/hooks/useResolveSuiNSNames.js +3 -3
- package/dist/esm/hooks/useResolveSuiNSNames.js.map +2 -2
- package/dist/esm/hooks/useSuiClientInfiniteQuery.d.ts +7 -8
- package/dist/esm/hooks/useSuiClientInfiniteQuery.js +11 -7
- package/dist/esm/hooks/useSuiClientInfiniteQuery.js.map +2 -2
- package/dist/esm/hooks/useSuiClientMutation.d.ts +1 -1
- package/dist/esm/hooks/useSuiClientQuery.d.ts +3 -2
- package/dist/esm/hooks/useSuiClientQuery.js.map +2 -2
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js +65 -15
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +3 -3
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.d.ts +4 -0
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.js +27 -0
- package/dist/esm/hooks/wallet/useAutoConnectionStatus.js.map +7 -0
- package/dist/esm/hooks/wallet/useConnectWallet.d.ts +1 -1
- package/dist/esm/hooks/wallet/useConnectWallet.js +15 -8
- package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +19 -1
- package/dist/esm/hooks/wallet/useCurrentWallet.js +29 -1
- package/dist/esm/hooks/wallet/useCurrentWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useDisconnectWallet.d.ts +1 -1
- package/dist/esm/hooks/wallet/useDisconnectWallet.js +30 -2
- package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js +30 -2
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignPersonalMessage.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js +30 -2
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js +30 -2
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +2 -2
- package/dist/esm/hooks/wallet/useSwitchAccount.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSwitchAccount.js +30 -2
- package/dist/esm/hooks/wallet/useSwitchAccount.js.map +2 -2
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +30 -2
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +2 -2
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +112 -37
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/walletStore.d.ts +10 -2
- package/dist/esm/walletStore.js +23 -4
- package/dist/esm/walletStore.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/components/WalletProvider.tsx +1 -0
- package/src/hooks/useResolveSuiNSNames.ts +5 -6
- package/src/hooks/useSuiClientInfiniteQuery.ts +38 -24
- package/src/hooks/useSuiClientQuery.ts +11 -7
- package/src/hooks/wallet/useAutoConnectWallet.ts +24 -7
- package/src/hooks/wallet/useAutoConnectionStatus.ts +12 -0
- package/src/hooks/wallet/useConnectWallet.ts +17 -8
- package/src/hooks/wallet/useCurrentWallet.ts +30 -1
- package/src/hooks/wallet/useDisconnectWallet.ts +1 -1
- package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +1 -1
- package/src/hooks/wallet/useSignPersonalMessage.ts +1 -1
- package/src/hooks/wallet/useSignTransactionBlock.ts +1 -1
- package/src/hooks/wallet/useSwitchAccount.ts +1 -1
- package/src/hooks/wallet/useWalletPropertiesChanged.ts +1 -1
- package/src/index.ts +1 -0
- 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\
|
|
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,
|
|
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
|
-
|
|
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\
|
|
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,
|
|
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
|
}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -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, ...
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
858
|
-
|
|
859
|
-
|
|
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({
|
|
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, {
|
|
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:
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
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,
|