@mysten/dapp-kit 0.14.53 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/components/ConnectButton.d.ts +4 -1
- package/dist/cjs/components/ConnectButton.js +49 -8
- package/dist/cjs/components/ConnectButton.js.map +3 -3
- package/dist/cjs/components/WalletProvider.js +1 -1
- package/dist/cjs/components/WalletProvider.js.map +1 -1
- package/dist/cjs/components/connect-modal/ConnectModal.d.ts +4 -1
- package/dist/cjs/components/connect-modal/ConnectModal.js +47 -8
- package/dist/cjs/components/connect-modal/ConnectModal.js.map +3 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.d.ts +2 -1
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.js +8 -28
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +4 -4
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js +3 -6
- package/dist/cjs/hooks/wallet/useSignAndExecuteTransaction.js.map +2 -2
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.d.ts +1 -1
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js +30 -5
- package/dist/cjs/hooks/wallet/useSignPersonalMessage.js.map +4 -4
- package/dist/cjs/hooks/wallet/useSignTransaction.js +4 -6
- package/dist/cjs/hooks/wallet/useSignTransaction.js.map +2 -2
- package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js +1 -1
- package/dist/cjs/hooks/wallet/useUnsafeBurnerWallet.js.map +1 -1
- package/dist/cjs/index.js +63 -46
- package/dist/cjs/index.js.map +3 -3
- package/dist/esm/components/ConnectButton.d.ts +4 -1
- package/dist/esm/components/ConnectButton.js +49 -8
- package/dist/esm/components/ConnectButton.js.map +3 -3
- package/dist/esm/components/WalletProvider.js +1 -1
- package/dist/esm/components/WalletProvider.js.map +1 -1
- package/dist/esm/components/connect-modal/ConnectModal.d.ts +4 -1
- package/dist/esm/components/connect-modal/ConnectModal.js +47 -8
- package/dist/esm/components/connect-modal/ConnectModal.js.map +3 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletList.d.ts +2 -1
- package/dist/esm/components/connect-modal/wallet-list/WalletList.js +6 -26
- package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +3 -3
- package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js +3 -6
- package/dist/esm/hooks/wallet/useSignAndExecuteTransaction.js.map +2 -2
- package/dist/esm/hooks/wallet/useSignPersonalMessage.d.ts +1 -1
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js +30 -5
- package/dist/esm/hooks/wallet/useSignPersonalMessage.js.map +4 -4
- package/dist/esm/hooks/wallet/useSignTransaction.js +4 -6
- package/dist/esm/hooks/wallet/useSignTransaction.js.map +2 -2
- package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js +1 -1
- package/dist/esm/hooks/wallet/useUnsafeBurnerWallet.js.map +1 -1
- package/dist/esm/index.js +63 -46
- package/dist/esm/index.js.map +3 -3
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/components/ConnectButton.tsx +5 -0
- package/src/components/connect-modal/ConnectModal.tsx +15 -1
- package/src/components/connect-modal/wallet-list/WalletList.tsx +7 -3
- package/src/hooks/wallet/useSignAndExecuteTransaction.ts +4 -4
- package/src/hooks/wallet/useSignPersonalMessage.ts +4 -1
- package/src/hooks/wallet/useSignTransaction.ts +5 -4
- package/src/hooks/wallet/useUnsafeBurnerWallet.ts +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
+
import type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';
|
|
4
5
|
import type { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
5
6
|
|
|
6
7
|
import { useCurrentAccount } from '../hooks/wallet/useCurrentAccount.js';
|
|
@@ -11,10 +12,13 @@ import { Button } from './ui/Button.js';
|
|
|
11
12
|
|
|
12
13
|
type ConnectButtonProps = {
|
|
13
14
|
connectText?: ReactNode;
|
|
15
|
+
/** Filter the wallets shown in the connect modal */
|
|
16
|
+
walletFilter?: (wallet: WalletWithRequiredFeatures) => boolean;
|
|
14
17
|
} & ButtonHTMLAttributes<HTMLButtonElement>;
|
|
15
18
|
|
|
16
19
|
export function ConnectButton({
|
|
17
20
|
connectText = 'Connect Wallet',
|
|
21
|
+
walletFilter,
|
|
18
22
|
...buttonProps
|
|
19
23
|
}: ConnectButtonProps) {
|
|
20
24
|
const currentAccount = useCurrentAccount();
|
|
@@ -22,6 +26,7 @@ export function ConnectButton({
|
|
|
22
26
|
<AccountDropdownMenu currentAccount={currentAccount} />
|
|
23
27
|
) : (
|
|
24
28
|
<ConnectModal
|
|
29
|
+
walletFilter={walletFilter}
|
|
25
30
|
trigger={
|
|
26
31
|
<StyleMarker>
|
|
27
32
|
<Button {...buttonProps}>{connectText}</Button>
|
|
@@ -7,7 +7,9 @@ import clsx from 'clsx';
|
|
|
7
7
|
import { useState } from 'react';
|
|
8
8
|
import type { ReactNode } from 'react';
|
|
9
9
|
|
|
10
|
+
import { DEFAULT_WALLET_FILTER } from '../../constants/walletDefaults.js';
|
|
10
11
|
import { useConnectWallet } from '../../hooks/wallet/useConnectWallet.js';
|
|
12
|
+
import { useWallets } from '../../hooks/wallet/useWallets.js';
|
|
11
13
|
import { getWalletUniqueIdentifier } from '../../utils/walletUtils.js';
|
|
12
14
|
import { BackIcon } from '../icons/BackIcon.js';
|
|
13
15
|
import { CloseIcon } from '../icons/CloseIcon.js';
|
|
@@ -44,12 +46,23 @@ type UncontrolledModalProps = {
|
|
|
44
46
|
type ConnectModalProps = {
|
|
45
47
|
/** The trigger button that opens the dialog. */
|
|
46
48
|
trigger: NonNullable<ReactNode>;
|
|
49
|
+
|
|
50
|
+
/** Filter the wallets shown in the modal. */
|
|
51
|
+
walletFilter?: (wallet: WalletWithRequiredFeatures) => boolean;
|
|
47
52
|
} & (ControlledModalProps | UncontrolledModalProps);
|
|
48
53
|
|
|
49
|
-
export function ConnectModal({
|
|
54
|
+
export function ConnectModal({
|
|
55
|
+
trigger,
|
|
56
|
+
open,
|
|
57
|
+
defaultOpen,
|
|
58
|
+
onOpenChange,
|
|
59
|
+
walletFilter = DEFAULT_WALLET_FILTER,
|
|
60
|
+
}: ConnectModalProps) {
|
|
50
61
|
const [isModalOpen, setModalOpen] = useState(open ?? defaultOpen);
|
|
51
62
|
const [currentView, setCurrentView] = useState<ConnectModalView>();
|
|
52
63
|
const [selectedWallet, setSelectedWallet] = useState<WalletWithRequiredFeatures>();
|
|
64
|
+
|
|
65
|
+
const wallets = useWallets().filter(walletFilter);
|
|
53
66
|
const { mutate, isError } = useConnectWallet();
|
|
54
67
|
|
|
55
68
|
const resetSelection = () => {
|
|
@@ -113,6 +126,7 @@ export function ConnectModal({ trigger, open, defaultOpen, onOpenChange }: Conne
|
|
|
113
126
|
<Heading as="h2">Connect a Wallet</Heading>
|
|
114
127
|
</Dialog.Title>
|
|
115
128
|
<WalletList
|
|
129
|
+
wallets={wallets}
|
|
116
130
|
selectedWalletName={getWalletUniqueIdentifier(selectedWallet)}
|
|
117
131
|
onPlaceholderClick={() => setCurrentView('getting-started')}
|
|
118
132
|
onSelect={(wallet) => {
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
import type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';
|
|
5
5
|
|
|
6
|
-
import { useWallets } from '../../../hooks/wallet/useWallets.js';
|
|
7
6
|
import { getWalletUniqueIdentifier } from '../../../utils/walletUtils.js';
|
|
8
7
|
import { SuiIcon } from '../../icons/SuiIcon.js';
|
|
9
8
|
import * as styles from './WalletList.css.js';
|
|
@@ -13,10 +12,15 @@ type WalletListProps = {
|
|
|
13
12
|
selectedWalletName?: string;
|
|
14
13
|
onPlaceholderClick: () => void;
|
|
15
14
|
onSelect: (wallet: WalletWithRequiredFeatures) => void;
|
|
15
|
+
wallets: WalletWithRequiredFeatures[];
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
export function WalletList({
|
|
19
|
-
|
|
18
|
+
export function WalletList({
|
|
19
|
+
selectedWalletName,
|
|
20
|
+
onPlaceholderClick,
|
|
21
|
+
onSelect,
|
|
22
|
+
wallets,
|
|
23
|
+
}: WalletListProps) {
|
|
20
24
|
return (
|
|
21
25
|
<ul className={styles.container}>
|
|
22
26
|
{wallets.length > 0 ? (
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
WalletNotConnectedError,
|
|
19
19
|
} from '../../errors/walletErrors.js';
|
|
20
20
|
import type { PartialBy } from '../../types/utilityTypes.js';
|
|
21
|
-
import {
|
|
21
|
+
import { useSuiClientContext } from '../useSuiClient.js';
|
|
22
22
|
import { useCurrentAccount } from './useCurrentAccount.js';
|
|
23
23
|
import { useCurrentWallet } from './useCurrentWallet.js';
|
|
24
24
|
import { useReportTransactionEffects } from './useReportTransactionEffects.js';
|
|
@@ -77,7 +77,7 @@ export function useSignAndExecuteTransaction<
|
|
|
77
77
|
> {
|
|
78
78
|
const { currentWallet, supportedIntents } = useCurrentWallet();
|
|
79
79
|
const currentAccount = useCurrentAccount();
|
|
80
|
-
const client =
|
|
80
|
+
const { client, network } = useSuiClientContext();
|
|
81
81
|
const { mutate: reportTransactionEffects } = useReportTransactionEffects();
|
|
82
82
|
|
|
83
83
|
const executeTransaction: ({
|
|
@@ -119,7 +119,6 @@ export function useSignAndExecuteTransaction<
|
|
|
119
119
|
'No wallet account is selected to sign the transaction with.',
|
|
120
120
|
);
|
|
121
121
|
}
|
|
122
|
-
const chain = signTransactionArgs.chain ?? signerAccount?.chains[0];
|
|
123
122
|
|
|
124
123
|
if (
|
|
125
124
|
!currentWallet.features['sui:signTransaction'] &&
|
|
@@ -130,6 +129,7 @@ export function useSignAndExecuteTransaction<
|
|
|
130
129
|
);
|
|
131
130
|
}
|
|
132
131
|
|
|
132
|
+
const chain = signTransactionArgs.chain ?? `sui:${network}`;
|
|
133
133
|
const { signature, bytes } = await signTransaction(currentWallet, {
|
|
134
134
|
...signTransactionArgs,
|
|
135
135
|
transaction: {
|
|
@@ -143,7 +143,7 @@ export function useSignAndExecuteTransaction<
|
|
|
143
143
|
},
|
|
144
144
|
},
|
|
145
145
|
account: signerAccount,
|
|
146
|
-
chain
|
|
146
|
+
chain,
|
|
147
147
|
});
|
|
148
148
|
|
|
149
149
|
const result = await executeTransaction({ bytes, signature });
|
|
@@ -15,10 +15,11 @@ import {
|
|
|
15
15
|
} from '../..//errors/walletErrors.js';
|
|
16
16
|
import { walletMutationKeys } from '../../constants/walletMutationKeys.js';
|
|
17
17
|
import type { PartialBy } from '../../types/utilityTypes.js';
|
|
18
|
+
import { useSuiClientContext } from '../useSuiClient.js';
|
|
18
19
|
import { useCurrentAccount } from './useCurrentAccount.js';
|
|
19
20
|
import { useCurrentWallet } from './useCurrentWallet.js';
|
|
20
21
|
|
|
21
|
-
type UseSignPersonalMessageArgs = PartialBy<SuiSignPersonalMessageInput, 'account'>;
|
|
22
|
+
type UseSignPersonalMessageArgs = PartialBy<SuiSignPersonalMessageInput, 'account' | 'chain'>;
|
|
22
23
|
|
|
23
24
|
type UseSignPersonalMessageResult = SuiSignPersonalMessageOutput;
|
|
24
25
|
|
|
@@ -51,6 +52,7 @@ export function useSignPersonalMessage({
|
|
|
51
52
|
> {
|
|
52
53
|
const { currentWallet } = useCurrentWallet();
|
|
53
54
|
const currentAccount = useCurrentAccount();
|
|
55
|
+
const { network } = useSuiClientContext();
|
|
54
56
|
|
|
55
57
|
return useMutation({
|
|
56
58
|
mutationKey: walletMutationKeys.signPersonalMessage(mutationKey),
|
|
@@ -71,6 +73,7 @@ export function useSignPersonalMessage({
|
|
|
71
73
|
return await signPersonalMessageFeature.signPersonalMessage({
|
|
72
74
|
...signPersonalMessageArgs,
|
|
73
75
|
account: signerAccount,
|
|
76
|
+
chain: signPersonalMessageArgs.chain ?? `sui:${network}`,
|
|
74
77
|
});
|
|
75
78
|
}
|
|
76
79
|
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
WalletNotConnectedError,
|
|
15
15
|
} from '../../errors/walletErrors.js';
|
|
16
16
|
import type { PartialBy } from '../../types/utilityTypes.js';
|
|
17
|
-
import {
|
|
17
|
+
import { useSuiClientContext } from '../useSuiClient.js';
|
|
18
18
|
import { useCurrentAccount } from './useCurrentAccount.js';
|
|
19
19
|
import { useCurrentWallet } from './useCurrentWallet.js';
|
|
20
20
|
import { useReportTransactionEffects } from './useReportTransactionEffects.js';
|
|
@@ -59,7 +59,7 @@ export function useSignTransaction({
|
|
|
59
59
|
> {
|
|
60
60
|
const { currentWallet } = useCurrentWallet();
|
|
61
61
|
const currentAccount = useCurrentAccount();
|
|
62
|
-
const client =
|
|
62
|
+
const { client, network } = useSuiClientContext();
|
|
63
63
|
|
|
64
64
|
const { mutate: reportTransactionEffects } = useReportTransactionEffects();
|
|
65
65
|
|
|
@@ -86,6 +86,7 @@ export function useSignTransaction({
|
|
|
86
86
|
);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
const chain = signTransactionArgs.chain ?? `sui:${network}`;
|
|
89
90
|
const { bytes, signature } = await signTransaction(currentWallet, {
|
|
90
91
|
...signTransactionArgs,
|
|
91
92
|
transaction: {
|
|
@@ -99,7 +100,7 @@ export function useSignTransaction({
|
|
|
99
100
|
},
|
|
100
101
|
},
|
|
101
102
|
account: signerAccount,
|
|
102
|
-
chain
|
|
103
|
+
chain,
|
|
103
104
|
});
|
|
104
105
|
|
|
105
106
|
return {
|
|
@@ -109,7 +110,7 @@ export function useSignTransaction({
|
|
|
109
110
|
reportTransactionEffects({
|
|
110
111
|
effects,
|
|
111
112
|
account: signerAccount,
|
|
112
|
-
chain
|
|
113
|
+
chain,
|
|
113
114
|
});
|
|
114
115
|
},
|
|
115
116
|
};
|