@naculus/connect-appkit-react 0.1.9 → 0.2.1
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/README.md +4 -4
- package/dist/client.cjs +1 -1
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +144 -0
- package/dist/client.d.ts +144 -0
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2270 -0
- package/dist/index.d.ts +2270 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +30 -12
- package/api-extractor.json +0 -21
- package/src/chain-abstraction/index.ts +0 -8
- package/src/chain-abstraction/useCompareCosts.ts +0 -137
- package/src/chain-abstraction/useExecuteRoute.ts +0 -129
- package/src/chain-abstraction/useRouteQuote.ts +0 -168
- package/src/client.test.ts +0 -242
- package/src/client.ts +0 -265
- package/src/hooks/useAccount.test.ts +0 -67
- package/src/hooks/useAccount.ts +0 -37
- package/src/hooks/useBalance.test.ts +0 -459
- package/src/hooks/useBalance.ts +0 -170
- package/src/hooks/useChain.test.ts +0 -160
- package/src/hooks/useChain.ts +0 -53
- package/src/hooks/useConnect.test.ts +0 -112
- package/src/hooks/useConnect.ts +0 -29
- package/src/hooks/useDisconnect.test.ts +0 -75
- package/src/hooks/useDisconnect.ts +0 -32
- package/src/hooks/useERC20Allowance.ts +0 -93
- package/src/hooks/useERC20Approve.ts +0 -220
- package/src/hooks/useERC20Transfer.ts +0 -134
- package/src/hooks/useERC20TransferSimulation.ts +0 -147
- package/src/hooks/useEmbeddedWallet.test.ts +0 -266
- package/src/hooks/useEmbeddedWallet.ts +0 -181
- package/src/hooks/useLastTx.test.ts +0 -117
- package/src/hooks/useLastTx.ts +0 -73
- package/src/hooks/useLookupAddress.ts +0 -131
- package/src/hooks/useNotification.ts +0 -308
- package/src/hooks/useResolveName.ts +0 -128
- package/src/hooks/useSIWxLogin.test.ts +0 -307
- package/src/hooks/useSIWxLogin.ts +0 -163
- package/src/hooks/useSIWxSession.test.ts +0 -481
- package/src/hooks/useSIWxSession.ts +0 -290
- package/src/hooks/useSendCalls.ts +0 -103
- package/src/hooks/useSendTransaction.test.ts +0 -175
- package/src/hooks/useSendTransaction.ts +0 -80
- package/src/hooks/useSendUserOperation.ts +0 -313
- package/src/hooks/useSession.ts +0 -96
- package/src/hooks/useSessionKeys.ts +0 -356
- package/src/hooks/useSignInWithEthereum.test.ts +0 -224
- package/src/hooks/useSignInWithEthereum.ts +0 -46
- package/src/hooks/useSignInWithX.test.ts +0 -210
- package/src/hooks/useSignInWithX.ts +0 -141
- package/src/hooks/useSignMessage.test.ts +0 -151
- package/src/hooks/useSignMessage.ts +0 -65
- package/src/hooks/useSimulateTransfer.ts +0 -165
- package/src/hooks/useSiwxAuthSession.test.ts +0 -456
- package/src/hooks/useSiwxAuthSession.ts +0 -163
- package/src/hooks/useSmartAccount.ts +0 -194
- package/src/hooks/useSwitchChain.ts +0 -68
- package/src/hooks/useTokenBalance.test.ts +0 -337
- package/src/hooks/useTokenBalance.ts +0 -210
- package/src/hooks/useTransactionSimulation.ts +0 -401
- package/src/hooks/useTxHistory.test.ts +0 -108
- package/src/hooks/useTxHistory.ts +0 -83
- package/src/hooks/useTxMonitor.test.ts +0 -127
- package/src/hooks/useTxMonitor.ts +0 -178
- package/src/hooks/useUserOpStatus.ts +0 -245
- package/src/hooks/useValidateDestination.test.ts +0 -96
- package/src/hooks/useValidateDestination.ts +0 -72
- package/src/hooks/useViemClient.test.ts +0 -155
- package/src/hooks/useViemClient.ts +0 -65
- package/src/hooks/useWallet.test.ts +0 -133
- package/src/hooks/useWallet.ts +0 -39
- package/src/hooks/useWeb3ErrorHandler.ts +0 -102
- package/src/index.ts +0 -186
- package/src/provider/Web3ConnectProvider.test.tsx +0 -178
- package/src/provider/Web3ConnectProvider.tsx +0 -530
- package/src/token-list/TokenSelector.tsx +0 -351
- package/src/token-list/defaults.ts +0 -39
- package/src/token-list/index.ts +0 -14
- package/src/token-list/useTokenList.ts +0 -119
- package/src/token-list/useTokenSearch.ts +0 -99
- package/src/types/index.ts +0 -99
- package/src/utils/chains.ts +0 -115
- package/src/utils/errorMessages.ts +0 -142
- package/src/utils/i18n.ts +0 -90
- package/src/wc-generated/components.ts +0 -377
- package/test/setup.ts +0 -17
- package/test/test-utils.tsx +0 -78
- package/tsup.config.ts +0 -18
package/src/index.ts
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
export { Web3ConnectProvider, useWeb3 } from "./provider/Web3ConnectProvider";
|
|
2
|
-
export type { Web3ConnectProviderProps } from "./provider/Web3ConnectProvider";
|
|
3
|
-
|
|
4
|
-
export { useWallet } from "./hooks/useWallet";
|
|
5
|
-
export { useConnect } from "./hooks/useConnect";
|
|
6
|
-
export { useDisconnect } from "./hooks/useDisconnect";
|
|
7
|
-
export { useAccount } from "./hooks/useAccount";
|
|
8
|
-
export { useChain } from "./hooks/useChain";
|
|
9
|
-
export { useSignMessage } from "./hooks/useSignMessage";
|
|
10
|
-
export { useSendTransaction } from "./hooks/useSendTransaction";
|
|
11
|
-
export { useSendCalls } from "./hooks/useSendCalls";
|
|
12
|
-
export type { SendCallsStatus } from "./hooks/useSendCalls";
|
|
13
|
-
export { useBalance } from "./hooks/useBalance";
|
|
14
|
-
export { useTokenBalance } from "./hooks/useTokenBalance";
|
|
15
|
-
export type { TokenInfo, UseTokenBalanceOptions, TokenBalanceResult } from "./hooks/useTokenBalance";
|
|
16
|
-
export { useERC20Transfer } from "./hooks/useERC20Transfer";
|
|
17
|
-
export type { UseERC20TransferOptions, UseERC20TransferReturn } from "./hooks/useERC20Transfer";
|
|
18
|
-
export { useERC20Approve } from "./hooks/useERC20Approve";
|
|
19
|
-
export type { UseERC20ApproveOptions, UseERC20ApproveReturn } from "./hooks/useERC20Approve";
|
|
20
|
-
export { useERC20Allowance } from "./hooks/useERC20Allowance";
|
|
21
|
-
export type { UseERC20AllowanceOptions, UseERC20AllowanceReturn } from "./hooks/useERC20Allowance";
|
|
22
|
-
export { useViemClient } from "./hooks/useViemClient";
|
|
23
|
-
export { useEmbeddedWallet } from "./hooks/useEmbeddedWallet";
|
|
24
|
-
export type { UseEmbeddedWalletReturn } from "./hooks/useEmbeddedWallet";
|
|
25
|
-
export { useValidateDestination, validateDestination } from "./hooks/useValidateDestination";
|
|
26
|
-
export type { UseValidateDestinationOptions, UseValidateDestinationReturn, AddressValidationLevel, AddressValidationResult } from "./hooks/useValidateDestination";
|
|
27
|
-
export { t, setLocale, getLocale } from "./utils/i18n";
|
|
28
|
-
export type { Locale } from "./utils/i18n";
|
|
29
|
-
export { useSignInWithX } from "./hooks/useSignInWithX";
|
|
30
|
-
export type { UseSignInWithXOptions, UseSignInWithXReturn } from "./hooks/useSignInWithX";
|
|
31
|
-
export { useSignInWithEthereum } from "./hooks/useSignInWithEthereum";
|
|
32
|
-
export type { UseSignInWithEthereumOptions, UseSignInWithEthereumReturn } from "./hooks/useSignInWithEthereum";
|
|
33
|
-
export { useSiwxAuthSession } from "./hooks/useSiwxAuthSession";
|
|
34
|
-
export type { UseSiwxAuthSessionOptions, UseSiwxAuthSessionReturn } from "./hooks/useSiwxAuthSession";
|
|
35
|
-
export { useSIWxLogin } from "./hooks/useSIWxLogin";
|
|
36
|
-
export type { UseSIWxLoginOptions, UseSIWxLoginReturn } from "./hooks/useSIWxLogin";
|
|
37
|
-
export { useSIWxSession } from "./hooks/useSIWxSession";
|
|
38
|
-
export type { UseSIWxSessionOptions, UseSIWxSessionReturn } from "./hooks/useSIWxSession";
|
|
39
|
-
export { useSessionKeys, useCreateSessionKey, useRevokeSession, useSendWithSession, resetSessionKeyManager } from "./hooks/useSessionKeys";
|
|
40
|
-
export type { UseSessionKeysReturn, UseCreateSessionKeyReturn, UseRevokeSessionReturn, UseSendWithSessionReturn } from "./hooks/useSessionKeys";
|
|
41
|
-
export { useResolveName } from "./hooks/useResolveName";
|
|
42
|
-
export type { UseResolveNameOptions, UseResolveNameResult } from "./hooks/useResolveName";
|
|
43
|
-
export { useLookupAddress } from "./hooks/useLookupAddress";
|
|
44
|
-
export type { UseLookupAddressOptions, UseLookupAddressResult } from "./hooks/useLookupAddress";
|
|
45
|
-
export { useSession } from "./hooks/useSession";
|
|
46
|
-
export type { UseSessionReturn } from "./hooks/useSession";
|
|
47
|
-
export { useSwitchChain } from "./hooks/useSwitchChain";
|
|
48
|
-
export type { UseSwitchChainReturn } from "./hooks/useSwitchChain";
|
|
49
|
-
export { createClient, getClient, clearClient } from "./client";
|
|
50
|
-
export type { ClientConfig, Web3Client } from "./client";
|
|
51
|
-
export { DEFAULT_EVM_CHAINS, getDefaultChains, getChainById } from "./utils/chains";
|
|
52
|
-
export type {
|
|
53
|
-
WalletChain,
|
|
54
|
-
ConnectionStatus,
|
|
55
|
-
Web3ConnectConfig,
|
|
56
|
-
Web3State,
|
|
57
|
-
Web3Actions,
|
|
58
|
-
UseWalletReturn,
|
|
59
|
-
EvmTransaction,
|
|
60
|
-
ChainInfo,
|
|
61
|
-
SIWxConfig,
|
|
62
|
-
} from "./types";
|
|
63
|
-
export { Web3Context } from "./provider/Web3ConnectProvider";
|
|
64
|
-
export { useWeb3ErrorHandler } from "./hooks/useWeb3ErrorHandler";
|
|
65
|
-
export { useTxMonitor, TxMonitorContext } from "./hooks/useTxMonitor";
|
|
66
|
-
export type { UseTxMonitorResult, TxMonitorLike, TxStatus, TxStatusEntry } from "./hooks/useTxMonitor";
|
|
67
|
-
export { useTxHistory } from "./hooks/useTxHistory";
|
|
68
|
-
export type { UseTxHistoryResult } from "./hooks/useTxHistory";
|
|
69
|
-
export { useTransactionSimulation } from "./hooks/useTransactionSimulation";
|
|
70
|
-
export type {
|
|
71
|
-
UseTransactionSimulationReturn,
|
|
72
|
-
SimulationResult,
|
|
73
|
-
SimulationStatus,
|
|
74
|
-
RiskLevel,
|
|
75
|
-
BalanceChange,
|
|
76
|
-
ApprovalChange,
|
|
77
|
-
RiskAssessment,
|
|
78
|
-
RiskWarning,
|
|
79
|
-
GasInfo,
|
|
80
|
-
} from "./hooks/useTransactionSimulation";
|
|
81
|
-
export { useERC20TransferSimulation } from "./hooks/useERC20TransferSimulation";
|
|
82
|
-
export type { UseERC20TransferSimulationOptions, UseERC20TransferSimulationReturn } from "./hooks/useERC20TransferSimulation";
|
|
83
|
-
export { useLastTx } from "./hooks/useLastTx";
|
|
84
|
-
export type { UseLastTxResult } from "./hooks/useLastTx";
|
|
85
|
-
export type { UseWeb3ErrorHandlerReturn, UserFriendlyError } from "./hooks/useWeb3ErrorHandler";
|
|
86
|
-
export {
|
|
87
|
-
getUserFriendlyError,
|
|
88
|
-
isRetryableError,
|
|
89
|
-
WALLET_ERROR_TITLES,
|
|
90
|
-
WALLET_ERROR_DESCRIPTIONS,
|
|
91
|
-
} from "./utils/errorMessages";
|
|
92
|
-
export { useSmartAccount } from "./hooks/useSmartAccount";
|
|
93
|
-
export type { UseSmartAccountOptions, UseSmartAccountReturn } from "./hooks/useSmartAccount";
|
|
94
|
-
export { useSendUserOperation } from "./hooks/useSendUserOperation";
|
|
95
|
-
export type { UseSendUserOperationOptions, UseSendUserOperationReturn } from "./hooks/useSendUserOperation";
|
|
96
|
-
export { useUserOpStatus } from "./hooks/useUserOpStatus";
|
|
97
|
-
export type { UseUserOpStatusOptions, UseUserOpStatusReturn, UserOpStatus } from "./hooks/useUserOpStatus";
|
|
98
|
-
export { useTokenList, useTokenSearch, TokenSelector } from "./token-list";
|
|
99
|
-
export type { UseTokenListOptions, UseTokenListReturn } from "./token-list";
|
|
100
|
-
export type { UseTokenSearchReturn } from "./token-list";
|
|
101
|
-
export type { TokenSelectorProps } from "./token-list";
|
|
102
|
-
export { useNotification } from "./hooks/useNotification";
|
|
103
|
-
export { useSimulateTransfer } from "./hooks/useSimulateTransfer";
|
|
104
|
-
export type {
|
|
105
|
-
UseSimulateTransferOptions,
|
|
106
|
-
UseSimulateTransferReturn,
|
|
107
|
-
} from "./hooks/useSimulateTransfer";
|
|
108
|
-
export { useRouteQuote, useExecuteRoute, useCompareCosts } from "./chain-abstraction";
|
|
109
|
-
export type {
|
|
110
|
-
UseRouteQuoteInput,
|
|
111
|
-
UseRouteQuoteReturn,
|
|
112
|
-
Quote,
|
|
113
|
-
QuoteOptions,
|
|
114
|
-
UseExecuteRouteReturn,
|
|
115
|
-
ExecuteError,
|
|
116
|
-
ExecuteRouteResult,
|
|
117
|
-
ExecuteOptions,
|
|
118
|
-
UseCompareCostsInput,
|
|
119
|
-
UseCompareCostsReturn,
|
|
120
|
-
CostComparison,
|
|
121
|
-
CostComparisonOperation,
|
|
122
|
-
CostComparisonOptions,
|
|
123
|
-
} from "./chain-abstraction";
|
|
124
|
-
|
|
125
|
-
// ── Stencil WC React wrappers ───────────────────────────────────
|
|
126
|
-
|
|
127
|
-
export {
|
|
128
|
-
AppkitAccordion,
|
|
129
|
-
AppkitAccountButton,
|
|
130
|
-
AppkitAlertDialog,
|
|
131
|
-
AppkitAvatar,
|
|
132
|
-
AppkitBadge,
|
|
133
|
-
AppkitButton,
|
|
134
|
-
AppkitCard,
|
|
135
|
-
AppkitCardContent,
|
|
136
|
-
AppkitCardDescription,
|
|
137
|
-
AppkitCardFooter,
|
|
138
|
-
AppkitCardHeader,
|
|
139
|
-
AppkitCardTitle,
|
|
140
|
-
AppkitCheckbox,
|
|
141
|
-
AppkitCollapsible,
|
|
142
|
-
AppkitConnectButton,
|
|
143
|
-
AppkitDialog,
|
|
144
|
-
AppkitDropdownMenu,
|
|
145
|
-
AppkitInput,
|
|
146
|
-
AppkitPopover,
|
|
147
|
-
AppkitProgress,
|
|
148
|
-
AppkitScrollArea,
|
|
149
|
-
AppkitSelect,
|
|
150
|
-
AppkitSeparator,
|
|
151
|
-
AppkitSkeleton,
|
|
152
|
-
AppkitSwitch,
|
|
153
|
-
AppkitTabs,
|
|
154
|
-
AppkitToggleGroup,
|
|
155
|
-
AppkitTooltip,
|
|
156
|
-
} from "./wc-generated/components"
|
|
157
|
-
export type {
|
|
158
|
-
AppkitAccordionEvents,
|
|
159
|
-
AppkitAccountButtonEvents,
|
|
160
|
-
AppkitAlertDialogEvents,
|
|
161
|
-
AppkitAvatarEvents,
|
|
162
|
-
AppkitBadgeEvents,
|
|
163
|
-
AppkitButtonEvents,
|
|
164
|
-
AppkitCardEvents,
|
|
165
|
-
AppkitCardContentEvents,
|
|
166
|
-
AppkitCardDescriptionEvents,
|
|
167
|
-
AppkitCardFooterEvents,
|
|
168
|
-
AppkitCardHeaderEvents,
|
|
169
|
-
AppkitCardTitleEvents,
|
|
170
|
-
AppkitCheckboxEvents,
|
|
171
|
-
AppkitCollapsibleEvents,
|
|
172
|
-
AppkitConnectButtonEvents,
|
|
173
|
-
AppkitDialogEvents,
|
|
174
|
-
AppkitDropdownMenuEvents,
|
|
175
|
-
AppkitInputEvents,
|
|
176
|
-
AppkitPopoverEvents,
|
|
177
|
-
AppkitProgressEvents,
|
|
178
|
-
AppkitScrollAreaEvents,
|
|
179
|
-
AppkitSelectEvents,
|
|
180
|
-
AppkitSeparatorEvents,
|
|
181
|
-
AppkitSkeletonEvents,
|
|
182
|
-
AppkitSwitchEvents,
|
|
183
|
-
AppkitTabsEvents,
|
|
184
|
-
AppkitToggleGroupEvents,
|
|
185
|
-
AppkitTooltipEvents,
|
|
186
|
-
} from "./wc-generated/components"
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/// @vitest-environment jsdom
|
|
2
|
-
|
|
3
|
-
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
4
|
-
import { renderHook, act } from "@testing-library/react";
|
|
5
|
-
import React from "react";
|
|
6
|
-
|
|
7
|
-
// ── Hoisted mocks ──────────────────────────────────────────────────
|
|
8
|
-
|
|
9
|
-
const { mockClient } = vi.hoisted(() => ({
|
|
10
|
-
mockClient: {
|
|
11
|
-
connect: vi.fn(),
|
|
12
|
-
connectEmbedded: vi.fn(),
|
|
13
|
-
connectPasskeys: vi.fn(),
|
|
14
|
-
completePairing: vi.fn(),
|
|
15
|
-
signMessage: vi.fn(),
|
|
16
|
-
startPairing: vi.fn(),
|
|
17
|
-
connector: { onSessionExpiry: vi.fn() },
|
|
18
|
-
solanaConnector: null,
|
|
19
|
-
disconnect: vi.fn(),
|
|
20
|
-
reconnect: vi.fn(),
|
|
21
|
-
connectInjected: vi.fn(),
|
|
22
|
-
},
|
|
23
|
-
}));
|
|
24
|
-
|
|
25
|
-
vi.mock("../client", () => ({
|
|
26
|
-
createClient: vi.fn(() => mockClient),
|
|
27
|
-
}));
|
|
28
|
-
|
|
29
|
-
vi.mock("@naculus/connector-evm-injected", () => ({
|
|
30
|
-
eip6963Connector: { startDiscovery: vi.fn(), switchChain: vi.fn() },
|
|
31
|
-
}));
|
|
32
|
-
|
|
33
|
-
const { MockStorage } = vi.hoisted(() => {
|
|
34
|
-
return {
|
|
35
|
-
MockStorage: class {
|
|
36
|
-
save = vi.fn();
|
|
37
|
-
load = vi.fn();
|
|
38
|
-
clear = vi.fn();
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
vi.mock("@naculus/connect-core", () => ({
|
|
44
|
-
LocalStorageSessionStorage: MockStorage,
|
|
45
|
-
createConnectorManager: vi.fn(() => ({ register: vi.fn() })),
|
|
46
|
-
createSessionManager: vi.fn(() => ({
|
|
47
|
-
on: vi.fn(),
|
|
48
|
-
off: vi.fn(),
|
|
49
|
-
connect: vi.fn(),
|
|
50
|
-
disconnect: vi.fn(),
|
|
51
|
-
restoreFromPersistence: vi.fn(),
|
|
52
|
-
switchChain: vi.fn(),
|
|
53
|
-
})),
|
|
54
|
-
SessionManager: class {},
|
|
55
|
-
ConnectorManager: class {},
|
|
56
|
-
WalletError: class WalletError extends Error {
|
|
57
|
-
code: string;
|
|
58
|
-
constructor(code: string, message?: string) {
|
|
59
|
-
super(message ?? code);
|
|
60
|
-
this.name = "WalletError";
|
|
61
|
-
this.code = code;
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
logger: { warn: vi.fn(), error: vi.fn(), info: vi.fn() },
|
|
65
|
-
}));
|
|
66
|
-
|
|
67
|
-
vi.mock("../utils/chains", () => ({
|
|
68
|
-
getDefaultChains: vi.fn(() => []),
|
|
69
|
-
}));
|
|
70
|
-
|
|
71
|
-
import { Web3ConnectProvider, useWeb3 } from "./Web3ConnectProvider";
|
|
72
|
-
|
|
73
|
-
// ── Fixtures ───────────────────────────────────────────────────────
|
|
74
|
-
|
|
75
|
-
const mockSession = {
|
|
76
|
-
id: "test-session",
|
|
77
|
-
walletType: "eip155",
|
|
78
|
-
namespaces: {
|
|
79
|
-
"eip155": {
|
|
80
|
-
chains: ["eip155:1"],
|
|
81
|
-
accounts: ["eip155:1:0x1234567890abcdef"],
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
const siwxConfig = {
|
|
87
|
-
createMessage: vi.fn().mockResolvedValue("Sign this message"),
|
|
88
|
-
handleSignComplete: vi.fn().mockResolvedValue(undefined),
|
|
89
|
-
required: true,
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const baseConfig = {
|
|
93
|
-
projectId: "test-project-id",
|
|
94
|
-
metadata: {
|
|
95
|
-
name: "Test",
|
|
96
|
-
description: "Test",
|
|
97
|
-
url: "https://test.com",
|
|
98
|
-
icons: ["https://test.com/icon.png"],
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
function renderWithProvider(config: Record<string, unknown> = {}) {
|
|
103
|
-
const wrapper = ({ children }: { children: React.ReactNode }) => (
|
|
104
|
-
<Web3ConnectProvider config={{ ...baseConfig, ...config } as any} autoConnect={false}>
|
|
105
|
-
{children}
|
|
106
|
-
</Web3ConnectProvider>
|
|
107
|
-
);
|
|
108
|
-
return renderHook(() => useWeb3(), { wrapper });
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
describe("Web3ConnectProvider — SIWx", () => {
|
|
112
|
-
beforeEach(() => {
|
|
113
|
-
vi.clearAllMocks();
|
|
114
|
-
mockClient.connect.mockReset().mockResolvedValue(mockSession);
|
|
115
|
-
mockClient.completePairing.mockReset().mockResolvedValue(mockSession);
|
|
116
|
-
mockClient.signMessage.mockReset().mockResolvedValue("0xsignature");
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
it("runSiwx is called after successful connection when config.siwx is set", async () => {
|
|
120
|
-
const { result } = renderWithProvider({ siwx: siwxConfig });
|
|
121
|
-
|
|
122
|
-
await act(async () => {
|
|
123
|
-
await result.current.connect();
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
expect(siwxConfig.createMessage).toHaveBeenCalledWith({
|
|
127
|
-
address: "0x1234567890abcdef",
|
|
128
|
-
chainId: "eip155:1",
|
|
129
|
-
});
|
|
130
|
-
expect(mockClient.signMessage).toHaveBeenCalled();
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
it("status becomes connected when SIWx succeeds", async () => {
|
|
134
|
-
const { result } = renderWithProvider({ siwx: siwxConfig });
|
|
135
|
-
|
|
136
|
-
await act(async () => {
|
|
137
|
-
await result.current.connect();
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
expect(result.current.status).toBe("connected");
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
it("status stays disconnected when SIWx is required and fails", async () => {
|
|
144
|
-
mockClient.signMessage.mockRejectedValue(new Error("SIWx failed"));
|
|
145
|
-
const { result } = renderWithProvider({ siwx: siwxConfig });
|
|
146
|
-
|
|
147
|
-
await act(async () => {
|
|
148
|
-
await result.current.connect();
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
expect(result.current.status).toBe("disconnected");
|
|
152
|
-
expect(result.current.session).toBeNull();
|
|
153
|
-
expect(result.current.error).toBeTruthy();
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
it("status becomes connected normally when siwx is not configured", async () => {
|
|
157
|
-
const { result } = renderWithProvider();
|
|
158
|
-
|
|
159
|
-
await act(async () => {
|
|
160
|
-
await result.current.connect();
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
expect(result.current.status).toBe("connected");
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
it("completePairing returns the session even when SIWx fails", async () => {
|
|
167
|
-
mockClient.signMessage.mockRejectedValue(new Error("SIWx failed"));
|
|
168
|
-
const { result } = renderWithProvider({ siwx: siwxConfig });
|
|
169
|
-
|
|
170
|
-
let session: unknown;
|
|
171
|
-
await act(async () => {
|
|
172
|
-
session = await result.current.completePairing();
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
expect(session).toBe(mockSession);
|
|
176
|
-
expect(result.current.status).toBe("disconnected");
|
|
177
|
-
});
|
|
178
|
-
});
|