@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.
Files changed (98) hide show
  1. package/README.md +603 -0
  2. package/dist/abis.d.ts +935 -0
  3. package/dist/abis.d.ts.map +1 -0
  4. package/dist/abis.js +486 -0
  5. package/dist/abis.js.map +1 -0
  6. package/dist/addresses.d.ts +51 -0
  7. package/dist/addresses.d.ts.map +1 -0
  8. package/dist/addresses.js +80 -0
  9. package/dist/addresses.js.map +1 -0
  10. package/dist/api-deployer-types.d.ts +165 -0
  11. package/dist/api-deployer-types.d.ts.map +1 -0
  12. package/dist/api-deployer-types.js +9 -0
  13. package/dist/api-deployer-types.js.map +1 -0
  14. package/dist/api-deployer.d.ts +114 -0
  15. package/dist/api-deployer.d.ts.map +1 -0
  16. package/dist/api-deployer.js +309 -0
  17. package/dist/api-deployer.js.map +1 -0
  18. package/dist/claimer.d.ts +197 -0
  19. package/dist/claimer.d.ts.map +1 -0
  20. package/dist/claimer.js +311 -0
  21. package/dist/claimer.js.map +1 -0
  22. package/dist/deployer.d.ts +229 -0
  23. package/dist/deployer.d.ts.map +1 -0
  24. package/dist/deployer.js +305 -0
  25. package/dist/deployer.js.map +1 -0
  26. package/dist/erc8004-types.d.ts +94 -0
  27. package/dist/erc8004-types.d.ts.map +1 -0
  28. package/dist/erc8004-types.js +8 -0
  29. package/dist/erc8004-types.js.map +1 -0
  30. package/dist/errors.d.ts +62 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +75 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/index.d.ts +204 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +358 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/liquidity-types.d.ts +198 -0
  39. package/dist/liquidity-types.d.ts.map +1 -0
  40. package/dist/liquidity-types.js +8 -0
  41. package/dist/liquidity-types.js.map +1 -0
  42. package/dist/liquidity.d.ts +111 -0
  43. package/dist/liquidity.d.ts.map +1 -0
  44. package/dist/liquidity.js +608 -0
  45. package/dist/liquidity.js.map +1 -0
  46. package/dist/molten-types.d.ts +282 -0
  47. package/dist/molten-types.d.ts.map +1 -0
  48. package/dist/molten-types.js +8 -0
  49. package/dist/molten-types.js.map +1 -0
  50. package/dist/molten.d.ts +336 -0
  51. package/dist/molten.d.ts.map +1 -0
  52. package/dist/molten.js +560 -0
  53. package/dist/molten.js.map +1 -0
  54. package/dist/portfolio.d.ts +129 -0
  55. package/dist/portfolio.d.ts.map +1 -0
  56. package/dist/portfolio.js +218 -0
  57. package/dist/portfolio.js.map +1 -0
  58. package/dist/reader.d.ts +249 -0
  59. package/dist/reader.d.ts.map +1 -0
  60. package/dist/reader.js +488 -0
  61. package/dist/reader.js.map +1 -0
  62. package/dist/swap-types.d.ts +159 -0
  63. package/dist/swap-types.d.ts.map +1 -0
  64. package/dist/swap-types.js +22 -0
  65. package/dist/swap-types.js.map +1 -0
  66. package/dist/swap.d.ts +762 -0
  67. package/dist/swap.d.ts.map +1 -0
  68. package/dist/swap.js +345 -0
  69. package/dist/swap.js.map +1 -0
  70. package/dist/token-verification-data.d.ts +4 -0
  71. package/dist/token-verification-data.d.ts.map +1 -0
  72. package/dist/token-verification-data.js +6 -0
  73. package/dist/token-verification-data.js.map +1 -0
  74. package/dist/types.d.ts +244 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +5 -0
  77. package/dist/types.js.map +1 -0
  78. package/dist/uniswap-abis.d.ts +470 -0
  79. package/dist/uniswap-abis.d.ts.map +1 -0
  80. package/dist/uniswap-abis.js +322 -0
  81. package/dist/uniswap-abis.js.map +1 -0
  82. package/dist/uniswap-addresses.d.ts +38 -0
  83. package/dist/uniswap-addresses.d.ts.map +1 -0
  84. package/dist/uniswap-addresses.js +67 -0
  85. package/dist/uniswap-addresses.js.map +1 -0
  86. package/dist/vanity.d.ts +115 -0
  87. package/dist/vanity.d.ts.map +1 -0
  88. package/dist/vanity.js +166 -0
  89. package/dist/vanity.js.map +1 -0
  90. package/dist/verify.d.ts +88 -0
  91. package/dist/verify.d.ts.map +1 -0
  92. package/dist/verify.js +181 -0
  93. package/dist/verify.js.map +1 -0
  94. package/dist/watcher.d.ts +112 -0
  95. package/dist/watcher.d.ts.map +1 -0
  96. package/dist/watcher.js +132 -0
  97. package/dist/watcher.js.map +1 -0
  98. 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":"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"}
@@ -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":"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"}
@@ -0,0 +1,8 @@
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
+ export {};
8
+ //# sourceMappingURL=liquidity-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidity-types.js","sourceRoot":"","sources":["../src/liquidity-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}