@aori/mega-swap-widget 0.1.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/LICENSE +21 -0
- package/README.md +404 -0
- package/dist/AssetSelectionMenu-Y3EB32BT.cjs +13 -0
- package/dist/AssetSelectionMenu-Y3EB32BT.cjs.map +1 -0
- package/dist/AssetSelectionMenu-ZRG42UCZ.js +13 -0
- package/dist/AssetSelectionMenu-ZRG42UCZ.js.map +1 -0
- package/dist/ChainSelectionMenu-FBAPPFKI.cjs +11 -0
- package/dist/ChainSelectionMenu-FBAPPFKI.cjs.map +1 -0
- package/dist/ChainSelectionMenu-QO3H4TNR.js +11 -0
- package/dist/ChainSelectionMenu-QO3H4TNR.js.map +1 -0
- package/dist/SwapFormHorizontal-JDJUDFNX.js +573 -0
- package/dist/SwapFormHorizontal-JDJUDFNX.js.map +1 -0
- package/dist/SwapFormHorizontal-WG3Z3CFT.cjs +573 -0
- package/dist/SwapFormHorizontal-WG3Z3CFT.cjs.map +1 -0
- package/dist/SwapFormSplit-7CHTPLEQ.js +441 -0
- package/dist/SwapFormSplit-7CHTPLEQ.js.map +1 -0
- package/dist/SwapFormSplit-VDDIRQUQ.cjs +441 -0
- package/dist/SwapFormSplit-VDDIRQUQ.cjs.map +1 -0
- package/dist/WalletPlaceholderPanel-7YDQ4FT6.js +57 -0
- package/dist/WalletPlaceholderPanel-7YDQ4FT6.js.map +1 -0
- package/dist/WalletPlaceholderPanel-FZ6XIAMF.cjs +57 -0
- package/dist/WalletPlaceholderPanel-FZ6XIAMF.cjs.map +1 -0
- package/dist/WidgetWalletPanel-D7I5TAU3.js +789 -0
- package/dist/WidgetWalletPanel-D7I5TAU3.js.map +1 -0
- package/dist/WidgetWalletPanel-T7H6FGVN.cjs +789 -0
- package/dist/WidgetWalletPanel-T7H6FGVN.cjs.map +1 -0
- package/dist/chunk-3E6RNP2D.cjs +389 -0
- package/dist/chunk-3E6RNP2D.cjs.map +1 -0
- package/dist/chunk-5TH6MFQD.cjs +122 -0
- package/dist/chunk-5TH6MFQD.cjs.map +1 -0
- package/dist/chunk-5XSCUUOW.js +101 -0
- package/dist/chunk-5XSCUUOW.js.map +1 -0
- package/dist/chunk-6Q7MSCKS.js +2199 -0
- package/dist/chunk-6Q7MSCKS.js.map +1 -0
- package/dist/chunk-6XB5R4GF.cjs +368 -0
- package/dist/chunk-6XB5R4GF.cjs.map +1 -0
- package/dist/chunk-6YLNOZ7P.js +389 -0
- package/dist/chunk-6YLNOZ7P.js.map +1 -0
- package/dist/chunk-7AWG6OWF.js +27 -0
- package/dist/chunk-7AWG6OWF.js.map +1 -0
- package/dist/chunk-ARMW5POL.js +3082 -0
- package/dist/chunk-ARMW5POL.js.map +1 -0
- package/dist/chunk-B3ILUJ7G.cjs +101 -0
- package/dist/chunk-B3ILUJ7G.cjs.map +1 -0
- package/dist/chunk-GGM3MDFM.js +32 -0
- package/dist/chunk-GGM3MDFM.js.map +1 -0
- package/dist/chunk-GZUTUD5O.cjs +2199 -0
- package/dist/chunk-GZUTUD5O.cjs.map +1 -0
- package/dist/chunk-HXOGJSAI.cjs +3082 -0
- package/dist/chunk-HXOGJSAI.cjs.map +1 -0
- package/dist/chunk-LTA7IG3J.js +122 -0
- package/dist/chunk-LTA7IG3J.js.map +1 -0
- package/dist/chunk-NBJPKJBC.cjs +32 -0
- package/dist/chunk-NBJPKJBC.cjs.map +1 -0
- package/dist/chunk-PGYOJ5RB.cjs +27 -0
- package/dist/chunk-PGYOJ5RB.cjs.map +1 -0
- package/dist/chunk-QHW27RMH.js +199 -0
- package/dist/chunk-QHW27RMH.js.map +1 -0
- package/dist/chunk-TMC4SUEV.js +368 -0
- package/dist/chunk-TMC4SUEV.js.map +1 -0
- package/dist/chunk-XQINW7QP.cjs +199 -0
- package/dist/chunk-XQINW7QP.cjs.map +1 -0
- package/dist/index.cjs +1780 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +1424 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.cts +555 -0
- package/dist/index.d.ts +555 -0
- package/dist/index.js +1780 -0
- package/dist/index.js.map +1 -0
- package/package.json +82 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React, { ReactNode } from 'react';
|
|
3
|
+
import * as wagmi from 'wagmi';
|
|
4
|
+
import { useWriteContract } from 'wagmi';
|
|
5
|
+
import * as viem from 'viem';
|
|
6
|
+
import { WalletClient } from 'viem';
|
|
7
|
+
import { Chain } from 'wagmi/chains';
|
|
8
|
+
import * as zustand from 'zustand';
|
|
9
|
+
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
10
|
+
|
|
11
|
+
interface Asset {
|
|
12
|
+
symbol: string;
|
|
13
|
+
address: string;
|
|
14
|
+
logoURI?: string;
|
|
15
|
+
name: string;
|
|
16
|
+
decimals?: number;
|
|
17
|
+
chainId: SupportedChainId;
|
|
18
|
+
price?: number;
|
|
19
|
+
vol24h?: number;
|
|
20
|
+
change24h?: number;
|
|
21
|
+
marketCap?: number;
|
|
22
|
+
}
|
|
23
|
+
interface TokenRegistryAsset {
|
|
24
|
+
symbol: string;
|
|
25
|
+
address: string;
|
|
26
|
+
chainId: SupportedChainId;
|
|
27
|
+
chainKey: string;
|
|
28
|
+
name: string;
|
|
29
|
+
decimals: number;
|
|
30
|
+
price: number;
|
|
31
|
+
icon: string;
|
|
32
|
+
marketCap?: number;
|
|
33
|
+
}
|
|
34
|
+
declare const Categories: readonly ["all", "favorites", "popular", "stables", "defi"];
|
|
35
|
+
type TokenSelectCategory = (typeof Categories)[number];
|
|
36
|
+
declare const ReviewOrderSteps: readonly ["chain", "signingOrder", "submittingOrder", "sendingTx", "success", "cancelled", "unwrapping", "wrapping", "wrapSuccess", "trackingTx"];
|
|
37
|
+
type ReviewOrderStep = (typeof ReviewOrderSteps)[number];
|
|
38
|
+
type SupportedChainId = number;
|
|
39
|
+
|
|
40
|
+
interface EnrichedBalance {
|
|
41
|
+
address: string;
|
|
42
|
+
chainId: number;
|
|
43
|
+
balance: string;
|
|
44
|
+
formatted: string;
|
|
45
|
+
decimals: number;
|
|
46
|
+
lastUpdated: number;
|
|
47
|
+
assetInfo: Asset | null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
interface WidgetTheme {
|
|
51
|
+
background: string;
|
|
52
|
+
foreground: string;
|
|
53
|
+
card: string;
|
|
54
|
+
'card-foreground': string;
|
|
55
|
+
popover: string;
|
|
56
|
+
'popover-foreground': string;
|
|
57
|
+
primary: string;
|
|
58
|
+
'primary-foreground': string;
|
|
59
|
+
secondary: string;
|
|
60
|
+
'secondary-foreground': string;
|
|
61
|
+
muted: string;
|
|
62
|
+
'muted-foreground': string;
|
|
63
|
+
accent: string;
|
|
64
|
+
'accent-foreground': string;
|
|
65
|
+
destructive: string;
|
|
66
|
+
'destructive-foreground': string;
|
|
67
|
+
border: string;
|
|
68
|
+
input: string;
|
|
69
|
+
ring: string;
|
|
70
|
+
radius: string;
|
|
71
|
+
'border-style'?: string;
|
|
72
|
+
'font-sans'?: string;
|
|
73
|
+
'font-mono'?: string;
|
|
74
|
+
'shadow-color'?: string;
|
|
75
|
+
'shadow-opacity'?: string;
|
|
76
|
+
'shadow-blur'?: string;
|
|
77
|
+
'shadow-spread'?: string;
|
|
78
|
+
'shadow-offset-x'?: string;
|
|
79
|
+
'shadow-offset-y'?: string;
|
|
80
|
+
'letter-spacing'?: string;
|
|
81
|
+
'status-pending'?: string;
|
|
82
|
+
'status-received'?: string;
|
|
83
|
+
'status-completed'?: string;
|
|
84
|
+
'status-failed'?: string;
|
|
85
|
+
}
|
|
86
|
+
declare const defaultLightTheme: WidgetTheme;
|
|
87
|
+
declare const defaultDarkTheme: WidgetTheme;
|
|
88
|
+
declare function themeToCSS(theme: WidgetTheme): Record<string, string>;
|
|
89
|
+
|
|
90
|
+
interface AoriSwapWidgetConfig {
|
|
91
|
+
apiKey?: string;
|
|
92
|
+
vtApiBaseUrl?: string;
|
|
93
|
+
walletConnectProjectId?: string;
|
|
94
|
+
rpcOverrides?: Partial<Record<number, string | string[]>>;
|
|
95
|
+
theme: {
|
|
96
|
+
mode: 'light' | 'dark';
|
|
97
|
+
light?: WidgetTheme;
|
|
98
|
+
dark?: WidgetTheme;
|
|
99
|
+
};
|
|
100
|
+
tokens?: {
|
|
101
|
+
defaultBase?: {
|
|
102
|
+
chainId: number;
|
|
103
|
+
address: string;
|
|
104
|
+
};
|
|
105
|
+
defaultQuote?: {
|
|
106
|
+
chainId: number;
|
|
107
|
+
address: string;
|
|
108
|
+
};
|
|
109
|
+
lockBase?: boolean;
|
|
110
|
+
lockQuote?: boolean;
|
|
111
|
+
enabledChains?: number[];
|
|
112
|
+
disableInverting?: boolean;
|
|
113
|
+
supportedInputTokens?: Array<{
|
|
114
|
+
chainId: number;
|
|
115
|
+
address: string;
|
|
116
|
+
}>;
|
|
117
|
+
supportedOutputTokens?: Array<{
|
|
118
|
+
chainId: number;
|
|
119
|
+
address: string;
|
|
120
|
+
}>;
|
|
121
|
+
supportedInputChains?: number[];
|
|
122
|
+
supportedOutputChains?: number[];
|
|
123
|
+
inputSelectionSearch?: boolean;
|
|
124
|
+
outputSelectionSearch?: boolean;
|
|
125
|
+
showInputSelectionTokenBalances?: boolean;
|
|
126
|
+
showOutputSelectionTokenBalances?: boolean;
|
|
127
|
+
};
|
|
128
|
+
appearance?: {
|
|
129
|
+
widgetType?: 'default' | 'compact' | 'horizontal' | 'split';
|
|
130
|
+
tokenDisplay?: 'default' | 'pill' | 'ghost';
|
|
131
|
+
tokenBadgeOrientation?: 'left' | 'right';
|
|
132
|
+
assetMenuVariant?: 'default' | 'split';
|
|
133
|
+
amountInputVariant?: 'default' | 'normal';
|
|
134
|
+
hideAmountInputSymbol?: boolean;
|
|
135
|
+
swapButtonVariant?: 'default' | 'outline' | 'ghost';
|
|
136
|
+
swapHeaderVariant?: 'default' | 'none';
|
|
137
|
+
quoteLoaderVariant?: 'default' | 'expanded' | 'none';
|
|
138
|
+
fillContainer?: boolean;
|
|
139
|
+
hideBorder?: boolean;
|
|
140
|
+
walletButtonEnabled?: boolean;
|
|
141
|
+
};
|
|
142
|
+
settings?: {
|
|
143
|
+
defaultSlippage?: number;
|
|
144
|
+
};
|
|
145
|
+
integrator?: {
|
|
146
|
+
id?: number;
|
|
147
|
+
feeRecipient?: string;
|
|
148
|
+
feeAmount?: number;
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
interface SwapWidgetProps {
|
|
153
|
+
config: AoriSwapWidgetConfig;
|
|
154
|
+
className?: string;
|
|
155
|
+
onSwapComplete?: (orderHash: string) => void;
|
|
156
|
+
onBaseTokenChange?: (token: Asset) => void;
|
|
157
|
+
onQuoteTokenChange?: (token: Asset) => void;
|
|
158
|
+
onRequestConnect?: () => void;
|
|
159
|
+
onRequestAccount?: () => void;
|
|
160
|
+
customWalletUI?: 'builtin' | 'none' | 'provider';
|
|
161
|
+
}
|
|
162
|
+
declare function SwapWidget({ config, className, onSwapComplete, onBaseTokenChange, onQuoteTokenChange, onRequestConnect, onRequestAccount, customWalletUI, }: SwapWidgetProps): react_jsx_runtime.JSX.Element;
|
|
163
|
+
|
|
164
|
+
declare function ConnectButton(): react_jsx_runtime.JSX.Element;
|
|
165
|
+
|
|
166
|
+
interface WalletModalContextValue {
|
|
167
|
+
openConnectModal: () => void;
|
|
168
|
+
openAccountModal?: () => void;
|
|
169
|
+
}
|
|
170
|
+
declare const useWalletModal: () => WalletModalContextValue;
|
|
171
|
+
|
|
172
|
+
declare const useTransactionRegistry: () => {
|
|
173
|
+
registerTransaction: (hash: string, description: string) => void;
|
|
174
|
+
enabled: boolean;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
interface WidgetThemeProviderProps {
|
|
178
|
+
theme: WidgetTheme;
|
|
179
|
+
children: ReactNode;
|
|
180
|
+
}
|
|
181
|
+
declare function WidgetThemeProvider({ theme, children }: WidgetThemeProviderProps): react_jsx_runtime.JSX.Element;
|
|
182
|
+
declare function useWidgetTheme(): WidgetTheme;
|
|
183
|
+
|
|
184
|
+
declare function buildTransports(rpcOverrides?: Partial<Record<number, string | string[]>>): {
|
|
185
|
+
[k: string]: viem.HttpTransport<undefined, false> | viem.FallbackTransport<wagmi.Transport[]>;
|
|
186
|
+
};
|
|
187
|
+
declare const wagmiChains: [Chain, ...Chain[]];
|
|
188
|
+
|
|
189
|
+
interface VtOrderStatus {
|
|
190
|
+
status: string;
|
|
191
|
+
srcTxHash?: string;
|
|
192
|
+
dstTxHash?: string;
|
|
193
|
+
explorerUrl?: string;
|
|
194
|
+
}
|
|
195
|
+
interface PollOrderStatusOptions {
|
|
196
|
+
onStatusChange?: (status: VtOrderStatus) => void;
|
|
197
|
+
onComplete?: (status: VtOrderStatus) => void;
|
|
198
|
+
onError?: (error: Error) => void;
|
|
199
|
+
interval?: number;
|
|
200
|
+
timeout?: number;
|
|
201
|
+
txHash?: string;
|
|
202
|
+
signal?: AbortSignal;
|
|
203
|
+
}
|
|
204
|
+
declare function pollOrderStatus(quoteId: string, baseUrl: string, options?: PollOrderStatusOptions): Promise<VtOrderStatus>;
|
|
205
|
+
|
|
206
|
+
declare function useWalletState(): {
|
|
207
|
+
mounted: boolean;
|
|
208
|
+
address: `0x${string}` | undefined;
|
|
209
|
+
isConnected: boolean;
|
|
210
|
+
isLoading: boolean;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
interface VtTypedData {
|
|
214
|
+
domain: Record<string, unknown>;
|
|
215
|
+
types: Record<string, unknown>;
|
|
216
|
+
primaryType: string;
|
|
217
|
+
message: Record<string, unknown>;
|
|
218
|
+
}
|
|
219
|
+
interface VtUserStep {
|
|
220
|
+
type: 'TRANSACTION' | 'SIGNATURE';
|
|
221
|
+
chainKey?: string;
|
|
222
|
+
chainType?: string;
|
|
223
|
+
description?: string;
|
|
224
|
+
signerAddress?: string;
|
|
225
|
+
transaction?: {
|
|
226
|
+
encoded?: {
|
|
227
|
+
chainId?: number;
|
|
228
|
+
to?: string;
|
|
229
|
+
data?: string;
|
|
230
|
+
value?: string;
|
|
231
|
+
from?: string;
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
to?: string;
|
|
235
|
+
data?: string;
|
|
236
|
+
value?: string;
|
|
237
|
+
signature?: {
|
|
238
|
+
type: string;
|
|
239
|
+
typedData: VtTypedData;
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
interface VtRouteStep {
|
|
243
|
+
type: string;
|
|
244
|
+
srcChainKey?: string;
|
|
245
|
+
}
|
|
246
|
+
interface VtQuote {
|
|
247
|
+
id: string;
|
|
248
|
+
srcChainKey: string;
|
|
249
|
+
dstChainKey: string;
|
|
250
|
+
srcToken: {
|
|
251
|
+
address: string;
|
|
252
|
+
decimals: number;
|
|
253
|
+
symbol: string;
|
|
254
|
+
name?: string;
|
|
255
|
+
};
|
|
256
|
+
dstToken: {
|
|
257
|
+
address: string;
|
|
258
|
+
decimals: number;
|
|
259
|
+
symbol: string;
|
|
260
|
+
name?: string;
|
|
261
|
+
};
|
|
262
|
+
srcAmount: string;
|
|
263
|
+
dstAmount: string;
|
|
264
|
+
srcAmountUsd?: string;
|
|
265
|
+
dstAmountUsd?: string;
|
|
266
|
+
feeUsd?: string;
|
|
267
|
+
feePercent?: string;
|
|
268
|
+
routeSteps?: VtRouteStep[];
|
|
269
|
+
userSteps: VtUserStep[];
|
|
270
|
+
duration?: {
|
|
271
|
+
estimated?: string;
|
|
272
|
+
};
|
|
273
|
+
/** Synthetic timestamp set when we receive the quote */
|
|
274
|
+
_receivedAt: number;
|
|
275
|
+
}
|
|
276
|
+
type RfqStatus = 'idle' | 'polling' | 'fresh' | 'stale' | 'refreshing';
|
|
277
|
+
type InputState = 'idle' | 'typing' | 'settled';
|
|
278
|
+
interface PollingParams {
|
|
279
|
+
inputToken: Asset;
|
|
280
|
+
outputToken: Asset;
|
|
281
|
+
inputAmount: string;
|
|
282
|
+
setOutputAmount?: (amount: number | null) => void;
|
|
283
|
+
}
|
|
284
|
+
interface InputChangeParams {
|
|
285
|
+
amount: number | null;
|
|
286
|
+
inputToken: Asset;
|
|
287
|
+
outputToken: Asset;
|
|
288
|
+
setOutputAmount: (amount: number | null) => void;
|
|
289
|
+
}
|
|
290
|
+
interface RfqContextType {
|
|
291
|
+
status: RfqStatus;
|
|
292
|
+
inputState: InputState;
|
|
293
|
+
rfqQuote: VtQuote | null;
|
|
294
|
+
error: string | null;
|
|
295
|
+
liquidityError: boolean;
|
|
296
|
+
routingError: boolean;
|
|
297
|
+
sizeCapError: boolean;
|
|
298
|
+
ensureForParams: (params: PollingParams) => void;
|
|
299
|
+
stop: () => void;
|
|
300
|
+
refresh: () => void;
|
|
301
|
+
clear: () => void;
|
|
302
|
+
handleInputChange: (params: InputChangeParams) => void;
|
|
303
|
+
}
|
|
304
|
+
interface RfqProviderProps {
|
|
305
|
+
children: React.ReactNode;
|
|
306
|
+
recipient?: string | null;
|
|
307
|
+
}
|
|
308
|
+
declare const RfqProvider: React.FC<RfqProviderProps>;
|
|
309
|
+
declare const useRfq: () => RfqContextType;
|
|
310
|
+
|
|
311
|
+
interface SwapFormProviderProps {
|
|
312
|
+
children: ReactNode;
|
|
313
|
+
defaultBaseToken?: {
|
|
314
|
+
chainId: number;
|
|
315
|
+
address: string;
|
|
316
|
+
};
|
|
317
|
+
defaultQuoteToken?: {
|
|
318
|
+
chainId: number;
|
|
319
|
+
address: string;
|
|
320
|
+
};
|
|
321
|
+
onBaseTokenChange?: (token: Asset) => void;
|
|
322
|
+
onQuoteTokenChange?: (token: Asset) => void;
|
|
323
|
+
}
|
|
324
|
+
declare const SwapFormProvider: ({ children, defaultBaseToken, defaultQuoteToken, onBaseTokenChange, onQuoteTokenChange }: SwapFormProviderProps) => react_jsx_runtime.JSX.Element;
|
|
325
|
+
declare const useSwapFormContext: () => {
|
|
326
|
+
baseToken: Asset | null;
|
|
327
|
+
baseAmount: number | null;
|
|
328
|
+
quoteToken: Asset | null;
|
|
329
|
+
quoteAmount: number | null;
|
|
330
|
+
isBaseGasToken: boolean;
|
|
331
|
+
isQuoteGasToken: boolean;
|
|
332
|
+
isWrappingPair: boolean;
|
|
333
|
+
isUnwrappingPair: boolean;
|
|
334
|
+
baseBalance: {
|
|
335
|
+
raw: string;
|
|
336
|
+
formatted: string;
|
|
337
|
+
};
|
|
338
|
+
quoteBalance: {
|
|
339
|
+
raw: string;
|
|
340
|
+
formatted: string;
|
|
341
|
+
};
|
|
342
|
+
baseAmountRaw: string | null;
|
|
343
|
+
quoteAmountRaw: string | null;
|
|
344
|
+
isBaseBalanceLoading: boolean;
|
|
345
|
+
isQuoteBalanceLoading: boolean;
|
|
346
|
+
isRegistryLoading: boolean;
|
|
347
|
+
setBaseToken: (asset: Asset) => Promise<void>;
|
|
348
|
+
setQuoteToken: (asset: Asset) => Promise<void>;
|
|
349
|
+
setBaseAmount: (value: number | null) => void;
|
|
350
|
+
setQuoteAmount: (value: number | null) => void;
|
|
351
|
+
swapTokens: () => void;
|
|
352
|
+
clearForm: () => void;
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
type ToastStatus = 'pending' | 'received' | 'completed' | 'failed' | 'cancelled';
|
|
356
|
+
type WidgetView = 'swap' | 'wallet' | 'baseSelection' | 'quoteSelection' | 'baseChainSelection' | 'quoteChainSelection';
|
|
357
|
+
type TransitionType = 'navigation' | 'tokenSelection' | 'chainSelection';
|
|
358
|
+
interface WidgetSwapUIState {
|
|
359
|
+
view: WidgetView;
|
|
360
|
+
isTransitioning: boolean;
|
|
361
|
+
transitionType: TransitionType;
|
|
362
|
+
selectedChainFilter: {
|
|
363
|
+
chainId: SupportedChainId;
|
|
364
|
+
side: 'base' | 'quote';
|
|
365
|
+
} | null;
|
|
366
|
+
hoveredChainName: string | null;
|
|
367
|
+
isRecipientInputOpen: boolean;
|
|
368
|
+
recipient: string | null;
|
|
369
|
+
baseAmount: number | null;
|
|
370
|
+
quoteAmount: number | null;
|
|
371
|
+
hasAllowanceError: boolean;
|
|
372
|
+
isTrackingTx: boolean;
|
|
373
|
+
trackingOrderHash: string | null;
|
|
374
|
+
txStatus: ToastStatus;
|
|
375
|
+
walletTab: 'wallet' | 'activity';
|
|
376
|
+
assetSelectionSearch: string;
|
|
377
|
+
assetSelectionChain: SupportedChainId | 'all';
|
|
378
|
+
assetSelectionCategory: TokenSelectCategory;
|
|
379
|
+
assetSelectionAddressInput: string;
|
|
380
|
+
recentChainIds: SupportedChainId[];
|
|
381
|
+
setView: (view: WidgetView) => void;
|
|
382
|
+
setWalletTab: (tab: 'wallet' | 'activity') => void;
|
|
383
|
+
setIsTransitioning: (isTransitioning: boolean) => void;
|
|
384
|
+
transitionToView: (view: WidgetView, type?: TransitionType) => void;
|
|
385
|
+
setChainFilter: (filter: {
|
|
386
|
+
chainId: SupportedChainId;
|
|
387
|
+
side: 'base' | 'quote';
|
|
388
|
+
} | null) => void;
|
|
389
|
+
setHoveredChainName: (name: string | null) => void;
|
|
390
|
+
toggleRecipientInput: () => void;
|
|
391
|
+
setRecipient: (recipient: string | null) => void;
|
|
392
|
+
setHasAllowanceError: (hasError: boolean) => void;
|
|
393
|
+
setBaseAmount: (amount: number | null) => void;
|
|
394
|
+
setQuoteAmount: (amount: number | null) => void;
|
|
395
|
+
clearAmounts: () => void;
|
|
396
|
+
setIsTrackingTx: (isTracking: boolean) => void;
|
|
397
|
+
setTrackingOrderHash: (orderHash: string | null) => void;
|
|
398
|
+
setTxStatus: (status: ToastStatus) => void;
|
|
399
|
+
startTracking: (orderHash: string) => void;
|
|
400
|
+
stopTracking: () => void;
|
|
401
|
+
setAssetSelectionSearch: (query: string) => void;
|
|
402
|
+
setAssetSelectionChain: (chain: SupportedChainId | 'all') => void;
|
|
403
|
+
setAssetSelectionCategory: (category: TokenSelectCategory) => void;
|
|
404
|
+
setAssetSelectionAddressInput: (input: string) => void;
|
|
405
|
+
pushRecentChain: (chainId: SupportedChainId) => void;
|
|
406
|
+
resetAssetSelection: () => void;
|
|
407
|
+
resetUI: () => void;
|
|
408
|
+
}
|
|
409
|
+
declare const useWidgetSwapUIStore: zustand.UseBoundStore<zustand.StoreApi<WidgetSwapUIState>>;
|
|
410
|
+
|
|
411
|
+
interface TokenSelectionState {
|
|
412
|
+
baseToken: Asset | null;
|
|
413
|
+
quoteToken: Asset | null;
|
|
414
|
+
setBaseTokenDirect: (token: Asset | null) => void;
|
|
415
|
+
setQuoteTokenDirect: (token: Asset | null) => void;
|
|
416
|
+
swapTokensDirect: () => void;
|
|
417
|
+
}
|
|
418
|
+
declare const useTokenSelectionStore: zustand.UseBoundStore<zustand.StoreApi<TokenSelectionState>>;
|
|
419
|
+
interface UseTokenSelectionOptions {
|
|
420
|
+
defaultBaseToken?: {
|
|
421
|
+
chainId: number;
|
|
422
|
+
address: string;
|
|
423
|
+
};
|
|
424
|
+
defaultQuoteToken?: {
|
|
425
|
+
chainId: number;
|
|
426
|
+
address: string;
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
declare function useTokenSelection(options?: UseTokenSelectionOptions): {
|
|
430
|
+
baseToken: Asset | null;
|
|
431
|
+
quoteToken: Asset | null;
|
|
432
|
+
setBaseToken: (token: Asset | null) => void;
|
|
433
|
+
setQuoteToken: (token: Asset | null) => void;
|
|
434
|
+
swapTokens: () => void;
|
|
435
|
+
isLoading: boolean;
|
|
436
|
+
};
|
|
437
|
+
|
|
438
|
+
declare const useSwapForm: (defaultBaseToken?: {
|
|
439
|
+
chainId: number;
|
|
440
|
+
address: string;
|
|
441
|
+
}, defaultQuoteToken?: {
|
|
442
|
+
chainId: number;
|
|
443
|
+
address: string;
|
|
444
|
+
}, onBaseTokenChange?: (token: Asset) => void, onQuoteTokenChange?: (token: Asset) => void) => {
|
|
445
|
+
baseToken: Asset | null;
|
|
446
|
+
baseAmount: number | null;
|
|
447
|
+
quoteToken: Asset | null;
|
|
448
|
+
quoteAmount: number | null;
|
|
449
|
+
isBaseGasToken: boolean;
|
|
450
|
+
isQuoteGasToken: boolean;
|
|
451
|
+
isWrappingPair: boolean;
|
|
452
|
+
isUnwrappingPair: boolean;
|
|
453
|
+
baseBalance: {
|
|
454
|
+
raw: string;
|
|
455
|
+
formatted: string;
|
|
456
|
+
};
|
|
457
|
+
quoteBalance: {
|
|
458
|
+
raw: string;
|
|
459
|
+
formatted: string;
|
|
460
|
+
};
|
|
461
|
+
baseAmountRaw: string | null;
|
|
462
|
+
quoteAmountRaw: string | null;
|
|
463
|
+
isBaseBalanceLoading: boolean;
|
|
464
|
+
isQuoteBalanceLoading: boolean;
|
|
465
|
+
isRegistryLoading: boolean;
|
|
466
|
+
setBaseToken: (asset: Asset) => Promise<void>;
|
|
467
|
+
setQuoteToken: (asset: Asset) => Promise<void>;
|
|
468
|
+
setBaseAmount: (value: number | null) => void;
|
|
469
|
+
setQuoteAmount: (value: number | null) => void;
|
|
470
|
+
swapTokens: () => void;
|
|
471
|
+
clearForm: () => void;
|
|
472
|
+
};
|
|
473
|
+
|
|
474
|
+
interface OrderMetadata {
|
|
475
|
+
baseToken?: Asset;
|
|
476
|
+
quoteToken?: Asset;
|
|
477
|
+
}
|
|
478
|
+
declare const useOrderStatusPolling: (onStatusUpdate?: (quoteId: string, status: ToastStatus) => void) => {
|
|
479
|
+
startPolling: (quoteId: string, metadata?: OrderMetadata) => void;
|
|
480
|
+
stopPolling: (quoteId: string) => void;
|
|
481
|
+
stopAllPolling: () => void;
|
|
482
|
+
isPolling: (quoteId: string) => boolean;
|
|
483
|
+
};
|
|
484
|
+
|
|
485
|
+
interface BalanceUpdateEvent {
|
|
486
|
+
type: 'swap' | 'wrap' | 'unwrap';
|
|
487
|
+
tokens: Array<{
|
|
488
|
+
asset: Asset;
|
|
489
|
+
userAddress: string;
|
|
490
|
+
}>;
|
|
491
|
+
}
|
|
492
|
+
declare const useBalanceEventListener: () => {
|
|
493
|
+
triggerBalanceUpdate: (event: BalanceUpdateEvent) => void;
|
|
494
|
+
};
|
|
495
|
+
declare const useEmitBalanceEvent: () => (event: BalanceUpdateEvent) => void;
|
|
496
|
+
declare const useBalanceEventSubscription: () => void;
|
|
497
|
+
|
|
498
|
+
declare const useTokensForChain: (chainId: number) => {
|
|
499
|
+
tokens: Asset[];
|
|
500
|
+
isLoading: boolean;
|
|
501
|
+
error: Error | null;
|
|
502
|
+
};
|
|
503
|
+
declare const useIsTokenSupported: (address: string, chainId: number) => boolean;
|
|
504
|
+
declare const useTokenByAddress: (address: string, chainId: number) => Asset | undefined;
|
|
505
|
+
|
|
506
|
+
type SwapWalletClient = WalletClient & {
|
|
507
|
+
switchChain?: (args: {
|
|
508
|
+
id: number;
|
|
509
|
+
}) => Promise<void>;
|
|
510
|
+
send?: (method: string, params: unknown[]) => Promise<unknown>;
|
|
511
|
+
getChainId?: () => number | Promise<number>;
|
|
512
|
+
};
|
|
513
|
+
declare const ChainSwitch: (walletClient: SwapWalletClient, requiredChainId: number) => Promise<boolean>;
|
|
514
|
+
interface ISignSwapParams {
|
|
515
|
+
quote: VtQuote;
|
|
516
|
+
signatureStep: VtUserStep;
|
|
517
|
+
userAddress: string;
|
|
518
|
+
walletClient: SwapWalletClient;
|
|
519
|
+
}
|
|
520
|
+
declare const SignSwap: (params: ISignSwapParams) => Promise<{
|
|
521
|
+
quoteId: string;
|
|
522
|
+
signature: string;
|
|
523
|
+
}>;
|
|
524
|
+
|
|
525
|
+
declare const isQuoteFresh: (createdAt: string | number) => boolean;
|
|
526
|
+
declare const canSubmitOrder: (quoteId: string, createdAt: string | number) => {
|
|
527
|
+
canSubmit: boolean;
|
|
528
|
+
reason?: string;
|
|
529
|
+
};
|
|
530
|
+
declare const markOrderAsSubmitted: (quoteId: string, createdAt: string | number) => void;
|
|
531
|
+
declare const cleanupOldSubmissions: () => void;
|
|
532
|
+
|
|
533
|
+
interface WrapTokenParams {
|
|
534
|
+
chainId: SupportedChainId;
|
|
535
|
+
accountAddress: `0x${string}`;
|
|
536
|
+
amountRaw: bigint;
|
|
537
|
+
writeContractAsync: ReturnType<typeof useWriteContract>['writeContractAsync'];
|
|
538
|
+
}
|
|
539
|
+
declare function useWrapToken(): _tanstack_react_query.UseMutationResult<{
|
|
540
|
+
success: boolean;
|
|
541
|
+
hash: `0x${string}`;
|
|
542
|
+
}, Error, WrapTokenParams, unknown>;
|
|
543
|
+
|
|
544
|
+
interface UnwrapTokenParams {
|
|
545
|
+
chainId: SupportedChainId;
|
|
546
|
+
accountAddress: `0x${string}`;
|
|
547
|
+
amountRaw: bigint;
|
|
548
|
+
writeContractAsync: ReturnType<typeof useWriteContract>['writeContractAsync'];
|
|
549
|
+
}
|
|
550
|
+
declare function useUnwrapToken(): _tanstack_react_query.UseMutationResult<{
|
|
551
|
+
success: boolean;
|
|
552
|
+
hash: `0x${string}`;
|
|
553
|
+
}, Error, UnwrapTokenParams, unknown>;
|
|
554
|
+
|
|
555
|
+
export { type AoriSwapWidgetConfig, type Asset, ChainSwitch, ConnectButton, type EnrichedBalance, type PollOrderStatusOptions, type ReviewOrderStep, RfqProvider, SignSwap, type SupportedChainId, SwapFormProvider, SwapWidget, type SwapWidgetProps, type ToastStatus, type TokenRegistryAsset, type TransitionType, type WidgetTheme, WidgetThemeProvider, type WidgetView, buildTransports, canSubmitOrder, cleanupOldSubmissions, defaultDarkTheme, defaultLightTheme, isQuoteFresh, markOrderAsSubmitted, pollOrderStatus, themeToCSS, useBalanceEventListener, useBalanceEventSubscription, useEmitBalanceEvent, useIsTokenSupported, useOrderStatusPolling, useRfq, useSwapForm, useSwapFormContext, useTokenByAddress, useTokenSelection, useTokenSelectionStore, useTokensForChain, useTransactionRegistry, useUnwrapToken, useWalletModal, useWalletState, useWidgetSwapUIStore, useWidgetTheme, useWrapToken, wagmiChains };
|