@clawnch/clawncher-sdk 0.2.0 → 0.3.1
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 +190 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/liquidity.d.ts +14 -8
- package/dist/liquidity.d.ts.map +1 -1
- package/dist/liquidity.js +149 -15
- package/dist/liquidity.js.map +1 -1
- package/dist/permit2.d.ts +258 -0
- package/dist/permit2.d.ts.map +1 -0
- package/dist/permit2.js +520 -0
- package/dist/permit2.js.map +1 -0
- package/dist/uniswap-abis.d.ts +525 -0
- package/dist/uniswap-abis.d.ts.map +1 -1
- package/dist/uniswap-abis.js +432 -1
- package/dist/uniswap-abis.js.map +1 -1
- package/dist/uniswap-chains.d.ts +77 -0
- package/dist/uniswap-chains.d.ts.map +1 -0
- package/dist/uniswap-chains.js +362 -0
- package/dist/uniswap-chains.js.map +1 -0
- package/dist/uniswap-quoter.d.ts +178 -0
- package/dist/uniswap-quoter.d.ts.map +1 -0
- package/dist/uniswap-quoter.js +432 -0
- package/dist/uniswap-quoter.js.map +1 -0
- package/dist/uniswap-trading.d.ts +203 -0
- package/dist/uniswap-trading.d.ts.map +1 -0
- package/dist/uniswap-trading.js +380 -0
- package/dist/uniswap-trading.js.map +1 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -319,6 +319,174 @@ import {
|
|
|
319
319
|
} from '@clawnch/clawncher-sdk';
|
|
320
320
|
```
|
|
321
321
|
|
|
322
|
+
## Uniswap V4 Trading API
|
|
323
|
+
|
|
324
|
+
Execute swaps via the Uniswap Trading API with automatic Permit2 approval handling. Supports all 15 Uniswap chains.
|
|
325
|
+
|
|
326
|
+
```typescript
|
|
327
|
+
import { UniswapTradingApi } from '@clawnch/clawncher-sdk';
|
|
328
|
+
|
|
329
|
+
const trading = new UniswapTradingApi({
|
|
330
|
+
wallet,
|
|
331
|
+
publicClient,
|
|
332
|
+
chainId: 8453,
|
|
333
|
+
apiKey: process.env.UNISWAP_API_KEY,
|
|
334
|
+
slippageBps: 50, // 0.5%
|
|
335
|
+
});
|
|
336
|
+
|
|
337
|
+
// Full swap: check_approval → quote → swap (handles Permit2 automatically)
|
|
338
|
+
const result = await trading.swap({
|
|
339
|
+
tokenIn: NATIVE_TOKEN_ADDRESS,
|
|
340
|
+
tokenOut: '0xTokenAddress...',
|
|
341
|
+
amount: parseEther('0.01'),
|
|
342
|
+
});
|
|
343
|
+
console.log('Tx:', result.txHash);
|
|
344
|
+
|
|
345
|
+
// Quote only (no execution)
|
|
346
|
+
const quote = await trading.getQuote({
|
|
347
|
+
tokenIn: NATIVE_TOKEN_ADDRESS,
|
|
348
|
+
tokenOut: '0xTokenAddress...',
|
|
349
|
+
amount: parseEther('0.01'),
|
|
350
|
+
});
|
|
351
|
+
console.log('Output:', quote.quoteAmount, 'Impact:', quote.priceImpact);
|
|
352
|
+
|
|
353
|
+
// Generate Uniswap app deep link
|
|
354
|
+
const link = trading.getSwapDeepLink({
|
|
355
|
+
tokenIn: NATIVE_TOKEN_ADDRESS,
|
|
356
|
+
tokenOut: '0xTokenAddress...',
|
|
357
|
+
amount: parseEther('0.1'),
|
|
358
|
+
});
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
The Trading API uses a 3-step flow: `POST /check_approval` → `POST /quote` → `POST /swap`. The `swap()` method handles all three steps including Permit2 approvals. Sign up for an API key at [hub.uniswap.org](https://hub.uniswap.org).
|
|
362
|
+
|
|
363
|
+
## On-Chain V4 Quoter
|
|
364
|
+
|
|
365
|
+
Simulate swaps directly against V4 pools without an API key. Includes Clawnch-native pool discovery via the LP locker contract.
|
|
366
|
+
|
|
367
|
+
```typescript
|
|
368
|
+
import { UniswapQuoter } from '@clawnch/clawncher-sdk';
|
|
369
|
+
|
|
370
|
+
const quoter = new UniswapQuoter({
|
|
371
|
+
publicClient,
|
|
372
|
+
chainId: 8453,
|
|
373
|
+
});
|
|
374
|
+
|
|
375
|
+
// One-call quote for any Clawnch token (auto-discovers pool key from LP locker)
|
|
376
|
+
const quote = await quoter.quoteClawnchToken(
|
|
377
|
+
'0xTokenAddress...',
|
|
378
|
+
parseEther('0.01'),
|
|
379
|
+
'buy', // 'buy' = ETH→Token, 'sell' = Token→ETH
|
|
380
|
+
);
|
|
381
|
+
console.log('Output:', quote.quotedAmount);
|
|
382
|
+
console.log('Impact:', quote.priceImpact);
|
|
383
|
+
console.log('Hook:', quote.poolKey.hooks); // correct MEV hook, not zero address
|
|
384
|
+
|
|
385
|
+
// Build pool key from LP locker (includes hook address, fee, tick spacing)
|
|
386
|
+
const poolKey = await quoter.buildPoolKeyFromToken('0xTokenAddress...');
|
|
387
|
+
|
|
388
|
+
// Read pool state (sqrtPriceX96, tick, liquidity)
|
|
389
|
+
const state = await quoter.getPoolState(poolKey);
|
|
390
|
+
|
|
391
|
+
// Manual quote with explicit pool key
|
|
392
|
+
const manualQuote = await quoter.quoteExactInput({
|
|
393
|
+
poolKey,
|
|
394
|
+
zeroForOne: true,
|
|
395
|
+
amount: parseEther('0.01'),
|
|
396
|
+
});
|
|
397
|
+
|
|
398
|
+
// Estimate price impact without a full quote
|
|
399
|
+
const impact = await quoter.estimatePriceImpact(poolKey, parseEther('1'));
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
`buildPoolKeyFromToken()` reads the LP locker via `ClawnchReader.getTokenRewards()` to auto-discover the correct pool key — including the MEV hook address. This is critical because defaulting the hook to the zero address targets the wrong pool for Clawnch tokens.
|
|
403
|
+
|
|
404
|
+
## Permit2 Client
|
|
405
|
+
|
|
406
|
+
Manage token approvals for Uniswap V4 via the Permit2 contract. Supports both AllowanceTransfer (PositionManager) and SignatureTransfer (UniversalRouter).
|
|
407
|
+
|
|
408
|
+
```typescript
|
|
409
|
+
import { Permit2Client, PERMIT2_ADDRESS } from '@clawnch/clawncher-sdk';
|
|
410
|
+
|
|
411
|
+
const permit2 = new Permit2Client({
|
|
412
|
+
wallet,
|
|
413
|
+
publicClient,
|
|
414
|
+
chainId: 8453,
|
|
415
|
+
});
|
|
416
|
+
|
|
417
|
+
// Full approval flow: ERC20→Permit2 + Permit2→spender
|
|
418
|
+
const { approvalTxHash, permitTxHash } = await permit2.ensurePermit2Allowance(
|
|
419
|
+
tokenAddress,
|
|
420
|
+
spenderAddress, // e.g. UniversalRouter
|
|
421
|
+
amount,
|
|
422
|
+
);
|
|
423
|
+
|
|
424
|
+
// Two-token approval for LP operations
|
|
425
|
+
await permit2.ensurePermit2AllowancePair(
|
|
426
|
+
token0, token1, positionManagerAddress, amount0, amount1,
|
|
427
|
+
);
|
|
428
|
+
|
|
429
|
+
// Check allowance state
|
|
430
|
+
const allowance = await permit2.getAllowance(tokenAddress, spenderAddress);
|
|
431
|
+
console.log('Amount:', allowance.amount, 'Expires:', allowance.expiration);
|
|
432
|
+
|
|
433
|
+
// Emergency lockdown — revoke all access
|
|
434
|
+
await permit2.lockdown([
|
|
435
|
+
{ token: tokenA, spender: routerAddress },
|
|
436
|
+
{ token: tokenB, spender: routerAddress },
|
|
437
|
+
]);
|
|
438
|
+
|
|
439
|
+
// Sign off-chain permits (AllowanceTransfer)
|
|
440
|
+
const signed = await permit2.signPermitSingle({
|
|
441
|
+
token: tokenAddress,
|
|
442
|
+
spender: routerAddress,
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
// Sign off-chain permits (SignatureTransfer — bitmap nonces)
|
|
446
|
+
const nonce = await permit2.findUnusedNonce(0n);
|
|
447
|
+
const transfer = await permit2.signPermitTransferFrom({
|
|
448
|
+
token: tokenAddress,
|
|
449
|
+
amount: parseEther('1'),
|
|
450
|
+
spender: routerAddress,
|
|
451
|
+
nonce,
|
|
452
|
+
});
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
Permit2 is deployed at `0x000000000022D473030F116dDEE9F6B43aC78BA3` on all chains.
|
|
456
|
+
|
|
457
|
+
## Multi-Chain Uniswap Registry
|
|
458
|
+
|
|
459
|
+
Address registry for all 15 Uniswap-supported chains.
|
|
460
|
+
|
|
461
|
+
```typescript
|
|
462
|
+
import {
|
|
463
|
+
getUniswapChain,
|
|
464
|
+
getAllUniswapChains,
|
|
465
|
+
getTradingApiChains,
|
|
466
|
+
getV4Chains,
|
|
467
|
+
chainIdFromSlug,
|
|
468
|
+
FEE_TIERS,
|
|
469
|
+
} from '@clawnch/clawncher-sdk';
|
|
470
|
+
|
|
471
|
+
// Get config for a specific chain
|
|
472
|
+
const base = getUniswapChain(8453);
|
|
473
|
+
console.log(base.v4UniversalRouter, base.weth, base.permit2);
|
|
474
|
+
|
|
475
|
+
// All chains with Trading API support
|
|
476
|
+
const tradingChains = getTradingApiChains(); // 15 chains
|
|
477
|
+
|
|
478
|
+
// All chains with V4 deployed
|
|
479
|
+
const v4Chains = getV4Chains();
|
|
480
|
+
|
|
481
|
+
// Resolve slug to chain ID
|
|
482
|
+
const chainId = chainIdFromSlug('arbitrum'); // 42161
|
|
483
|
+
|
|
484
|
+
// Fee tiers with tick spacing
|
|
485
|
+
FEE_TIERS.forEach(t => console.log(t.label, t.fee, t.tickSpacing));
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
Supported chains: Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Unichain, Avalanche, Celo, Blast, Zora, World Chain, Soneium, zkSync, Monad.
|
|
489
|
+
|
|
322
490
|
## Liquidity Management
|
|
323
491
|
|
|
324
492
|
Manage Uniswap V3 and V4 liquidity positions on Base.
|
|
@@ -514,6 +682,28 @@ import type {
|
|
|
514
682
|
UniswapV4Addresses,
|
|
515
683
|
UniswapV3Addresses,
|
|
516
684
|
CommonAddresses,
|
|
685
|
+
// Uniswap Trading API types
|
|
686
|
+
UniswapTradingConfig,
|
|
687
|
+
TradingSwapParams,
|
|
688
|
+
TradingQuote,
|
|
689
|
+
TradingSwapResult,
|
|
690
|
+
ApprovalCheckResult,
|
|
691
|
+
// Uniswap Quoter types
|
|
692
|
+
QuoterConfig,
|
|
693
|
+
PoolKey,
|
|
694
|
+
QuoteParams,
|
|
695
|
+
QuoteResult,
|
|
696
|
+
PoolState,
|
|
697
|
+
// Permit2 types
|
|
698
|
+
Permit2Config,
|
|
699
|
+
Permit2Allowance,
|
|
700
|
+
PermitSingleParams,
|
|
701
|
+
PermitBatchParams,
|
|
702
|
+
SignedPermitSingle,
|
|
703
|
+
SignedPermitBatch,
|
|
704
|
+
// Multi-chain registry types
|
|
705
|
+
UniswapChainConfig,
|
|
706
|
+
FeeTier,
|
|
517
707
|
// Verified agent launch types
|
|
518
708
|
ClawnchApiDeployer,
|
|
519
709
|
ApiDeployerConfig,
|
package/dist/errors.d.ts
CHANGED
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,oBAAY,gBAAgB;IAE1B,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IAGnC,qBAAqB,0BAA0B;IAC/C,4BAA4B,iCAAiC;IAG7D,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IAGzC,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;IAGvC,qBAAqB,0BAA0B;IAG/C,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAIzB,IAAI,EAAE,gBAAgB;aAEtB,KAAK,CAAC,EAAE,KAAK;IAL/B,QAAQ,CAAC,IAAI,wBAAwB;gBAGnB,IAAI,EAAE,gBAAgB,EACtC,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAIhC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAEtE;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,GAAE,MAAU,EACtB,WAAW,GAAE,MAAa,GACzB,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,oBAAY,gBAAgB;IAE1B,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IAGnC,qBAAqB,0BAA0B;IAC/C,4BAA4B,iCAAiC;IAG7D,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IAGzC,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;IAGvC,qBAAqB,0BAA0B;IAG/C,aAAa,kBAAkB;IAG/B,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAIzB,IAAI,EAAE,gBAAgB;aAEtB,KAAK,CAAC,EAAE,KAAK;IAL/B,QAAQ,CAAC,IAAI,wBAAwB;gBAGnB,IAAI,EAAE,gBAAgB,EACtC,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAIhC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAEtE;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,GAAE,MAAU,EACtB,WAAW,GAAE,MAAa,GACzB,OAAO,CAAC,CAAC,CAAC,CAiCZ"}
|
package/dist/errors.js
CHANGED
|
@@ -27,6 +27,8 @@ export var ClawnchErrorCode;
|
|
|
27
27
|
ClawnchErrorCode["NO_FEES_AVAILABLE"] = "NO_FEES_AVAILABLE";
|
|
28
28
|
// Feature not available
|
|
29
29
|
ClawnchErrorCode["FEATURE_NOT_AVAILABLE"] = "FEATURE_NOT_AVAILABLE";
|
|
30
|
+
// Chain errors
|
|
31
|
+
ClawnchErrorCode["INVALID_CHAIN"] = "INVALID_CHAIN";
|
|
30
32
|
// Network errors
|
|
31
33
|
ClawnchErrorCode["RPC_ERROR"] = "RPC_ERROR";
|
|
32
34
|
ClawnchErrorCode["TIMEOUT"] = "TIMEOUT";
|
|
@@ -104,6 +106,7 @@ export async function withRetry(fn, maxRetries = 2, baseDelayMs = 1000) {
|
|
|
104
106
|
ClawnchErrorCode.WALLET_NOT_CONFIGURED,
|
|
105
107
|
ClawnchErrorCode.PUBLIC_CLIENT_NOT_CONFIGURED,
|
|
106
108
|
ClawnchErrorCode.FEATURE_NOT_AVAILABLE,
|
|
109
|
+
ClawnchErrorCode.INVALID_CHAIN,
|
|
107
110
|
ClawnchErrorCode.INSUFFICIENT_FUNDS,
|
|
108
111
|
];
|
|
109
112
|
if (nonRetryable.includes(err.code))
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,gBA6BX;AA7BD,WAAY,gBAAgB;IAC1B,oBAAoB;IACpB,+CAA2B,CAAA;IAC3B,iDAA6B,CAAA;IAC7B,qDAAiC,CAAA;IACjC,uDAAmC,CAAA;IAEnC,uBAAuB;IACvB,mEAA+C,CAAA;IAC/C,iFAA6D,CAAA;IAE7D,oBAAoB;IACpB,mDAA+B,CAAA;IAC/B,+CAA2B,CAAA;IAC3B,6DAAyC,CAAA;IAEzC,kBAAkB;IAClB,iDAA6B,CAAA;IAC7B,2DAAuC,CAAA;IAEvC,wBAAwB;IACxB,mEAA+C,CAAA;IAE/C,eAAe;IACf,mDAA+B,CAAA;IAE/B,iBAAiB;IACjB,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;AACrB,CAAC,EA7BW,gBAAgB,KAAhB,gBAAgB,QA6B3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAIzB;IAEA;IALT,IAAI,GAAG,oBAAoB,CAAC;IAErC,YACkB,IAAsB,EACtC,OAAe,EACC,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAkB;QAEtB,UAAK,GAAL,KAAK,CAAQ;IAG/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,GAAG,YAAY,kBAAkB,CAAC;AAC3C,CAAC;AAED,4EAA4E;AAC5E,gBAAgB;AAChB,4EAA4E;AAE5E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,aAAqB,CAAC,EACtB,cAAsB,IAAI;IAE1B,IAAI,SAAkB,CAAC;IACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAC;YAEhB,sCAAsC;YACtC,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAuB;oBACvC,gBAAgB,CAAC,WAAW;oBAC5B,gBAAgB,CAAC,YAAY;oBAC7B,gBAAgB,CAAC,cAAc;oBAC/B,gBAAgB,CAAC,eAAe;oBAChC,gBAAgB,CAAC,qBAAqB;oBACtC,gBAAgB,CAAC,4BAA4B;oBAC7C,gBAAgB,CAAC,qBAAqB;oBACtC,gBAAgB,CAAC,aAAa;oBAC9B,gBAAgB,CAAC,kBAAkB;iBACpC,CAAC;gBACF,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,MAAM,GAAG,CAAC;YACjD,CAAC;YAED,yCAAyC;YACzC,IAAI,OAAO,KAAK,UAAU;gBAAE,MAAM;YAElC,uCAAuC;YACvC,MAAM,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC;AAClB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -54,6 +54,10 @@ export * from './liquidity.js';
|
|
|
54
54
|
export * from './liquidity-types.js';
|
|
55
55
|
export * from './uniswap-addresses.js';
|
|
56
56
|
export * from './uniswap-abis.js';
|
|
57
|
+
export * from './uniswap-chains.js';
|
|
58
|
+
export * from './uniswap-trading.js';
|
|
59
|
+
export * from './uniswap-quoter.js';
|
|
60
|
+
export * from './permit2.js';
|
|
57
61
|
export * from './api-deployer.js';
|
|
58
62
|
export * from './api-deployer-types.js';
|
|
59
63
|
export * from './price.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -59,6 +59,14 @@ export * from './liquidity.js';
|
|
|
59
59
|
export * from './liquidity-types.js';
|
|
60
60
|
export * from './uniswap-addresses.js';
|
|
61
61
|
export * from './uniswap-abis.js';
|
|
62
|
+
// Multi-chain Uniswap registry (15+ chains)
|
|
63
|
+
export * from './uniswap-chains.js';
|
|
64
|
+
// Uniswap Trading API (swap via Uniswap's hosted API)
|
|
65
|
+
export * from './uniswap-trading.js';
|
|
66
|
+
// V4 Quoter (on-chain swap simulation + price impact)
|
|
67
|
+
export * from './uniswap-quoter.js';
|
|
68
|
+
// Permit2 (EIP-712 signature-based token approvals)
|
|
69
|
+
export * from './permit2.js';
|
|
62
70
|
// Verified agent launches (via Clawnch API)
|
|
63
71
|
export * from './api-deployer.js';
|
|
64
72
|
export * from './api-deployer-types.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/liquidity.d.ts
CHANGED
|
@@ -26,13 +26,17 @@
|
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
28
|
import { type Address, type Hex, type Hash } from 'viem';
|
|
29
|
+
import { Permit2Client } from './permit2.js';
|
|
29
30
|
import type { LiquidityConfig, V4PoolKey, V4PoolState, V4MintParams, V3MintParams, V3AddLiquidityParams, V3RemoveLiquidityParams, V3CollectFeesParams, PositionInfo, MintResult, ModifyLiquidityResult, CollectFeesResult } from './liquidity-types.js';
|
|
30
31
|
export type { LiquidityConfig, V4PoolKey, V4PoolState, V4MintParams, V4AddLiquidityParams, V4RemoveLiquidityParams, V4CollectFeesParams, V3MintParams, V3AddLiquidityParams, V3RemoveLiquidityParams, V3CollectFeesParams, PositionInfo, MintResult, ModifyLiquidityResult, CollectFeesResult, } from './liquidity-types.js';
|
|
31
32
|
export declare class ClawnchLiquidity {
|
|
32
33
|
private readonly wallet;
|
|
33
34
|
private readonly publicClient;
|
|
34
35
|
private readonly network;
|
|
36
|
+
private _permit2;
|
|
35
37
|
constructor(config: LiquidityConfig);
|
|
38
|
+
/** Lazy-initialized Permit2 client for V4 approval flows */
|
|
39
|
+
get permit2(): Permit2Client;
|
|
36
40
|
private getChain;
|
|
37
41
|
private getWalletAddress;
|
|
38
42
|
/**
|
|
@@ -48,17 +52,19 @@ export declare class ClawnchLiquidity {
|
|
|
48
52
|
*/
|
|
49
53
|
v4GetPosition(tokenId: bigint): Promise<PositionInfo>;
|
|
50
54
|
/**
|
|
51
|
-
* Mint a new V4 liquidity position
|
|
55
|
+
* Mint a new V4 liquidity position using the @uniswap/v4-sdk.
|
|
52
56
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* may not be available.
|
|
57
|
+
* Creates a Position object from the desired amounts, computes the
|
|
58
|
+
* encoded calldata via V4PositionManager.addCallParameters(), and
|
|
59
|
+
* executes it through the PositionManager contract.
|
|
57
60
|
*
|
|
58
|
-
*
|
|
59
|
-
* V4PositionManager.addCallParameters() for proper slippage calculation.
|
|
61
|
+
* Handles token approvals to the PositionManager before minting.
|
|
60
62
|
*/
|
|
61
|
-
v4MintPosition(
|
|
63
|
+
v4MintPosition(params: V4MintParams): Promise<MintResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Helper: get ERC20 token decimals
|
|
66
|
+
*/
|
|
67
|
+
private getTokenDecimals;
|
|
62
68
|
/**
|
|
63
69
|
* Execute a V4 PositionManager multicall with pre-built calldata
|
|
64
70
|
*
|
package/dist/liquidity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquidity.d.ts","sourceRoot":"","sources":["../src/liquidity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,IAAI,EAKV,MAAM,MAAM,CAAC;AAKd,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EAIZ,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AA4B9B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;
|
|
1
|
+
{"version":3,"file":"liquidity.d.ts","sourceRoot":"","sources":["../src/liquidity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,IAAI,EAKV,MAAM,MAAM,CAAC;AAKd,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EAIZ,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AA4B9B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAA8B;gBAElC,MAAM,EAAE,eAAe;IAmBnC,4DAA4D;IAC5D,IAAI,OAAO,IAAI,aAAa,CAS3B;IAED,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;YACW,cAAc;IA8B5B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IA8C9D;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+E3D;;;;;;;;OAQG;IACG,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAkK/D;;OAEG;YACW,gBAAgB;IAa9B;;;;;;;;;;OAUG;IACG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC;IA4BpG;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA8B3D;;OAEG;IACG,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsCxE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IA6E/D;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA2DnG;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA8GzG;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8ClG;;OAEG;IACG,oBAAoB,CACxB,YAAY,EAAE,OAAO,EACrB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,EAAE,CAAC;CAQ3B"}
|
package/dist/liquidity.js
CHANGED
|
@@ -28,8 +28,9 @@
|
|
|
28
28
|
import { erc20Abi, maxUint256, maxUint128, encodeFunctionData, } from 'viem';
|
|
29
29
|
import { base, baseSepolia } from 'viem/chains';
|
|
30
30
|
import { ClawnchErrorCode, ClawnchDeployError } from './errors.js';
|
|
31
|
-
import { getUniswapV4Addresses, getUniswapV3Addresses } from './uniswap-addresses.js';
|
|
31
|
+
import { getUniswapV4Addresses, getUniswapV3Addresses, getCommonAddresses } from './uniswap-addresses.js';
|
|
32
32
|
import { StateViewABI, V4PositionManagerABI, V3NonfungiblePositionManagerABI } from './uniswap-abis.js';
|
|
33
|
+
import { Permit2Client } from './permit2.js';
|
|
33
34
|
// ============================================================================
|
|
34
35
|
// Constants
|
|
35
36
|
// ============================================================================
|
|
@@ -54,6 +55,7 @@ export class ClawnchLiquidity {
|
|
|
54
55
|
wallet;
|
|
55
56
|
publicClient;
|
|
56
57
|
network;
|
|
58
|
+
_permit2 = null;
|
|
57
59
|
constructor(config) {
|
|
58
60
|
if (!config.wallet) {
|
|
59
61
|
throw new ClawnchDeployError(ClawnchErrorCode.WALLET_NOT_CONFIGURED, 'Wallet client is required for ClawnchLiquidity');
|
|
@@ -65,6 +67,17 @@ export class ClawnchLiquidity {
|
|
|
65
67
|
this.publicClient = config.publicClient;
|
|
66
68
|
this.network = config.network ?? 'mainnet';
|
|
67
69
|
}
|
|
70
|
+
/** Lazy-initialized Permit2 client for V4 approval flows */
|
|
71
|
+
get permit2() {
|
|
72
|
+
if (!this._permit2) {
|
|
73
|
+
this._permit2 = new Permit2Client({
|
|
74
|
+
wallet: this.wallet,
|
|
75
|
+
publicClient: this.publicClient,
|
|
76
|
+
chainId: this.getChain().id,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return this._permit2;
|
|
80
|
+
}
|
|
68
81
|
getChain() {
|
|
69
82
|
return this.network === 'mainnet' ? base : baseSepolia;
|
|
70
83
|
}
|
|
@@ -207,23 +220,144 @@ export class ClawnchLiquidity {
|
|
|
207
220
|
// V4: Mint Position
|
|
208
221
|
// ==========================================================================
|
|
209
222
|
/**
|
|
210
|
-
* Mint a new V4 liquidity position
|
|
223
|
+
* Mint a new V4 liquidity position using the @uniswap/v4-sdk.
|
|
211
224
|
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
* may not be available.
|
|
225
|
+
* Creates a Position object from the desired amounts, computes the
|
|
226
|
+
* encoded calldata via V4PositionManager.addCallParameters(), and
|
|
227
|
+
* executes it through the PositionManager contract.
|
|
216
228
|
*
|
|
217
|
-
*
|
|
218
|
-
* V4PositionManager.addCallParameters() for proper slippage calculation.
|
|
229
|
+
* Handles token approvals to the PositionManager before minting.
|
|
219
230
|
*/
|
|
220
|
-
async v4MintPosition(
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
231
|
+
async v4MintPosition(params) {
|
|
232
|
+
const v4 = getUniswapV4Addresses(this.network);
|
|
233
|
+
const common = getCommonAddresses(this.network);
|
|
234
|
+
const recipient = params.recipient ?? this.getWalletAddress();
|
|
235
|
+
const hookAddress = params.hookAddress ?? ZERO_ADDRESS;
|
|
236
|
+
// Dynamically import the V4 SDK (heavy dependency, loaded lazily)
|
|
237
|
+
let v4Sdk;
|
|
238
|
+
let sdkCore;
|
|
239
|
+
try {
|
|
240
|
+
v4Sdk = await import('@uniswap/v4-sdk');
|
|
241
|
+
sdkCore = await import('@uniswap/sdk-core');
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
throw new ClawnchDeployError(ClawnchErrorCode.FEATURE_NOT_AVAILABLE, 'V4 minting requires @uniswap/v4-sdk and @uniswap/sdk-core. ' +
|
|
245
|
+
'Install them: npm install @uniswap/v4-sdk @uniswap/sdk-core');
|
|
246
|
+
}
|
|
247
|
+
// Build Currency objects for the SDK
|
|
248
|
+
const chainId = this.getChain().id;
|
|
249
|
+
const isToken0Native = params.token0.toLowerCase() === ZERO_ADDRESS.toLowerCase();
|
|
250
|
+
const isToken1Native = params.token1.toLowerCase() === ZERO_ADDRESS.toLowerCase();
|
|
251
|
+
const isToken0Weth = params.token0.toLowerCase() === common.weth.toLowerCase();
|
|
252
|
+
const isToken1Weth = params.token1.toLowerCase() === common.weth.toLowerCase();
|
|
253
|
+
// For the SDK, we need Token objects. WETH is treated as a Token, not native.
|
|
254
|
+
const currency0 = new sdkCore.Token(chainId, params.token0, 18);
|
|
255
|
+
const currency1 = new sdkCore.Token(chainId, params.token1, 18);
|
|
256
|
+
// We need to fetch token decimals for non-WETH tokens
|
|
257
|
+
const [decimals0, decimals1] = await Promise.all([
|
|
258
|
+
isToken0Native ? Promise.resolve(18) : this.getTokenDecimals(params.token0),
|
|
259
|
+
isToken1Native ? Promise.resolve(18) : this.getTokenDecimals(params.token1),
|
|
260
|
+
]);
|
|
261
|
+
const token0 = new sdkCore.Token(chainId, params.token0, decimals0);
|
|
262
|
+
const token1 = new sdkCore.Token(chainId, params.token1, decimals1);
|
|
263
|
+
// Read current pool state to construct Pool object
|
|
264
|
+
const poolState = await this.v4GetPoolState({
|
|
265
|
+
currency0: params.token0,
|
|
266
|
+
currency1: params.token1,
|
|
267
|
+
fee: params.fee,
|
|
268
|
+
tickSpacing: params.tickSpacing,
|
|
269
|
+
hooks: hookAddress,
|
|
270
|
+
});
|
|
271
|
+
if (poolState.sqrtPriceX96 === 0n) {
|
|
272
|
+
throw new ClawnchDeployError(ClawnchErrorCode.DEPLOY_FAILED, 'Pool does not exist or has no liquidity. Initialize the pool first.');
|
|
273
|
+
}
|
|
274
|
+
// Construct the SDK Pool object
|
|
275
|
+
const pool = new v4Sdk.Pool(token0, token1, params.fee, params.tickSpacing, hookAddress, poolState.sqrtPriceX96.toString(), poolState.liquidity.toString(), poolState.tick);
|
|
276
|
+
// Construct Position from amounts
|
|
277
|
+
const position = v4Sdk.Position.fromAmounts({
|
|
278
|
+
pool,
|
|
279
|
+
tickLower: params.tickLower,
|
|
280
|
+
tickUpper: params.tickUpper,
|
|
281
|
+
amount0: params.amount0Desired.toString(),
|
|
282
|
+
amount1: params.amount1Desired.toString(),
|
|
283
|
+
useFullPrecision: true,
|
|
284
|
+
});
|
|
285
|
+
// Compute slippage-adjusted parameters
|
|
286
|
+
const slippageBps = params.slippageBps ?? DEFAULT_SLIPPAGE_BPS;
|
|
287
|
+
const slippageTolerance = new sdkCore.Percent(slippageBps, 10000);
|
|
288
|
+
const deadline = getDeadline(params.deadline);
|
|
289
|
+
// Build calldata using V4PositionManager
|
|
290
|
+
const useNative = params.useNativeEth && (isToken0Weth || isToken1Weth)
|
|
291
|
+
? sdkCore.Ether.onChain(chainId)
|
|
292
|
+
: undefined;
|
|
293
|
+
const { calldata, value } = v4Sdk.V4PositionManager.addCallParameters(position, {
|
|
294
|
+
slippageTolerance,
|
|
295
|
+
deadline: deadline.toString(),
|
|
296
|
+
recipient,
|
|
297
|
+
useNative,
|
|
298
|
+
});
|
|
299
|
+
// Approve tokens via Permit2 for the V4 PositionManager.
|
|
300
|
+
// V4 uses Permit2-based approvals: ERC20→Permit2 (one-time), then
|
|
301
|
+
// Permit2→PositionManager (allowance grant).
|
|
302
|
+
const tokensToApprove = [];
|
|
303
|
+
if (!isToken0Native && !(params.useNativeEth && isToken0Weth)) {
|
|
304
|
+
tokensToApprove.push(params.token0);
|
|
305
|
+
}
|
|
306
|
+
if (!isToken1Native && !(params.useNativeEth && isToken1Weth)) {
|
|
307
|
+
tokensToApprove.push(params.token1);
|
|
308
|
+
}
|
|
309
|
+
if (tokensToApprove.length === 2) {
|
|
310
|
+
await this.permit2.ensurePermit2AllowancePair(tokensToApprove[0], tokensToApprove[1], v4.positionManager, params.amount0Desired, params.amount1Desired);
|
|
311
|
+
}
|
|
312
|
+
else if (tokensToApprove.length === 1) {
|
|
313
|
+
const amount = tokensToApprove[0].toLowerCase() === params.token0.toLowerCase()
|
|
314
|
+
? params.amount0Desired
|
|
315
|
+
: params.amount1Desired;
|
|
316
|
+
await this.permit2.ensurePermit2Allowance(tokensToApprove[0], v4.positionManager, amount);
|
|
317
|
+
}
|
|
318
|
+
// Execute the multicall
|
|
319
|
+
const ethValue = BigInt(value);
|
|
320
|
+
const { txHash, receipt } = await this.v4ExecuteMulticall(calldata, ethValue);
|
|
321
|
+
// Parse mint event from receipt to get tokenId and amounts
|
|
322
|
+
// PositionManager emits Transfer(address,address,uint256) for the NFT mint
|
|
323
|
+
let tokenId = 0n;
|
|
324
|
+
let amount0 = params.amount0Desired;
|
|
325
|
+
let amount1 = params.amount1Desired;
|
|
326
|
+
let liquidityMinted = BigInt(position.liquidity.toString());
|
|
327
|
+
// Try to parse Transfer event (ERC721: topic[0]=Transfer, topic[1]=from, topic[2]=to, topic[3]=tokenId)
|
|
328
|
+
const transferTopic = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
|
|
329
|
+
for (const log of receipt.logs) {
|
|
330
|
+
if (log.address.toLowerCase() === v4.positionManager.toLowerCase() &&
|
|
331
|
+
log.topics[0] === transferTopic &&
|
|
332
|
+
log.topics.length === 4) {
|
|
333
|
+
tokenId = BigInt(log.topics[3] || '0');
|
|
334
|
+
break;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
return {
|
|
338
|
+
txHash,
|
|
339
|
+
tokenId,
|
|
340
|
+
amount0,
|
|
341
|
+
amount1,
|
|
342
|
+
liquidity: liquidityMinted,
|
|
343
|
+
receipt,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Helper: get ERC20 token decimals
|
|
348
|
+
*/
|
|
349
|
+
async getTokenDecimals(token) {
|
|
350
|
+
try {
|
|
351
|
+
const decimals = await this.publicClient.readContract({
|
|
352
|
+
address: token,
|
|
353
|
+
abi: erc20Abi,
|
|
354
|
+
functionName: 'decimals',
|
|
355
|
+
});
|
|
356
|
+
return decimals;
|
|
357
|
+
}
|
|
358
|
+
catch {
|
|
359
|
+
return 18; // default assumption
|
|
360
|
+
}
|
|
227
361
|
}
|
|
228
362
|
/**
|
|
229
363
|
* Execute a V4 PositionManager multicall with pre-built calldata
|