@mysten/dapp-kit 0.0.0-experimental-20230928204256
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 +53 -0
- package/LICENSE +201 -0
- package/README.md +0 -0
- package/dist/cjs/components/AccountDropdownMenu.css +41 -0
- package/dist/cjs/components/AccountDropdownMenu.css.css +41 -0
- package/dist/cjs/components/AccountDropdownMenu.css.css.map +7 -0
- package/dist/cjs/components/AccountDropdownMenu.css.d.ts +5 -0
- package/dist/cjs/components/AccountDropdownMenu.css.js +35 -0
- package/dist/cjs/components/AccountDropdownMenu.css.js.map +7 -0
- package/dist/cjs/components/AccountDropdownMenu.css.map +7 -0
- package/dist/cjs/components/AccountDropdownMenu.d.ts +6 -0
- package/dist/cjs/components/AccountDropdownMenu.js +216 -0
- package/dist/cjs/components/AccountDropdownMenu.js.map +7 -0
- package/dist/cjs/components/ConnectButton.css +250 -0
- package/dist/cjs/components/ConnectButton.css.map +7 -0
- package/dist/cjs/components/ConnectButton.d.ts +6 -0
- package/dist/cjs/components/ConnectButton.js +580 -0
- package/dist/cjs/components/ConnectButton.js.map +7 -0
- package/dist/cjs/components/SuiClientProvider.d.ts +26 -0
- package/dist/cjs/components/SuiClientProvider.js +69 -0
- package/dist/cjs/components/SuiClientProvider.js.map +7 -0
- package/dist/cjs/components/WalletProvider.d.ts +20 -0
- package/dist/cjs/components/WalletProvider.js +470 -0
- package/dist/cjs/components/WalletProvider.js.map +7 -0
- package/dist/cjs/components/connect-modal/ConnectModal.css +209 -0
- package/dist/cjs/components/connect-modal/ConnectModal.css.css +109 -0
- package/dist/cjs/components/connect-modal/ConnectModal.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/ConnectModal.css.d.ts +12 -0
- package/dist/cjs/components/connect-modal/ConnectModal.css.js +49 -0
- package/dist/cjs/components/connect-modal/ConnectModal.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/ConnectModal.css.map +7 -0
- package/dist/cjs/components/connect-modal/ConnectModal.d.ts +6 -0
- package/dist/cjs/components/connect-modal/ConnectModal.js +421 -0
- package/dist/cjs/components/connect-modal/ConnectModal.js.map +7 -0
- package/dist/cjs/components/connect-modal/InfoSection.css +7 -0
- package/dist/cjs/components/connect-modal/InfoSection.css.css +7 -0
- package/dist/cjs/components/connect-modal/InfoSection.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/InfoSection.css.d.ts +3 -0
- package/dist/cjs/components/connect-modal/InfoSection.css.js +31 -0
- package/dist/cjs/components/connect-modal/InfoSection.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/InfoSection.css.map +7 -0
- package/dist/cjs/components/connect-modal/InfoSection.d.ts +6 -0
- package/dist/cjs/components/connect-modal/InfoSection.js +40 -0
- package/dist/cjs/components/connect-modal/InfoSection.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css +26 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css +26 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.d.ts +5 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js +35 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.d.ts +8 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.js +77 -0
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css +22 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.css +15 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.d.ts +4 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.js +33 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.d.ts +1 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.js +69 -0
- package/dist/cjs/components/connect-modal/views/GettingStarted.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css +22 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css +15 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.d.ts +3 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js +31 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.map +7 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.d.ts +1 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js +57 -0
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js.map +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css +37 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.d.ts +1 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.js +27 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.map +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.d.ts +8 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.js +113 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css +30 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css +30 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css.map +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.d.ts +5 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js +35 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js.map +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.map +7 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.d.ts +9 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js +43 -0
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js.map +7 -0
- package/dist/cjs/components/icons/BackIcon.d.ts +2 -0
- package/dist/cjs/components/icons/BackIcon.js +36 -0
- package/dist/cjs/components/icons/BackIcon.js.map +7 -0
- package/dist/cjs/components/icons/CheckIcon.d.ts +2 -0
- package/dist/cjs/components/icons/CheckIcon.js +36 -0
- package/dist/cjs/components/icons/CheckIcon.js.map +7 -0
- package/dist/cjs/components/icons/ChevronIcon.d.ts +2 -0
- package/dist/cjs/components/icons/ChevronIcon.js +39 -0
- package/dist/cjs/components/icons/ChevronIcon.js.map +7 -0
- package/dist/cjs/components/icons/CloseIcon.d.ts +2 -0
- package/dist/cjs/components/icons/CloseIcon.js +36 -0
- package/dist/cjs/components/icons/CloseIcon.js.map +7 -0
- package/dist/cjs/components/icons/SuiIcon.d.ts +2 -0
- package/dist/cjs/components/icons/SuiIcon.js +41 -0
- package/dist/cjs/components/icons/SuiIcon.js.map +7 -0
- package/dist/cjs/constants/walletMutationKeys.d.ts +12 -0
- package/dist/cjs/constants/walletMutationKeys.js +40 -0
- package/dist/cjs/constants/walletMutationKeys.js.map +7 -0
- package/dist/cjs/contexts/walletContext.d.ts +12 -0
- package/dist/cjs/contexts/walletContext.js +28 -0
- package/dist/cjs/contexts/walletContext.js.map +7 -0
- package/dist/cjs/errors/walletErrors.d.ts +22 -0
- package/dist/cjs/errors/walletErrors.js +37 -0
- package/dist/cjs/errors/walletErrors.js.map +7 -0
- package/dist/cjs/hooks/useSuiClient.d.ts +2 -0
- package/dist/cjs/hooks/useSuiClient.js +51 -0
- package/dist/cjs/hooks/useSuiClient.js.map +7 -0
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.d.ts +25 -0
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.js +66 -0
- package/dist/cjs/hooks/useSuiClientInfiniteQuery.js.map +7 -0
- package/dist/cjs/hooks/useSuiClientMutation.d.ts +4 -0
- package/dist/cjs/hooks/useSuiClientMutation.js +61 -0
- package/dist/cjs/hooks/useSuiClientMutation.js.map +7 -0
- package/dist/cjs/hooks/useSuiClientQuery.d.ts +18 -0
- package/dist/cjs/hooks/useSuiClientQuery.js +64 -0
- package/dist/cjs/hooks/useSuiClientQuery.js.map +7 -0
- package/dist/cjs/hooks/wallet/useAccounts.d.ts +4 -0
- package/dist/cjs/hooks/wallet/useAccounts.js +50 -0
- package/dist/cjs/hooks/wallet/useAccounts.js.map +7 -0
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.d.ts +1 -0
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +124 -0
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +7 -0
- package/dist/cjs/hooks/wallet/useConnectWallet.d.ts +15 -0
- package/dist/cjs/hooks/wallet/useConnectWallet.js +90 -0
- package/dist/cjs/hooks/wallet/useConnectWallet.js.map +7 -0
- package/dist/cjs/hooks/wallet/useCurrentAccount.d.ts +4 -0
- package/dist/cjs/hooks/wallet/useCurrentAccount.js +50 -0
- package/dist/cjs/hooks/wallet/useCurrentAccount.js.map +7 -0
- package/dist/cjs/hooks/wallet/useCurrentWallet.d.ts +4 -0
- package/dist/cjs/hooks/wallet/useCurrentWallet.js +50 -0
- package/dist/cjs/hooks/wallet/useCurrentWallet.js.map +7 -0
- package/dist/cjs/hooks/wallet/useDisconnectWallet.d.ts +7 -0
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js +95 -0
- package/dist/cjs/hooks/wallet/useDisconnectWallet.js.map +7 -0
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +13 -0
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js +114 -0
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +7 -0
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.d.ts +13 -0
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +114 -0
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +7 -0
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.d.ts +13 -0
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js +114 -0
- package/dist/cjs/hooks/wallet/useSignTransactionBlock.js.map +7 -0
- package/dist/cjs/hooks/wallet/useSwitchAccount.d.ts +13 -0
- package/dist/cjs/hooks/wallet/useSwitchAccount.js +100 -0
- package/dist/cjs/hooks/wallet/useSwitchAccount.js.map +7 -0
- package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.d.ts +1 -0
- package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js +181 -0
- package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js.map +7 -0
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.d.ts +4 -0
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js +68 -0
- package/dist/cjs/hooks/wallet/useWalletPropertiesChanged.js.map +7 -0
- package/dist/cjs/hooks/wallet/useWalletStore.d.ts +2 -0
- package/dist/cjs/hooks/wallet/useWalletStore.js +43 -0
- package/dist/cjs/hooks/wallet/useWalletStore.js.map +7 -0
- package/dist/cjs/hooks/wallet/useWallets.d.ts +4 -0
- package/dist/cjs/hooks/wallet/useWallets.js +50 -0
- package/dist/cjs/hooks/wallet/useWallets.js.map +7 -0
- package/dist/cjs/hooks/wallet/useWalletsChanged.d.ts +5 -0
- package/dist/cjs/hooks/wallet/useWalletsChanged.js +85 -0
- package/dist/cjs/hooks/wallet/useWalletsChanged.js.map +7 -0
- package/dist/cjs/index.css +250 -0
- package/dist/cjs/index.css.map +7 -0
- package/dist/cjs/index.d.ts +18 -0
- package/dist/cjs/index.js +1152 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/types/utilityTypes.d.ts +1 -0
- package/dist/cjs/types/utilityTypes.js +19 -0
- package/dist/cjs/types/utilityTypes.js.map +7 -0
- package/dist/cjs/types.d.ts +1 -0
- package/dist/cjs/types.js +19 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/cjs/utils/assertUnreachable.d.ts +4 -0
- package/dist/cjs/utils/assertUnreachable.js +29 -0
- package/dist/cjs/utils/assertUnreachable.js.map +7 -0
- package/dist/cjs/utils/walletUtils.d.ts +2 -0
- package/dist/cjs/utils/walletUtils.js +40 -0
- package/dist/cjs/utils/walletUtils.js.map +7 -0
- package/dist/cjs/walletStore.d.ts +35 -0
- package/dist/cjs/walletStore.js +100 -0
- package/dist/cjs/walletStore.js.map +7 -0
- package/dist/esm/components/AccountDropdownMenu.css +41 -0
- package/dist/esm/components/AccountDropdownMenu.css.css +41 -0
- package/dist/esm/components/AccountDropdownMenu.css.css.map +7 -0
- package/dist/esm/components/AccountDropdownMenu.css.d.ts +5 -0
- package/dist/esm/components/AccountDropdownMenu.css.js +14 -0
- package/dist/esm/components/AccountDropdownMenu.css.js.map +7 -0
- package/dist/esm/components/AccountDropdownMenu.css.map +7 -0
- package/dist/esm/components/AccountDropdownMenu.d.ts +6 -0
- package/dist/esm/components/AccountDropdownMenu.js +185 -0
- package/dist/esm/components/AccountDropdownMenu.js.map +7 -0
- package/dist/esm/components/ConnectButton.css +250 -0
- package/dist/esm/components/ConnectButton.css.map +7 -0
- package/dist/esm/components/ConnectButton.d.ts +6 -0
- package/dist/esm/components/ConnectButton.js +547 -0
- package/dist/esm/components/ConnectButton.js.map +7 -0
- package/dist/esm/components/SuiClientProvider.d.ts +26 -0
- package/dist/esm/components/SuiClientProvider.js +48 -0
- package/dist/esm/components/SuiClientProvider.js.map +7 -0
- package/dist/esm/components/WalletProvider.d.ts +20 -0
- package/dist/esm/components/WalletProvider.js +450 -0
- package/dist/esm/components/WalletProvider.js.map +7 -0
- package/dist/esm/components/connect-modal/ConnectModal.css +209 -0
- package/dist/esm/components/connect-modal/ConnectModal.css.css +109 -0
- package/dist/esm/components/connect-modal/ConnectModal.css.css.map +7 -0
- package/dist/esm/components/connect-modal/ConnectModal.css.d.ts +12 -0
- package/dist/esm/components/connect-modal/ConnectModal.css.js +28 -0
- package/dist/esm/components/connect-modal/ConnectModal.css.js.map +7 -0
- package/dist/esm/components/connect-modal/ConnectModal.css.map +7 -0
- package/dist/esm/components/connect-modal/ConnectModal.d.ts +6 -0
- package/dist/esm/components/connect-modal/ConnectModal.js +390 -0
- package/dist/esm/components/connect-modal/ConnectModal.js.map +7 -0
- package/dist/esm/components/connect-modal/InfoSection.css +7 -0
- package/dist/esm/components/connect-modal/InfoSection.css.css +7 -0
- package/dist/esm/components/connect-modal/InfoSection.css.css.map +7 -0
- package/dist/esm/components/connect-modal/InfoSection.css.d.ts +3 -0
- package/dist/esm/components/connect-modal/InfoSection.css.js +10 -0
- package/dist/esm/components/connect-modal/InfoSection.css.js.map +7 -0
- package/dist/esm/components/connect-modal/InfoSection.css.map +7 -0
- package/dist/esm/components/connect-modal/InfoSection.d.ts +6 -0
- package/dist/esm/components/connect-modal/InfoSection.js +17 -0
- package/dist/esm/components/connect-modal/InfoSection.js.map +7 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css +26 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css +26 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css.map +7 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.d.ts +5 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js +14 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js.map +7 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.map +7 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.d.ts +8 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.js +46 -0
- package/dist/esm/components/connect-modal/views/ConnectionStatus.js.map +7 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css +22 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.css +15 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.css.map +7 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.d.ts +4 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.js +12 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.js.map +7 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.css.map +7 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.d.ts +1 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.js +46 -0
- package/dist/esm/components/connect-modal/views/GettingStarted.js.map +7 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css +22 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css +15 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css.map +7 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.d.ts +3 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js +10 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js.map +7 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.map +7 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.d.ts +1 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.js +34 -0
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.js.map +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css +37 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.css.map +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.d.ts +1 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.js +6 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.js.map +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.map +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.d.ts +8 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.js +90 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css +30 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css +30 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css.map +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.d.ts +5 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js +14 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js.map +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.map +7 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.d.ts +9 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js +22 -0
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js.map +7 -0
- package/dist/esm/components/icons/BackIcon.d.ts +2 -0
- package/dist/esm/components/icons/BackIcon.js +15 -0
- package/dist/esm/components/icons/BackIcon.js.map +7 -0
- package/dist/esm/components/icons/CheckIcon.d.ts +2 -0
- package/dist/esm/components/icons/CheckIcon.js +15 -0
- package/dist/esm/components/icons/CheckIcon.js.map +7 -0
- package/dist/esm/components/icons/ChevronIcon.d.ts +2 -0
- package/dist/esm/components/icons/ChevronIcon.js +18 -0
- package/dist/esm/components/icons/ChevronIcon.js.map +7 -0
- package/dist/esm/components/icons/CloseIcon.d.ts +2 -0
- package/dist/esm/components/icons/CloseIcon.js +15 -0
- package/dist/esm/components/icons/CloseIcon.js.map +7 -0
- package/dist/esm/components/icons/SuiIcon.d.ts +2 -0
- package/dist/esm/components/icons/SuiIcon.js +20 -0
- package/dist/esm/components/icons/SuiIcon.js.map +7 -0
- package/dist/esm/constants/walletMutationKeys.d.ts +12 -0
- package/dist/esm/constants/walletMutationKeys.js +19 -0
- package/dist/esm/constants/walletMutationKeys.js.map +7 -0
- package/dist/esm/contexts/walletContext.d.ts +12 -0
- package/dist/esm/contexts/walletContext.js +7 -0
- package/dist/esm/contexts/walletContext.js.map +7 -0
- package/dist/esm/errors/walletErrors.d.ts +22 -0
- package/dist/esm/errors/walletErrors.js +16 -0
- package/dist/esm/errors/walletErrors.js.map +7 -0
- package/dist/esm/hooks/useSuiClient.d.ts +2 -0
- package/dist/esm/hooks/useSuiClient.js +30 -0
- package/dist/esm/hooks/useSuiClient.js.map +7 -0
- package/dist/esm/hooks/useSuiClientInfiniteQuery.d.ts +25 -0
- package/dist/esm/hooks/useSuiClientInfiniteQuery.js +45 -0
- package/dist/esm/hooks/useSuiClientInfiniteQuery.js.map +7 -0
- package/dist/esm/hooks/useSuiClientMutation.d.ts +4 -0
- package/dist/esm/hooks/useSuiClientMutation.js +40 -0
- package/dist/esm/hooks/useSuiClientMutation.js.map +7 -0
- package/dist/esm/hooks/useSuiClientQuery.d.ts +18 -0
- package/dist/esm/hooks/useSuiClientQuery.js +43 -0
- package/dist/esm/hooks/useSuiClientQuery.js.map +7 -0
- package/dist/esm/hooks/wallet/useAccounts.d.ts +4 -0
- package/dist/esm/hooks/wallet/useAccounts.js +27 -0
- package/dist/esm/hooks/wallet/useAccounts.js.map +7 -0
- package/dist/esm/hooks/wallet/useAutoConnectWallet.d.ts +1 -0
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js +103 -0
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +7 -0
- package/dist/esm/hooks/wallet/useConnectWallet.d.ts +15 -0
- package/dist/esm/hooks/wallet/useConnectWallet.js +69 -0
- package/dist/esm/hooks/wallet/useConnectWallet.js.map +7 -0
- package/dist/esm/hooks/wallet/useCurrentAccount.d.ts +4 -0
- package/dist/esm/hooks/wallet/useCurrentAccount.js +27 -0
- package/dist/esm/hooks/wallet/useCurrentAccount.js.map +7 -0
- package/dist/esm/hooks/wallet/useCurrentWallet.d.ts +4 -0
- package/dist/esm/hooks/wallet/useCurrentWallet.js +27 -0
- package/dist/esm/hooks/wallet/useCurrentWallet.js.map +7 -0
- package/dist/esm/hooks/wallet/useDisconnectWallet.d.ts +7 -0
- package/dist/esm/hooks/wallet/useDisconnectWallet.js +74 -0
- package/dist/esm/hooks/wallet/useDisconnectWallet.js.map +7 -0
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.d.ts +13 -0
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js +93 -0
- package/dist/esm/hooks/wallet/useSignAndExecuteTransactionBlock.js.map +7 -0
- package/dist/esm/hooks/wallet/useSignPersonalMessage.d.ts +13 -0
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js +93 -0
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +7 -0
- package/dist/esm/hooks/wallet/useSignTransactionBlock.d.ts +13 -0
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js +93 -0
- package/dist/esm/hooks/wallet/useSignTransactionBlock.js.map +7 -0
- package/dist/esm/hooks/wallet/useSwitchAccount.d.ts +13 -0
- package/dist/esm/hooks/wallet/useSwitchAccount.js +79 -0
- package/dist/esm/hooks/wallet/useSwitchAccount.js.map +7 -0
- package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.d.ts +1 -0
- package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js +161 -0
- package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js.map +7 -0
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.d.ts +4 -0
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js +47 -0
- package/dist/esm/hooks/wallet/useWalletPropertiesChanged.js.map +7 -0
- package/dist/esm/hooks/wallet/useWalletStore.d.ts +2 -0
- package/dist/esm/hooks/wallet/useWalletStore.js +22 -0
- package/dist/esm/hooks/wallet/useWalletStore.js.map +7 -0
- package/dist/esm/hooks/wallet/useWallets.d.ts +4 -0
- package/dist/esm/hooks/wallet/useWallets.js +27 -0
- package/dist/esm/hooks/wallet/useWallets.js.map +7 -0
- package/dist/esm/hooks/wallet/useWalletsChanged.d.ts +5 -0
- package/dist/esm/hooks/wallet/useWalletsChanged.js +64 -0
- package/dist/esm/hooks/wallet/useWalletsChanged.js.map +7 -0
- package/dist/esm/index.css +250 -0
- package/dist/esm/index.css.map +7 -0
- package/dist/esm/index.d.ts +18 -0
- package/dist/esm/index.js +1120 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/package.json +5 -0
- package/dist/esm/types/utilityTypes.d.ts +1 -0
- package/dist/esm/types/utilityTypes.js +1 -0
- package/dist/esm/types/utilityTypes.js.map +7 -0
- package/dist/esm/types.d.ts +1 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +7 -0
- package/dist/esm/utils/assertUnreachable.d.ts +4 -0
- package/dist/esm/utils/assertUnreachable.js +8 -0
- package/dist/esm/utils/assertUnreachable.js.map +7 -0
- package/dist/esm/utils/walletUtils.d.ts +2 -0
- package/dist/esm/utils/walletUtils.js +19 -0
- package/dist/esm/utils/walletUtils.js.map +7 -0
- package/dist/esm/walletStore.d.ts +35 -0
- package/dist/esm/walletStore.js +79 -0
- package/dist/esm/walletStore.js.map +7 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +95 -0
- package/src/components/AccountDropdownMenu.css.ts +48 -0
- package/src/components/AccountDropdownMenu.tsx +58 -0
- package/src/components/ConnectButton.tsx +21 -0
- package/src/components/SuiClientProvider.tsx +87 -0
- package/src/components/WalletProvider.tsx +93 -0
- package/src/components/connect-modal/ConnectModal.css.ts +135 -0
- package/src/components/connect-modal/ConnectModal.tsx +122 -0
- package/src/components/connect-modal/InfoSection.css.ts +14 -0
- package/src/components/connect-modal/InfoSection.tsx +18 -0
- package/src/components/connect-modal/views/ConnectionStatus.css.ts +32 -0
- package/src/components/connect-modal/views/ConnectionStatus.tsx +42 -0
- package/src/components/connect-modal/views/GettingStarted.css.ts +23 -0
- package/src/components/connect-modal/views/GettingStarted.tsx +33 -0
- package/src/components/connect-modal/views/WhatIsAWallet.css.ts +21 -0
- package/src/components/connect-modal/views/WhatIsAWallet.tsx +22 -0
- package/src/components/connect-modal/wallet-list/WalletList.css.ts +10 -0
- package/src/components/connect-modal/wallet-list/WalletList.tsx +41 -0
- package/src/components/connect-modal/wallet-list/WalletListItem.css.ts +36 -0
- package/src/components/connect-modal/wallet-list/WalletListItem.tsx +29 -0
- package/src/components/icons/BackIcon.tsx +15 -0
- package/src/components/icons/CheckIcon.tsx +15 -0
- package/src/components/icons/ChevronIcon.tsx +18 -0
- package/src/components/icons/CloseIcon.tsx +15 -0
- package/src/components/icons/SuiIcon.tsx +18 -0
- package/src/constants/walletMutationKeys.ts +20 -0
- package/src/contexts/walletContext.ts +8 -0
- package/src/errors/walletErrors.ts +24 -0
- package/src/hooks/useSuiClient.ts +22 -0
- package/src/hooks/useSuiClientInfiniteQuery.ts +63 -0
- package/src/hooks/useSuiClientMutation.ts +27 -0
- package/src/hooks/useSuiClientQuery.ts +58 -0
- package/src/hooks/wallet/useAccounts.ts +11 -0
- package/src/hooks/wallet/useAutoConnectWallet.ts +34 -0
- package/src/hooks/wallet/useConnectWallet.ts +64 -0
- package/src/hooks/wallet/useCurrentAccount.ts +11 -0
- package/src/hooks/wallet/useCurrentWallet.ts +11 -0
- package/src/hooks/wallet/useDisconnectWallet.ts +47 -0
- package/src/hooks/wallet/useSignAndExecuteTransactionBlock.ts +82 -0
- package/src/hooks/wallet/useSignPersonalMessage.ts +79 -0
- package/src/hooks/wallet/useSignTransactionBlock.ts +79 -0
- package/src/hooks/wallet/useSwitchAccount.ts +59 -0
- package/src/hooks/wallet/useUnsafeBurnerWallet.ts +144 -0
- package/src/hooks/wallet/useWalletPropertiesChanged.ts +29 -0
- package/src/hooks/wallet/useWalletStore.ts +18 -0
- package/src/hooks/wallet/useWallets.ts +11 -0
- package/src/hooks/wallet/useWalletsChanged.ts +40 -0
- package/src/index.ts +21 -0
- package/src/types/utilityTypes.ts +4 -0
- package/src/types.ts +4 -0
- package/src/utils/assertUnreachable.ts +9 -0
- package/src/utils/walletUtils.ts +32 -0
- package/src/walletStore.ts +115 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useSuiClientInfiniteQuery.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport type { UseInfiniteQueryOptions } from '@tanstack/react-query';\nimport { useInfiniteQuery } from '@tanstack/react-query';\n\nimport { useSuiClientContext } from './useSuiClient.js';\n\ninterface PaginatedResult {\n\tdata?: unknown;\n\tnextCursor?: unknown;\n\thasNextPage: boolean;\n}\nexport type SuiRpcPaginatedMethodName = {\n\t[K in keyof SuiClient]: SuiClient[K] extends (input: any) => Promise<PaginatedResult> ? K : never;\n}[keyof SuiClient];\n\nexport type SuiRpcPaginatedMethods = {\n\t[K in SuiRpcPaginatedMethodName]: SuiClient[K] extends (input: infer P) => Promise<{\n\t\tdata?: infer R;\n\t\tnextCursor?: infer Cursor | null;\n\t\thasNextPage: boolean;\n\t}>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t\t\tcursor: Cursor;\n\t\t }\n\t\t: never;\n};\n\nexport type UseSuiClientInfiniteQueryOptions<T extends keyof SuiRpcPaginatedMethods> = Omit<\n\tUseInfiniteQueryOptions<\n\t\tSuiRpcPaginatedMethods[T]['result'],\n\t\tError,\n\t\tSuiRpcPaginatedMethods[T]['result'],\n\t\tSuiRpcPaginatedMethods[T]['result'],\n\t\tunknown[]\n\t>,\n\t'queryFn'\n>;\n\nexport function useSuiClientInfiniteQuery<T extends keyof SuiRpcPaginatedMethods>(\n\tmethod: T,\n\tparams: SuiRpcPaginatedMethods[T]['params'],\n\t{ queryKey = [], enabled = !!params, ...options }: UseSuiClientInfiniteQueryOptions<T> = {},\n) {\n\tconst suiContext = useSuiClientContext();\n\n\treturn useInfiniteQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tenabled,\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\treturn (lastPage as PaginatedResult).nextCursor ?? null;\n\t\t},\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient() {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\ntype NetworkConfig = SuiClient | SuiClientOptions;\ntype NetworkConfigs<T extends NetworkConfig = NetworkConfig> = Record<string, T>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";AAKA,SAAS,wBAAwB;;;ACFjC,SAAS,kBAAkB;;;ACA3B,SAAS,gBAAgB,aAAa,iBAAiB;AAEvD,SAAS,eAAe,SAAS,gBAAgB;AAgFzC;AApED,IAAM,mBAAmB,cAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,eAAe,UAAU,EAAE;AAC7C;;;AD9BO,SAAS,sBAAsB;AACrC,QAAM,YAAY,WAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;AD2BO,SAAS,0BACf,QACA,QACA,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAyC,CAAC,GACzF;AACD,QAAM,aAAa,oBAAoB;AAEvC,SAAO,iBAAiB;AAAA,IACvB,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D;AAAA,IACA,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,IACA,kBAAkB,CAAC,aAAa;AAC/B,aAAQ,SAA6B,cAAc;AAAA,IACpD;AAAA,EACD,CAAC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { UseMutationOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { SuiRpcMethods } from './useSuiClientQuery.js';
|
|
3
|
+
export type UseSuiClientMutationOptions<T extends keyof SuiRpcMethods> = Omit<UseMutationOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['params'], unknown[]>, 'mutationFn'>;
|
|
4
|
+
export declare function useSuiClientMutation<T extends keyof SuiRpcMethods>(method: T, options?: UseSuiClientMutationOptions<T>): import("@tanstack/react-query").UseMutationResult<SuiRpcMethods[T]["result"], Error, SuiRpcMethods[T]["params"], unknown[]>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// src/hooks/useSuiClientMutation.ts
|
|
2
|
+
import { useMutation } from "@tanstack/react-query";
|
|
3
|
+
|
|
4
|
+
// src/hooks/useSuiClient.ts
|
|
5
|
+
import { useContext } from "react";
|
|
6
|
+
|
|
7
|
+
// src/components/SuiClientProvider.tsx
|
|
8
|
+
import { getFullnodeUrl, isSuiClient, SuiClient } from "@mysten/sui.js/client";
|
|
9
|
+
import { createContext, useMemo, useState } from "react";
|
|
10
|
+
import { jsx } from "react/jsx-runtime";
|
|
11
|
+
var SuiClientContext = createContext(null);
|
|
12
|
+
var DEFAULT_NETWORKS = {
|
|
13
|
+
localnet: { url: getFullnodeUrl("localnet") }
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// src/hooks/useSuiClient.ts
|
|
17
|
+
function useSuiClientContext() {
|
|
18
|
+
const suiClient = useContext(SuiClientContext);
|
|
19
|
+
if (!suiClient) {
|
|
20
|
+
throw new Error(
|
|
21
|
+
"Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider"
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
return suiClient;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/hooks/useSuiClientMutation.ts
|
|
28
|
+
function useSuiClientMutation(method, options = {}) {
|
|
29
|
+
const suiContext = useSuiClientContext();
|
|
30
|
+
return useMutation({
|
|
31
|
+
...options,
|
|
32
|
+
mutationFn: async (params) => {
|
|
33
|
+
return await suiContext.client[method](params);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
useSuiClientMutation
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=useSuiClientMutation.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useSuiClientMutation.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { UseMutationOptions } from '@tanstack/react-query';\nimport { useMutation } from '@tanstack/react-query';\n\nimport { useSuiClientContext } from './useSuiClient.js';\nimport type { SuiRpcMethods } from './useSuiClientQuery.js';\n\nexport type UseSuiClientMutationOptions<T extends keyof SuiRpcMethods> = Omit<\n\tUseMutationOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['params'], unknown[]>,\n\t'mutationFn'\n>;\n\nexport function useSuiClientMutation<T extends keyof SuiRpcMethods>(\n\tmethod: T,\n\toptions: UseSuiClientMutationOptions<T> = {},\n) {\n\tconst suiContext = useSuiClientContext();\n\n\treturn useMutation({\n\t\t...options,\n\t\tmutationFn: async (params) => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient() {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\ntype NetworkConfig = SuiClient | SuiClientOptions;\ntype NetworkConfigs<T extends NetworkConfig = NetworkConfig> = Record<string, T>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";AAIA,SAAS,mBAAmB;;;ACD5B,SAAS,kBAAkB;;;ACA3B,SAAS,gBAAgB,aAAa,iBAAiB;AAEvD,SAAS,eAAe,SAAS,gBAAgB;AAgFzC;AApED,IAAM,mBAAmB,cAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,eAAe,UAAU,EAAE;AAC7C;;;AD9BO,SAAS,sBAAsB;AACrC,QAAM,YAAY,WAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADHO,SAAS,qBACf,QACA,UAA0C,CAAC,GAC1C;AACD,QAAM,aAAa,oBAAoB;AAEvC,SAAO,YAAY;AAAA,IAClB,GAAG;AAAA,IACH,YAAY,OAAO,WAAW;AAC7B,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SuiClient } from '@mysten/sui.js/client';
|
|
2
|
+
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
3
|
+
export type SuiRpcMethodName = {
|
|
4
|
+
[K in keyof SuiClient]: SuiClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>) ? K : never;
|
|
5
|
+
}[keyof SuiClient];
|
|
6
|
+
export type SuiRpcMethods = {
|
|
7
|
+
[K in SuiRpcMethodName]: SuiClient[K] extends (input: infer P) => Promise<infer R> ? {
|
|
8
|
+
name: K;
|
|
9
|
+
result: R;
|
|
10
|
+
params: P;
|
|
11
|
+
} : SuiClient[K] extends () => Promise<infer R> ? {
|
|
12
|
+
name: K;
|
|
13
|
+
result: R;
|
|
14
|
+
params: undefined | object;
|
|
15
|
+
} : never;
|
|
16
|
+
};
|
|
17
|
+
export type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods> = Omit<UseQueryOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['result'], unknown[]>, 'queryFn'>;
|
|
18
|
+
export declare function useSuiClientQuery<T extends keyof SuiRpcMethods>(...args: undefined extends SuiRpcMethods[T]['params'] ? [method: T, params?: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T>] : [method: T, params: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T>]): import("@tanstack/react-query").UseQueryResult<SuiRpcMethods[T]["result"], Error>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// src/hooks/useSuiClientQuery.ts
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
|
|
4
|
+
// src/hooks/useSuiClient.ts
|
|
5
|
+
import { useContext } from "react";
|
|
6
|
+
|
|
7
|
+
// src/components/SuiClientProvider.tsx
|
|
8
|
+
import { getFullnodeUrl, isSuiClient, SuiClient } from "@mysten/sui.js/client";
|
|
9
|
+
import { createContext, useMemo, useState } from "react";
|
|
10
|
+
import { jsx } from "react/jsx-runtime";
|
|
11
|
+
var SuiClientContext = createContext(null);
|
|
12
|
+
var DEFAULT_NETWORKS = {
|
|
13
|
+
localnet: { url: getFullnodeUrl("localnet") }
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// src/hooks/useSuiClient.ts
|
|
17
|
+
function useSuiClientContext() {
|
|
18
|
+
const suiClient = useContext(SuiClientContext);
|
|
19
|
+
if (!suiClient) {
|
|
20
|
+
throw new Error(
|
|
21
|
+
"Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider"
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
return suiClient;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/hooks/useSuiClientQuery.ts
|
|
28
|
+
function useSuiClientQuery(...args) {
|
|
29
|
+
const [method, params, { queryKey = [], enabled = !!params, ...options } = {}] = args;
|
|
30
|
+
const suiContext = useSuiClientContext();
|
|
31
|
+
return useQuery({
|
|
32
|
+
...options,
|
|
33
|
+
queryKey: [suiContext.network, method, params, ...queryKey],
|
|
34
|
+
enabled,
|
|
35
|
+
queryFn: async () => {
|
|
36
|
+
return await suiContext.client[method](params);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
useSuiClientQuery
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=useSuiClientQuery.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useSuiClientQuery.ts", "../../../src/hooks/useSuiClient.ts", "../../../src/components/SuiClientProvider.tsx"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui.js/client';\nimport type { UseQueryOptions } from '@tanstack/react-query';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { useSuiClientContext } from './useSuiClient.js';\n\nexport type SuiRpcMethodName = {\n\t[K in keyof SuiClient]: SuiClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>)\n\t\t? K\n\t\t: never;\n}[keyof SuiClient];\n\nexport type SuiRpcMethods = {\n\t[K in SuiRpcMethodName]: SuiClient[K] extends (input: infer P) => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: P;\n\t\t }\n\t\t: SuiClient[K] extends () => Promise<infer R>\n\t\t? {\n\t\t\t\tname: K;\n\t\t\t\tresult: R;\n\t\t\t\tparams: undefined | object;\n\t\t }\n\t\t: never;\n};\n\nexport type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods> = Omit<\n\tUseQueryOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['result'], unknown[]>,\n\t'queryFn'\n>;\n\nexport function useSuiClientQuery<T extends keyof SuiRpcMethods>(\n\t...args: undefined extends SuiRpcMethods[T]['params']\n\t\t? [method: T, params?: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T>]\n\t\t: [method: T, params: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T>]\n) {\n\tconst [method, params, { queryKey = [], enabled = !!params, ...options } = {}] = args as [\n\t\tmethod: T,\n\t\tparams?: SuiRpcMethods[T]['params'],\n\t\toptions?: UseSuiClientQueryOptions<T>,\n\t];\n\n\tconst suiContext = useSuiClientContext();\n\n\treturn useQuery({\n\t\t...options,\n\t\tqueryKey: [suiContext.network, method, params, ...queryKey],\n\t\tenabled,\n\t\tqueryFn: async () => {\n\t\t\treturn await suiContext.client[method](params as never);\n\t\t},\n\t});\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useContext } from 'react';\n\nimport { SuiClientContext } from '../components/SuiClientProvider.js';\n\nexport function useSuiClientContext() {\n\tconst suiClient = useContext(SuiClientContext);\n\n\tif (!suiClient) {\n\t\tthrow new Error(\n\t\t\t'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',\n\t\t);\n\t}\n\n\treturn suiClient;\n}\n\nexport function useSuiClient() {\n\treturn useSuiClientContext().client;\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getFullnodeUrl, isSuiClient, SuiClient } from '@mysten/sui.js/client';\nimport type { SuiClientOptions } from '@mysten/sui.js/client';\nimport { createContext, useMemo, useState } from 'react';\n\ntype NetworkConfig = SuiClient | SuiClientOptions;\ntype NetworkConfigs<T extends NetworkConfig = NetworkConfig> = Record<string, T>;\n\nexport interface SuiClientProviderContext {\n\tclient: SuiClient;\n\tnetworks: NetworkConfigs;\n\tnetwork: string;\n\tselectNetwork: (network: string) => void;\n}\n\nexport const SuiClientContext = createContext<SuiClientProviderContext | null>(null);\n\nexport type SuiClientProviderProps<T extends NetworkConfigs> = {\n\tcreateClient?: (name: keyof T, config: T[keyof T]) => SuiClient;\n\tchildren: React.ReactNode;\n\tnetworks?: T;\n\tonNetworkChange?: (network: keyof T & string) => void;\n} & (\n\t| {\n\t\t\tdefaultNetwork?: keyof T & string;\n\t\t\tnetwork?: never;\n\t }\n\t| {\n\t\t\tdefaultNetwork?: never;\n\t\t\tnetwork?: keyof T & string;\n\t }\n);\n\nconst DEFAULT_NETWORKS = {\n\tlocalnet: { url: getFullnodeUrl('localnet') },\n};\n\nconst DEFAULT_CREATE_CLIENT = function createClient(\n\t_name: string,\n\tconfig: NetworkConfig | SuiClient,\n) {\n\tif (isSuiClient(config)) {\n\t\treturn config;\n\t}\n\n\treturn new SuiClient(config);\n};\n\nexport function SuiClientProvider<T extends NetworkConfigs>(props: SuiClientProviderProps<T>) {\n\tconst { onNetworkChange, network, children } = props;\n\tconst networks = (props.networks ?? DEFAULT_NETWORKS) as T;\n\tconst createClient =\n\t\t(props.createClient as typeof DEFAULT_CREATE_CLIENT) ?? DEFAULT_CREATE_CLIENT;\n\n\tconst [selectedNetwork, setSelectedNetwork] = useState<keyof T & string>(\n\t\tprops.network ?? props.defaultNetwork ?? (Object.keys(networks)[0] as keyof T & string),\n\t);\n\n\tconst currentNetwork = props.network ?? selectedNetwork;\n\n\tconst client = useMemo(() => {\n\t\treturn createClient(currentNetwork, networks[currentNetwork]);\n\t}, [createClient, currentNetwork, networks]);\n\n\tconst ctx = useMemo((): SuiClientProviderContext => {\n\t\treturn {\n\t\t\tclient,\n\t\t\tnetworks,\n\t\t\tnetwork: currentNetwork,\n\t\t\tselectNetwork: (newNetwork) => {\n\t\t\t\tif (currentNetwork === newNetwork) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!network && newNetwork !== selectedNetwork) {\n\t\t\t\t\tsetSelectedNetwork(newNetwork);\n\t\t\t\t}\n\n\t\t\t\tonNetworkChange?.(newNetwork);\n\t\t\t},\n\t\t};\n\t}, [client, networks, selectedNetwork, currentNetwork, network, onNetworkChange]);\n\n\treturn <SuiClientContext.Provider value={ctx}>{children}</SuiClientContext.Provider>;\n}\n"],
|
|
5
|
+
"mappings": ";AAKA,SAAS,gBAAgB;;;ACFzB,SAAS,kBAAkB;;;ACA3B,SAAS,gBAAgB,aAAa,iBAAiB;AAEvD,SAAS,eAAe,SAAS,gBAAgB;AAgFzC;AApED,IAAM,mBAAmB,cAA+C,IAAI;AAkBnF,IAAM,mBAAmB;AAAA,EACxB,UAAU,EAAE,KAAK,eAAe,UAAU,EAAE;AAC7C;;;AD9BO,SAAS,sBAAsB;AACrC,QAAM,YAAY,WAAW,gBAAgB;AAE7C,MAAI,CAAC,WAAW;AACf,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;;;ADmBO,SAAS,qBACZ,MAGF;AACD,QAAM,CAAC,QAAQ,QAAQ,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,IAAI;AAMjF,QAAM,aAAa,oBAAoB;AAEvC,SAAO,SAAS;AAAA,IACf,GAAG;AAAA,IACH,UAAU,CAAC,WAAW,SAAS,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC1D;AAAA,IACA,SAAS,YAAY;AACpB,aAAO,MAAM,WAAW,OAAO,MAAM,EAAE,MAAe;AAAA,IACvD;AAAA,EACD,CAAC;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { useStore } from "zustand";
|
|
4
|
+
|
|
5
|
+
// src/contexts/walletContext.ts
|
|
6
|
+
import { createContext } from "react";
|
|
7
|
+
var WalletContext = createContext(null);
|
|
8
|
+
|
|
9
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
10
|
+
function useWalletStore(selector) {
|
|
11
|
+
const store = useContext(WalletContext);
|
|
12
|
+
if (!store) {
|
|
13
|
+
throw new Error(
|
|
14
|
+
"Could not find WalletContext. Ensure that you have set up the WalletProvider."
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
return useStore(store, selector);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/hooks/wallet/useAccounts.ts
|
|
21
|
+
function useAccounts() {
|
|
22
|
+
return useWalletStore((state) => state.accounts);
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
useAccounts
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=useAccounts.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useAccounts.ts"],
|
|
4
|
+
"sourcesContent": ["// 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 a list of connected accounts authorized by the dApp.\n */\nexport function useAccounts() {\n\treturn useWalletStore((state) => state.accounts);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,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,cAAc;AAC7B,SAAO,eAAe,CAAC,UAAU,MAAM,QAAQ;AAChD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useAutoConnectWallet(autoConnectEnabled: boolean): void;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// src/hooks/wallet/useAutoConnectWallet.ts
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
|
|
4
|
+
// src/hooks/wallet/useConnectWallet.ts
|
|
5
|
+
import { useMutation } from "@tanstack/react-query";
|
|
6
|
+
|
|
7
|
+
// src/constants/walletMutationKeys.ts
|
|
8
|
+
var walletMutationKeys = {
|
|
9
|
+
all: { baseScope: "wallet" },
|
|
10
|
+
connectWallet: formMutationKeyFn("connect-wallet"),
|
|
11
|
+
disconnectWallet: formMutationKeyFn("disconnect-wallet"),
|
|
12
|
+
signPersonalMessage: formMutationKeyFn("sign-personal-message"),
|
|
13
|
+
signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
|
|
14
|
+
signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
|
|
15
|
+
switchAccount: formMutationKeyFn("switch-account")
|
|
16
|
+
};
|
|
17
|
+
function formMutationKeyFn(baseEntity) {
|
|
18
|
+
return function mutationKeyFn(additionalKeys = []) {
|
|
19
|
+
return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
24
|
+
import { useContext } from "react";
|
|
25
|
+
import { useStore } from "zustand";
|
|
26
|
+
|
|
27
|
+
// src/contexts/walletContext.ts
|
|
28
|
+
import { createContext } from "react";
|
|
29
|
+
var WalletContext = createContext(null);
|
|
30
|
+
|
|
31
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
32
|
+
function useWalletStore(selector) {
|
|
33
|
+
const store = useContext(WalletContext);
|
|
34
|
+
if (!store) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
"Could not find WalletContext. Ensure that you have set up the WalletProvider."
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
return useStore(store, selector);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/hooks/wallet/useConnectWallet.ts
|
|
43
|
+
function useConnectWallet({
|
|
44
|
+
mutationKey,
|
|
45
|
+
...mutationOptions
|
|
46
|
+
} = {}) {
|
|
47
|
+
const setWalletConnected = useWalletStore((state) => state.setWalletConnected);
|
|
48
|
+
return useMutation({
|
|
49
|
+
mutationKey: walletMutationKeys.connectWallet(mutationKey),
|
|
50
|
+
mutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {
|
|
51
|
+
const connectResult = await wallet.features["standard:connect"].connect(standardConnectInput);
|
|
52
|
+
const selectedAccount = getSelectedAccount(connectResult.accounts, accountAddress);
|
|
53
|
+
setWalletConnected(wallet, selectedAccount);
|
|
54
|
+
return connectResult;
|
|
55
|
+
},
|
|
56
|
+
...mutationOptions
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function getSelectedAccount(connectedAccounts, accountAddress) {
|
|
60
|
+
if (connectedAccounts.length === 0) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
if (accountAddress) {
|
|
64
|
+
const selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);
|
|
65
|
+
return selectedAccount ?? connectedAccounts[0];
|
|
66
|
+
}
|
|
67
|
+
return connectedAccounts[0];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// src/hooks/wallet/useWallets.ts
|
|
71
|
+
function useWallets() {
|
|
72
|
+
return useWalletStore((state) => state.wallets);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// src/hooks/wallet/useAutoConnectWallet.ts
|
|
76
|
+
function useAutoConnectWallet(autoConnectEnabled) {
|
|
77
|
+
const { mutate: connectWallet } = useConnectWallet();
|
|
78
|
+
const wallets = useWallets();
|
|
79
|
+
const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);
|
|
80
|
+
const lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
if (!autoConnectEnabled || !lastConnectedWalletName)
|
|
83
|
+
return;
|
|
84
|
+
const wallet = wallets.find((wallet2) => wallet2.name === lastConnectedWalletName);
|
|
85
|
+
if (wallet) {
|
|
86
|
+
connectWallet({
|
|
87
|
+
wallet,
|
|
88
|
+
accountAddress: lastConnectedAccountAddress || void 0,
|
|
89
|
+
silent: true
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}, [
|
|
93
|
+
autoConnectEnabled,
|
|
94
|
+
connectWallet,
|
|
95
|
+
lastConnectedAccountAddress,
|
|
96
|
+
lastConnectedWalletName,
|
|
97
|
+
wallets
|
|
98
|
+
]);
|
|
99
|
+
}
|
|
100
|
+
export {
|
|
101
|
+
useAutoConnectWallet
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=useAutoConnectWallet.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/hooks/wallet/useAutoConnectWallet.ts", "../../../../src/hooks/wallet/useConnectWallet.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useWallets.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect } from 'react';\n\nimport { useConnectWallet } from './useConnectWallet.js';\nimport { useWallets } from './useWallets.js';\nimport { useWalletStore } from './useWalletStore.js';\n\nexport function useAutoConnectWallet(autoConnectEnabled: boolean) {\n\tconst { mutate: connectWallet } = useConnectWallet();\n\tconst wallets = useWallets();\n\tconst lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);\n\tconst lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);\n\n\tuseEffect(() => {\n\t\tif (!autoConnectEnabled || !lastConnectedWalletName) return;\n\n\t\tconst wallet = wallets.find((wallet) => wallet.name === lastConnectedWalletName);\n\t\tif (wallet) {\n\t\t\tconnectWallet({\n\t\t\t\twallet,\n\t\t\t\taccountAddress: lastConnectedAccountAddress || undefined,\n\t\t\t\tsilent: true,\n\t\t\t});\n\t\t}\n\t}, [\n\t\tautoConnectEnabled,\n\t\tconnectWallet,\n\t\tlastConnectedAccountAddress,\n\t\tlastConnectedWalletName,\n\t\twallets,\n\t]);\n}\n", "// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} 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 { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}) {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {\n\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(standardConnectInput);\n\t\t\tconst selectedAccount = getSelectedAccount(connectResult.accounts, accountAddress);\n\n\t\t\tsetWalletConnected(wallet, selectedAccount);\n\t\t\treturn connectResult;\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\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\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 a list of registered wallets available to the dApp sorted by preference.\n */\nexport function useWallets() {\n\treturn useWalletStore((state) => state.wallets);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,iBAAiB;;;ACO1B,SAAS,mBAAmB;;;ACLrB,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;;;AChBA,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;;;AFgBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAAG;AACxC,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAE7E,SAAO,YAAY;AAAA,IAClB,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,gBAAgB,GAAG,qBAAqB,MAAM;AAC1E,YAAM,gBAAgB,MAAM,OAAO,SAAS,kBAAkB,EAAE,QAAQ,oBAAoB;AAC5F,YAAM,kBAAkB,mBAAmB,cAAc,UAAU,cAAc;AAEjF,yBAAmB,QAAQ,eAAe;AAC1C,aAAO;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EACJ,CAAC;AACF;AAEA,SAAS,mBAAmB,mBAA6C,gBAAyB;AACjG,MAAI,kBAAkB,WAAW,GAAG;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,gBAAgB;AACnB,UAAM,kBAAkB,kBAAkB,KAAK,CAAC,YAAY,QAAQ,YAAY,cAAc;AAC9F,WAAO,mBAAmB,kBAAkB,CAAC;AAAA,EAC9C;AAEA,SAAO,kBAAkB,CAAC;AAC3B;;;AIvDO,SAAS,aAAa;AAC5B,SAAO,eAAe,CAAC,UAAU,MAAM,OAAO;AAC/C;;;ALDO,SAAS,qBAAqB,oBAA6B;AACjE,QAAM,EAAE,QAAQ,cAAc,IAAI,iBAAiB;AACnD,QAAM,UAAU,WAAW;AAC3B,QAAM,0BAA0B,eAAe,CAAC,UAAU,MAAM,uBAAuB;AACvF,QAAM,8BAA8B,eAAe,CAAC,UAAU,MAAM,2BAA2B;AAE/F,YAAU,MAAM;AACf,QAAI,CAAC,sBAAsB,CAAC;AAAyB;AAErD,UAAM,SAAS,QAAQ,KAAK,CAACA,YAAWA,QAAO,SAAS,uBAAuB;AAC/E,QAAI,QAAQ;AACX,oBAAc;AAAA,QACb;AAAA,QACA,gBAAgB,+BAA+B;AAAA,QAC/C,QAAQ;AAAA,MACT,CAAC;AAAA,IACF;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AACF;",
|
|
6
|
+
"names": ["wallet"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StandardConnectInput, StandardConnectOutput, WalletWithRequiredFeatures } from '@mysten/wallet-standard';
|
|
2
|
+
import type { UseMutationOptions } from '@tanstack/react-query';
|
|
3
|
+
type ConnectWalletArgs = {
|
|
4
|
+
/** The wallet to connect to. */
|
|
5
|
+
wallet: WalletWithRequiredFeatures;
|
|
6
|
+
/** An optional account address to connect to. Defaults to the first authorized account. */
|
|
7
|
+
accountAddress?: string;
|
|
8
|
+
} & StandardConnectInput;
|
|
9
|
+
type ConnectWalletResult = StandardConnectOutput;
|
|
10
|
+
type UseConnectWalletMutationOptions = Omit<UseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>, 'mutationFn'>;
|
|
11
|
+
/**
|
|
12
|
+
* Mutation hook for establishing a connection to a specific wallet.
|
|
13
|
+
*/
|
|
14
|
+
export declare function useConnectWallet({ mutationKey, ...mutationOptions }?: UseConnectWalletMutationOptions): import("@tanstack/react-query").UseMutationResult<StandardConnectOutput, Error, ConnectWalletArgs, unknown>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// src/hooks/wallet/useConnectWallet.ts
|
|
2
|
+
import { useMutation } from "@tanstack/react-query";
|
|
3
|
+
|
|
4
|
+
// src/constants/walletMutationKeys.ts
|
|
5
|
+
var walletMutationKeys = {
|
|
6
|
+
all: { baseScope: "wallet" },
|
|
7
|
+
connectWallet: formMutationKeyFn("connect-wallet"),
|
|
8
|
+
disconnectWallet: formMutationKeyFn("disconnect-wallet"),
|
|
9
|
+
signPersonalMessage: formMutationKeyFn("sign-personal-message"),
|
|
10
|
+
signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
|
|
11
|
+
signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
|
|
12
|
+
switchAccount: formMutationKeyFn("switch-account")
|
|
13
|
+
};
|
|
14
|
+
function formMutationKeyFn(baseEntity) {
|
|
15
|
+
return function mutationKeyFn(additionalKeys = []) {
|
|
16
|
+
return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
21
|
+
import { useContext } from "react";
|
|
22
|
+
import { useStore } from "zustand";
|
|
23
|
+
|
|
24
|
+
// src/contexts/walletContext.ts
|
|
25
|
+
import { createContext } from "react";
|
|
26
|
+
var WalletContext = createContext(null);
|
|
27
|
+
|
|
28
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
29
|
+
function useWalletStore(selector) {
|
|
30
|
+
const store = useContext(WalletContext);
|
|
31
|
+
if (!store) {
|
|
32
|
+
throw new Error(
|
|
33
|
+
"Could not find WalletContext. Ensure that you have set up the WalletProvider."
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
return useStore(store, selector);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// src/hooks/wallet/useConnectWallet.ts
|
|
40
|
+
function useConnectWallet({
|
|
41
|
+
mutationKey,
|
|
42
|
+
...mutationOptions
|
|
43
|
+
} = {}) {
|
|
44
|
+
const setWalletConnected = useWalletStore((state) => state.setWalletConnected);
|
|
45
|
+
return useMutation({
|
|
46
|
+
mutationKey: walletMutationKeys.connectWallet(mutationKey),
|
|
47
|
+
mutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {
|
|
48
|
+
const connectResult = await wallet.features["standard:connect"].connect(standardConnectInput);
|
|
49
|
+
const selectedAccount = getSelectedAccount(connectResult.accounts, accountAddress);
|
|
50
|
+
setWalletConnected(wallet, selectedAccount);
|
|
51
|
+
return connectResult;
|
|
52
|
+
},
|
|
53
|
+
...mutationOptions
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function getSelectedAccount(connectedAccounts, accountAddress) {
|
|
57
|
+
if (connectedAccounts.length === 0) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
if (accountAddress) {
|
|
61
|
+
const selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);
|
|
62
|
+
return selectedAccount ?? connectedAccounts[0];
|
|
63
|
+
}
|
|
64
|
+
return connectedAccounts[0];
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
useConnectWallet
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=useConnectWallet.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/hooks/wallet/useConnectWallet.ts", "../../../../src/constants/walletMutationKeys.ts", "../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tStandardConnectInput,\n\tStandardConnectOutput,\n\tWalletAccount,\n\tWalletWithRequiredFeatures,\n} 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 { useWalletStore } from './useWalletStore.js';\n\ntype ConnectWalletArgs = {\n\t/** The wallet to connect to. */\n\twallet: WalletWithRequiredFeatures;\n\n\t/** An optional account address to connect to. Defaults to the first authorized account. */\n\taccountAddress?: string;\n} & StandardConnectInput;\n\ntype ConnectWalletResult = StandardConnectOutput;\n\ntype UseConnectWalletMutationOptions = Omit<\n\tUseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,\n\t'mutationFn'\n>;\n\n/**\n * Mutation hook for establishing a connection to a specific wallet.\n */\nexport function useConnectWallet({\n\tmutationKey,\n\t...mutationOptions\n}: UseConnectWalletMutationOptions = {}) {\n\tconst setWalletConnected = useWalletStore((state) => state.setWalletConnected);\n\n\treturn useMutation({\n\t\tmutationKey: walletMutationKeys.connectWallet(mutationKey),\n\t\tmutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {\n\t\t\tconst connectResult = await wallet.features['standard:connect'].connect(standardConnectInput);\n\t\t\tconst selectedAccount = getSelectedAccount(connectResult.accounts, accountAddress);\n\n\t\t\tsetWalletConnected(wallet, selectedAccount);\n\t\t\treturn connectResult;\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nfunction getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {\n\tif (connectedAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (accountAddress) {\n\t\tconst selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);\n\t\treturn selectedAccount ?? connectedAccounts[0];\n\t}\n\n\treturn connectedAccounts[0];\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\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"],
|
|
5
|
+
"mappings": ";AAUA,SAAS,mBAAmB;;;ACLrB,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;;;AChBA,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;;;AFgBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA,GAAG;AACJ,IAAqC,CAAC,GAAG;AACxC,QAAM,qBAAqB,eAAe,CAAC,UAAU,MAAM,kBAAkB;AAE7E,SAAO,YAAY;AAAA,IAClB,aAAa,mBAAmB,cAAc,WAAW;AAAA,IACzD,YAAY,OAAO,EAAE,QAAQ,gBAAgB,GAAG,qBAAqB,MAAM;AAC1E,YAAM,gBAAgB,MAAM,OAAO,SAAS,kBAAkB,EAAE,QAAQ,oBAAoB;AAC5F,YAAM,kBAAkB,mBAAmB,cAAc,UAAU,cAAc;AAEjF,yBAAmB,QAAQ,eAAe;AAC1C,aAAO;AAAA,IACR;AAAA,IACA,GAAG;AAAA,EACJ,CAAC;AACF;AAEA,SAAS,mBAAmB,mBAA6C,gBAAyB;AACjG,MAAI,kBAAkB,WAAW,GAAG;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,gBAAgB;AACnB,UAAM,kBAAkB,kBAAkB,KAAK,CAAC,YAAY,QAAQ,YAAY,cAAc;AAC9F,WAAO,mBAAmB,kBAAkB,CAAC;AAAA,EAC9C;AAEA,SAAO,kBAAkB,CAAC;AAC3B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { useStore } from "zustand";
|
|
4
|
+
|
|
5
|
+
// src/contexts/walletContext.ts
|
|
6
|
+
import { createContext } from "react";
|
|
7
|
+
var WalletContext = createContext(null);
|
|
8
|
+
|
|
9
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
10
|
+
function useWalletStore(selector) {
|
|
11
|
+
const store = useContext(WalletContext);
|
|
12
|
+
if (!store) {
|
|
13
|
+
throw new Error(
|
|
14
|
+
"Could not find WalletContext. Ensure that you have set up the WalletProvider."
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
return useStore(store, selector);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/hooks/wallet/useCurrentAccount.ts
|
|
21
|
+
function useCurrentAccount() {
|
|
22
|
+
return useWalletStore((state) => state.currentAccount);
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
useCurrentAccount
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=useCurrentAccount.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/hooks/wallet/useWalletStore.ts", "../../../../src/contexts/walletContext.ts", "../../../../src/hooks/wallet/useCurrentAccount.ts"],
|
|
4
|
+
"sourcesContent": ["// 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 account that is currently selected, if one exists.\n */\nexport function useCurrentAccount() {\n\treturn useWalletStore((state) => state.currentAccount);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,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,oBAAoB;AACnC,SAAO,eAAe,CAAC,UAAU,MAAM,cAAc;AACtD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { useStore } from "zustand";
|
|
4
|
+
|
|
5
|
+
// src/contexts/walletContext.ts
|
|
6
|
+
import { createContext } from "react";
|
|
7
|
+
var WalletContext = createContext(null);
|
|
8
|
+
|
|
9
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
10
|
+
function useWalletStore(selector) {
|
|
11
|
+
const store = useContext(WalletContext);
|
|
12
|
+
if (!store) {
|
|
13
|
+
throw new Error(
|
|
14
|
+
"Could not find WalletContext. Ensure that you have set up the WalletProvider."
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
return useStore(store, selector);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/hooks/wallet/useCurrentWallet.ts
|
|
21
|
+
function useCurrentWallet() {
|
|
22
|
+
return useWalletStore((state) => state.currentWallet);
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
useCurrentWallet
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=useCurrentWallet.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../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 { 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,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;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { UseMutationOptions } from '@tanstack/react-query';
|
|
2
|
+
type UseDisconnectWalletMutationOptions = Omit<UseMutationOptions<void, Error, void, unknown>, 'mutationFn'>;
|
|
3
|
+
/**
|
|
4
|
+
* Mutation hook for disconnecting from an active wallet connection, if currently connected.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useDisconnectWallet({ mutationKey, ...mutationOptions }?: UseDisconnectWalletMutationOptions): import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/hooks/wallet/useDisconnectWallet.ts
|
|
2
|
+
import { useMutation } from "@tanstack/react-query";
|
|
3
|
+
|
|
4
|
+
// src/constants/walletMutationKeys.ts
|
|
5
|
+
var walletMutationKeys = {
|
|
6
|
+
all: { baseScope: "wallet" },
|
|
7
|
+
connectWallet: formMutationKeyFn("connect-wallet"),
|
|
8
|
+
disconnectWallet: formMutationKeyFn("disconnect-wallet"),
|
|
9
|
+
signPersonalMessage: formMutationKeyFn("sign-personal-message"),
|
|
10
|
+
signTransactionBlock: formMutationKeyFn("sign-transaction-block"),
|
|
11
|
+
signAndExecuteTransactionBlock: formMutationKeyFn("sign-and-execute-transaction-block"),
|
|
12
|
+
switchAccount: formMutationKeyFn("switch-account")
|
|
13
|
+
};
|
|
14
|
+
function formMutationKeyFn(baseEntity) {
|
|
15
|
+
return function mutationKeyFn(additionalKeys = []) {
|
|
16
|
+
return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/errors/walletErrors.ts
|
|
21
|
+
var WalletNotConnectedError = class extends Error {
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
25
|
+
import { useContext } from "react";
|
|
26
|
+
import { useStore } from "zustand";
|
|
27
|
+
|
|
28
|
+
// src/contexts/walletContext.ts
|
|
29
|
+
import { createContext } from "react";
|
|
30
|
+
var WalletContext = createContext(null);
|
|
31
|
+
|
|
32
|
+
// src/hooks/wallet/useWalletStore.ts
|
|
33
|
+
function useWalletStore(selector) {
|
|
34
|
+
const store = useContext(WalletContext);
|
|
35
|
+
if (!store) {
|
|
36
|
+
throw new Error(
|
|
37
|
+
"Could not find WalletContext. Ensure that you have set up the WalletProvider."
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
return useStore(store, selector);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// src/hooks/wallet/useCurrentWallet.ts
|
|
44
|
+
function useCurrentWallet() {
|
|
45
|
+
return useWalletStore((state) => state.currentWallet);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// src/hooks/wallet/useDisconnectWallet.ts
|
|
49
|
+
function useDisconnectWallet({
|
|
50
|
+
mutationKey,
|
|
51
|
+
...mutationOptions
|
|
52
|
+
} = {}) {
|
|
53
|
+
const currentWallet = useCurrentWallet();
|
|
54
|
+
const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);
|
|
55
|
+
return useMutation({
|
|
56
|
+
mutationKey: walletMutationKeys.disconnectWallet(mutationKey),
|
|
57
|
+
mutationFn: async () => {
|
|
58
|
+
if (!currentWallet) {
|
|
59
|
+
throw new WalletNotConnectedError("No wallet is connected.");
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
await currentWallet.features["standard:disconnect"]?.disconnect();
|
|
63
|
+
} catch (error) {
|
|
64
|
+
console.error("Failed to disconnect the application from the current wallet.", error);
|
|
65
|
+
}
|
|
66
|
+
setWalletDisconnected();
|
|
67
|
+
},
|
|
68
|
+
...mutationOptions
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
useDisconnectWallet
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=useDisconnectWallet.js.map
|