@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,21 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { style } from '@vanilla-extract/css';
|
|
5
|
+
|
|
6
|
+
export const container = style({
|
|
7
|
+
display: 'flex',
|
|
8
|
+
flexDirection: 'column',
|
|
9
|
+
alignItems: 'center',
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export const title = style({});
|
|
13
|
+
|
|
14
|
+
export const content = style({
|
|
15
|
+
display: 'flex',
|
|
16
|
+
flexDirection: 'column',
|
|
17
|
+
justifyContent: 'center',
|
|
18
|
+
flexGrow: 1,
|
|
19
|
+
gap: 20,
|
|
20
|
+
padding: 40,
|
|
21
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { InfoSection } from '../InfoSection.js';
|
|
5
|
+
import * as styles from './WhatIsAWallet.css.js';
|
|
6
|
+
|
|
7
|
+
export function WhatIsAWallet() {
|
|
8
|
+
return (
|
|
9
|
+
<div className={styles.container}>
|
|
10
|
+
<h2 className={styles.title}>What is a Wallet</h2>
|
|
11
|
+
<div className={styles.content}>
|
|
12
|
+
<InfoSection title="Easy Login">
|
|
13
|
+
No need to create new accounts and passwords for every website. Just connect your wallet
|
|
14
|
+
and get going.
|
|
15
|
+
</InfoSection>
|
|
16
|
+
<InfoSection title="Store your Digital Assets">
|
|
17
|
+
Send, receive, store, and display your digital assets like NFTs & coins.
|
|
18
|
+
</InfoSection>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';
|
|
5
|
+
|
|
6
|
+
import { useWallets } from '../../../hooks/wallet/useWallets.js';
|
|
7
|
+
import { SuiIcon } from '../../icons/SuiIcon.js';
|
|
8
|
+
import * as styles from './WalletList.css.js';
|
|
9
|
+
import { WalletListItem } from './WalletListItem.js';
|
|
10
|
+
|
|
11
|
+
type WalletListProps = {
|
|
12
|
+
selectedWalletName?: string;
|
|
13
|
+
onPlaceholderClick: () => void;
|
|
14
|
+
onSelect: (wallet: WalletWithRequiredFeatures) => void;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export function WalletList({ selectedWalletName, onPlaceholderClick, onSelect }: WalletListProps) {
|
|
18
|
+
const wallets = useWallets();
|
|
19
|
+
return (
|
|
20
|
+
<ul className={styles.container}>
|
|
21
|
+
{wallets.length > 0 ? (
|
|
22
|
+
wallets.map((wallet) => (
|
|
23
|
+
<WalletListItem
|
|
24
|
+
key={wallet.name}
|
|
25
|
+
name={wallet.name}
|
|
26
|
+
icon={wallet.icon}
|
|
27
|
+
isSelected={wallet.name === selectedWalletName}
|
|
28
|
+
onClick={() => onSelect(wallet)}
|
|
29
|
+
/>
|
|
30
|
+
))
|
|
31
|
+
) : (
|
|
32
|
+
<WalletListItem
|
|
33
|
+
name="Sui Wallet"
|
|
34
|
+
icon={<SuiIcon />}
|
|
35
|
+
onClick={onPlaceholderClick}
|
|
36
|
+
isSelected
|
|
37
|
+
/>
|
|
38
|
+
)}
|
|
39
|
+
</ul>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { style } from '@vanilla-extract/css';
|
|
5
|
+
|
|
6
|
+
export const container = style({
|
|
7
|
+
padding: 8,
|
|
8
|
+
borderRadius: 8,
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export const selectedContainer = style({
|
|
12
|
+
background: '#FFFFFF',
|
|
13
|
+
boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.05)',
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export const buttonContainer = style({
|
|
17
|
+
width: '100%',
|
|
18
|
+
display: 'flex',
|
|
19
|
+
alignItems: 'center',
|
|
20
|
+
gap: '8px',
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export const walletName = style({
|
|
24
|
+
overflow: 'hidden',
|
|
25
|
+
textOverflow: 'ellipsis',
|
|
26
|
+
whiteSpace: 'nowrap',
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export const walletIcon = style({
|
|
30
|
+
width: 28,
|
|
31
|
+
height: 28,
|
|
32
|
+
borderRadius: 6,
|
|
33
|
+
flexShrink: 0,
|
|
34
|
+
background: 'white',
|
|
35
|
+
objectFit: 'cover',
|
|
36
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import type { ReactNode } from 'react';
|
|
6
|
+
|
|
7
|
+
import * as styles from './WalletListItem.css.js';
|
|
8
|
+
|
|
9
|
+
type WalletListItemProps = {
|
|
10
|
+
name: string;
|
|
11
|
+
icon: ReactNode;
|
|
12
|
+
isSelected?: boolean;
|
|
13
|
+
onClick: () => void;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export function WalletListItem({ name, icon, onClick, isSelected = false }: WalletListItemProps) {
|
|
17
|
+
return (
|
|
18
|
+
<li className={clsx(styles.container, { [styles.selectedContainer]: isSelected })}>
|
|
19
|
+
<button className={styles.buttonContainer} type="button" onClick={onClick}>
|
|
20
|
+
{typeof icon === 'string' ? (
|
|
21
|
+
<img className={styles.walletIcon} src={icon} alt={`${name} logo`} />
|
|
22
|
+
) : (
|
|
23
|
+
icon
|
|
24
|
+
)}
|
|
25
|
+
<div className={styles.walletName}>{name}</div>
|
|
26
|
+
</button>
|
|
27
|
+
</li>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ComponentProps } from 'react';
|
|
5
|
+
|
|
6
|
+
export function BackIcon(props: ComponentProps<'svg'>) {
|
|
7
|
+
return (
|
|
8
|
+
<svg width={24} height={24} fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
|
|
9
|
+
<path
|
|
10
|
+
d="M7.57 12.262c0 .341.13.629.403.895l5.175 5.059c.204.205.45.307.751.307.609 0 1.101-.485 1.101-1.087 0-.293-.123-.574-.349-.8L10.14 12.27l4.511-4.375A1.13 1.13 0 0 0 15 7.087C15 6.485 14.508 6 13.9 6c-.295 0-.54.103-.752.308l-5.175 5.058c-.28.28-.404.56-.404.896Z"
|
|
11
|
+
fill="#383F47"
|
|
12
|
+
/>
|
|
13
|
+
</svg>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ComponentProps } from 'react';
|
|
5
|
+
|
|
6
|
+
export function CheckIcon(props: ComponentProps<'svg'>) {
|
|
7
|
+
return (
|
|
8
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={16} height={16} fill="none" {...props}>
|
|
9
|
+
<path
|
|
10
|
+
fill="#007195"
|
|
11
|
+
d="m11.726 5.048-4.73 5.156-1.722-1.879a.72.72 0 0 0-.529-.23.722.722 0 0 0-.525.24.858.858 0 0 0-.22.573.86.86 0 0 0 .211.576l2.255 2.458c.14.153.332.24.53.24.2 0 .391-.087.532-.24l5.261-5.735A.86.86 0 0 0 13 5.63a.858.858 0 0 0-.22-.572.722.722 0 0 0-.525-.24.72.72 0 0 0-.529.23Z"
|
|
12
|
+
/>
|
|
13
|
+
</svg>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ComponentProps } from 'react';
|
|
5
|
+
|
|
6
|
+
export function ChevronIcon(props: ComponentProps<'svg'>) {
|
|
7
|
+
return (
|
|
8
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={16} height={16} fill="none" {...props}>
|
|
9
|
+
<path
|
|
10
|
+
stroke="#A0B6C3"
|
|
11
|
+
strokeLinecap="round"
|
|
12
|
+
strokeLinejoin="round"
|
|
13
|
+
strokeWidth={1.5}
|
|
14
|
+
d="m4 6 4 4 4-4"
|
|
15
|
+
/>
|
|
16
|
+
</svg>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ComponentProps } from 'react';
|
|
5
|
+
|
|
6
|
+
export function CloseIcon(props: ComponentProps<'svg'>) {
|
|
7
|
+
return (
|
|
8
|
+
<svg width={10} height={10} fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
|
|
9
|
+
<path
|
|
10
|
+
d="M9.708.292a.999.999 0 0 0-1.413 0l-3.289 3.29L1.717.291A.999.999 0 0 0 .305 1.705l3.289 3.289-3.29 3.289a.999.999 0 1 0 1.413 1.412l3.29-3.289 3.288 3.29a.999.999 0 0 0 1.413-1.413l-3.29-3.29 3.29-3.288a.999.999 0 0 0 0-1.413Z"
|
|
11
|
+
fill="currentColor"
|
|
12
|
+
/>
|
|
13
|
+
</svg>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ComponentProps } from 'react';
|
|
5
|
+
|
|
6
|
+
export function SuiIcon(props: ComponentProps<'svg'>) {
|
|
7
|
+
return (
|
|
8
|
+
<svg width={28} height={28} fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
|
|
9
|
+
<rect width={28} height={28} rx={6} fill="#6FBCF0" />
|
|
10
|
+
<path
|
|
11
|
+
fillRule="evenodd"
|
|
12
|
+
clipRule="evenodd"
|
|
13
|
+
d="M7.942 20.527A6.875 6.875 0 0 0 13.957 24c2.51 0 4.759-1.298 6.015-3.473a6.875 6.875 0 0 0 0-6.945l-5.29-9.164a.837.837 0 0 0-1.45 0l-5.29 9.164a6.875 6.875 0 0 0 0 6.945Zm4.524-11.75 1.128-1.953a.418.418 0 0 1 .725 0l4.34 7.516a5.365 5.365 0 0 1 .449 4.442 4.675 4.675 0 0 0-.223-.73c-.599-1.512-1.954-2.68-4.029-3.47-1.426-.54-2.336-1.336-2.706-2.364-.476-1.326.021-2.77.316-3.44Zm-1.923 3.332L9.255 14.34a5.373 5.373 0 0 0 0 5.43 5.373 5.373 0 0 0 4.702 2.714 5.38 5.38 0 0 0 3.472-1.247c.125-.314.51-1.462.034-2.646-.44-1.093-1.5-1.965-3.15-2.594-1.864-.707-3.076-1.811-3.6-3.28a4.601 4.601 0 0 1-.17-.608Z"
|
|
14
|
+
fill="#fff"
|
|
15
|
+
/>
|
|
16
|
+
</svg>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { MutationKey } from '@tanstack/react-query';
|
|
5
|
+
|
|
6
|
+
export const walletMutationKeys = {
|
|
7
|
+
all: { baseScope: 'wallet' },
|
|
8
|
+
connectWallet: formMutationKeyFn('connect-wallet'),
|
|
9
|
+
disconnectWallet: formMutationKeyFn('disconnect-wallet'),
|
|
10
|
+
signPersonalMessage: formMutationKeyFn('sign-personal-message'),
|
|
11
|
+
signTransactionBlock: formMutationKeyFn('sign-transaction-block'),
|
|
12
|
+
signAndExecuteTransactionBlock: formMutationKeyFn('sign-and-execute-transaction-block'),
|
|
13
|
+
switchAccount: formMutationKeyFn('switch-account'),
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
function formMutationKeyFn(baseEntity: string) {
|
|
17
|
+
return function mutationKeyFn(additionalKeys: MutationKey = []) {
|
|
18
|
+
return [{ ...walletMutationKeys.all, baseEntity }, ...additionalKeys];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* An error that is instantiated when someone attempts to perform an action that requires an active wallet connection.
|
|
6
|
+
*/
|
|
7
|
+
export class WalletNotConnectedError extends Error {}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* An error that is instantiated when someone attempts to perform an action that requires a selected wallet account.
|
|
11
|
+
* This is more of an edge case stemming from the fact that wallets don't technically require you to authorize any
|
|
12
|
+
* accounts when connecting a wallet.
|
|
13
|
+
*/
|
|
14
|
+
export class WalletNoAccountSelectedError extends Error {}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* An error that is instantiated when someone attempts to perform an action that isn't supported by a wallet.
|
|
18
|
+
*/
|
|
19
|
+
export class WalletFeatureNotSupportedError extends Error {}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* An error that is instantiated when a wallet account can't be found for a specific wallet.
|
|
23
|
+
*/
|
|
24
|
+
export class WalletAccountNotFoundError extends Error {}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { useContext } from 'react';
|
|
5
|
+
|
|
6
|
+
import { SuiClientContext } from '../components/SuiClientProvider.js';
|
|
7
|
+
|
|
8
|
+
export function useSuiClientContext() {
|
|
9
|
+
const suiClient = useContext(SuiClientContext);
|
|
10
|
+
|
|
11
|
+
if (!suiClient) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
'Could not find SuiClientContext. Ensure that you have set up the SuiClientProvider',
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return suiClient;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function useSuiClient() {
|
|
21
|
+
return useSuiClientContext().client;
|
|
22
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { SuiClient } from '@mysten/sui.js/client';
|
|
5
|
+
import type { UseInfiniteQueryOptions } from '@tanstack/react-query';
|
|
6
|
+
import { useInfiniteQuery } from '@tanstack/react-query';
|
|
7
|
+
|
|
8
|
+
import { useSuiClientContext } from './useSuiClient.js';
|
|
9
|
+
|
|
10
|
+
interface PaginatedResult {
|
|
11
|
+
data?: unknown;
|
|
12
|
+
nextCursor?: unknown;
|
|
13
|
+
hasNextPage: boolean;
|
|
14
|
+
}
|
|
15
|
+
export type SuiRpcPaginatedMethodName = {
|
|
16
|
+
[K in keyof SuiClient]: SuiClient[K] extends (input: any) => Promise<PaginatedResult> ? K : never;
|
|
17
|
+
}[keyof SuiClient];
|
|
18
|
+
|
|
19
|
+
export type SuiRpcPaginatedMethods = {
|
|
20
|
+
[K in SuiRpcPaginatedMethodName]: SuiClient[K] extends (input: infer P) => Promise<{
|
|
21
|
+
data?: infer R;
|
|
22
|
+
nextCursor?: infer Cursor | null;
|
|
23
|
+
hasNextPage: boolean;
|
|
24
|
+
}>
|
|
25
|
+
? {
|
|
26
|
+
name: K;
|
|
27
|
+
result: R;
|
|
28
|
+
params: P;
|
|
29
|
+
cursor: Cursor;
|
|
30
|
+
}
|
|
31
|
+
: never;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export type UseSuiClientInfiniteQueryOptions<T extends keyof SuiRpcPaginatedMethods> = Omit<
|
|
35
|
+
UseInfiniteQueryOptions<
|
|
36
|
+
SuiRpcPaginatedMethods[T]['result'],
|
|
37
|
+
Error,
|
|
38
|
+
SuiRpcPaginatedMethods[T]['result'],
|
|
39
|
+
SuiRpcPaginatedMethods[T]['result'],
|
|
40
|
+
unknown[]
|
|
41
|
+
>,
|
|
42
|
+
'queryFn'
|
|
43
|
+
>;
|
|
44
|
+
|
|
45
|
+
export function useSuiClientInfiniteQuery<T extends keyof SuiRpcPaginatedMethods>(
|
|
46
|
+
method: T,
|
|
47
|
+
params: SuiRpcPaginatedMethods[T]['params'],
|
|
48
|
+
{ queryKey = [], enabled = !!params, ...options }: UseSuiClientInfiniteQueryOptions<T> = {},
|
|
49
|
+
) {
|
|
50
|
+
const suiContext = useSuiClientContext();
|
|
51
|
+
|
|
52
|
+
return useInfiniteQuery({
|
|
53
|
+
...options,
|
|
54
|
+
queryKey: [suiContext.network, method, params, ...queryKey],
|
|
55
|
+
enabled,
|
|
56
|
+
queryFn: async () => {
|
|
57
|
+
return await suiContext.client[method](params as never);
|
|
58
|
+
},
|
|
59
|
+
getNextPageParam: (lastPage) => {
|
|
60
|
+
return (lastPage as PaginatedResult).nextCursor ?? null;
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { UseMutationOptions } from '@tanstack/react-query';
|
|
5
|
+
import { useMutation } from '@tanstack/react-query';
|
|
6
|
+
|
|
7
|
+
import { useSuiClientContext } from './useSuiClient.js';
|
|
8
|
+
import type { SuiRpcMethods } from './useSuiClientQuery.js';
|
|
9
|
+
|
|
10
|
+
export type UseSuiClientMutationOptions<T extends keyof SuiRpcMethods> = Omit<
|
|
11
|
+
UseMutationOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['params'], unknown[]>,
|
|
12
|
+
'mutationFn'
|
|
13
|
+
>;
|
|
14
|
+
|
|
15
|
+
export function useSuiClientMutation<T extends keyof SuiRpcMethods>(
|
|
16
|
+
method: T,
|
|
17
|
+
options: UseSuiClientMutationOptions<T> = {},
|
|
18
|
+
) {
|
|
19
|
+
const suiContext = useSuiClientContext();
|
|
20
|
+
|
|
21
|
+
return useMutation({
|
|
22
|
+
...options,
|
|
23
|
+
mutationFn: async (params) => {
|
|
24
|
+
return await suiContext.client[method](params as never);
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { SuiClient } from '@mysten/sui.js/client';
|
|
5
|
+
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
6
|
+
import { useQuery } from '@tanstack/react-query';
|
|
7
|
+
|
|
8
|
+
import { useSuiClientContext } from './useSuiClient.js';
|
|
9
|
+
|
|
10
|
+
export type SuiRpcMethodName = {
|
|
11
|
+
[K in keyof SuiClient]: SuiClient[K] extends ((input: any) => Promise<any>) | (() => Promise<any>)
|
|
12
|
+
? K
|
|
13
|
+
: never;
|
|
14
|
+
}[keyof SuiClient];
|
|
15
|
+
|
|
16
|
+
export type SuiRpcMethods = {
|
|
17
|
+
[K in SuiRpcMethodName]: SuiClient[K] extends (input: infer P) => Promise<infer R>
|
|
18
|
+
? {
|
|
19
|
+
name: K;
|
|
20
|
+
result: R;
|
|
21
|
+
params: P;
|
|
22
|
+
}
|
|
23
|
+
: SuiClient[K] extends () => Promise<infer R>
|
|
24
|
+
? {
|
|
25
|
+
name: K;
|
|
26
|
+
result: R;
|
|
27
|
+
params: undefined | object;
|
|
28
|
+
}
|
|
29
|
+
: never;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type UseSuiClientQueryOptions<T extends keyof SuiRpcMethods> = Omit<
|
|
33
|
+
UseQueryOptions<SuiRpcMethods[T]['result'], Error, SuiRpcMethods[T]['result'], unknown[]>,
|
|
34
|
+
'queryFn'
|
|
35
|
+
>;
|
|
36
|
+
|
|
37
|
+
export function useSuiClientQuery<T extends keyof SuiRpcMethods>(
|
|
38
|
+
...args: undefined extends SuiRpcMethods[T]['params']
|
|
39
|
+
? [method: T, params?: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T>]
|
|
40
|
+
: [method: T, params: SuiRpcMethods[T]['params'], options?: UseSuiClientQueryOptions<T>]
|
|
41
|
+
) {
|
|
42
|
+
const [method, params, { queryKey = [], enabled = !!params, ...options } = {}] = args as [
|
|
43
|
+
method: T,
|
|
44
|
+
params?: SuiRpcMethods[T]['params'],
|
|
45
|
+
options?: UseSuiClientQueryOptions<T>,
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const suiContext = useSuiClientContext();
|
|
49
|
+
|
|
50
|
+
return useQuery({
|
|
51
|
+
...options,
|
|
52
|
+
queryKey: [suiContext.network, method, params, ...queryKey],
|
|
53
|
+
enabled,
|
|
54
|
+
queryFn: async () => {
|
|
55
|
+
return await suiContext.client[method](params as never);
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { useWalletStore } from './useWalletStore.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Retrieves a list of connected accounts authorized by the dApp.
|
|
8
|
+
*/
|
|
9
|
+
export function useAccounts() {
|
|
10
|
+
return useWalletStore((state) => state.accounts);
|
|
11
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { useEffect } from 'react';
|
|
5
|
+
|
|
6
|
+
import { useConnectWallet } from './useConnectWallet.js';
|
|
7
|
+
import { useWallets } from './useWallets.js';
|
|
8
|
+
import { useWalletStore } from './useWalletStore.js';
|
|
9
|
+
|
|
10
|
+
export function useAutoConnectWallet(autoConnectEnabled: boolean) {
|
|
11
|
+
const { mutate: connectWallet } = useConnectWallet();
|
|
12
|
+
const wallets = useWallets();
|
|
13
|
+
const lastConnectedWalletName = useWalletStore((state) => state.lastConnectedWalletName);
|
|
14
|
+
const lastConnectedAccountAddress = useWalletStore((state) => state.lastConnectedAccountAddress);
|
|
15
|
+
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (!autoConnectEnabled || !lastConnectedWalletName) return;
|
|
18
|
+
|
|
19
|
+
const wallet = wallets.find((wallet) => wallet.name === lastConnectedWalletName);
|
|
20
|
+
if (wallet) {
|
|
21
|
+
connectWallet({
|
|
22
|
+
wallet,
|
|
23
|
+
accountAddress: lastConnectedAccountAddress || undefined,
|
|
24
|
+
silent: true,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}, [
|
|
28
|
+
autoConnectEnabled,
|
|
29
|
+
connectWallet,
|
|
30
|
+
lastConnectedAccountAddress,
|
|
31
|
+
lastConnectedWalletName,
|
|
32
|
+
wallets,
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type {
|
|
5
|
+
StandardConnectInput,
|
|
6
|
+
StandardConnectOutput,
|
|
7
|
+
WalletAccount,
|
|
8
|
+
WalletWithRequiredFeatures,
|
|
9
|
+
} from '@mysten/wallet-standard';
|
|
10
|
+
import type { UseMutationOptions } from '@tanstack/react-query';
|
|
11
|
+
import { useMutation } from '@tanstack/react-query';
|
|
12
|
+
|
|
13
|
+
import { walletMutationKeys } from '../../constants/walletMutationKeys.js';
|
|
14
|
+
import { useWalletStore } from './useWalletStore.js';
|
|
15
|
+
|
|
16
|
+
type ConnectWalletArgs = {
|
|
17
|
+
/** The wallet to connect to. */
|
|
18
|
+
wallet: WalletWithRequiredFeatures;
|
|
19
|
+
|
|
20
|
+
/** An optional account address to connect to. Defaults to the first authorized account. */
|
|
21
|
+
accountAddress?: string;
|
|
22
|
+
} & StandardConnectInput;
|
|
23
|
+
|
|
24
|
+
type ConnectWalletResult = StandardConnectOutput;
|
|
25
|
+
|
|
26
|
+
type UseConnectWalletMutationOptions = Omit<
|
|
27
|
+
UseMutationOptions<ConnectWalletResult, Error, ConnectWalletArgs, unknown>,
|
|
28
|
+
'mutationFn'
|
|
29
|
+
>;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Mutation hook for establishing a connection to a specific wallet.
|
|
33
|
+
*/
|
|
34
|
+
export function useConnectWallet({
|
|
35
|
+
mutationKey,
|
|
36
|
+
...mutationOptions
|
|
37
|
+
}: UseConnectWalletMutationOptions = {}) {
|
|
38
|
+
const setWalletConnected = useWalletStore((state) => state.setWalletConnected);
|
|
39
|
+
|
|
40
|
+
return useMutation({
|
|
41
|
+
mutationKey: walletMutationKeys.connectWallet(mutationKey),
|
|
42
|
+
mutationFn: async ({ wallet, accountAddress, ...standardConnectInput }) => {
|
|
43
|
+
const connectResult = await wallet.features['standard:connect'].connect(standardConnectInput);
|
|
44
|
+
const selectedAccount = getSelectedAccount(connectResult.accounts, accountAddress);
|
|
45
|
+
|
|
46
|
+
setWalletConnected(wallet, selectedAccount);
|
|
47
|
+
return connectResult;
|
|
48
|
+
},
|
|
49
|
+
...mutationOptions,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function getSelectedAccount(connectedAccounts: readonly WalletAccount[], accountAddress?: string) {
|
|
54
|
+
if (connectedAccounts.length === 0) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (accountAddress) {
|
|
59
|
+
const selectedAccount = connectedAccounts.find((account) => account.address === accountAddress);
|
|
60
|
+
return selectedAccount ?? connectedAccounts[0];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return connectedAccounts[0];
|
|
64
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { useWalletStore } from './useWalletStore.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Retrieves the wallet account that is currently selected, if one exists.
|
|
8
|
+
*/
|
|
9
|
+
export function useCurrentAccount() {
|
|
10
|
+
return useWalletStore((state) => state.currentAccount);
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { useWalletStore } from './useWalletStore.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Retrieves the wallet that is currently connected to the dApp, if one exists.
|
|
8
|
+
*/
|
|
9
|
+
export function useCurrentWallet() {
|
|
10
|
+
return useWalletStore((state) => state.currentWallet);
|
|
11
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { UseMutationOptions } from '@tanstack/react-query';
|
|
5
|
+
import { useMutation } from '@tanstack/react-query';
|
|
6
|
+
|
|
7
|
+
import { walletMutationKeys } from '../../constants/walletMutationKeys.js';
|
|
8
|
+
import { WalletNotConnectedError } from '../../errors/walletErrors.js';
|
|
9
|
+
import { useCurrentWallet } from './useCurrentWallet.js';
|
|
10
|
+
import { useWalletStore } from './useWalletStore.js';
|
|
11
|
+
|
|
12
|
+
type UseDisconnectWalletMutationOptions = Omit<
|
|
13
|
+
UseMutationOptions<void, Error, void, unknown>,
|
|
14
|
+
'mutationFn'
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Mutation hook for disconnecting from an active wallet connection, if currently connected.
|
|
19
|
+
*/
|
|
20
|
+
export function useDisconnectWallet({
|
|
21
|
+
mutationKey,
|
|
22
|
+
...mutationOptions
|
|
23
|
+
}: UseDisconnectWalletMutationOptions = {}) {
|
|
24
|
+
const currentWallet = useCurrentWallet();
|
|
25
|
+
const setWalletDisconnected = useWalletStore((state) => state.setWalletDisconnected);
|
|
26
|
+
|
|
27
|
+
return useMutation({
|
|
28
|
+
mutationKey: walletMutationKeys.disconnectWallet(mutationKey),
|
|
29
|
+
mutationFn: async () => {
|
|
30
|
+
if (!currentWallet) {
|
|
31
|
+
throw new WalletNotConnectedError('No wallet is connected.');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
try {
|
|
35
|
+
// Wallets aren't required to implement the disconnect feature, so we'll
|
|
36
|
+
// optionally call the disconnect feature if it exists and reset the UI
|
|
37
|
+
// state on the frontend at a minimum.
|
|
38
|
+
await currentWallet.features['standard:disconnect']?.disconnect();
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.error('Failed to disconnect the application from the current wallet.', error);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
setWalletDisconnected();
|
|
44
|
+
},
|
|
45
|
+
...mutationOptions,
|
|
46
|
+
});
|
|
47
|
+
}
|