@naculus/connect-appkit-react 0.1.8 → 0.2.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.
Files changed (94) hide show
  1. package/README.md +4 -4
  2. package/dist/client.cjs +1 -1
  3. package/dist/client.cjs.map +1 -1
  4. package/dist/client.d.cts +144 -0
  5. package/dist/client.d.ts +144 -0
  6. package/dist/client.js +1 -1
  7. package/dist/client.js.map +1 -1
  8. package/dist/index.cjs +2 -1
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.d.cts +2270 -0
  11. package/dist/index.d.ts +2270 -0
  12. package/dist/index.js +2 -1
  13. package/dist/index.js.map +1 -1
  14. package/package.json +30 -12
  15. package/api-extractor.json +0 -21
  16. package/src/chain-abstraction/index.ts +0 -8
  17. package/src/chain-abstraction/useCompareCosts.ts +0 -137
  18. package/src/chain-abstraction/useExecuteRoute.ts +0 -129
  19. package/src/chain-abstraction/useRouteQuote.ts +0 -168
  20. package/src/client.test.ts +0 -242
  21. package/src/client.ts +0 -265
  22. package/src/hooks/useAccount.test.ts +0 -67
  23. package/src/hooks/useAccount.ts +0 -37
  24. package/src/hooks/useBalance.test.ts +0 -459
  25. package/src/hooks/useBalance.ts +0 -170
  26. package/src/hooks/useChain.test.ts +0 -160
  27. package/src/hooks/useChain.ts +0 -53
  28. package/src/hooks/useConnect.test.ts +0 -112
  29. package/src/hooks/useConnect.ts +0 -29
  30. package/src/hooks/useDisconnect.test.ts +0 -75
  31. package/src/hooks/useDisconnect.ts +0 -32
  32. package/src/hooks/useERC20Allowance.ts +0 -93
  33. package/src/hooks/useERC20Approve.ts +0 -220
  34. package/src/hooks/useERC20Transfer.ts +0 -134
  35. package/src/hooks/useERC20TransferSimulation.ts +0 -147
  36. package/src/hooks/useEmbeddedWallet.test.ts +0 -266
  37. package/src/hooks/useEmbeddedWallet.ts +0 -181
  38. package/src/hooks/useLastTx.test.ts +0 -117
  39. package/src/hooks/useLastTx.ts +0 -73
  40. package/src/hooks/useLookupAddress.ts +0 -131
  41. package/src/hooks/useNotification.ts +0 -308
  42. package/src/hooks/useResolveName.ts +0 -128
  43. package/src/hooks/useSIWxLogin.test.ts +0 -307
  44. package/src/hooks/useSIWxLogin.ts +0 -163
  45. package/src/hooks/useSIWxSession.test.ts +0 -481
  46. package/src/hooks/useSIWxSession.ts +0 -290
  47. package/src/hooks/useSendCalls.ts +0 -103
  48. package/src/hooks/useSendTransaction.test.ts +0 -175
  49. package/src/hooks/useSendTransaction.ts +0 -80
  50. package/src/hooks/useSendUserOperation.ts +0 -313
  51. package/src/hooks/useSession.ts +0 -96
  52. package/src/hooks/useSessionKeys.ts +0 -356
  53. package/src/hooks/useSignInWithEthereum.test.ts +0 -224
  54. package/src/hooks/useSignInWithEthereum.ts +0 -46
  55. package/src/hooks/useSignInWithX.test.ts +0 -210
  56. package/src/hooks/useSignInWithX.ts +0 -141
  57. package/src/hooks/useSignMessage.test.ts +0 -151
  58. package/src/hooks/useSignMessage.ts +0 -65
  59. package/src/hooks/useSimulateTransfer.ts +0 -165
  60. package/src/hooks/useSiwxAuthSession.test.ts +0 -456
  61. package/src/hooks/useSiwxAuthSession.ts +0 -163
  62. package/src/hooks/useSmartAccount.ts +0 -194
  63. package/src/hooks/useSwitchChain.ts +0 -68
  64. package/src/hooks/useTokenBalance.test.ts +0 -337
  65. package/src/hooks/useTokenBalance.ts +0 -210
  66. package/src/hooks/useTransactionSimulation.ts +0 -401
  67. package/src/hooks/useTxHistory.test.ts +0 -108
  68. package/src/hooks/useTxHistory.ts +0 -83
  69. package/src/hooks/useTxMonitor.test.ts +0 -127
  70. package/src/hooks/useTxMonitor.ts +0 -178
  71. package/src/hooks/useUserOpStatus.ts +0 -245
  72. package/src/hooks/useValidateDestination.test.ts +0 -96
  73. package/src/hooks/useValidateDestination.ts +0 -72
  74. package/src/hooks/useViemClient.test.ts +0 -155
  75. package/src/hooks/useViemClient.ts +0 -65
  76. package/src/hooks/useWallet.test.ts +0 -133
  77. package/src/hooks/useWallet.ts +0 -39
  78. package/src/hooks/useWeb3ErrorHandler.ts +0 -102
  79. package/src/index.ts +0 -186
  80. package/src/provider/Web3ConnectProvider.test.tsx +0 -178
  81. package/src/provider/Web3ConnectProvider.tsx +0 -530
  82. package/src/token-list/TokenSelector.tsx +0 -351
  83. package/src/token-list/defaults.ts +0 -39
  84. package/src/token-list/index.ts +0 -14
  85. package/src/token-list/useTokenList.ts +0 -119
  86. package/src/token-list/useTokenSearch.ts +0 -99
  87. package/src/types/index.ts +0 -99
  88. package/src/utils/chains.ts +0 -115
  89. package/src/utils/errorMessages.ts +0 -142
  90. package/src/utils/i18n.ts +0 -90
  91. package/src/wc-generated/components.ts +0 -377
  92. package/test/setup.ts +0 -17
  93. package/test/test-utils.tsx +0 -78
  94. 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
- });