@flarenetwork/multichain-wallet-connector 0.0.1-rc.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.
@@ -0,0 +1,3 @@
1
+ import { A as LedgerConnectOptions, B as ErrorEvent, C as LedgerSession, D as ChainClient, E as EvmClient, F as ChainChangedEvent, G as ResolvedWalletConfig, H as MetaMaskWalletOptions, I as ChainOverride, J as WalletOptions, K as WalletConnectWalletOptions, L as ConnectEvent, M as LedgerPaginatedBip44, N as Bip44, O as LedgerCaip2, P as AccountChangedEvent, R as DcentWalletOptions, S as ConnectorTypeMap, T as XrpClient, U as MultiChainEvents, V as LedgerWalletOptions, W as MultiChainOptions, X as WalletAddressState, Y as XamanWalletOptions, Z as WalletState, _ as ConfigResolver, a as shortenAddress, at as EvmChain, b as ConnectWalletArgs, c as WalletConnectError, ct as XrplChain, d as DcentError, et as WalletType, f as WalletError, g as MultiChain, h as ChainGuards, i as objectValues, it as Eip155Caip2, j as LedgerHDStandard, k as LedgerComputedAddress, l as MetaMaskError, m as ErrorCodeKey, n as objectFromEntries, nt as Caip2, o as WalletErrorHelper, ot as NonEvmChain, p as ErrorCode, q as WalletMetadata, r as objectKeys, rt as Chain, s as XamanError, st as XRPlCaip2, t as objectEntries, tt as BaseChain, u as LedgerError, w as DcentConnector, x as Connector, z as DisconnectEvent } from "../utils-C64Z4fWz.mjs";
2
+ import { C as UseChainOptions, D as useChainSupport, E as useChain, O as MultichainProvider, S as UseChainNotFound, T as UseXrpChainReturn, _ as LedgerSelectionState, a as useWalletSupport, b as useLedgerSelection, c as MultichainSelectionProvider, d as MultichainSelectionMode, f as SelectionWallet, g as LedgerSelectionActions, h as useMultichainEvents, i as WalletInfo, l as useMultichainSelection, m as WalletsConfig, n as UseWalletReturn, o as UseMultichainReturn, p as UseMultichainSelectionReturn, r as useWallet, s as useMultichain, t as useWallets, u as MultichainSelectionConfig, v as UseLedgerSelectionOptions, w as UseEvmChainReturn, x as UseChainFound, y as UseLedgerSelectionReturn } from "../use-wallets-BfbbQmDw.mjs";
3
+ export { AccountChangedEvent, BaseChain, Bip44, Caip2, Chain, ChainChangedEvent, ChainClient, ChainGuards, ChainOverride, ConfigResolver, ConnectEvent, type ConnectWalletArgs, Connector, ConnectorTypeMap, DcentConnector, DcentError, DcentWalletOptions, DisconnectEvent, Eip155Caip2, ErrorCode, ErrorCodeKey, ErrorEvent, EvmChain, EvmClient, LedgerCaip2, LedgerComputedAddress, LedgerConnectOptions, LedgerError, LedgerHDStandard, LedgerPaginatedBip44, type LedgerSelectionActions, type LedgerSelectionState, LedgerSession, LedgerWalletOptions, MetaMaskError, MetaMaskWalletOptions, MultiChain, MultiChainEvents, MultiChainOptions, MultichainProvider, type MultichainSelectionConfig, type MultichainSelectionMode, MultichainSelectionProvider, NonEvmChain, ResolvedWalletConfig, type SelectionWallet, type UseChainFound, type UseChainNotFound, type UseChainOptions, type UseEvmChainReturn, type UseLedgerSelectionOptions, type UseLedgerSelectionReturn, type UseMultichainReturn, type UseMultichainSelectionReturn, type UseWalletReturn, type UseXrpChainReturn, WalletAddressState, WalletConnectError, WalletConnectWalletOptions, WalletError, WalletErrorHelper, type WalletInfo, WalletMetadata, WalletOptions, WalletState, WalletType, type WalletsConfig, XRPlCaip2, XamanError, XamanWalletOptions, XrpClient, XrplChain, objectEntries, objectFromEntries, objectKeys, objectValues, shortenAddress, useChain, useChainSupport, useLedgerSelection, useMultichain, useMultichainEvents, useMultichainSelection, useWallet, useWalletSupport, useWallets };
@@ -0,0 +1,5 @@
1
+ import { _ as objectFromEntries, a as WalletErrorHelper, b as shortenAddress, c as MetaMaskError, d as WalletError, f as ErrorCode, g as objectEntries, h as ChainGuards, i as DcentConnector, l as LedgerError, n as EvmClient, o as XamanError, p as ConfigResolver, r as Bip44, s as WalletConnectError, t as MultiChain, u as DcentError, v as objectKeys, y as objectValues } from "../multichain-C5wKiJke.mjs";
2
+ import "../core/index.mjs";
3
+ import { a as useMultichainSelection, c as useLedgerSelection, d as MultichainProvider, i as useMultichain, l as useChain, n as useWallet, o as MultichainSelectionProvider, r as useWalletSupport, s as useMultichainEvents, t as useWallets, u as useChainSupport } from "../use-wallets-DXRPNM7H.mjs";
4
+
5
+ export { Bip44, ChainGuards, ConfigResolver, DcentConnector, DcentError, ErrorCode, EvmClient, LedgerError, MetaMaskError, MultiChain, MultichainProvider, MultichainSelectionProvider, WalletConnectError, WalletError, WalletErrorHelper, XamanError, objectEntries, objectFromEntries, objectKeys, objectValues, shortenAddress, useChain, useChainSupport, useLedgerSelection, useMultichain, useMultichainEvents, useMultichainSelection, useWallet, useWalletSupport, useWallets };
@@ -0,0 +1,311 @@
1
+ import { $ as ValidWalletsForChain, E as EvmClient, Q as SupportedWalletChains, T as XrpClient, U as MultiChainEvents, Z as WalletState, at as EvmChain, b as ConnectWalletArgs, ct as XrplChain, et as WalletType, g as MultiChain, it as Eip155Caip2, j as LedgerHDStandard, k as LedgerComputedAddress, nt as Caip2, rt as Chain, st as XRPlCaip2, v as ChainSelectionMode, y as ConcreteConnector } from "./utils-C64Z4fWz.mjs";
2
+ import React, { JSX, ReactNode } from "react";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/core/stores/multichain/multichain-provider.d.ts
6
+ interface MultichainProviderProps {
7
+ multichain: MultiChain;
8
+ children: React.ReactNode | JSX.Element | JSX.Element[];
9
+ }
10
+ declare const MultichainProvider: ({
11
+ multichain,
12
+ children
13
+ }: MultichainProviderProps) => JSX.Element;
14
+ //#endregion
15
+ //#region src/react/hooks/use-chain-support/use-chain-support.d.ts
16
+ type ChainSupportFilter = {
17
+ chainType: "evm";
18
+ } | {
19
+ chainType: "xrpl";
20
+ } | {
21
+ wallet: WalletType;
22
+ };
23
+ /** Chain object narrowed to a specific wallet's supported chains */
24
+ type ChainForWallet<W extends WalletType> = Chain & {
25
+ caip2: SupportedWalletChains<W>[number];
26
+ };
27
+ type ChainSupportReturn<T extends ChainSupportFilter | undefined> = T extends {
28
+ chainType: "evm";
29
+ } ? EvmChain[] : T extends {
30
+ chainType: "xrpl";
31
+ } ? XrplChain[] : T extends {
32
+ wallet: infer W extends WalletType;
33
+ } ? ChainForWallet<W>[] : Chain[];
34
+ /**
35
+ * Hook to access chain configuration.
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * // Get all chains
40
+ * const allChains = useChainSupport();
41
+ *
42
+ * // Get EVM chains only
43
+ * const evmChains = useChainSupport({ chainType: 'evm' });
44
+ *
45
+ * // Get XRPL chains only
46
+ * const xrplChains = useChainSupport({ chainType: 'xrpl' });
47
+ *
48
+ * // Get chains supported by a wallet
49
+ * const ledgerChains = useChainSupport({ wallet: 'ledger' });
50
+ * ```
51
+ */
52
+ declare function useChainSupport<T extends ChainSupportFilter | undefined = undefined>(filter?: T): ChainSupportReturn<T>;
53
+ //#endregion
54
+ //#region src/react/hooks/use-chain/use-chain.d.ts
55
+ interface UseChainFound<T extends Caip2, TClient> {
56
+ exists: true;
57
+ address: string;
58
+ state: WalletState;
59
+ walletType: ValidWalletsForChain<T>;
60
+ caip2: T;
61
+ client: TClient;
62
+ }
63
+ interface UseChainNotFound<T extends Caip2> {
64
+ exists: false;
65
+ address: undefined;
66
+ state: undefined;
67
+ walletType: undefined;
68
+ caip2: T;
69
+ client: null;
70
+ }
71
+ interface UseChainOptions<T extends Caip2> {
72
+ wallet?: ValidWalletsForChain<T>;
73
+ }
74
+ type UseEvmChainReturn<T extends Eip155Caip2> = UseChainFound<T, EvmClient> | UseChainNotFound<T>;
75
+ type UseXrpChainReturn<T extends XRPlCaip2> = UseChainFound<T, XrpClient> | UseChainNotFound<T>;
76
+ /**
77
+ * Hook to get the connected wallet for a specific chain.
78
+ *
79
+ * Returns the wallet state and a properly typed client based on the chain type.
80
+ *
81
+ * @example
82
+ * ```tsx
83
+ * // First connected wallet on the chain
84
+ * const chain = useChain('eip155:14');
85
+ *
86
+ * // Specific wallet on the chain
87
+ * const chain = useChain('eip155:14', { wallet: 'wallet-connect' });
88
+ *
89
+ * if (!chain.exists) return <NotConnected />;
90
+ *
91
+ * await chain.client.getBalance(chain.address);
92
+ * ```
93
+ */
94
+ declare function useChain<T extends Eip155Caip2>(caip2: T, options?: UseChainOptions<T>): UseEvmChainReturn<T>;
95
+ declare function useChain<T extends XRPlCaip2>(caip2: T, options?: UseChainOptions<T>): UseXrpChainReturn<T>;
96
+ //#endregion
97
+ //#region src/react/hooks/use-ledger-selection/use-ledger-selection.d.ts
98
+ interface LedgerSelectionState {
99
+ selectedAddress: LedgerComputedAddress | null;
100
+ hdStandard: LedgerHDStandard;
101
+ }
102
+ interface LedgerSelectionActions {
103
+ selectAddress: (address: LedgerComputedAddress) => void;
104
+ setHdStandard: (standard: LedgerHDStandard) => void;
105
+ clearSelection: () => void;
106
+ }
107
+ interface UseLedgerSelectionOptions {
108
+ initialHdStandard: LedgerHDStandard;
109
+ initialSelections: Partial<Record<Caip2, LedgerComputedAddress>>;
110
+ }
111
+ interface UseLedgerSelectionReturn {
112
+ selection: LedgerSelectionState & LedgerSelectionActions;
113
+ selections: Readonly<Partial<Record<Caip2, LedgerComputedAddress>>>;
114
+ }
115
+ declare function useLedgerSelection(selectedCaip2: Caip2, options?: Partial<UseLedgerSelectionOptions>): UseLedgerSelectionReturn;
116
+ //#endregion
117
+ //#region src/react/hooks/use-multichain-events/use-multichain-events.d.ts
118
+ declare const useMultichainEvents: (options: MultiChainEvents) => void;
119
+ //#endregion
120
+ //#region src/react/hooks/use-wallet-selection/wallet-selection.types.d.ts
121
+ type MultichainSelectionMode = "single-wallet:single-chain" | "single-wallet:multi-chain" | "multi-wallet:single-chain" | "multi-wallet:multi-chain";
122
+ type WalletsConfig = Partial<Record<WalletType, "all" | Caip2[]>>;
123
+ type MultichainSelectionConfig = {
124
+ mode: "single-wallet:single-chain";
125
+ wallets: WalletsConfig;
126
+ caip2: Caip2;
127
+ } | {
128
+ mode: "single-wallet:multi-chain";
129
+ wallets: WalletsConfig;
130
+ } | {
131
+ mode: "multi-wallet:single-chain";
132
+ wallets: WalletsConfig;
133
+ caip2: Caip2;
134
+ } | {
135
+ mode: "multi-wallet:multi-chain";
136
+ wallets: WalletsConfig;
137
+ };
138
+ interface SelectionWallet {
139
+ type: WalletType;
140
+ name: string;
141
+ caip2s: Caip2[];
142
+ multiChain: boolean;
143
+ isConnecting: boolean;
144
+ isConnected: boolean;
145
+ caip2: Caip2 | null;
146
+ }
147
+ type SelectionConnectionState = {
148
+ canConnect: false;
149
+ connectArgs: null;
150
+ } | {
151
+ canConnect: true;
152
+ connectArgs: ConnectWalletArgs;
153
+ };
154
+ interface BaseMultichainSelectionReturn {
155
+ mode: MultichainSelectionMode;
156
+ fixedCaip2: Caip2 | null;
157
+ wallets: SelectionWallet[];
158
+ selectedWalletType: WalletType | null;
159
+ selectedWallet: SelectionWallet | null;
160
+ selectedCaip2s: Caip2[];
161
+ availableCaip2s: Caip2[];
162
+ chainSelectionMode: ChainSelectionMode;
163
+ selectWallet(wallet: WalletType): ConnectWalletArgs;
164
+ clearWallet(): void;
165
+ toggleCaip2(caip2: Caip2): void;
166
+ setSelectedCaip2s(caip2s: Caip2[]): void;
167
+ reset(): void;
168
+ }
169
+ type UseMultichainSelectionReturn = BaseMultichainSelectionReturn & SelectionConnectionState;
170
+ //#endregion
171
+ //#region src/react/hooks/use-wallet-selection/use-wallet-selection.d.ts
172
+ declare function useMultichainSelection(): UseMultichainSelectionReturn;
173
+ //#endregion
174
+ //#region src/react/hooks/use-wallet-selection/wallet-selection.provider.d.ts
175
+ declare function MultichainSelectionProvider({
176
+ config,
177
+ children
178
+ }: {
179
+ config: MultichainSelectionConfig;
180
+ children: ReactNode;
181
+ }): react_jsx_runtime0.JSX.Element;
182
+ //#endregion
183
+ //#region src/react/hooks/use-multichain/use-multichain.d.ts
184
+ /**
185
+ * Return type for useMultichain hook.
186
+ */
187
+ interface UseMultichainReturn {
188
+ /**
189
+ * Connect a wallet with type-safe discriminated union arguments.
190
+ *
191
+ * Each wallet type has its own connection signature:
192
+ * - wallet-connect: { wallet: "wallet-connect", chains: [...] }
193
+ * - metamask: { wallet: "metamask", chain: "eip155:..." }
194
+ * - ledger: { wallet: "ledger", chain: "...", options?: {...} }
195
+ * - xaman: { wallet: "xaman" }
196
+ */
197
+ connect(args: ConnectWalletArgs): Promise<void>;
198
+ /** Disconnect a specific wallet */
199
+ disconnect(wallet: WalletType): Promise<void>;
200
+ /** Disconnect all wallets */
201
+ disconnectAll(): Promise<void>;
202
+ /** Get connector for a wallet (for advanced operations) */
203
+ getConnector<W extends WalletType>(wallet: W): ConcreteConnector<W>;
204
+ }
205
+ /**
206
+ * Hook for wallet connection actions.
207
+ *
208
+ * Use this for connect/disconnect operations.
209
+ * For connection state, use useWallet() instead.
210
+ *
211
+ * @example
212
+ * ```tsx
213
+ * const { connect, disconnect, getConnector } = useMultichain();
214
+ *
215
+ * // Connect MetaMask to a single chain
216
+ * await connect({ wallet: 'metamask', chain: 'eip155:14' });
217
+ *
218
+ * // Connect WalletConnect to multiple chains
219
+ * await connect({ wallet: 'wallet-connect', chains: ['eip155:14', 'eip155:1'] });
220
+ *
221
+ * // Connect Ledger with options
222
+ * await connect({ wallet: 'ledger', chain: 'eip155:14', options: { bip44, ledgerHDStandard } });
223
+ *
224
+ * // Disconnect
225
+ * await disconnect('metamask');
226
+ *
227
+ * // Get connector for advanced operations
228
+ * const connector = getConnector('metamask');
229
+ * const client = connector.getClient();
230
+ * ```
231
+ */
232
+ declare function useMultichain(): UseMultichainReturn;
233
+ //#endregion
234
+ //#region src/react/hooks/use-wallet-support/use-wallet-support.d.ts
235
+ /**
236
+ * Wallet info with all support details.
237
+ */
238
+ interface WalletInfo {
239
+ type: WalletType;
240
+ name: string;
241
+ chains: Caip2[];
242
+ singleChain: boolean;
243
+ }
244
+ /**
245
+ * Filter options for useWalletSupport hook.
246
+ */
247
+ interface WalletSupportFilter {
248
+ exclude?: WalletType[];
249
+ }
250
+ /**
251
+ * Hook to access wallet support configuration.
252
+ *
253
+ * @example
254
+ * ```tsx
255
+ * // Get all wallets
256
+ * const wallets = useWalletSupport();
257
+ *
258
+ * // Exclude specific wallets
259
+ * const simpleWallets = useWalletSupport({ exclude: ['ledger'] });
260
+ *
261
+ * // All wallet info with chains and mode
262
+ * wallets // [{ type: 'metamask', name: 'MetaMask', chains: [...], singleChain: true }, ...]
263
+ *
264
+ * // Find specific wallet
265
+ * const mm = wallets.find(w => w.type === 'metamask');
266
+ * mm.chains // ['eip155:14', 'eip155:16', ...]
267
+ * mm.singleChain // true
268
+ * ```
269
+ */
270
+ declare function useWalletSupport(filter?: WalletSupportFilter): WalletInfo[];
271
+ //#endregion
272
+ //#region src/react/hooks/use-wallet/use-wallet.d.ts
273
+ /**
274
+ * Return type for useWallet hook.
275
+ */
276
+ interface UseWalletReturn<W extends WalletType> {
277
+ /** Current wallet state */
278
+ state: WalletState;
279
+ /** Wallet connector for operations */
280
+ connector: ConcreteConnector<W>;
281
+ /** Wallet type */
282
+ walletType: W;
283
+ /** Whether wallet is connected */
284
+ isConnected: boolean;
285
+ /** Whether wallet is currently connecting */
286
+ isConnecting: boolean;
287
+ }
288
+ /**
289
+ * Hook to access a specific wallet's state and connector.
290
+ *
291
+ * @example
292
+ * ```tsx
293
+ * const { state, connector, isConnected } = useWallet('metamask');
294
+ *
295
+ * if (isConnected) {
296
+ * const client = connector.getClient();
297
+ * await client.getPublicClient().readContract({...});
298
+ * }
299
+ * ```
300
+ */
301
+ declare function useWallet<W extends WalletType>(walletType: W): UseWalletReturn<W>;
302
+ //#endregion
303
+ //#region src/react/hooks/use-wallets/use-wallets.d.ts
304
+ type UseWalletsReturn = Array<{
305
+ state: WalletState;
306
+ type: WalletType;
307
+ }>;
308
+ declare const useWallets: () => UseWalletsReturn;
309
+ //#endregion
310
+ export { UseChainOptions as C, useChainSupport as D, useChain as E, MultichainProvider as O, UseChainNotFound as S, UseXrpChainReturn as T, LedgerSelectionState as _, useWalletSupport as a, useLedgerSelection as b, MultichainSelectionProvider as c, MultichainSelectionMode as d, SelectionWallet as f, LedgerSelectionActions as g, useMultichainEvents as h, WalletInfo as i, useMultichainSelection as l, WalletsConfig as m, UseWalletReturn as n, UseMultichainReturn as o, UseMultichainSelectionReturn as p, useWallet as r, useMultichain as s, useWallets as t, MultichainSelectionConfig as u, UseLedgerSelectionOptions as v, UseEvmChainReturn as w, UseChainFound as x, UseLedgerSelectionReturn as y };
311
+ //# sourceMappingURL=use-wallets-BfbbQmDw.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-wallets-BfbbQmDw.d.mts","names":[],"sources":["../src/core/stores/multichain/multichain-provider.tsx","../src/react/hooks/use-chain-support/use-chain-support.ts","../src/react/hooks/use-chain/use-chain.tsx","../src/react/hooks/use-ledger-selection/use-ledger-selection.ts","../src/react/hooks/use-multichain-events/use-multichain-events.tsx","../src/react/hooks/use-wallet-selection/wallet-selection.types.ts","../src/react/hooks/use-wallet-selection/use-wallet-selection.ts","../src/react/hooks/use-wallet-selection/wallet-selection.provider.tsx","../src/react/hooks/use-multichain/use-multichain.tsx","../src/react/hooks/use-wallet-support/use-wallet-support.ts","../src/react/hooks/use-wallet/use-wallet.tsx","../src/react/hooks/use-wallets/use-wallets.ts"],"mappings":"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"}