@clawnch/clawncher-sdk 0.1.2 → 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.
- package/README.md +59 -0
- package/dist/analytics.d.ts +157 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +468 -0
- package/dist/analytics.js.map +1 -0
- package/dist/api-deployer.d.ts.map +1 -1
- package/dist/api-deployer.js +38 -35
- package/dist/api-deployer.js.map +1 -1
- package/dist/claimer.d.ts.map +1 -1
- package/dist/claimer.js +9 -7
- package/dist/claimer.js.map +1 -1
- package/dist/errors.d.ts +12 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +47 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/liquidity.d.ts +1 -1
- package/dist/liquidity.d.ts.map +1 -1
- package/dist/liquidity.js +5 -42
- package/dist/liquidity.js.map +1 -1
- package/dist/orders.d.ts +338 -0
- package/dist/orders.d.ts.map +1 -0
- package/dist/orders.js +611 -0
- package/dist/orders.js.map +1 -0
- package/dist/price.d.ts +95 -0
- package/dist/price.d.ts.map +1 -0
- package/dist/price.js +207 -0
- package/dist/price.js.map +1 -0
- package/dist/swap.d.ts.map +1 -1
- package/dist/swap.js +21 -19
- package/dist/swap.js.map +1 -1
- package/dist/trader.d.ts +188 -0
- package/dist/trader.d.ts.map +1 -0
- package/dist/trader.js +277 -0
- package/dist/trader.js.map +1 -0
- package/dist/watcher.d.ts +117 -2
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +147 -2
- package/dist/watcher.js.map +1 -1
- package/dist/wayfinder-types.d.ts +324 -0
- package/dist/wayfinder-types.d.ts.map +1 -0
- package/dist/wayfinder-types.js +30 -0
- package/dist/wayfinder-types.js.map +1 -0
- package/dist/wayfinder.d.ts +175 -0
- package/dist/wayfinder.d.ts.map +1 -0
- package/dist/wayfinder.js +638 -0
- package/dist/wayfinder.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wayfinder Paths SDK Types
|
|
3
|
+
*
|
|
4
|
+
* Types for cross-chain swaps, token resolution, multi-chain balances,
|
|
5
|
+
* and strategy execution via the Wayfinder Paths integration.
|
|
6
|
+
*/
|
|
7
|
+
export interface WayfinderConfig {
|
|
8
|
+
/** Wayfinder API key (X-API-KEY header) */
|
|
9
|
+
apiKey: string;
|
|
10
|
+
/** Wayfinder API base URL (default: https://strategies.wayfinder.ai/api/v1) */
|
|
11
|
+
apiUrl?: string;
|
|
12
|
+
/** Request timeout in milliseconds (default: 30000) */
|
|
13
|
+
timeout?: number;
|
|
14
|
+
/** Path to python3 binary (default: auto-detect) */
|
|
15
|
+
pythonPath?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PythonStatus {
|
|
18
|
+
/** Whether python3 is available on PATH */
|
|
19
|
+
available: boolean;
|
|
20
|
+
/** Python version string (e.g. "3.12.4") */
|
|
21
|
+
version?: string;
|
|
22
|
+
/** Whether wayfinder-paths pip package is installed */
|
|
23
|
+
wayfinderInstalled: boolean;
|
|
24
|
+
/** wayfinder-paths version if installed */
|
|
25
|
+
wayfinderVersion?: string;
|
|
26
|
+
/** Path to the python3 binary */
|
|
27
|
+
pythonPath?: string;
|
|
28
|
+
/** Path to the wayfinder CLI binary */
|
|
29
|
+
wayfinderCliPath?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface WayfinderTokenDetail {
|
|
32
|
+
/** Token name */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Token symbol */
|
|
35
|
+
symbol: string;
|
|
36
|
+
/** Contract address */
|
|
37
|
+
address: string;
|
|
38
|
+
/** Chain ID */
|
|
39
|
+
chainId: number;
|
|
40
|
+
/** Decimal places */
|
|
41
|
+
decimals: number;
|
|
42
|
+
/** CoinGecko ID (e.g. "usd-coin") */
|
|
43
|
+
coingeckoId?: string;
|
|
44
|
+
/** Logo URL */
|
|
45
|
+
logoUrl?: string;
|
|
46
|
+
/** Current price in USD */
|
|
47
|
+
priceUsd?: number;
|
|
48
|
+
/** 24h price change percentage */
|
|
49
|
+
priceChange24h?: number;
|
|
50
|
+
/** Market cap in USD */
|
|
51
|
+
marketCapUsd?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface WayfinderTokenSearchResult {
|
|
54
|
+
/** Token ID used in Wayfinder (e.g. "usd-coin-base") */
|
|
55
|
+
tokenId: string;
|
|
56
|
+
/** Token name */
|
|
57
|
+
name: string;
|
|
58
|
+
/** Token symbol */
|
|
59
|
+
symbol: string;
|
|
60
|
+
/** Contract address */
|
|
61
|
+
address: string;
|
|
62
|
+
/** Chain code (e.g. "base", "ethereum") */
|
|
63
|
+
chain: string;
|
|
64
|
+
/** Chain ID */
|
|
65
|
+
chainId: number;
|
|
66
|
+
/** Relevance score */
|
|
67
|
+
score?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface WayfinderQuoteParams {
|
|
70
|
+
/** Source token (contract address or token ID like "usd-coin") */
|
|
71
|
+
fromToken: string;
|
|
72
|
+
/** Destination token (contract address or token ID) */
|
|
73
|
+
toToken: string;
|
|
74
|
+
/** Source chain ID */
|
|
75
|
+
fromChain: number;
|
|
76
|
+
/** Destination chain ID */
|
|
77
|
+
toChain: number;
|
|
78
|
+
/** Sender wallet address */
|
|
79
|
+
fromWallet: string;
|
|
80
|
+
/** Amount in WEI / raw token units */
|
|
81
|
+
amount: string;
|
|
82
|
+
/** Slippage tolerance (e.g. 0.005 for 0.5%) */
|
|
83
|
+
slippage?: number;
|
|
84
|
+
}
|
|
85
|
+
export interface WayfinderFeeBreakdownItem {
|
|
86
|
+
name: string;
|
|
87
|
+
amount: string;
|
|
88
|
+
amountUsd: number;
|
|
89
|
+
token: string;
|
|
90
|
+
tokenChain: string;
|
|
91
|
+
}
|
|
92
|
+
export interface WayfinderFeeEstimate {
|
|
93
|
+
feeTotalUsd: number;
|
|
94
|
+
feeBreakdown: WayfinderFeeBreakdownItem[];
|
|
95
|
+
}
|
|
96
|
+
export interface WayfinderQuoteEntry {
|
|
97
|
+
/** Aggregator provider (e.g. "lifi", "squid") */
|
|
98
|
+
provider: string;
|
|
99
|
+
/** Output amount in raw units */
|
|
100
|
+
outputAmount: string;
|
|
101
|
+
/** Input amount in raw units */
|
|
102
|
+
inputAmount: string;
|
|
103
|
+
/** Gas estimate */
|
|
104
|
+
gasEstimate: number | null;
|
|
105
|
+
/** Error message if this provider failed */
|
|
106
|
+
error: string | null;
|
|
107
|
+
/** Input value in USD */
|
|
108
|
+
inputAmountUsd: number;
|
|
109
|
+
/** Output value in USD */
|
|
110
|
+
outputAmountUsd: number;
|
|
111
|
+
/** Fee breakdown */
|
|
112
|
+
feeEstimate: WayfinderFeeEstimate;
|
|
113
|
+
/** Transaction calldata (to, data, value, chainId) */
|
|
114
|
+
calldata: WayfinderCalldata | null;
|
|
115
|
+
/** Whether a wrap transaction is needed (native -> WETH) */
|
|
116
|
+
wrapTransaction: Record<string, unknown> | null;
|
|
117
|
+
/** Whether an unwrap transaction is needed (WETH -> native) */
|
|
118
|
+
unwrapTransaction: Record<string, unknown> | null;
|
|
119
|
+
/** Whether input is native token */
|
|
120
|
+
nativeInput: boolean;
|
|
121
|
+
/** Whether output is native token */
|
|
122
|
+
nativeOutput: boolean;
|
|
123
|
+
}
|
|
124
|
+
export interface WayfinderCalldata {
|
|
125
|
+
to: string;
|
|
126
|
+
data: string;
|
|
127
|
+
value: string;
|
|
128
|
+
chainId: number;
|
|
129
|
+
}
|
|
130
|
+
export interface WayfinderQuoteResponse {
|
|
131
|
+
/** All quote entries from different providers */
|
|
132
|
+
quotes: WayfinderQuoteEntry[];
|
|
133
|
+
/** Best quote selected by the aggregator */
|
|
134
|
+
bestQuote: WayfinderQuoteEntry | null;
|
|
135
|
+
/** Number of providers queried */
|
|
136
|
+
quoteCount: number;
|
|
137
|
+
}
|
|
138
|
+
export interface WayfinderTokenBalance {
|
|
139
|
+
/** Token name */
|
|
140
|
+
name: string;
|
|
141
|
+
/** Token symbol */
|
|
142
|
+
symbol: string;
|
|
143
|
+
/** Contract address */
|
|
144
|
+
address: string;
|
|
145
|
+
/** Chain ID */
|
|
146
|
+
chainId: number;
|
|
147
|
+
/** Chain name (e.g. "Base", "Ethereum") */
|
|
148
|
+
chainName: string;
|
|
149
|
+
/** Balance in raw units */
|
|
150
|
+
balance: string;
|
|
151
|
+
/** Balance formatted with decimals */
|
|
152
|
+
balanceFormatted: string;
|
|
153
|
+
/** Balance value in USD */
|
|
154
|
+
balanceUsd: number;
|
|
155
|
+
/** Token decimals */
|
|
156
|
+
decimals: number;
|
|
157
|
+
/** Logo URL */
|
|
158
|
+
logoUrl?: string;
|
|
159
|
+
/** Whether this is a spam token */
|
|
160
|
+
isSpam?: boolean;
|
|
161
|
+
}
|
|
162
|
+
export interface WayfinderBalancesResponse {
|
|
163
|
+
/** Wallet address */
|
|
164
|
+
address: string;
|
|
165
|
+
/** Total portfolio value in USD */
|
|
166
|
+
totalValueUsd: number;
|
|
167
|
+
/** Token balances across all chains */
|
|
168
|
+
tokens: WayfinderTokenBalance[];
|
|
169
|
+
}
|
|
170
|
+
export interface WayfinderActivityEntry {
|
|
171
|
+
/** Transaction hash */
|
|
172
|
+
txHash: string;
|
|
173
|
+
/** Chain ID */
|
|
174
|
+
chainId: number;
|
|
175
|
+
/** Block number */
|
|
176
|
+
blockNumber: number;
|
|
177
|
+
/** Timestamp (ISO string) */
|
|
178
|
+
timestamp: string;
|
|
179
|
+
/** Transaction type (e.g. "swap", "transfer", "approve") */
|
|
180
|
+
type: string;
|
|
181
|
+
/** From address */
|
|
182
|
+
from: string;
|
|
183
|
+
/** To address */
|
|
184
|
+
to: string;
|
|
185
|
+
/** Human-readable summary */
|
|
186
|
+
summary: string;
|
|
187
|
+
/** Value in USD */
|
|
188
|
+
valueUsd?: number;
|
|
189
|
+
}
|
|
190
|
+
export interface WayfinderActivityResponse {
|
|
191
|
+
address: string;
|
|
192
|
+
activities: WayfinderActivityEntry[];
|
|
193
|
+
total: number;
|
|
194
|
+
}
|
|
195
|
+
export interface WayfinderPool {
|
|
196
|
+
/** Pool ID */
|
|
197
|
+
id: string;
|
|
198
|
+
/** Protocol (e.g. "moonwell", "aave", "morpho") */
|
|
199
|
+
protocol: string;
|
|
200
|
+
/** Chain ID */
|
|
201
|
+
chainId: number;
|
|
202
|
+
/** Pool address */
|
|
203
|
+
address: string;
|
|
204
|
+
/** Underlying token symbol */
|
|
205
|
+
tokenSymbol: string;
|
|
206
|
+
/** Underlying token address */
|
|
207
|
+
tokenAddress: string;
|
|
208
|
+
/** Supply APY */
|
|
209
|
+
supplyApy: number;
|
|
210
|
+
/** Borrow APY */
|
|
211
|
+
borrowApy: number;
|
|
212
|
+
/** Total supplied in USD */
|
|
213
|
+
totalSupplyUsd: number;
|
|
214
|
+
/** Total borrowed in USD */
|
|
215
|
+
totalBorrowedUsd: number;
|
|
216
|
+
/** Available liquidity in USD */
|
|
217
|
+
availableLiquidityUsd: number;
|
|
218
|
+
}
|
|
219
|
+
export interface WayfinderFundingEntry {
|
|
220
|
+
coin: string;
|
|
221
|
+
fundingRate: number;
|
|
222
|
+
timestamp: string;
|
|
223
|
+
}
|
|
224
|
+
export interface WayfinderCandle {
|
|
225
|
+
open: number;
|
|
226
|
+
high: number;
|
|
227
|
+
low: number;
|
|
228
|
+
close: number;
|
|
229
|
+
volume: number;
|
|
230
|
+
timestamp: string;
|
|
231
|
+
}
|
|
232
|
+
export interface WayfinderHyperLendMarket {
|
|
233
|
+
token: string;
|
|
234
|
+
tokenAddress: string;
|
|
235
|
+
supplyApy: number;
|
|
236
|
+
borrowApy: number;
|
|
237
|
+
totalSupply: string;
|
|
238
|
+
totalBorrow: string;
|
|
239
|
+
availableLiquidity: string;
|
|
240
|
+
ltv: number;
|
|
241
|
+
}
|
|
242
|
+
export interface WayfinderStrategyInfo {
|
|
243
|
+
name: string;
|
|
244
|
+
description: string;
|
|
245
|
+
chains: number[];
|
|
246
|
+
riskLevel: string;
|
|
247
|
+
adapters: string[];
|
|
248
|
+
}
|
|
249
|
+
export interface WayfinderStrategyStatus {
|
|
250
|
+
portfolioValue: number;
|
|
251
|
+
netDeposit: number;
|
|
252
|
+
strategyStatus: unknown;
|
|
253
|
+
gasAvailable: number;
|
|
254
|
+
gassedUp: boolean;
|
|
255
|
+
}
|
|
256
|
+
export type WayfinderStrategyAction = 'status' | 'deposit' | 'update' | 'exit' | 'withdraw' | 'analyze' | 'quote';
|
|
257
|
+
export interface WayfinderStrategyParams {
|
|
258
|
+
/** Strategy name (e.g. "basis_trading_strategy") */
|
|
259
|
+
strategy: string;
|
|
260
|
+
/** Action to perform */
|
|
261
|
+
action: WayfinderStrategyAction;
|
|
262
|
+
/** Main token amount for deposit */
|
|
263
|
+
mainTokenAmount?: number;
|
|
264
|
+
/** Gas token amount for deposit */
|
|
265
|
+
gasTokenAmount?: number;
|
|
266
|
+
/** Wallet label override */
|
|
267
|
+
walletLabel?: string;
|
|
268
|
+
/** Run on Gorlami fork (dry-run mode) */
|
|
269
|
+
dryRun?: boolean;
|
|
270
|
+
/** Additional config overrides as JSON string */
|
|
271
|
+
config?: string;
|
|
272
|
+
}
|
|
273
|
+
export interface WayfinderStrategyResult {
|
|
274
|
+
success: boolean;
|
|
275
|
+
action: string;
|
|
276
|
+
output: unknown;
|
|
277
|
+
error?: string;
|
|
278
|
+
}
|
|
279
|
+
export type WayfinderExecuteKind = 'swap' | 'send' | 'hyperliquid_deposit';
|
|
280
|
+
export interface WayfinderExecuteParams {
|
|
281
|
+
/** Operation kind */
|
|
282
|
+
kind: WayfinderExecuteKind;
|
|
283
|
+
/** Wallet label (must match a wallet in wayfinder config.json) */
|
|
284
|
+
walletLabel: string;
|
|
285
|
+
/** Amount in human-readable format */
|
|
286
|
+
amount: string;
|
|
287
|
+
/** Recipient address (for send) */
|
|
288
|
+
recipient?: string;
|
|
289
|
+
/** Source token ID (for swap) */
|
|
290
|
+
fromToken?: string;
|
|
291
|
+
/** Destination token ID (for swap) */
|
|
292
|
+
toToken?: string;
|
|
293
|
+
/** Slippage in bps (default: 50 = 0.5%) */
|
|
294
|
+
slippageBps?: number;
|
|
295
|
+
/** Deadline in seconds (default: 300) */
|
|
296
|
+
deadlineSeconds?: number;
|
|
297
|
+
/** Token to send (for send kind) */
|
|
298
|
+
token?: string;
|
|
299
|
+
/** Chain ID override */
|
|
300
|
+
chainId?: number;
|
|
301
|
+
}
|
|
302
|
+
export interface WayfinderExecuteEffect {
|
|
303
|
+
txnHash: string;
|
|
304
|
+
chainId: number;
|
|
305
|
+
explorerUrl: string;
|
|
306
|
+
}
|
|
307
|
+
export interface WayfinderExecuteResult {
|
|
308
|
+
ok: boolean;
|
|
309
|
+
result?: {
|
|
310
|
+
kind: string;
|
|
311
|
+
sender: string;
|
|
312
|
+
recipient: string;
|
|
313
|
+
preview: string;
|
|
314
|
+
status: string;
|
|
315
|
+
effects: Record<string, WayfinderExecuteEffect>;
|
|
316
|
+
raw?: unknown;
|
|
317
|
+
};
|
|
318
|
+
error?: string;
|
|
319
|
+
}
|
|
320
|
+
/** Chains supported by the Wayfinder BRAP aggregator */
|
|
321
|
+
export declare const WAYFINDER_CHAINS: Record<string, number>;
|
|
322
|
+
/** Reverse lookup: chain ID to name */
|
|
323
|
+
export declare const WAYFINDER_CHAIN_NAMES: Record<number, string>;
|
|
324
|
+
//# sourceMappingURL=wayfinder-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wayfinder-types.d.ts","sourceRoot":"","sources":["../src/wayfinder-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wayfinder Paths SDK Types
|
|
3
|
+
*
|
|
4
|
+
* Types for cross-chain swaps, token resolution, multi-chain balances,
|
|
5
|
+
* and strategy execution via the Wayfinder Paths integration.
|
|
6
|
+
*/
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Supported chains
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/** Chains supported by the Wayfinder BRAP aggregator */
|
|
11
|
+
export const WAYFINDER_CHAINS = {
|
|
12
|
+
ethereum: 1,
|
|
13
|
+
base: 8453,
|
|
14
|
+
arbitrum: 42161,
|
|
15
|
+
polygon: 137,
|
|
16
|
+
bsc: 56,
|
|
17
|
+
avalanche: 43114,
|
|
18
|
+
hyperEvm: 999,
|
|
19
|
+
};
|
|
20
|
+
/** Reverse lookup: chain ID to name */
|
|
21
|
+
export const WAYFINDER_CHAIN_NAMES = {
|
|
22
|
+
1: 'Ethereum',
|
|
23
|
+
8453: 'Base',
|
|
24
|
+
42161: 'Arbitrum',
|
|
25
|
+
137: 'Polygon',
|
|
26
|
+
56: 'BSC',
|
|
27
|
+
43114: 'Avalanche',
|
|
28
|
+
999: 'HyperEVM',
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=wayfinder-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wayfinder-types.js","sourceRoot":"","sources":["../src/wayfinder-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyYH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,wDAAwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,GAAG;IACZ,GAAG,EAAE,EAAE;IACP,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,CAAC,EAAE,UAAU;IACb,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,SAAS;IACd,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,WAAW;IAClB,GAAG,EAAE,UAAU;CAChB,CAAC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WayfinderClient - Cross-chain DeFi via Wayfinder Paths
|
|
3
|
+
*
|
|
4
|
+
* Two-tier integration:
|
|
5
|
+
* - Tier 1 (REST): Swap quotes, token resolution, balances, pool data.
|
|
6
|
+
* Always available — calls the Wayfinder API directly.
|
|
7
|
+
* - Tier 2 (CLI bridge): Execute swaps, run strategies, Hyperliquid trading.
|
|
8
|
+
* Requires Python 3.12+ and the wayfinder-paths pip package installed locally.
|
|
9
|
+
* Shells out to the `wayfinder` CLI for operations that need local tx signing.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { WayfinderClient } from '@clawnch/clawncher-sdk';
|
|
14
|
+
*
|
|
15
|
+
* const wf = new WayfinderClient({
|
|
16
|
+
* apiKey: 'wk_...',
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Tier 1: Get a cross-chain swap quote (no Python needed)
|
|
20
|
+
* const quote = await wf.quoteSwap({
|
|
21
|
+
* fromToken: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC on Ethereum
|
|
22
|
+
* toToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
|
|
23
|
+
* fromChain: 1,
|
|
24
|
+
* toChain: 8453,
|
|
25
|
+
* fromWallet: '0x...',
|
|
26
|
+
* amount: '5000000', // 5 USDC in raw units (6 decimals)
|
|
27
|
+
* });
|
|
28
|
+
* console.log('Best route:', quote.bestQuote?.provider);
|
|
29
|
+
*
|
|
30
|
+
* // Tier 1: Get multi-chain balances
|
|
31
|
+
* const balances = await wf.getBalances('0x...');
|
|
32
|
+
* console.log('Total value:', balances.totalValueUsd);
|
|
33
|
+
*
|
|
34
|
+
* // Tier 2: Execute a swap (requires Python + wayfinder-paths)
|
|
35
|
+
* const status = await wf.checkPython();
|
|
36
|
+
* if (status.wayfinderInstalled) {
|
|
37
|
+
* const result = await wf.executeSwap({
|
|
38
|
+
* kind: 'swap',
|
|
39
|
+
* walletLabel: 'main',
|
|
40
|
+
* amount: '5',
|
|
41
|
+
* fromToken: 'usd-coin',
|
|
42
|
+
* toToken: 'ethereum',
|
|
43
|
+
* });
|
|
44
|
+
* console.log('Tx:', result.result?.effects);
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
import type { WayfinderConfig, PythonStatus, WayfinderTokenDetail, WayfinderTokenSearchResult, WayfinderQuoteParams, WayfinderQuoteResponse, WayfinderBalancesResponse, WayfinderActivityResponse, WayfinderPool, WayfinderFundingEntry, WayfinderCandle, WayfinderHyperLendMarket, WayfinderStrategyInfo, WayfinderStrategyStatus, WayfinderStrategyParams, WayfinderStrategyResult, WayfinderExecuteParams, WayfinderExecuteResult } from './wayfinder-types.js';
|
|
49
|
+
export declare class WayfinderError extends Error {
|
|
50
|
+
readonly code: string;
|
|
51
|
+
readonly details?: unknown | undefined;
|
|
52
|
+
constructor(message: string, code: string, details?: unknown | undefined);
|
|
53
|
+
}
|
|
54
|
+
export declare class WayfinderClient {
|
|
55
|
+
private readonly apiKey;
|
|
56
|
+
private readonly apiUrl;
|
|
57
|
+
private readonly timeout;
|
|
58
|
+
private readonly pythonPathOverride?;
|
|
59
|
+
private pythonStatusCache;
|
|
60
|
+
constructor(config: WayfinderConfig);
|
|
61
|
+
/**
|
|
62
|
+
* Check whether Python 3 and wayfinder-paths are available.
|
|
63
|
+
* Results are cached after the first call.
|
|
64
|
+
*/
|
|
65
|
+
checkPython(): Promise<PythonStatus>;
|
|
66
|
+
/**
|
|
67
|
+
* Clear the cached Python status (e.g. after installing wayfinder-paths).
|
|
68
|
+
*/
|
|
69
|
+
clearPythonCache(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Resolve a token by name, symbol, address, or CoinGecko ID.
|
|
72
|
+
*
|
|
73
|
+
* @param query - Token identifier (e.g. "USDC", "0xA0b8...", "usd-coin")
|
|
74
|
+
* @param chainId - Optional chain ID filter
|
|
75
|
+
* @param marketData - Include market data (price, market cap)
|
|
76
|
+
*/
|
|
77
|
+
resolveToken(query: string, chainId?: number, marketData?: boolean): Promise<WayfinderTokenDetail>;
|
|
78
|
+
/**
|
|
79
|
+
* Fuzzy search for tokens across chains.
|
|
80
|
+
*
|
|
81
|
+
* @param query - Search term
|
|
82
|
+
* @param chain - Chain code (e.g. "base", "ethereum")
|
|
83
|
+
*/
|
|
84
|
+
searchTokens(query: string, chain: string): Promise<WayfinderTokenSearchResult[]>;
|
|
85
|
+
/**
|
|
86
|
+
* Get the gas token for a chain.
|
|
87
|
+
*
|
|
88
|
+
* @param chain - Chain code (e.g. "base", "ethereum")
|
|
89
|
+
*/
|
|
90
|
+
getGasToken(chain: string): Promise<WayfinderTokenDetail>;
|
|
91
|
+
/**
|
|
92
|
+
* Get a cross-chain swap quote via the BRAP aggregator.
|
|
93
|
+
* Compares routes from multiple providers (LiFi, Squid, etc.)
|
|
94
|
+
* and returns the best option.
|
|
95
|
+
*
|
|
96
|
+
* @param params - Quote parameters (tokens, chains, amount in WEI)
|
|
97
|
+
*/
|
|
98
|
+
quoteSwap(params: WayfinderQuoteParams): Promise<WayfinderQuoteResponse>;
|
|
99
|
+
/**
|
|
100
|
+
* Get enriched multi-chain wallet balances.
|
|
101
|
+
*
|
|
102
|
+
* @param walletAddress - Ethereum wallet address
|
|
103
|
+
* @param excludeSpam - Exclude spam tokens (default: true)
|
|
104
|
+
*/
|
|
105
|
+
getBalances(walletAddress: string, excludeSpam?: boolean): Promise<WayfinderBalancesResponse>;
|
|
106
|
+
/**
|
|
107
|
+
* Get wallet transaction activity.
|
|
108
|
+
*
|
|
109
|
+
* @param walletAddress - Ethereum wallet address
|
|
110
|
+
* @param limit - Max results (default: 20)
|
|
111
|
+
* @param offset - Pagination offset
|
|
112
|
+
*/
|
|
113
|
+
getWalletActivity(walletAddress: string, limit?: number, offset?: number): Promise<WayfinderActivityResponse>;
|
|
114
|
+
/**
|
|
115
|
+
* Get DeFi pool data (Moonwell, Aave, Morpho, etc.)
|
|
116
|
+
*
|
|
117
|
+
* @param chainId - Optional chain ID filter
|
|
118
|
+
* @param protocol - Optional protocol filter (e.g. "moonwell", "aave")
|
|
119
|
+
*/
|
|
120
|
+
getPools(chainId?: number, protocol?: string): Promise<WayfinderPool[]>;
|
|
121
|
+
/**
|
|
122
|
+
* Get Hyperliquid funding rate history.
|
|
123
|
+
*
|
|
124
|
+
* @param coin - Coin symbol (e.g. "BTC", "ETH")
|
|
125
|
+
* @param startMs - Start timestamp in milliseconds
|
|
126
|
+
* @param endMs - End timestamp in milliseconds
|
|
127
|
+
*/
|
|
128
|
+
getHyperliquidFunding(coin: string, startMs?: number, endMs?: number): Promise<WayfinderFundingEntry[]>;
|
|
129
|
+
/**
|
|
130
|
+
* Get Hyperliquid OHLCV candle data.
|
|
131
|
+
*
|
|
132
|
+
* @param coin - Coin symbol
|
|
133
|
+
* @param interval - Candle interval (e.g. "1h", "4h", "1d")
|
|
134
|
+
* @param startMs - Start timestamp in milliseconds
|
|
135
|
+
* @param endMs - End timestamp in milliseconds
|
|
136
|
+
*/
|
|
137
|
+
getHyperliquidCandles(coin: string, interval: string, startMs?: number, endMs?: number): Promise<WayfinderCandle[]>;
|
|
138
|
+
/**
|
|
139
|
+
* Get HyperLend stable market data.
|
|
140
|
+
*/
|
|
141
|
+
getHyperLendMarkets(): Promise<WayfinderHyperLendMarket[]>;
|
|
142
|
+
/**
|
|
143
|
+
* Execute a swap, send, or Hyperliquid deposit via the Wayfinder CLI.
|
|
144
|
+
* Signs transactions locally using wallets from wayfinder config.json.
|
|
145
|
+
*
|
|
146
|
+
* Requires Python 3.12+ and wayfinder-paths installed.
|
|
147
|
+
*/
|
|
148
|
+
executeSwap(params: WayfinderExecuteParams): Promise<WayfinderExecuteResult>;
|
|
149
|
+
/**
|
|
150
|
+
* Run a Wayfinder strategy action (status, deposit, update, exit, etc.)
|
|
151
|
+
*
|
|
152
|
+
* Requires Python 3.12+ and wayfinder-paths installed.
|
|
153
|
+
*/
|
|
154
|
+
runStrategy(params: WayfinderStrategyParams): Promise<WayfinderStrategyResult>;
|
|
155
|
+
/**
|
|
156
|
+
* List available Wayfinder strategies.
|
|
157
|
+
*
|
|
158
|
+
* Requires Python 3.12+ and wayfinder-paths installed.
|
|
159
|
+
*/
|
|
160
|
+
listStrategies(): Promise<WayfinderStrategyInfo[]>;
|
|
161
|
+
/**
|
|
162
|
+
* Get the status of a specific strategy.
|
|
163
|
+
*
|
|
164
|
+
* Requires Python 3.12+ and wayfinder-paths installed.
|
|
165
|
+
*/
|
|
166
|
+
getStrategyStatus(name: string): Promise<WayfinderStrategyStatus>;
|
|
167
|
+
private restRequest;
|
|
168
|
+
private cliExec;
|
|
169
|
+
private parseTokenDetail;
|
|
170
|
+
private parseFuzzySearchResults;
|
|
171
|
+
private parseBRAPQuoteResponse;
|
|
172
|
+
private parseBalancesResponse;
|
|
173
|
+
private parseStrategyList;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=wayfinder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wayfinder.d.ts","sourceRoot":"","sources":["../src/wayfinder.ts"],"names":[],"mappings":"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"}
|