liquid-sdk 1.3.2 → 1.5.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/dist/index.d.mts +77 -6
- package/dist/index.d.ts +77 -6
- package/dist/index.js +112 -32
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +112 -32
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -197,6 +197,23 @@ interface LiquidSDKConfig {
|
|
|
197
197
|
publicClient?: any;
|
|
198
198
|
walletClient?: any;
|
|
199
199
|
}
|
|
200
|
+
interface BidInAuctionParams {
|
|
201
|
+
/** The pool key identifying the token's Uniswap V4 pool */
|
|
202
|
+
poolKey: PoolKey;
|
|
203
|
+
/** True if swapping token0 → token1 (typically ETH → token) */
|
|
204
|
+
zeroForOne: boolean;
|
|
205
|
+
/** Amount of input token (in wei) */
|
|
206
|
+
amountIn: bigint;
|
|
207
|
+
/** Minimum output tokens to receive (slippage protection) */
|
|
208
|
+
amountOutMinimum: bigint;
|
|
209
|
+
/** The auction round to bid in (must match current round on-chain) */
|
|
210
|
+
round: bigint;
|
|
211
|
+
/** ETH bid amount — sent as msg.value, must equal (gasPrice - gasPeg) × paymentPerGasUnit */
|
|
212
|
+
bidAmount: bigint;
|
|
213
|
+
}
|
|
214
|
+
interface BidInAuctionResult {
|
|
215
|
+
txHash: Hash;
|
|
216
|
+
}
|
|
200
217
|
interface DeployTokenResult {
|
|
201
218
|
tokenAddress: Address;
|
|
202
219
|
txHash: Hash;
|
|
@@ -244,6 +261,35 @@ declare class LiquidSDK {
|
|
|
244
261
|
getAuctionDecayStartTime(poolId: Hex): Promise<bigint>;
|
|
245
262
|
getAuctionMaxRounds(): Promise<bigint>;
|
|
246
263
|
getAuctionGasPriceForBid(auctionGasPeg: bigint, desiredBidAmount: bigint): Promise<bigint>;
|
|
264
|
+
/**
|
|
265
|
+
* Bid in a sniper auction for early access to a newly launched token.
|
|
266
|
+
*
|
|
267
|
+
* The auction lets bidders compete via gas price — the bid amount is
|
|
268
|
+
* determined by how much your tx.gasprice exceeds the pool's gasPeg.
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```typescript
|
|
272
|
+
* // 1. Get auction state
|
|
273
|
+
* const state = await sdk.getAuctionState(poolId);
|
|
274
|
+
*
|
|
275
|
+
* // 2. Calculate gas price for desired bid
|
|
276
|
+
* const gasPrice = await sdk.getAuctionGasPriceForBid(state.gasPeg, bidAmount);
|
|
277
|
+
*
|
|
278
|
+
* // 3. Get pool key from token rewards
|
|
279
|
+
* const rewards = await sdk.getTokenRewards(tokenAddress);
|
|
280
|
+
*
|
|
281
|
+
* // 4. Bid
|
|
282
|
+
* const result = await sdk.bidInAuction({
|
|
283
|
+
* poolKey: rewards.poolKey,
|
|
284
|
+
* zeroForOne: true, // ETH → token
|
|
285
|
+
* amountIn: parseEther("0.1"), // swap 0.1 ETH
|
|
286
|
+
* amountOutMinimum: 0n, // set slippage
|
|
287
|
+
* round: state.round,
|
|
288
|
+
* bidAmount: parseEther("0.01"),
|
|
289
|
+
* }, gasPrice);
|
|
290
|
+
* ```
|
|
291
|
+
*/
|
|
292
|
+
bidInAuction(params: BidInAuctionParams, maxFeePerGas: bigint): Promise<BidInAuctionResult>;
|
|
247
293
|
getAirdropInfo(tokenAddress: Address): Promise<AirdropInfo>;
|
|
248
294
|
getAirdropClaimable(tokenAddress: Address, recipient: Address, allocatedAmount: bigint): Promise<bigint>;
|
|
249
295
|
claimAirdrop(tokenAddress: Address, recipient: Address, allocatedAmount: bigint, proof: Hex[]): Promise<Hash>;
|
|
@@ -304,17 +350,18 @@ declare const ADDRESSES: {
|
|
|
304
350
|
readonly FACTORY: Address;
|
|
305
351
|
readonly POOL_EXTENSION_ALLOWLIST: Address;
|
|
306
352
|
readonly FEE_LOCKER: Address;
|
|
307
|
-
readonly LP_LOCKER: Address;
|
|
308
353
|
readonly LP_LOCKER_FEE_CONVERSION: Address;
|
|
309
354
|
readonly VAULT: Address;
|
|
310
355
|
readonly HOOK_DYNAMIC_FEE_V2: Address;
|
|
311
356
|
readonly HOOK_STATIC_FEE_V2: Address;
|
|
312
357
|
readonly SNIPER_AUCTION_V2: Address;
|
|
313
358
|
readonly SNIPER_UTIL_V2: Address;
|
|
314
|
-
readonly
|
|
359
|
+
readonly MEV_DESCENDING_FEES: Address;
|
|
315
360
|
readonly AIRDROP_V2: Address;
|
|
316
361
|
readonly UNIV4_ETH_DEV_BUY: Address;
|
|
317
|
-
readonly
|
|
362
|
+
readonly UNIV3_ETH_DEV_BUY: Address;
|
|
363
|
+
readonly PRESALE_ETH_TO_CREATOR: Address;
|
|
364
|
+
readonly PRESALE_ALLOWLIST: Address;
|
|
318
365
|
};
|
|
319
366
|
declare const EXTERNAL: {
|
|
320
367
|
readonly POOL_MANAGER: Address;
|
|
@@ -361,7 +408,7 @@ interface PoolPosition {
|
|
|
361
408
|
declare const POOL_POSITIONS: {
|
|
362
409
|
/** Single position, 100% of liquidity in one range */
|
|
363
410
|
readonly Standard: PoolPosition[];
|
|
364
|
-
/**
|
|
411
|
+
/** 5-position layout with concentrated mid-range liquidity */
|
|
365
412
|
readonly Liquid: PoolPosition[];
|
|
366
413
|
};
|
|
367
414
|
/**
|
|
@@ -469,7 +516,31 @@ declare const DEFAULT_CHAIN: {
|
|
|
469
516
|
formatters: {
|
|
470
517
|
readonly block: {
|
|
471
518
|
exclude: [] | undefined;
|
|
472
|
-
format: (args: viem_chains.OpStackRpcBlock, action
|
|
519
|
+
format: (args: viem_chains.OpStackRpcBlock, action
|
|
520
|
+
/**
|
|
521
|
+
* Pre-built position configurations.
|
|
522
|
+
*
|
|
523
|
+
* - **Standard**: Single position covering full range (~$20K → $1.5B).
|
|
524
|
+
* Default starting tick -230400 (≈10 ETH market cap).
|
|
525
|
+
*
|
|
526
|
+
* - **Liquid**: 3-tranche default for Liquid Protocol.
|
|
527
|
+
* Hardcoded for ≈10 ETH start at ~$2070/ETH.
|
|
528
|
+
* For dynamic market cap targets, use `createPositionsUSD()` instead.
|
|
529
|
+
*
|
|
530
|
+
* Note: positionBps must sum to 10,000 (100%).
|
|
531
|
+
*/
|
|
532
|
+
? /**
|
|
533
|
+
* Pre-built position configurations.
|
|
534
|
+
*
|
|
535
|
+
* - **Standard**: Single position covering full range (~$20K → $1.5B).
|
|
536
|
+
* Default starting tick -230400 (≈10 ETH market cap).
|
|
537
|
+
*
|
|
538
|
+
* - **Liquid**: 3-tranche default for Liquid Protocol.
|
|
539
|
+
* Hardcoded for ≈10 ETH start at ~$2070/ETH.
|
|
540
|
+
* For dynamic market cap targets, use `createPositionsUSD()` instead.
|
|
541
|
+
*
|
|
542
|
+
* Note: positionBps must sum to 10,000 (100%).
|
|
543
|
+
*/: string | undefined) => {
|
|
473
544
|
baseFeePerGas: bigint | null;
|
|
474
545
|
blobGasUsed: bigint;
|
|
475
546
|
difficulty: bigint;
|
|
@@ -2396,4 +2467,4 @@ declare function parseContext(contextString: string): LiquidContext | null;
|
|
|
2396
2467
|
*/
|
|
2397
2468
|
declare function parseMetadata(metadataString: string): LiquidMetadata | null;
|
|
2398
2469
|
|
|
2399
|
-
export { ADDRESSES, type AirdropInfo, DEFAULTS, DEFAULT_CHAIN, DEFAULT_CHAIN_ID, DEFAULT_RPC_URL, DEFAULT_TRANCHES_USD, type DeployTokenParams, type DeployTokenResult, type DeploymentConfig, type DeploymentInfo, type DevBuyParams, type DynamicFeeConfig, ERC20Abi, EXTERNAL, type ExtensionConfig, FEE, FeePreference, type GetTokensOptions, LiquidAirdropV2Abi, type LiquidContext, LiquidFactoryAbi, LiquidFeeLockerAbi, LiquidHookDynamicFeeV2Abi, LiquidLpLockerAbi, type LiquidMetadata, LiquidMevBlockDelayAbi, LiquidPoolExtensionAllowlistAbi, LiquidSDK, type LiquidSDKConfig, LiquidSniperAuctionV2Abi, LiquidSniperUtilV2Abi, LiquidTokenAbi, LiquidUniv4EthDevBuyAbi, LiquidVaultAbi, type LockerConfig, type MarketCapTranche, type MarketCapTrancheUSD, type MevModuleConfig, POOL_POSITIONS, type PoolConfig, type PoolDynamicConfigVars, type PoolDynamicFeeVars, type PoolKey, type PoolPosition, type PositionArrays, type PositionConfig, type SniperAuctionConfig, type SniperAuctionFeeConfig, type SniperAuctionState, type SocialMediaUrl, TOKEN, type TokenConfig, type TokenCreatedEvent, type TokenRewardInfo, type VaultAllocation, buildContext, buildMetadata, createDefaultPositions, createPositions, createPositionsUSD, describePositions, encodeDynamicFeePoolData, encodeFeeConversionLockerData, encodeSniperAuctionData, encodeStaticFeePoolData, getTickFromMarketCapETH, getTickFromMarketCapStable, getTickFromMarketCapUSD, marketCapFromTickETH, marketCapFromTickUSD, parseContext, parseMetadata };
|
|
2470
|
+
export { ADDRESSES, type AirdropInfo, type BidInAuctionParams, type BidInAuctionResult, DEFAULTS, DEFAULT_CHAIN, DEFAULT_CHAIN_ID, DEFAULT_RPC_URL, DEFAULT_TRANCHES_USD, type DeployTokenParams, type DeployTokenResult, type DeploymentConfig, type DeploymentInfo, type DevBuyParams, type DynamicFeeConfig, ERC20Abi, EXTERNAL, type ExtensionConfig, FEE, FeePreference, type GetTokensOptions, LiquidAirdropV2Abi, type LiquidContext, LiquidFactoryAbi, LiquidFeeLockerAbi, LiquidHookDynamicFeeV2Abi, LiquidLpLockerAbi, type LiquidMetadata, LiquidMevBlockDelayAbi, LiquidPoolExtensionAllowlistAbi, LiquidSDK, type LiquidSDKConfig, LiquidSniperAuctionV2Abi, LiquidSniperUtilV2Abi, LiquidTokenAbi, LiquidUniv4EthDevBuyAbi, LiquidVaultAbi, type LockerConfig, type MarketCapTranche, type MarketCapTrancheUSD, type MevModuleConfig, POOL_POSITIONS, type PoolConfig, type PoolDynamicConfigVars, type PoolDynamicFeeVars, type PoolKey, type PoolPosition, type PositionArrays, type PositionConfig, type SniperAuctionConfig, type SniperAuctionFeeConfig, type SniperAuctionState, type SocialMediaUrl, TOKEN, type TokenConfig, type TokenCreatedEvent, type TokenRewardInfo, type VaultAllocation, buildContext, buildMetadata, createDefaultPositions, createPositions, createPositionsUSD, describePositions, encodeDynamicFeePoolData, encodeFeeConversionLockerData, encodeSniperAuctionData, encodeStaticFeePoolData, getTickFromMarketCapETH, getTickFromMarketCapStable, getTickFromMarketCapUSD, marketCapFromTickETH, marketCapFromTickUSD, parseContext, parseMetadata };
|
package/dist/index.d.ts
CHANGED
|
@@ -197,6 +197,23 @@ interface LiquidSDKConfig {
|
|
|
197
197
|
publicClient?: any;
|
|
198
198
|
walletClient?: any;
|
|
199
199
|
}
|
|
200
|
+
interface BidInAuctionParams {
|
|
201
|
+
/** The pool key identifying the token's Uniswap V4 pool */
|
|
202
|
+
poolKey: PoolKey;
|
|
203
|
+
/** True if swapping token0 → token1 (typically ETH → token) */
|
|
204
|
+
zeroForOne: boolean;
|
|
205
|
+
/** Amount of input token (in wei) */
|
|
206
|
+
amountIn: bigint;
|
|
207
|
+
/** Minimum output tokens to receive (slippage protection) */
|
|
208
|
+
amountOutMinimum: bigint;
|
|
209
|
+
/** The auction round to bid in (must match current round on-chain) */
|
|
210
|
+
round: bigint;
|
|
211
|
+
/** ETH bid amount — sent as msg.value, must equal (gasPrice - gasPeg) × paymentPerGasUnit */
|
|
212
|
+
bidAmount: bigint;
|
|
213
|
+
}
|
|
214
|
+
interface BidInAuctionResult {
|
|
215
|
+
txHash: Hash;
|
|
216
|
+
}
|
|
200
217
|
interface DeployTokenResult {
|
|
201
218
|
tokenAddress: Address;
|
|
202
219
|
txHash: Hash;
|
|
@@ -244,6 +261,35 @@ declare class LiquidSDK {
|
|
|
244
261
|
getAuctionDecayStartTime(poolId: Hex): Promise<bigint>;
|
|
245
262
|
getAuctionMaxRounds(): Promise<bigint>;
|
|
246
263
|
getAuctionGasPriceForBid(auctionGasPeg: bigint, desiredBidAmount: bigint): Promise<bigint>;
|
|
264
|
+
/**
|
|
265
|
+
* Bid in a sniper auction for early access to a newly launched token.
|
|
266
|
+
*
|
|
267
|
+
* The auction lets bidders compete via gas price — the bid amount is
|
|
268
|
+
* determined by how much your tx.gasprice exceeds the pool's gasPeg.
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```typescript
|
|
272
|
+
* // 1. Get auction state
|
|
273
|
+
* const state = await sdk.getAuctionState(poolId);
|
|
274
|
+
*
|
|
275
|
+
* // 2. Calculate gas price for desired bid
|
|
276
|
+
* const gasPrice = await sdk.getAuctionGasPriceForBid(state.gasPeg, bidAmount);
|
|
277
|
+
*
|
|
278
|
+
* // 3. Get pool key from token rewards
|
|
279
|
+
* const rewards = await sdk.getTokenRewards(tokenAddress);
|
|
280
|
+
*
|
|
281
|
+
* // 4. Bid
|
|
282
|
+
* const result = await sdk.bidInAuction({
|
|
283
|
+
* poolKey: rewards.poolKey,
|
|
284
|
+
* zeroForOne: true, // ETH → token
|
|
285
|
+
* amountIn: parseEther("0.1"), // swap 0.1 ETH
|
|
286
|
+
* amountOutMinimum: 0n, // set slippage
|
|
287
|
+
* round: state.round,
|
|
288
|
+
* bidAmount: parseEther("0.01"),
|
|
289
|
+
* }, gasPrice);
|
|
290
|
+
* ```
|
|
291
|
+
*/
|
|
292
|
+
bidInAuction(params: BidInAuctionParams, maxFeePerGas: bigint): Promise<BidInAuctionResult>;
|
|
247
293
|
getAirdropInfo(tokenAddress: Address): Promise<AirdropInfo>;
|
|
248
294
|
getAirdropClaimable(tokenAddress: Address, recipient: Address, allocatedAmount: bigint): Promise<bigint>;
|
|
249
295
|
claimAirdrop(tokenAddress: Address, recipient: Address, allocatedAmount: bigint, proof: Hex[]): Promise<Hash>;
|
|
@@ -304,17 +350,18 @@ declare const ADDRESSES: {
|
|
|
304
350
|
readonly FACTORY: Address;
|
|
305
351
|
readonly POOL_EXTENSION_ALLOWLIST: Address;
|
|
306
352
|
readonly FEE_LOCKER: Address;
|
|
307
|
-
readonly LP_LOCKER: Address;
|
|
308
353
|
readonly LP_LOCKER_FEE_CONVERSION: Address;
|
|
309
354
|
readonly VAULT: Address;
|
|
310
355
|
readonly HOOK_DYNAMIC_FEE_V2: Address;
|
|
311
356
|
readonly HOOK_STATIC_FEE_V2: Address;
|
|
312
357
|
readonly SNIPER_AUCTION_V2: Address;
|
|
313
358
|
readonly SNIPER_UTIL_V2: Address;
|
|
314
|
-
readonly
|
|
359
|
+
readonly MEV_DESCENDING_FEES: Address;
|
|
315
360
|
readonly AIRDROP_V2: Address;
|
|
316
361
|
readonly UNIV4_ETH_DEV_BUY: Address;
|
|
317
|
-
readonly
|
|
362
|
+
readonly UNIV3_ETH_DEV_BUY: Address;
|
|
363
|
+
readonly PRESALE_ETH_TO_CREATOR: Address;
|
|
364
|
+
readonly PRESALE_ALLOWLIST: Address;
|
|
318
365
|
};
|
|
319
366
|
declare const EXTERNAL: {
|
|
320
367
|
readonly POOL_MANAGER: Address;
|
|
@@ -361,7 +408,7 @@ interface PoolPosition {
|
|
|
361
408
|
declare const POOL_POSITIONS: {
|
|
362
409
|
/** Single position, 100% of liquidity in one range */
|
|
363
410
|
readonly Standard: PoolPosition[];
|
|
364
|
-
/**
|
|
411
|
+
/** 5-position layout with concentrated mid-range liquidity */
|
|
365
412
|
readonly Liquid: PoolPosition[];
|
|
366
413
|
};
|
|
367
414
|
/**
|
|
@@ -469,7 +516,31 @@ declare const DEFAULT_CHAIN: {
|
|
|
469
516
|
formatters: {
|
|
470
517
|
readonly block: {
|
|
471
518
|
exclude: [] | undefined;
|
|
472
|
-
format: (args: viem_chains.OpStackRpcBlock, action
|
|
519
|
+
format: (args: viem_chains.OpStackRpcBlock, action
|
|
520
|
+
/**
|
|
521
|
+
* Pre-built position configurations.
|
|
522
|
+
*
|
|
523
|
+
* - **Standard**: Single position covering full range (~$20K → $1.5B).
|
|
524
|
+
* Default starting tick -230400 (≈10 ETH market cap).
|
|
525
|
+
*
|
|
526
|
+
* - **Liquid**: 3-tranche default for Liquid Protocol.
|
|
527
|
+
* Hardcoded for ≈10 ETH start at ~$2070/ETH.
|
|
528
|
+
* For dynamic market cap targets, use `createPositionsUSD()` instead.
|
|
529
|
+
*
|
|
530
|
+
* Note: positionBps must sum to 10,000 (100%).
|
|
531
|
+
*/
|
|
532
|
+
? /**
|
|
533
|
+
* Pre-built position configurations.
|
|
534
|
+
*
|
|
535
|
+
* - **Standard**: Single position covering full range (~$20K → $1.5B).
|
|
536
|
+
* Default starting tick -230400 (≈10 ETH market cap).
|
|
537
|
+
*
|
|
538
|
+
* - **Liquid**: 3-tranche default for Liquid Protocol.
|
|
539
|
+
* Hardcoded for ≈10 ETH start at ~$2070/ETH.
|
|
540
|
+
* For dynamic market cap targets, use `createPositionsUSD()` instead.
|
|
541
|
+
*
|
|
542
|
+
* Note: positionBps must sum to 10,000 (100%).
|
|
543
|
+
*/: string | undefined) => {
|
|
473
544
|
baseFeePerGas: bigint | null;
|
|
474
545
|
blobGasUsed: bigint;
|
|
475
546
|
difficulty: bigint;
|
|
@@ -2396,4 +2467,4 @@ declare function parseContext(contextString: string): LiquidContext | null;
|
|
|
2396
2467
|
*/
|
|
2397
2468
|
declare function parseMetadata(metadataString: string): LiquidMetadata | null;
|
|
2398
2469
|
|
|
2399
|
-
export { ADDRESSES, type AirdropInfo, DEFAULTS, DEFAULT_CHAIN, DEFAULT_CHAIN_ID, DEFAULT_RPC_URL, DEFAULT_TRANCHES_USD, type DeployTokenParams, type DeployTokenResult, type DeploymentConfig, type DeploymentInfo, type DevBuyParams, type DynamicFeeConfig, ERC20Abi, EXTERNAL, type ExtensionConfig, FEE, FeePreference, type GetTokensOptions, LiquidAirdropV2Abi, type LiquidContext, LiquidFactoryAbi, LiquidFeeLockerAbi, LiquidHookDynamicFeeV2Abi, LiquidLpLockerAbi, type LiquidMetadata, LiquidMevBlockDelayAbi, LiquidPoolExtensionAllowlistAbi, LiquidSDK, type LiquidSDKConfig, LiquidSniperAuctionV2Abi, LiquidSniperUtilV2Abi, LiquidTokenAbi, LiquidUniv4EthDevBuyAbi, LiquidVaultAbi, type LockerConfig, type MarketCapTranche, type MarketCapTrancheUSD, type MevModuleConfig, POOL_POSITIONS, type PoolConfig, type PoolDynamicConfigVars, type PoolDynamicFeeVars, type PoolKey, type PoolPosition, type PositionArrays, type PositionConfig, type SniperAuctionConfig, type SniperAuctionFeeConfig, type SniperAuctionState, type SocialMediaUrl, TOKEN, type TokenConfig, type TokenCreatedEvent, type TokenRewardInfo, type VaultAllocation, buildContext, buildMetadata, createDefaultPositions, createPositions, createPositionsUSD, describePositions, encodeDynamicFeePoolData, encodeFeeConversionLockerData, encodeSniperAuctionData, encodeStaticFeePoolData, getTickFromMarketCapETH, getTickFromMarketCapStable, getTickFromMarketCapUSD, marketCapFromTickETH, marketCapFromTickUSD, parseContext, parseMetadata };
|
|
2470
|
+
export { ADDRESSES, type AirdropInfo, type BidInAuctionParams, type BidInAuctionResult, DEFAULTS, DEFAULT_CHAIN, DEFAULT_CHAIN_ID, DEFAULT_RPC_URL, DEFAULT_TRANCHES_USD, type DeployTokenParams, type DeployTokenResult, type DeploymentConfig, type DeploymentInfo, type DevBuyParams, type DynamicFeeConfig, ERC20Abi, EXTERNAL, type ExtensionConfig, FEE, FeePreference, type GetTokensOptions, LiquidAirdropV2Abi, type LiquidContext, LiquidFactoryAbi, LiquidFeeLockerAbi, LiquidHookDynamicFeeV2Abi, LiquidLpLockerAbi, type LiquidMetadata, LiquidMevBlockDelayAbi, LiquidPoolExtensionAllowlistAbi, LiquidSDK, type LiquidSDKConfig, LiquidSniperAuctionV2Abi, LiquidSniperUtilV2Abi, LiquidTokenAbi, LiquidUniv4EthDevBuyAbi, LiquidVaultAbi, type LockerConfig, type MarketCapTranche, type MarketCapTrancheUSD, type MevModuleConfig, POOL_POSITIONS, type PoolConfig, type PoolDynamicConfigVars, type PoolDynamicFeeVars, type PoolKey, type PoolPosition, type PositionArrays, type PositionConfig, type SniperAuctionConfig, type SniperAuctionFeeConfig, type SniperAuctionState, type SocialMediaUrl, TOKEN, type TokenConfig, type TokenCreatedEvent, type TokenRewardInfo, type VaultAllocation, buildContext, buildMetadata, createDefaultPositions, createPositions, createPositionsUSD, describePositions, encodeDynamicFeePoolData, encodeFeeConversionLockerData, encodeSniperAuctionData, encodeStaticFeePoolData, getTickFromMarketCapETH, getTickFromMarketCapStable, getTickFromMarketCapUSD, marketCapFromTickETH, marketCapFromTickUSD, parseContext, parseMetadata };
|
package/dist/index.js
CHANGED
|
@@ -72,20 +72,21 @@ var import_chains2 = require("viem/chains");
|
|
|
72
72
|
// src/constants.ts
|
|
73
73
|
var import_chains = require("viem/chains");
|
|
74
74
|
var ADDRESSES = {
|
|
75
|
-
FACTORY: "
|
|
76
|
-
POOL_EXTENSION_ALLOWLIST: "
|
|
77
|
-
FEE_LOCKER: "
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
75
|
+
FACTORY: "0x04F1a284168743759BE6554f607a10CEBdB77760",
|
|
76
|
+
POOL_EXTENSION_ALLOWLIST: "0xb614167d79aDBaA9BA35d05fE1d5542d7316Ccaa",
|
|
77
|
+
FEE_LOCKER: "0xF7d3BE3FC0de76fA5550C29A8F6fa53667B876FF",
|
|
78
|
+
LP_LOCKER_FEE_CONVERSION: "0x77247fCD1d5e34A3703AcA898A591Dc7422435f3",
|
|
79
|
+
VAULT: "0xdFCCC93257c20519A9005A2281CFBdF84836d50E",
|
|
80
|
+
HOOK_DYNAMIC_FEE_V2: "0x80E2F7dC8C2C880BbC4BDF80A5Fb0eB8B1DB68CC",
|
|
81
|
+
HOOK_STATIC_FEE_V2: "0x9811f10Cd549c754Fa9E5785989c422A762c28cc",
|
|
82
|
+
SNIPER_AUCTION_V2: "0x187e8627c02c58F31831953C1268e157d3BfCefd",
|
|
83
|
+
SNIPER_UTIL_V2: "0x2B6cd5Be183c388Dd0074d53c52317df1414cd9f",
|
|
84
|
+
MEV_DESCENDING_FEES: "0x8D6B080e48756A99F3893491D556B5d6907b6910",
|
|
85
|
+
AIRDROP_V2: "0x1423974d48f525462f1c087cBFdCC20BDBc33CdD",
|
|
86
|
+
UNIV4_ETH_DEV_BUY: "0x5934097864dC487D21A7B4e4EEe201A39ceF728D",
|
|
87
|
+
UNIV3_ETH_DEV_BUY: "0x376028cfb6b9A120E24Aa14c3FAc4205179c0025",
|
|
88
|
+
PRESALE_ETH_TO_CREATOR: "0x3bca63EcB49d5f917092d10fA879Fdb422740163",
|
|
89
|
+
PRESALE_ALLOWLIST: "0xCBb4ccC4B94E23233c14759f4F9629F7dD01f10B"
|
|
89
90
|
};
|
|
90
91
|
var EXTERNAL = {
|
|
91
92
|
POOL_MANAGER: "0x498581fF718922c3f8e6A244956aF099B2652b2b",
|
|
@@ -123,31 +124,37 @@ var POOL_POSITIONS = {
|
|
|
123
124
|
positionBps: 1e4
|
|
124
125
|
}
|
|
125
126
|
],
|
|
126
|
-
/**
|
|
127
|
+
/** 5-position layout with concentrated mid-range liquidity */
|
|
127
128
|
Liquid: [
|
|
128
129
|
{
|
|
129
130
|
tickLower: -230400,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
//
|
|
133
|
-
positionBps: 4e3
|
|
134
|
-
// 40%
|
|
131
|
+
tickUpper: -216e3,
|
|
132
|
+
positionBps: 1e3
|
|
133
|
+
// 10%
|
|
135
134
|
},
|
|
136
135
|
{
|
|
137
|
-
tickLower: -
|
|
138
|
-
|
|
139
|
-
tickUpper: -168600,
|
|
140
|
-
// ~$10M
|
|
136
|
+
tickLower: -216e3,
|
|
137
|
+
tickUpper: -155e3,
|
|
141
138
|
positionBps: 5e3
|
|
142
139
|
// 50%
|
|
143
140
|
},
|
|
144
141
|
{
|
|
145
|
-
tickLower: -
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
//
|
|
149
|
-
|
|
150
|
-
|
|
142
|
+
tickLower: -202e3,
|
|
143
|
+
tickUpper: -155e3,
|
|
144
|
+
positionBps: 1500
|
|
145
|
+
// 15%
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
tickLower: -155e3,
|
|
149
|
+
tickUpper: -12e4,
|
|
150
|
+
positionBps: 2e3
|
|
151
|
+
// 20%
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
tickLower: -141e3,
|
|
155
|
+
tickUpper: -12e4,
|
|
156
|
+
positionBps: 500
|
|
157
|
+
// 5%
|
|
151
158
|
}
|
|
152
159
|
]
|
|
153
160
|
};
|
|
@@ -1618,6 +1625,79 @@ var LiquidSDK = class {
|
|
|
1618
1625
|
args: [auctionGasPeg, desiredBidAmount]
|
|
1619
1626
|
});
|
|
1620
1627
|
}
|
|
1628
|
+
/**
|
|
1629
|
+
* Bid in a sniper auction for early access to a newly launched token.
|
|
1630
|
+
*
|
|
1631
|
+
* The auction lets bidders compete via gas price — the bid amount is
|
|
1632
|
+
* determined by how much your tx.gasprice exceeds the pool's gasPeg.
|
|
1633
|
+
*
|
|
1634
|
+
* @example
|
|
1635
|
+
* ```typescript
|
|
1636
|
+
* // 1. Get auction state
|
|
1637
|
+
* const state = await sdk.getAuctionState(poolId);
|
|
1638
|
+
*
|
|
1639
|
+
* // 2. Calculate gas price for desired bid
|
|
1640
|
+
* const gasPrice = await sdk.getAuctionGasPriceForBid(state.gasPeg, bidAmount);
|
|
1641
|
+
*
|
|
1642
|
+
* // 3. Get pool key from token rewards
|
|
1643
|
+
* const rewards = await sdk.getTokenRewards(tokenAddress);
|
|
1644
|
+
*
|
|
1645
|
+
* // 4. Bid
|
|
1646
|
+
* const result = await sdk.bidInAuction({
|
|
1647
|
+
* poolKey: rewards.poolKey,
|
|
1648
|
+
* zeroForOne: true, // ETH → token
|
|
1649
|
+
* amountIn: parseEther("0.1"), // swap 0.1 ETH
|
|
1650
|
+
* amountOutMinimum: 0n, // set slippage
|
|
1651
|
+
* round: state.round,
|
|
1652
|
+
* bidAmount: parseEther("0.01"),
|
|
1653
|
+
* }, gasPrice);
|
|
1654
|
+
* ```
|
|
1655
|
+
*/
|
|
1656
|
+
async bidInAuction(params, maxFeePerGas) {
|
|
1657
|
+
if (!this.walletClient?.account) {
|
|
1658
|
+
throw new Error("walletClient with account required for bidInAuction");
|
|
1659
|
+
}
|
|
1660
|
+
const hookData = (0, import_viem2.encodeAbiParameters)(
|
|
1661
|
+
[
|
|
1662
|
+
{
|
|
1663
|
+
type: "tuple",
|
|
1664
|
+
components: [
|
|
1665
|
+
{ type: "bytes", name: "mevModuleSwapData" },
|
|
1666
|
+
{ type: "bytes", name: "poolExtensionSwapData" }
|
|
1667
|
+
]
|
|
1668
|
+
}
|
|
1669
|
+
],
|
|
1670
|
+
[
|
|
1671
|
+
{
|
|
1672
|
+
mevModuleSwapData: (0, import_viem2.encodeAbiParameters)(
|
|
1673
|
+
[{ type: "address" }],
|
|
1674
|
+
[ADDRESSES.SNIPER_UTIL_V2]
|
|
1675
|
+
),
|
|
1676
|
+
poolExtensionSwapData: "0x"
|
|
1677
|
+
}
|
|
1678
|
+
]
|
|
1679
|
+
);
|
|
1680
|
+
const txHash = await this.walletClient.writeContract({
|
|
1681
|
+
address: ADDRESSES.SNIPER_UTIL_V2,
|
|
1682
|
+
abi: LiquidSniperUtilV2Abi,
|
|
1683
|
+
functionName: "bidInAuction",
|
|
1684
|
+
args: [
|
|
1685
|
+
{
|
|
1686
|
+
poolKey: params.poolKey,
|
|
1687
|
+
zeroForOne: params.zeroForOne,
|
|
1688
|
+
amountIn: params.amountIn,
|
|
1689
|
+
amountOutMinimum: params.amountOutMinimum,
|
|
1690
|
+
hookData
|
|
1691
|
+
},
|
|
1692
|
+
params.round
|
|
1693
|
+
],
|
|
1694
|
+
value: params.bidAmount,
|
|
1695
|
+
chain: import_chains2.base,
|
|
1696
|
+
account: this.walletClient.account,
|
|
1697
|
+
maxFeePerGas
|
|
1698
|
+
});
|
|
1699
|
+
return { txHash };
|
|
1700
|
+
}
|
|
1621
1701
|
// ── Airdrop ─────────────────────────────────────────────────────────
|
|
1622
1702
|
async getAirdropInfo(tokenAddress) {
|
|
1623
1703
|
const result = await this.publicClient.readContract({
|
|
@@ -1737,14 +1817,14 @@ var LiquidSDK = class {
|
|
|
1737
1817
|
// ── MEV Block Delay ─────────────────────────────────────────────────
|
|
1738
1818
|
async getMevBlockDelay() {
|
|
1739
1819
|
return await this.publicClient.readContract({
|
|
1740
|
-
address: ADDRESSES.
|
|
1820
|
+
address: ADDRESSES.MEV_DESCENDING_FEES,
|
|
1741
1821
|
abi: LiquidMevBlockDelayAbi,
|
|
1742
1822
|
functionName: "blockDelay"
|
|
1743
1823
|
});
|
|
1744
1824
|
}
|
|
1745
1825
|
async getPoolUnlockTime(poolId) {
|
|
1746
1826
|
return await this.publicClient.readContract({
|
|
1747
|
-
address: ADDRESSES.
|
|
1827
|
+
address: ADDRESSES.MEV_DESCENDING_FEES,
|
|
1748
1828
|
abi: LiquidMevBlockDelayAbi,
|
|
1749
1829
|
functionName: "poolUnlockTime",
|
|
1750
1830
|
args: [poolId]
|