@clawnch/clawncher-sdk 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/README.md +603 -0
- package/dist/abis.d.ts +935 -0
- package/dist/abis.d.ts.map +1 -0
- package/dist/abis.js +486 -0
- package/dist/abis.js.map +1 -0
- package/dist/addresses.d.ts +51 -0
- package/dist/addresses.d.ts.map +1 -0
- package/dist/addresses.js +80 -0
- package/dist/addresses.js.map +1 -0
- package/dist/api-deployer-types.d.ts +165 -0
- package/dist/api-deployer-types.d.ts.map +1 -0
- package/dist/api-deployer-types.js +9 -0
- package/dist/api-deployer-types.js.map +1 -0
- package/dist/api-deployer.d.ts +114 -0
- package/dist/api-deployer.d.ts.map +1 -0
- package/dist/api-deployer.js +309 -0
- package/dist/api-deployer.js.map +1 -0
- package/dist/claimer.d.ts +197 -0
- package/dist/claimer.d.ts.map +1 -0
- package/dist/claimer.js +311 -0
- package/dist/claimer.js.map +1 -0
- package/dist/deployer.d.ts +229 -0
- package/dist/deployer.d.ts.map +1 -0
- package/dist/deployer.js +305 -0
- package/dist/deployer.js.map +1 -0
- package/dist/erc8004-types.d.ts +94 -0
- package/dist/erc8004-types.d.ts.map +1 -0
- package/dist/erc8004-types.js +8 -0
- package/dist/erc8004-types.js.map +1 -0
- package/dist/errors.d.ts +62 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +75 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +204 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +358 -0
- package/dist/index.js.map +1 -0
- package/dist/liquidity-types.d.ts +198 -0
- package/dist/liquidity-types.d.ts.map +1 -0
- package/dist/liquidity-types.js +8 -0
- package/dist/liquidity-types.js.map +1 -0
- package/dist/liquidity.d.ts +111 -0
- package/dist/liquidity.d.ts.map +1 -0
- package/dist/liquidity.js +608 -0
- package/dist/liquidity.js.map +1 -0
- package/dist/molten-types.d.ts +282 -0
- package/dist/molten-types.d.ts.map +1 -0
- package/dist/molten-types.js +8 -0
- package/dist/molten-types.js.map +1 -0
- package/dist/molten.d.ts +336 -0
- package/dist/molten.d.ts.map +1 -0
- package/dist/molten.js +560 -0
- package/dist/molten.js.map +1 -0
- package/dist/portfolio.d.ts +129 -0
- package/dist/portfolio.d.ts.map +1 -0
- package/dist/portfolio.js +218 -0
- package/dist/portfolio.js.map +1 -0
- package/dist/reader.d.ts +249 -0
- package/dist/reader.d.ts.map +1 -0
- package/dist/reader.js +488 -0
- package/dist/reader.js.map +1 -0
- package/dist/swap-types.d.ts +159 -0
- package/dist/swap-types.d.ts.map +1 -0
- package/dist/swap-types.js +22 -0
- package/dist/swap-types.js.map +1 -0
- package/dist/swap.d.ts +762 -0
- package/dist/swap.d.ts.map +1 -0
- package/dist/swap.js +345 -0
- package/dist/swap.js.map +1 -0
- package/dist/token-verification-data.d.ts +4 -0
- package/dist/token-verification-data.d.ts.map +1 -0
- package/dist/token-verification-data.js +6 -0
- package/dist/token-verification-data.js.map +1 -0
- package/dist/types.d.ts +244 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/uniswap-abis.d.ts +470 -0
- package/dist/uniswap-abis.d.ts.map +1 -0
- package/dist/uniswap-abis.js +322 -0
- package/dist/uniswap-abis.js.map +1 -0
- package/dist/uniswap-addresses.d.ts +38 -0
- package/dist/uniswap-addresses.d.ts.map +1 -0
- package/dist/uniswap-addresses.js +67 -0
- package/dist/uniswap-addresses.js.map +1 -0
- package/dist/vanity.d.ts +115 -0
- package/dist/vanity.d.ts.map +1 -0
- package/dist/vanity.js +166 -0
- package/dist/vanity.js.map +1 -0
- package/dist/verify.d.ts +88 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +181 -0
- package/dist/verify.js.map +1 -0
- package/dist/watcher.d.ts +112 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +132 -0
- package/dist/watcher.js.map +1 -0
- package/package.json +59 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clawncher SDK
|
|
3
|
+
*
|
|
4
|
+
* TypeScript SDK for deploying tokens on Base with Uniswap V4 pools.
|
|
5
|
+
* Deploys through Clanker's approved infrastructure for immediate tradability.
|
|
6
|
+
*
|
|
7
|
+
* ## Deploying Tokens
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { ClawnchDeployer } from '@clawnch/clawncher-sdk';
|
|
12
|
+
* import { createWalletClient, createPublicClient, http } from 'viem';
|
|
13
|
+
* import { privateKeyToAccount } from 'viem/accounts';
|
|
14
|
+
* import { base } from 'viem/chains';
|
|
15
|
+
*
|
|
16
|
+
* const account = privateKeyToAccount('0x...');
|
|
17
|
+
* const wallet = createWalletClient({
|
|
18
|
+
* account,
|
|
19
|
+
* chain: base,
|
|
20
|
+
* transport: http(),
|
|
21
|
+
* });
|
|
22
|
+
* const publicClient = createPublicClient({
|
|
23
|
+
* chain: base,
|
|
24
|
+
* transport: http(),
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* const deployer = new ClawnchDeployer({
|
|
28
|
+
* wallet,
|
|
29
|
+
* publicClient,
|
|
30
|
+
* network: 'mainnet',
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* const result = await deployer.deploy({
|
|
34
|
+
* name: 'My Token',
|
|
35
|
+
* symbol: 'MYTKN',
|
|
36
|
+
* tokenAdmin: account.address,
|
|
37
|
+
* rewards: {
|
|
38
|
+
* recipients: [{
|
|
39
|
+
* recipient: account.address,
|
|
40
|
+
* admin: account.address,
|
|
41
|
+
* bps: 10000, // 100%
|
|
42
|
+
* feePreference: 'Paired', // Receive fees in WETH
|
|
43
|
+
* }],
|
|
44
|
+
* },
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* const { address } = await result.waitForTransaction();
|
|
48
|
+
* console.log('Token deployed:', address);
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* ## API Client (Optional)
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* import { ClawnchClient } from '@clawnch/clawncher-sdk';
|
|
56
|
+
*
|
|
57
|
+
* const client = new ClawnchClient();
|
|
58
|
+
*
|
|
59
|
+
* // Get all tokens
|
|
60
|
+
* const tokens = await client.getTokens();
|
|
61
|
+
*
|
|
62
|
+
* // Check available fees
|
|
63
|
+
* const fees = await client.getAvailableFees('0x...');
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export * from './types.js';
|
|
67
|
+
export * from './molten.js';
|
|
68
|
+
// Structured error codes
|
|
69
|
+
export * from './errors.js';
|
|
70
|
+
// Token deployment (via Clanker infrastructure)
|
|
71
|
+
export * from './deployer.js';
|
|
72
|
+
export * from './addresses.js';
|
|
73
|
+
export * from './abis.js';
|
|
74
|
+
// On-chain reading
|
|
75
|
+
export * from './reader.js';
|
|
76
|
+
// Fee/vault claiming
|
|
77
|
+
export * from './claimer.js';
|
|
78
|
+
// Portfolio tracking
|
|
79
|
+
export * from './portfolio.js';
|
|
80
|
+
// Live event watching
|
|
81
|
+
export * from './watcher.js';
|
|
82
|
+
// Token swaps (0x API)
|
|
83
|
+
export * from './swap.js';
|
|
84
|
+
export * from './swap-types.js';
|
|
85
|
+
// Uniswap V3/V4 liquidity management
|
|
86
|
+
export * from './liquidity.js';
|
|
87
|
+
export * from './liquidity-types.js';
|
|
88
|
+
export * from './uniswap-addresses.js';
|
|
89
|
+
export * from './uniswap-abis.js';
|
|
90
|
+
// Verified agent launches (via Clawnch API)
|
|
91
|
+
export * from './api-deployer.js';
|
|
92
|
+
export * from './api-deployer-types.js';
|
|
93
|
+
// Simple validation helpers
|
|
94
|
+
const isValidAddress = (addr) => /^0x[a-fA-F0-9]{40}$/.test(addr);
|
|
95
|
+
const isValidUrl = (url) => {
|
|
96
|
+
try {
|
|
97
|
+
const parsed = new URL(url);
|
|
98
|
+
return parsed.protocol === 'https:' || parsed.protocol === 'http:';
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
export class ClawnchClient {
|
|
105
|
+
baseUrl;
|
|
106
|
+
moltbookKey;
|
|
107
|
+
timeout;
|
|
108
|
+
constructor(options = {}) {
|
|
109
|
+
// Validate baseUrl if provided
|
|
110
|
+
const baseUrl = options.baseUrl || 'https://clawn.ch';
|
|
111
|
+
if (!isValidUrl(baseUrl)) {
|
|
112
|
+
throw new Error('Invalid baseUrl: must be a valid HTTP(S) URL');
|
|
113
|
+
}
|
|
114
|
+
this.baseUrl = baseUrl.replace(/\/$/, ''); // Remove trailing slash
|
|
115
|
+
this.moltbookKey = options.moltbookKey;
|
|
116
|
+
this.timeout = options.timeout || 30000;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Make an API request
|
|
120
|
+
*/
|
|
121
|
+
async request(path, options = {}) {
|
|
122
|
+
const url = `${this.baseUrl}${path}`;
|
|
123
|
+
const headers = {
|
|
124
|
+
'Content-Type': 'application/json',
|
|
125
|
+
'Accept': 'application/json',
|
|
126
|
+
...options.headers,
|
|
127
|
+
};
|
|
128
|
+
if (this.moltbookKey) {
|
|
129
|
+
headers['X-Moltbook-Key'] = this.moltbookKey;
|
|
130
|
+
}
|
|
131
|
+
const controller = new AbortController();
|
|
132
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
133
|
+
try {
|
|
134
|
+
const response = await fetch(url, {
|
|
135
|
+
...options,
|
|
136
|
+
headers,
|
|
137
|
+
signal: controller.signal,
|
|
138
|
+
});
|
|
139
|
+
clearTimeout(timeoutId);
|
|
140
|
+
if (!response.ok) {
|
|
141
|
+
let errorData;
|
|
142
|
+
try {
|
|
143
|
+
errorData = await response.json();
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
errorData = { error: `HTTP ${response.status}: ${response.statusText}` };
|
|
147
|
+
}
|
|
148
|
+
throw new ClawnchError(errorData.error, response.status, errorData.errors);
|
|
149
|
+
}
|
|
150
|
+
return response.json();
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
clearTimeout(timeoutId);
|
|
154
|
+
if (err instanceof ClawnchError) {
|
|
155
|
+
throw err;
|
|
156
|
+
}
|
|
157
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
158
|
+
throw new ClawnchError('Request timeout', 408);
|
|
159
|
+
}
|
|
160
|
+
throw new ClawnchError(err instanceof Error ? err.message : 'Unknown error', 0);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// =========================================================================
|
|
164
|
+
// Token Operations (Read)
|
|
165
|
+
// =========================================================================
|
|
166
|
+
/**
|
|
167
|
+
* Get all tokens launched via Clawncher
|
|
168
|
+
*/
|
|
169
|
+
async getTokens() {
|
|
170
|
+
const response = await this.request('/api/tokens');
|
|
171
|
+
return response.tokens;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get a single token by symbol
|
|
175
|
+
*/
|
|
176
|
+
async getTokenBySymbol(symbol) {
|
|
177
|
+
const response = await this.request(`/api/tokens?symbol=${encodeURIComponent(symbol)}`);
|
|
178
|
+
return response.tokens[0] || null;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Get launch history with optional filters
|
|
182
|
+
*/
|
|
183
|
+
async getLaunches(filters = {}) {
|
|
184
|
+
const params = new URLSearchParams();
|
|
185
|
+
if (filters.limit)
|
|
186
|
+
params.set('limit', filters.limit.toString());
|
|
187
|
+
if (filters.offset)
|
|
188
|
+
params.set('offset', filters.offset.toString());
|
|
189
|
+
if (filters.agent)
|
|
190
|
+
params.set('agent', filters.agent);
|
|
191
|
+
if (filters.source)
|
|
192
|
+
params.set('source', filters.source);
|
|
193
|
+
if (filters.address)
|
|
194
|
+
params.set('address', filters.address);
|
|
195
|
+
const query = params.toString();
|
|
196
|
+
return this.request(`/api/launches${query ? `?${query}` : ''}`);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get a single launch by contract address
|
|
200
|
+
*/
|
|
201
|
+
async getLaunch(address) {
|
|
202
|
+
const response = await this.getLaunches({ address });
|
|
203
|
+
return response.launches[0] || null;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Get market statistics
|
|
207
|
+
*/
|
|
208
|
+
async getStats() {
|
|
209
|
+
return this.request('/api/stats');
|
|
210
|
+
}
|
|
211
|
+
// =========================================================================
|
|
212
|
+
// Preview / Validation
|
|
213
|
+
// =========================================================================
|
|
214
|
+
/**
|
|
215
|
+
* Validate a launch post before publishing
|
|
216
|
+
*
|
|
217
|
+
* @param content - The full post content including !clawnch trigger
|
|
218
|
+
* @returns Validation result with parsed data, errors, and warnings
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* const result = await client.preview(`
|
|
223
|
+
* !clawnch
|
|
224
|
+
* name: My Token
|
|
225
|
+
* symbol: MYTKN
|
|
226
|
+
* wallet: 0x1234...
|
|
227
|
+
* description: A test token
|
|
228
|
+
* image: https://iili.io/example.jpg
|
|
229
|
+
* `);
|
|
230
|
+
*
|
|
231
|
+
* if (result.valid) {
|
|
232
|
+
* console.log('Ready to post!', result.parsed);
|
|
233
|
+
* } else {
|
|
234
|
+
* console.log('Errors:', result.errors);
|
|
235
|
+
* }
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
238
|
+
async preview(content) {
|
|
239
|
+
return this.request('/api/preview', {
|
|
240
|
+
method: 'POST',
|
|
241
|
+
body: JSON.stringify({ content }),
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
// =========================================================================
|
|
245
|
+
// Fee Operations
|
|
246
|
+
// =========================================================================
|
|
247
|
+
/**
|
|
248
|
+
* Check available fees for a wallet
|
|
249
|
+
*
|
|
250
|
+
* @param wallet - Ethereum wallet address
|
|
251
|
+
* @param tokens - Optional comma-separated list of token addresses to check
|
|
252
|
+
*/
|
|
253
|
+
async getAvailableFees(wallet, tokens) {
|
|
254
|
+
const params = new URLSearchParams({ wallet });
|
|
255
|
+
if (tokens)
|
|
256
|
+
params.set('tokens', tokens);
|
|
257
|
+
return this.request(`/api/fees/available?${params.toString()}`);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Claim fees for a token
|
|
261
|
+
*
|
|
262
|
+
* Requires Moltbook API key (set in constructor) or the wallet must be
|
|
263
|
+
* the deployer of the token.
|
|
264
|
+
*
|
|
265
|
+
* @param tokenAddress - Token contract address
|
|
266
|
+
*/
|
|
267
|
+
async claimFees(tokenAddress) {
|
|
268
|
+
const body = {
|
|
269
|
+
token_address: tokenAddress,
|
|
270
|
+
};
|
|
271
|
+
if (this.moltbookKey) {
|
|
272
|
+
body.moltbook_key = this.moltbookKey;
|
|
273
|
+
}
|
|
274
|
+
return this.request('/api/fees/claim', {
|
|
275
|
+
method: 'POST',
|
|
276
|
+
body: JSON.stringify(body),
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
// =========================================================================
|
|
280
|
+
// Analytics
|
|
281
|
+
// =========================================================================
|
|
282
|
+
/**
|
|
283
|
+
* Get detailed analytics for a token
|
|
284
|
+
*/
|
|
285
|
+
async getTokenAnalytics(address) {
|
|
286
|
+
return this.request(`/api/analytics/token?address=${encodeURIComponent(address)}`);
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Get analytics for an agent (all their tokens)
|
|
290
|
+
*/
|
|
291
|
+
async getAgentAnalytics(name) {
|
|
292
|
+
return this.request(`/api/analytics/agent?name=${encodeURIComponent(name)}`);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Get the agent leaderboard
|
|
296
|
+
*
|
|
297
|
+
* @param sort - Sort metric: 'market_cap' | 'volume' | 'launches'
|
|
298
|
+
* @param limit - Number of results (default 20, max 100)
|
|
299
|
+
*/
|
|
300
|
+
async getLeaderboard(sort = 'market_cap', limit = 20) {
|
|
301
|
+
return this.request(`/api/analytics/leaderboard?sort=${sort}&limit=${limit}`);
|
|
302
|
+
}
|
|
303
|
+
// =========================================================================
|
|
304
|
+
// Utilities
|
|
305
|
+
// =========================================================================
|
|
306
|
+
/**
|
|
307
|
+
* Upload an image for use as a token logo
|
|
308
|
+
*
|
|
309
|
+
* @param image - Base64-encoded image data OR URL to re-host
|
|
310
|
+
* @param name - Optional filename
|
|
311
|
+
* @returns Direct image URL (iili.io)
|
|
312
|
+
*/
|
|
313
|
+
async uploadImage(image, name) {
|
|
314
|
+
const body = { image };
|
|
315
|
+
if (name)
|
|
316
|
+
body.name = name;
|
|
317
|
+
const response = await this.request('/api/upload', {
|
|
318
|
+
method: 'POST',
|
|
319
|
+
body: JSON.stringify(body),
|
|
320
|
+
});
|
|
321
|
+
return response.url;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Get the skill documentation
|
|
325
|
+
*/
|
|
326
|
+
async getSkill() {
|
|
327
|
+
const response = await fetch(`${this.baseUrl}/skill.md`, {
|
|
328
|
+
method: 'GET',
|
|
329
|
+
headers: { 'Accept': 'text/markdown' }
|
|
330
|
+
});
|
|
331
|
+
if (!response.ok) {
|
|
332
|
+
throw new ClawnchError('Failed to fetch skill documentation', response.status);
|
|
333
|
+
}
|
|
334
|
+
return response.text();
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Get the OpenAPI specification
|
|
338
|
+
*/
|
|
339
|
+
async getOpenAPISpec() {
|
|
340
|
+
return this.request('/api/openapi');
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Custom error class for Clawnch API errors
|
|
345
|
+
*/
|
|
346
|
+
export class ClawnchError extends Error {
|
|
347
|
+
status;
|
|
348
|
+
errors;
|
|
349
|
+
constructor(message, status, errors) {
|
|
350
|
+
super(message);
|
|
351
|
+
this.status = status;
|
|
352
|
+
this.errors = errors;
|
|
353
|
+
this.name = 'ClawnchError';
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
// Default export for convenience
|
|
357
|
+
export default ClawnchClient;
|
|
358
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAsBH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAE5B,yBAAyB;AACzB,cAAc,aAAa,CAAC;AAE5B,gDAAgD;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAE1B,mBAAmB;AACnB,cAAc,aAAa,CAAC;AAE5B,qBAAqB;AACrB,cAAc,cAAc,CAAC;AAE7B,qBAAqB;AACrB,cAAc,gBAAgB,CAAC;AAE/B,sBAAsB;AACtB,cAAc,cAAc,CAAC;AAE7B,uBAAuB;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAEhC,qCAAqC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAElC,4CAA4C;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAWxC,4BAA4B;AAC5B,MAAM,cAAc,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAW,EAAE;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,aAAa;IAChB,OAAO,CAAS;IAChB,WAAW,CAAU;IACrB,OAAO,CAAS;IAExB,YAAY,UAAgC,EAAE;QAC5C,+BAA+B;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,kBAAkB,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB;QACnE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,IAAY,EACZ,UAAuB,EAAE;QAEzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAErC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,kBAAkB;YAC5B,GAAG,OAAO,CAAC,OAAiC;SAC7C,CAAC;QAEF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/C,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,GAAG,OAAO;gBACV,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,SAAmB,CAAC;gBACxB,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAc,CAAC;gBAChD,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS,GAAG,EAAE,KAAK,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC3E,CAAC;gBACD,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7E,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;gBAChC,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACtD,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,YAAY,CACpB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EACpD,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,0BAA0B;IAC1B,4EAA4E;IAE5E;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAiB,aAAa,CAAC,CAAC;QACnE,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CACnD,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,UAAyB,EAAE;QAC3C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAErC,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAmB,gBAAgB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAQ,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,4EAA4E;IAC5E,uBAAuB;IACvB,4EAA4E;IAE5E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAkB,cAAc,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAA2B,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,OAAO,CAAgB,uBAAuB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CAAC,YAAoB;QAClC,MAAM,IAAI,GAAiB;YACzB,aAAa,EAAE,YAAY;SAC5B,CAAC;QAEF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAc,iBAAiB,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,OAAO,IAAI,CAAC,OAAO,CACjB,gCAAgC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAC9D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,OAAO,CACjB,6BAA6B,kBAAkB,CAAC,IAAI,CAAC,EAAE,CACxD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,OAA6C,YAAY,EACzD,QAAgB,EAAE;QAElB,OAAO,IAAI,CAAC,OAAO,CACjB,mCAAmC,IAAI,UAAU,KAAK,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,IAAa;QAC5C,MAAM,IAAI,GAAkB,EAAE,KAAK,EAAE,CAAC;QACtC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAE3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAiB,aAAa,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;YACvD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,YAAY,CAAC,qCAAqC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAS,cAAc,CAAC,CAAC;IAC9C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGnB;IACA;IAHlB,YACE,OAAe,EACC,MAAc,EACd,MAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAW;QAGjC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,iCAAiC;AACjC,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uniswap V3 & V4 Liquidity Management Types
|
|
3
|
+
*
|
|
4
|
+
* Types for the ClawnchLiquidity class which manages liquidity
|
|
5
|
+
* positions on both Uniswap V3 and V4 pools on Base.
|
|
6
|
+
*/
|
|
7
|
+
import type { Address, Hash, Hex, TransactionReceipt } from 'viem';
|
|
8
|
+
import type { WalletClient, PublicClient, Chain, Account, Transport } from 'viem';
|
|
9
|
+
import type { NetworkName } from './addresses.js';
|
|
10
|
+
export interface LiquidityConfig {
|
|
11
|
+
/** Wallet client for signing and sending transactions */
|
|
12
|
+
wallet: WalletClient<Transport, Chain, Account>;
|
|
13
|
+
/** Public client for reading chain state */
|
|
14
|
+
publicClient: PublicClient;
|
|
15
|
+
/** Network: 'mainnet' (Base) or 'sepolia' (Base Sepolia) */
|
|
16
|
+
network?: NetworkName;
|
|
17
|
+
}
|
|
18
|
+
export interface V4PoolKey {
|
|
19
|
+
currency0: Address;
|
|
20
|
+
currency1: Address;
|
|
21
|
+
fee: number;
|
|
22
|
+
tickSpacing: number;
|
|
23
|
+
hooks: Address;
|
|
24
|
+
}
|
|
25
|
+
export interface V4PoolState {
|
|
26
|
+
sqrtPriceX96: bigint;
|
|
27
|
+
tick: number;
|
|
28
|
+
liquidity: bigint;
|
|
29
|
+
poolId: Hex;
|
|
30
|
+
}
|
|
31
|
+
export interface V4MintParams {
|
|
32
|
+
/** Token 0 address (lower address) */
|
|
33
|
+
token0: Address;
|
|
34
|
+
/** Token 1 address (higher address) */
|
|
35
|
+
token1: Address;
|
|
36
|
+
/** Fee tier in hundredths of a bps (e.g. 500 = 0.05%, 3000 = 0.3%, 10000 = 1%) */
|
|
37
|
+
fee: number;
|
|
38
|
+
/** Tick spacing for the pool */
|
|
39
|
+
tickSpacing: number;
|
|
40
|
+
/** Hook contract address (zero address if no hook) */
|
|
41
|
+
hookAddress?: Address;
|
|
42
|
+
/** Lower tick boundary */
|
|
43
|
+
tickLower: number;
|
|
44
|
+
/** Upper tick boundary */
|
|
45
|
+
tickUpper: number;
|
|
46
|
+
/** Desired amount of token0 to deposit */
|
|
47
|
+
amount0Desired: bigint;
|
|
48
|
+
/** Desired amount of token1 to deposit */
|
|
49
|
+
amount1Desired: bigint;
|
|
50
|
+
/** Max slippage in basis points (default: 50 = 0.5%) */
|
|
51
|
+
slippageBps?: number;
|
|
52
|
+
/** Transaction deadline in seconds from now (default: 1200 = 20 min) */
|
|
53
|
+
deadline?: number;
|
|
54
|
+
/** Recipient of the position NFT (defaults to wallet address) */
|
|
55
|
+
recipient?: Address;
|
|
56
|
+
/** Whether to use native ETH (if one of the tokens is WETH) */
|
|
57
|
+
useNativeEth?: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface V4AddLiquidityParams {
|
|
60
|
+
/** Desired amount of token0 to add */
|
|
61
|
+
amount0Desired: bigint;
|
|
62
|
+
/** Desired amount of token1 to add */
|
|
63
|
+
amount1Desired: bigint;
|
|
64
|
+
/** Max slippage in basis points (default: 50 = 0.5%) */
|
|
65
|
+
slippageBps?: number;
|
|
66
|
+
/** Transaction deadline in seconds from now (default: 1200 = 20 min) */
|
|
67
|
+
deadline?: number;
|
|
68
|
+
/** Whether to use native ETH (if one of the tokens is WETH) */
|
|
69
|
+
useNativeEth?: boolean;
|
|
70
|
+
}
|
|
71
|
+
export interface V4RemoveLiquidityParams {
|
|
72
|
+
/** Fraction to remove: 0.0 - 1.0 (1.0 = remove all) */
|
|
73
|
+
percentageToRemove: number;
|
|
74
|
+
/** Max slippage in basis points (default: 50 = 0.5%) */
|
|
75
|
+
slippageBps?: number;
|
|
76
|
+
/** Transaction deadline in seconds from now (default: 1200 = 20 min) */
|
|
77
|
+
deadline?: number;
|
|
78
|
+
/** Burn the position NFT if removing 100% */
|
|
79
|
+
burnToken?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface V4CollectFeesParams {
|
|
82
|
+
/** Recipient of the collected fees (defaults to wallet address) */
|
|
83
|
+
recipient?: Address;
|
|
84
|
+
/** Max slippage in basis points (default: 0 for fee collection) */
|
|
85
|
+
slippageBps?: number;
|
|
86
|
+
/** Transaction deadline in seconds from now (default: 1200 = 20 min) */
|
|
87
|
+
deadline?: number;
|
|
88
|
+
}
|
|
89
|
+
export interface V3MintParams {
|
|
90
|
+
/** Token 0 address (lower address) */
|
|
91
|
+
token0: Address;
|
|
92
|
+
/** Token 1 address (higher address) */
|
|
93
|
+
token1: Address;
|
|
94
|
+
/** Fee tier (500, 3000, or 10000) */
|
|
95
|
+
fee: number;
|
|
96
|
+
/** Lower tick boundary */
|
|
97
|
+
tickLower: number;
|
|
98
|
+
/** Upper tick boundary */
|
|
99
|
+
tickUpper: number;
|
|
100
|
+
/** Desired amount of token0 to deposit */
|
|
101
|
+
amount0Desired: bigint;
|
|
102
|
+
/** Desired amount of token1 to deposit */
|
|
103
|
+
amount1Desired: bigint;
|
|
104
|
+
/** Minimum amount of token0 (slippage protection) */
|
|
105
|
+
amount0Min?: bigint;
|
|
106
|
+
/** Minimum amount of token1 (slippage protection) */
|
|
107
|
+
amount1Min?: bigint;
|
|
108
|
+
/** Recipient of the position NFT (defaults to wallet address) */
|
|
109
|
+
recipient?: Address;
|
|
110
|
+
/** Transaction deadline in seconds from now (default: 1200 = 20 min) */
|
|
111
|
+
deadline?: number;
|
|
112
|
+
}
|
|
113
|
+
export interface V3AddLiquidityParams {
|
|
114
|
+
/** Desired amount of token0 to add */
|
|
115
|
+
amount0Desired: bigint;
|
|
116
|
+
/** Desired amount of token1 to add */
|
|
117
|
+
amount1Desired: bigint;
|
|
118
|
+
/** Minimum amount of token0 (slippage protection) */
|
|
119
|
+
amount0Min?: bigint;
|
|
120
|
+
/** Minimum amount of token1 (slippage protection) */
|
|
121
|
+
amount1Min?: bigint;
|
|
122
|
+
/** Transaction deadline in seconds from now (default: 1200 = 20 min) */
|
|
123
|
+
deadline?: number;
|
|
124
|
+
}
|
|
125
|
+
export interface V3RemoveLiquidityParams {
|
|
126
|
+
/** Fraction to remove: 0.0 - 1.0 (1.0 = remove all) */
|
|
127
|
+
percentageToRemove: number;
|
|
128
|
+
/** Minimum amount of token0 to receive (slippage protection) */
|
|
129
|
+
amount0Min?: bigint;
|
|
130
|
+
/** Minimum amount of token1 to receive (slippage protection) */
|
|
131
|
+
amount1Min?: bigint;
|
|
132
|
+
/** Transaction deadline in seconds from now (default: 1200 = 20 min) */
|
|
133
|
+
deadline?: number;
|
|
134
|
+
/** Burn the position NFT if removing 100% and collecting all tokens */
|
|
135
|
+
burnToken?: boolean;
|
|
136
|
+
}
|
|
137
|
+
export interface V3CollectFeesParams {
|
|
138
|
+
/** Recipient of the collected fees (defaults to wallet address) */
|
|
139
|
+
recipient?: Address;
|
|
140
|
+
}
|
|
141
|
+
export interface PositionInfo {
|
|
142
|
+
/** NFT token ID */
|
|
143
|
+
tokenId: bigint;
|
|
144
|
+
/** Uniswap version */
|
|
145
|
+
version: 'v3' | 'v4';
|
|
146
|
+
/** Token 0 address */
|
|
147
|
+
token0: Address;
|
|
148
|
+
/** Token 1 address */
|
|
149
|
+
token1: Address;
|
|
150
|
+
/** Fee tier */
|
|
151
|
+
fee: number;
|
|
152
|
+
/** Lower tick */
|
|
153
|
+
tickLower: number;
|
|
154
|
+
/** Upper tick */
|
|
155
|
+
tickUpper: number;
|
|
156
|
+
/** Current liquidity */
|
|
157
|
+
liquidity: bigint;
|
|
158
|
+
/** Unclaimed fees */
|
|
159
|
+
unclaimedFees: {
|
|
160
|
+
token0: bigint;
|
|
161
|
+
token1: bigint;
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
export interface MintResult {
|
|
165
|
+
/** Transaction hash */
|
|
166
|
+
txHash: Hash;
|
|
167
|
+
/** NFT token ID of the new position */
|
|
168
|
+
tokenId: bigint;
|
|
169
|
+
/** Actual token0 amount deposited */
|
|
170
|
+
amount0: bigint;
|
|
171
|
+
/** Actual token1 amount deposited */
|
|
172
|
+
amount1: bigint;
|
|
173
|
+
/** Liquidity minted */
|
|
174
|
+
liquidity: bigint;
|
|
175
|
+
/** Transaction receipt */
|
|
176
|
+
receipt: TransactionReceipt;
|
|
177
|
+
}
|
|
178
|
+
export interface ModifyLiquidityResult {
|
|
179
|
+
/** Transaction hash */
|
|
180
|
+
txHash: Hash;
|
|
181
|
+
/** Token0 amount added or removed */
|
|
182
|
+
amount0: bigint;
|
|
183
|
+
/** Token1 amount added or removed */
|
|
184
|
+
amount1: bigint;
|
|
185
|
+
/** Transaction receipt */
|
|
186
|
+
receipt: TransactionReceipt;
|
|
187
|
+
}
|
|
188
|
+
export interface CollectFeesResult {
|
|
189
|
+
/** Transaction hash */
|
|
190
|
+
txHash: Hash;
|
|
191
|
+
/** Token0 fees collected */
|
|
192
|
+
amount0: bigint;
|
|
193
|
+
/** Token1 fees collected */
|
|
194
|
+
amount1: bigint;
|
|
195
|
+
/** Transaction receipt */
|
|
196
|
+
receipt: TransactionReceipt;
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=liquidity-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidity-types.d.ts","sourceRoot":"","sources":["../src/liquidity-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMlD,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,4CAA4C;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAMD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAMD,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,sBAAsB;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,sBAAsB;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,aAAa,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,MAAM,EAAE,IAAI,CAAC;IACb,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,MAAM,EAAE,IAAI,CAAC;IACb,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,MAAM,EAAE,IAAI,CAAC;IACb,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,kBAAkB,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidity-types.js","sourceRoot":"","sources":["../src/liquidity-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|