@whetstone-research/doppler-sdk 0.0.21 → 0.0.23
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 +94 -0
- package/dist/DopplerSDK.js +25 -24
- package/dist/DopplerSDK.mjs +24 -23
- package/dist/abis/bytecodes/derc20.js +2 -2
- package/dist/abis/bytecodes/derc20.mjs +1 -1
- package/dist/abis/bytecodes/derc2080.js +2 -2
- package/dist/abis/bytecodes/derc2080.mjs +1 -1
- package/dist/abis/bytecodes/doppler.js +2 -2
- package/dist/abis/bytecodes/doppler.mjs +1 -1
- package/dist/abis/bytecodes/dopplerDN404.js +2 -2
- package/dist/abis/bytecodes/dopplerDN404.mjs +1 -1
- package/dist/abis/bytecodes/stateView.js +2 -2
- package/dist/abis/bytecodes/stateView.mjs +1 -1
- package/dist/abis/bytecodes.js +10 -10
- package/dist/abis/bytecodes.mjs +5 -5
- package/dist/abis/index.js +10 -10
- package/dist/abis/index.mjs +5 -5
- package/dist/addresses.d.mts +3 -0
- package/dist/addresses.d.ts +3 -0
- package/dist/addresses.js +7 -7
- package/dist/addresses.mjs +2 -2
- package/dist/builders/DynamicAuctionBuilder.d.mts +2 -0
- package/dist/builders/DynamicAuctionBuilder.d.ts +2 -0
- package/dist/builders/DynamicAuctionBuilder.js +16 -15
- package/dist/builders/DynamicAuctionBuilder.mjs +15 -14
- package/dist/builders/MulticurveBuilder.js +16 -15
- package/dist/builders/MulticurveBuilder.mjs +15 -14
- package/dist/builders/StaticAuctionBuilder.js +16 -15
- package/dist/builders/StaticAuctionBuilder.mjs +15 -14
- package/dist/builders/index.js +24 -23
- package/dist/builders/index.mjs +17 -16
- package/dist/builders/shared.d.mts +1 -1
- package/dist/builders/shared.d.ts +1 -1
- package/dist/builders/shared.js +17 -16
- package/dist/builders/shared.mjs +13 -12
- package/dist/{chunk-AZOBEWP3.mjs → chunk-3NMGCQJ4.mjs} +2 -2
- package/dist/chunk-3NMGCQJ4.mjs.map +1 -0
- package/dist/{chunk-OGYWNJGI.js → chunk-5TQOT6CW.js} +2 -2
- package/dist/chunk-5TQOT6CW.js.map +1 -0
- package/dist/{chunk-GFOBDFVW.js → chunk-6UHDSD42.js} +206 -28
- package/dist/chunk-6UHDSD42.js.map +1 -0
- package/dist/{chunk-JHPDKSC4.js → chunk-7CAAI5DL.js} +115 -84
- package/dist/chunk-7CAAI5DL.js.map +1 -0
- package/dist/{chunk-U7CHPFU6.mjs → chunk-7P2SPZC7.mjs} +189 -11
- package/dist/chunk-7P2SPZC7.mjs.map +1 -0
- package/dist/chunk-7ZUV6WPX.mjs +3 -0
- package/dist/{chunk-5TL5V6UX.mjs.map → chunk-7ZUV6WPX.mjs.map} +1 -1
- package/dist/{chunk-SQRQYDB3.mjs → chunk-C6MH7HYT.mjs} +11 -11
- package/dist/{chunk-SQRQYDB3.mjs.map → chunk-C6MH7HYT.mjs.map} +1 -1
- package/dist/{chunk-RJE6LWWF.mjs → chunk-CATH4QRQ.mjs} +3 -3
- package/dist/{chunk-RJE6LWWF.mjs.map → chunk-CATH4QRQ.mjs.map} +1 -1
- package/dist/{chunk-5JQDXMDN.js → chunk-CMNJZKTM.js} +24 -24
- package/dist/{chunk-5JQDXMDN.js.map → chunk-CMNJZKTM.js.map} +1 -1
- package/dist/chunk-DNB3T5P2.js +269 -0
- package/dist/chunk-DNB3T5P2.js.map +1 -0
- package/dist/chunk-DSYPZETD.js +4 -0
- package/dist/{chunk-WTS75RUC.js.map → chunk-DSYPZETD.js.map} +1 -1
- package/dist/{chunk-GLMPU7VL.js → chunk-EH3V2BJF.js} +12 -12
- package/dist/chunk-EH3V2BJF.js.map +1 -0
- package/dist/{chunk-36Y3N257.mjs → chunk-EIXUJANI.mjs} +5 -5
- package/dist/chunk-EIXUJANI.mjs.map +1 -0
- package/dist/{chunk-HX3A6ALC.mjs → chunk-FFV6DMPA.mjs} +3 -3
- package/dist/{chunk-HX3A6ALC.mjs.map → chunk-FFV6DMPA.mjs.map} +1 -1
- package/dist/{chunk-NJYBKWCD.mjs → chunk-FLFYAWSS.mjs} +3 -3
- package/dist/{chunk-NJYBKWCD.mjs.map → chunk-FLFYAWSS.mjs.map} +1 -1
- package/dist/{chunk-N33R22A2.js → chunk-FNUBKONK.js} +2 -2
- package/dist/{chunk-N33R22A2.js.map → chunk-FNUBKONK.js.map} +1 -1
- package/dist/{chunk-COUZYFEE.js → chunk-FTRCBE3J.js} +11 -11
- package/dist/{chunk-COUZYFEE.js.map → chunk-FTRCBE3J.js.map} +1 -1
- package/dist/{chunk-HHHCRTC7.js → chunk-FZ4FIWCR.js} +5 -5
- package/dist/{chunk-HHHCRTC7.js.map → chunk-FZ4FIWCR.js.map} +1 -1
- package/dist/chunk-GDODJJ7D.mjs +36 -0
- package/dist/chunk-GDODJJ7D.mjs.map +1 -0
- package/dist/{chunk-MQNSJCAW.mjs → chunk-GSBQIVME.mjs} +2 -2
- package/dist/{chunk-MQNSJCAW.mjs.map → chunk-GSBQIVME.mjs.map} +1 -1
- package/dist/{chunk-RKPAL3SU.mjs → chunk-GSTY3GO7.mjs} +3 -3
- package/dist/{chunk-RKPAL3SU.mjs.map → chunk-GSTY3GO7.mjs.map} +1 -1
- package/dist/{chunk-4CJS5XLY.js → chunk-H7WPK5CR.js} +4 -4
- package/dist/{chunk-4CJS5XLY.js.map → chunk-H7WPK5CR.js.map} +1 -1
- package/dist/{chunk-SAX7P3MH.js → chunk-HJFVRV47.js} +2 -2
- package/dist/{chunk-SAX7P3MH.js.map → chunk-HJFVRV47.js.map} +1 -1
- package/dist/{chunk-CXE33IZN.mjs → chunk-HL7ZAAD4.mjs} +19 -7
- package/dist/chunk-HL7ZAAD4.mjs.map +1 -0
- package/dist/{chunk-2ZM4JVFC.js → chunk-J62YDWIK.js} +2 -2
- package/dist/chunk-J62YDWIK.js.map +1 -0
- package/dist/{chunk-TYJZL2XZ.js → chunk-JB5XXPLL.js} +25 -13
- package/dist/chunk-JB5XXPLL.js.map +1 -0
- package/dist/{chunk-WDSV4O6T.mjs → chunk-OHA5KJ2M.mjs} +2 -2
- package/dist/chunk-OHA5KJ2M.mjs.map +1 -0
- package/dist/{chunk-AS5UUJRI.js → chunk-OX5CESVM.js} +13 -11
- package/dist/chunk-OX5CESVM.js.map +1 -0
- package/dist/{chunk-VGOEXLQ2.js → chunk-QAPQGDWK.js} +2 -2
- package/dist/chunk-QAPQGDWK.js.map +1 -0
- package/dist/{chunk-OF7BIKXV.js → chunk-QRTABC4Z.js} +2 -2
- package/dist/chunk-QRTABC4Z.js.map +1 -0
- package/dist/{chunk-XEWKLVOD.mjs → chunk-RI6SDMER.mjs} +3 -3
- package/dist/{chunk-XEWKLVOD.mjs.map → chunk-RI6SDMER.mjs.map} +1 -1
- package/dist/{chunk-NWZGO2CH.mjs → chunk-RIIVW6TQ.mjs} +43 -12
- package/dist/chunk-RIIVW6TQ.mjs.map +1 -0
- package/dist/{chunk-VK5HAWX6.mjs → chunk-SWWLOD7Q.mjs} +2 -2
- package/dist/chunk-SWWLOD7Q.mjs.map +1 -0
- package/dist/{chunk-Y5RAENN5.js → chunk-TIGHBA37.js} +5 -5
- package/dist/{chunk-Y5RAENN5.js.map → chunk-TIGHBA37.js.map} +1 -1
- package/dist/{chunk-BFJGY436.mjs → chunk-TLEVIIUE.mjs} +5 -3
- package/dist/chunk-TLEVIIUE.mjs.map +1 -0
- package/dist/{chunk-LPA32BIK.mjs → chunk-U3GOWK6J.mjs} +2 -2
- package/dist/chunk-U3GOWK6J.mjs.map +1 -0
- package/dist/{chunk-V7YRKFYK.mjs → chunk-VCX6FG3E.mjs} +5 -5
- package/dist/{chunk-V7YRKFYK.mjs.map → chunk-VCX6FG3E.mjs.map} +1 -1
- package/dist/{chunk-64ZQRKG3.mjs → chunk-VYSOAGRU.mjs} +2 -2
- package/dist/chunk-VYSOAGRU.mjs.map +1 -0
- package/dist/chunk-WJBJARLJ.js +38 -0
- package/dist/chunk-WJBJARLJ.js.map +1 -0
- package/dist/{chunk-OROTK4OT.js → chunk-WNUB3UTT.js} +12 -12
- package/dist/chunk-WNUB3UTT.js.map +1 -0
- package/dist/{chunk-SMTHFPBA.js → chunk-XMFOZYNI.js} +2 -2
- package/dist/chunk-XMFOZYNI.js.map +1 -0
- package/dist/chunk-XRYLHTVV.mjs +267 -0
- package/dist/chunk-XRYLHTVV.mjs.map +1 -0
- package/dist/{chunk-K27G7LLT.js → chunk-XT3BAM4H.js} +5 -5
- package/dist/{chunk-K27G7LLT.js.map → chunk-XT3BAM4H.js.map} +1 -1
- package/dist/{chunk-VGCXJRUV.mjs → chunk-YBK6EBA5.mjs} +10 -10
- package/dist/chunk-YBK6EBA5.mjs.map +1 -0
- package/dist/{chunk-545TB6TH.js → chunk-YFEPTSI2.js} +11 -11
- package/dist/{chunk-545TB6TH.js.map → chunk-YFEPTSI2.js.map} +1 -1
- package/dist/{chunk-HH7HQ4HC.mjs → chunk-ZEDJUNC6.mjs} +2 -2
- package/dist/{chunk-HH7HQ4HC.mjs.map → chunk-ZEDJUNC6.mjs.map} +1 -1
- package/dist/deployments.generated.d.mts +39 -19
- package/dist/deployments.generated.d.ts +39 -19
- package/dist/deployments.generated.js +2 -2
- package/dist/deployments.generated.mjs +1 -1
- package/dist/entities/DopplerFactory.js +14 -13
- package/dist/entities/DopplerFactory.mjs +13 -12
- package/dist/entities/auction/DynamicAuction.js +9 -9
- package/dist/entities/auction/DynamicAuction.mjs +8 -8
- package/dist/entities/auction/MulticurvePool.js +10 -10
- package/dist/entities/auction/MulticurvePool.mjs +9 -9
- package/dist/entities/auction/StaticAuction.js +9 -9
- package/dist/entities/auction/StaticAuction.mjs +8 -8
- package/dist/entities/auction/index.js +17 -17
- package/dist/entities/auction/index.mjs +11 -11
- package/dist/entities/quoter/Quoter.js +9 -9
- package/dist/entities/quoter/Quoter.mjs +8 -8
- package/dist/entities/quoter/index.js +9 -9
- package/dist/entities/quoter/index.mjs +8 -8
- package/dist/entities/token/derc20/Derc20.js +5 -5
- package/dist/entities/token/derc20/Derc20.mjs +5 -5
- package/dist/entities/token/derc20/index.js +5 -5
- package/dist/entities/token/derc20/index.mjs +5 -5
- package/dist/entities/token/index.js +6 -6
- package/dist/entities/token/index.mjs +6 -6
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +71 -66
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -23
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.mts +33 -5
- package/dist/types.d.ts +33 -5
- package/dist/types.js +8 -8
- package/dist/types.mjs +3 -3
- package/dist/utils/airlock.js +7 -7
- package/dist/utils/airlock.mjs +3 -3
- package/dist/utils/dopplerHookMigrator.d.mts +11 -0
- package/dist/utils/dopplerHookMigrator.d.ts +11 -0
- package/dist/utils/dopplerHookMigrator.js +12 -0
- package/dist/utils/dopplerHookMigrator.js.map +1 -0
- package/dist/utils/dopplerHookMigrator.mjs +3 -0
- package/dist/utils/dopplerHookMigrator.mjs.map +1 -0
- package/dist/utils/index.d.mts +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +36 -31
- package/dist/utils/index.mjs +12 -11
- package/dist/utils/marketCapHelpers.js +13 -13
- package/dist/utils/marketCapHelpers.mjs +1 -1
- package/dist/utils/tokenAddressMiner.js +7 -7
- package/dist/utils/tokenAddressMiner.mjs +6 -6
- package/package.json +1 -1
- package/dist/chunk-2ZM4JVFC.js.map +0 -1
- package/dist/chunk-36Y3N257.mjs.map +0 -1
- package/dist/chunk-5TL5V6UX.mjs +0 -3
- package/dist/chunk-64ZQRKG3.mjs.map +0 -1
- package/dist/chunk-AS5UUJRI.js.map +0 -1
- package/dist/chunk-AZOBEWP3.mjs.map +0 -1
- package/dist/chunk-BFJGY436.mjs.map +0 -1
- package/dist/chunk-CXE33IZN.mjs.map +0 -1
- package/dist/chunk-GFOBDFVW.js.map +0 -1
- package/dist/chunk-GLMPU7VL.js.map +0 -1
- package/dist/chunk-JHPDKSC4.js.map +0 -1
- package/dist/chunk-LPA32BIK.mjs.map +0 -1
- package/dist/chunk-NWZGO2CH.mjs.map +0 -1
- package/dist/chunk-OF7BIKXV.js.map +0 -1
- package/dist/chunk-OGYWNJGI.js.map +0 -1
- package/dist/chunk-OROTK4OT.js.map +0 -1
- package/dist/chunk-QFQXHDC7.mjs +0 -247
- package/dist/chunk-QFQXHDC7.mjs.map +0 -1
- package/dist/chunk-RLUMYHPI.js +0 -249
- package/dist/chunk-RLUMYHPI.js.map +0 -1
- package/dist/chunk-SMTHFPBA.js.map +0 -1
- package/dist/chunk-TYJZL2XZ.js.map +0 -1
- package/dist/chunk-U7CHPFU6.mjs.map +0 -1
- package/dist/chunk-VGCXJRUV.mjs.map +0 -1
- package/dist/chunk-VGOEXLQ2.js.map +0 -1
- package/dist/chunk-VK5HAWX6.mjs.map +0 -1
- package/dist/chunk-WDSV4O6T.mjs.map +0 -1
- package/dist/chunk-WTS75RUC.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entities/quoter/Quoter.ts"],"names":["getAddresses","quoterV2Abi","decodeAbiParameters","uniswapV2Router02Abi","v4QuoterAbi"],"mappings":"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","file":"chunk-545TB6TH.js","sourcesContent":["import {\n type Address,\n decodeAbiParameters,\n type Hex,\n type PublicClient,\n} from 'viem';\nimport { quoterV2Abi, uniswapV2Router02Abi, v4QuoterAbi } from '../../abis';\nimport { getAddresses } from '../../addresses';\nimport type { SupportedPublicClient } from '../../types';\n\n/**\n * Unified Quoter for getting price quotes across Uniswap V2, V3, and V4\n *\n * This class provides a unified interface for price discovery across all\n * supported Uniswap versions, abstracting away the differences between\n * V2 router, V3 quoter, and V4 quoter contracts.\n */\nexport class Quoter {\n private publicClient: SupportedPublicClient;\n private chainId: number;\n private get rpc(): PublicClient {\n return this.publicClient as PublicClient;\n }\n\n constructor(publicClient: SupportedPublicClient, chainId: number) {\n this.publicClient = publicClient;\n this.chainId = chainId;\n }\n\n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V3\n * @param params Parameters for the quote\n * @returns Quote result including output amount and price impact\n */\n async quoteExactInputV3(params: {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n fee: number;\n sqrtPriceLimitX96?: bigint;\n }): Promise<{\n amountOut: bigint;\n sqrtPriceX96After: bigint;\n initializedTicksCrossed: number;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n\n try {\n const { result } = await this.rpc.simulateContract({\n address: addresses.v3Quoter,\n abi: quoterV2Abi,\n functionName: 'quoteExactInputSingle',\n args: [\n {\n tokenIn: params.tokenIn,\n tokenOut: params.tokenOut,\n amountIn: params.amountIn,\n fee: params.fee,\n sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0),\n },\n ],\n });\n return {\n amountOut: result[0],\n sqrtPriceX96After: result[1],\n initializedTicksCrossed: result[2],\n gasEstimate: result[3],\n };\n } catch (err: unknown) {\n const revertData: Hex | undefined =\n (err as { cause?: { data?: Hex }; data?: Hex })?.cause?.data ||\n (err as { data?: Hex }).data;\n if (\n revertData &&\n typeof revertData === 'string' &&\n revertData.startsWith('0x')\n ) {\n try {\n // Uniswap V3 QuoterV2 encodes (uint256 amount, uint160 sqrtPriceX96After, int24 tickAfter)\n const [amount, sqrtPriceX96After] = decodeAbiParameters(\n [{ type: 'uint256' }, { type: 'uint160' }, { type: 'int24' }],\n revertData as Hex,\n ) as unknown as [bigint, bigint, number];\n return {\n amountOut: amount,\n sqrtPriceX96After,\n initializedTicksCrossed: 0,\n gasEstimate: 0n,\n };\n } catch (_) {\n // fall through\n }\n }\n throw err;\n }\n }\n\n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V3\n * @param params Parameters for the quote\n * @returns Quote result including required input amount\n */\n async quoteExactOutputV3(params: {\n tokenIn: Address;\n tokenOut: Address;\n amountOut: bigint;\n fee: number;\n sqrtPriceLimitX96?: bigint;\n }): Promise<{\n amountIn: bigint;\n sqrtPriceX96After: bigint;\n initializedTicksCrossed: number;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n\n try {\n const { result } = await this.rpc.simulateContract({\n address: addresses.v3Quoter,\n abi: quoterV2Abi,\n functionName: 'quoteExactOutputSingle',\n args: [\n {\n tokenIn: params.tokenIn,\n tokenOut: params.tokenOut,\n amount: params.amountOut,\n fee: params.fee,\n sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0),\n },\n ],\n });\n return {\n amountIn: result[0],\n sqrtPriceX96After: result[1],\n initializedTicksCrossed: result[2],\n gasEstimate: result[3],\n };\n } catch (err: unknown) {\n const revertData: Hex | undefined =\n (err as { cause?: { data?: Hex }; data?: Hex })?.cause?.data ||\n (err as { data?: Hex }).data;\n if (\n revertData &&\n typeof revertData === 'string' &&\n revertData.startsWith('0x')\n ) {\n try {\n // Uniswap V3 QuoterV2 encodes (uint256 amount, uint160 sqrtPriceX96After, int24 tickAfter)\n const [amount, sqrtPriceX96After] = decodeAbiParameters(\n [{ type: 'uint256' }, { type: 'uint160' }, { type: 'int24' }],\n revertData as Hex,\n ) as unknown as [bigint, bigint, number];\n return {\n amountIn: amount,\n sqrtPriceX96After,\n initializedTicksCrossed: 0,\n gasEstimate: 0n,\n };\n } catch (_) {\n // fall through\n }\n }\n throw err;\n }\n }\n\n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V2\n * @param params Parameters for the quote\n * @returns Array of amounts for each step in the path\n */\n async quoteExactInputV2(params: {\n amountIn: bigint;\n path: Address[];\n }): Promise<bigint[]> {\n const addresses = getAddresses(this.chainId);\n\n if (!addresses.univ2Router02) {\n throw new Error('Uniswap V2 Router not available on this chain');\n }\n\n const result = await this.rpc.readContract({\n address: addresses.univ2Router02,\n abi: uniswapV2Router02Abi,\n functionName: 'getAmountsOut',\n args: [params.amountIn, params.path],\n });\n\n return [...result]; // Convert readonly array to mutable array\n }\n\n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V2\n * @param params Parameters for the quote\n * @returns Array of amounts for each step in the path\n */\n async quoteExactOutputV2(params: {\n amountOut: bigint;\n path: Address[];\n }): Promise<bigint[]> {\n const addresses = getAddresses(this.chainId);\n\n if (!addresses.univ2Router02) {\n throw new Error('Uniswap V2 Router not available on this chain');\n }\n\n const result = await this.rpc.readContract({\n address: addresses.univ2Router02,\n abi: uniswapV2Router02Abi,\n functionName: 'getAmountsIn',\n args: [params.amountOut, params.path],\n });\n\n return [...result]; // Convert readonly array to mutable array\n }\n\n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V4\n * @param params Parameters for the quote\n * @returns Quote result for V4 pools\n */\n async quoteExactInputV4(params: {\n poolKey: {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n };\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData?: string;\n }): Promise<{\n amountOut: bigint;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n\n const quoterAddress = addresses.uniswapV4Quoter;\n\n if (!quoterAddress) {\n throw new Error('No V4 quoter available on this chain');\n }\n\n const { result } = await this.rpc.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactInputSingle',\n args: [\n {\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n },\n ],\n });\n\n return {\n amountOut: result[0],\n gasEstimate: result[1],\n };\n }\n\n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V4\n * @param params Parameters for the quote\n * @returns Quote result for V4 pools\n */\n async quoteExactOutputV4(params: {\n poolKey: {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n };\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData?: string;\n }): Promise<{\n amountIn: bigint;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n\n const quoterAddress = addresses.uniswapV4Quoter;\n\n if (!quoterAddress) {\n throw new Error('Uniswap V4 Quoter address not available on this chain');\n }\n\n const { result } = await this.rpc.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: [\n {\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n },\n ],\n });\n\n return {\n amountIn: result[0],\n gasEstimate: result[1],\n };\n }\n\n /**\n * Quote a single exact-input trade using the Uniswap V4 Quoter (not Lens)\n * @param params Parameters for the quote\n */\n async quoteExactInputV4Quoter(params: {\n poolKey: {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n };\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData?: string;\n }): Promise<{\n amountOut: bigint;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n const quoterAddress = addresses.uniswapV4Quoter;\n\n if (!quoterAddress) {\n throw new Error('Uniswap V4 Quoter address not available on this chain');\n }\n\n const { result } = await this.rpc.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactInputSingle',\n args: [\n {\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n },\n ],\n });\n\n return {\n amountOut: result[0],\n gasEstimate: result[1],\n };\n }\n\n /**\n * Quote a single exact-output trade using the Uniswap V4 Quoter (not Lens)\n * @param params Parameters for the quote\n */\n async quoteExactOutputV4Quoter(params: {\n poolKey: {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n };\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData?: string;\n }): Promise<{\n amountIn: bigint;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n const quoterAddress = addresses.uniswapV4Quoter;\n\n if (!quoterAddress) {\n throw new Error('Uniswap V4 Quoter address not available on this chain');\n }\n\n const { result } = await this.rpc.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: [\n {\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n },\n ],\n });\n\n return {\n amountIn: result[0],\n gasEstimate: result[1],\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/entities/quoter/Quoter.ts"],"names":["getAddresses","quoterV2Abi","decodeAbiParameters","uniswapV2Router02Abi","v4QuoterAbi"],"mappings":"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","file":"chunk-YFEPTSI2.js","sourcesContent":["import {\n type Address,\n decodeAbiParameters,\n type Hex,\n type PublicClient,\n} from 'viem';\nimport { quoterV2Abi, uniswapV2Router02Abi, v4QuoterAbi } from '../../abis';\nimport { getAddresses } from '../../addresses';\nimport type { SupportedPublicClient } from '../../types';\n\n/**\n * Unified Quoter for getting price quotes across Uniswap V2, V3, and V4\n *\n * This class provides a unified interface for price discovery across all\n * supported Uniswap versions, abstracting away the differences between\n * V2 router, V3 quoter, and V4 quoter contracts.\n */\nexport class Quoter {\n private publicClient: SupportedPublicClient;\n private chainId: number;\n private get rpc(): PublicClient {\n return this.publicClient as PublicClient;\n }\n\n constructor(publicClient: SupportedPublicClient, chainId: number) {\n this.publicClient = publicClient;\n this.chainId = chainId;\n }\n\n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V3\n * @param params Parameters for the quote\n * @returns Quote result including output amount and price impact\n */\n async quoteExactInputV3(params: {\n tokenIn: Address;\n tokenOut: Address;\n amountIn: bigint;\n fee: number;\n sqrtPriceLimitX96?: bigint;\n }): Promise<{\n amountOut: bigint;\n sqrtPriceX96After: bigint;\n initializedTicksCrossed: number;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n\n try {\n const { result } = await this.rpc.simulateContract({\n address: addresses.v3Quoter,\n abi: quoterV2Abi,\n functionName: 'quoteExactInputSingle',\n args: [\n {\n tokenIn: params.tokenIn,\n tokenOut: params.tokenOut,\n amountIn: params.amountIn,\n fee: params.fee,\n sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0),\n },\n ],\n });\n return {\n amountOut: result[0],\n sqrtPriceX96After: result[1],\n initializedTicksCrossed: result[2],\n gasEstimate: result[3],\n };\n } catch (err: unknown) {\n const revertData: Hex | undefined =\n (err as { cause?: { data?: Hex }; data?: Hex })?.cause?.data ||\n (err as { data?: Hex }).data;\n if (\n revertData &&\n typeof revertData === 'string' &&\n revertData.startsWith('0x')\n ) {\n try {\n // Uniswap V3 QuoterV2 encodes (uint256 amount, uint160 sqrtPriceX96After, int24 tickAfter)\n const [amount, sqrtPriceX96After] = decodeAbiParameters(\n [{ type: 'uint256' }, { type: 'uint160' }, { type: 'int24' }],\n revertData as Hex,\n ) as unknown as [bigint, bigint, number];\n return {\n amountOut: amount,\n sqrtPriceX96After,\n initializedTicksCrossed: 0,\n gasEstimate: 0n,\n };\n } catch (_) {\n // fall through\n }\n }\n throw err;\n }\n }\n\n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V3\n * @param params Parameters for the quote\n * @returns Quote result including required input amount\n */\n async quoteExactOutputV3(params: {\n tokenIn: Address;\n tokenOut: Address;\n amountOut: bigint;\n fee: number;\n sqrtPriceLimitX96?: bigint;\n }): Promise<{\n amountIn: bigint;\n sqrtPriceX96After: bigint;\n initializedTicksCrossed: number;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n\n try {\n const { result } = await this.rpc.simulateContract({\n address: addresses.v3Quoter,\n abi: quoterV2Abi,\n functionName: 'quoteExactOutputSingle',\n args: [\n {\n tokenIn: params.tokenIn,\n tokenOut: params.tokenOut,\n amount: params.amountOut,\n fee: params.fee,\n sqrtPriceLimitX96: params.sqrtPriceLimitX96 ?? BigInt(0),\n },\n ],\n });\n return {\n amountIn: result[0],\n sqrtPriceX96After: result[1],\n initializedTicksCrossed: result[2],\n gasEstimate: result[3],\n };\n } catch (err: unknown) {\n const revertData: Hex | undefined =\n (err as { cause?: { data?: Hex }; data?: Hex })?.cause?.data ||\n (err as { data?: Hex }).data;\n if (\n revertData &&\n typeof revertData === 'string' &&\n revertData.startsWith('0x')\n ) {\n try {\n // Uniswap V3 QuoterV2 encodes (uint256 amount, uint160 sqrtPriceX96After, int24 tickAfter)\n const [amount, sqrtPriceX96After] = decodeAbiParameters(\n [{ type: 'uint256' }, { type: 'uint160' }, { type: 'int24' }],\n revertData as Hex,\n ) as unknown as [bigint, bigint, number];\n return {\n amountIn: amount,\n sqrtPriceX96After,\n initializedTicksCrossed: 0,\n gasEstimate: 0n,\n };\n } catch (_) {\n // fall through\n }\n }\n throw err;\n }\n }\n\n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V2\n * @param params Parameters for the quote\n * @returns Array of amounts for each step in the path\n */\n async quoteExactInputV2(params: {\n amountIn: bigint;\n path: Address[];\n }): Promise<bigint[]> {\n const addresses = getAddresses(this.chainId);\n\n if (!addresses.univ2Router02) {\n throw new Error('Uniswap V2 Router not available on this chain');\n }\n\n const result = await this.rpc.readContract({\n address: addresses.univ2Router02,\n abi: uniswapV2Router02Abi,\n functionName: 'getAmountsOut',\n args: [params.amountIn, params.path],\n });\n\n return [...result]; // Convert readonly array to mutable array\n }\n\n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V2\n * @param params Parameters for the quote\n * @returns Array of amounts for each step in the path\n */\n async quoteExactOutputV2(params: {\n amountOut: bigint;\n path: Address[];\n }): Promise<bigint[]> {\n const addresses = getAddresses(this.chainId);\n\n if (!addresses.univ2Router02) {\n throw new Error('Uniswap V2 Router not available on this chain');\n }\n\n const result = await this.rpc.readContract({\n address: addresses.univ2Router02,\n abi: uniswapV2Router02Abi,\n functionName: 'getAmountsIn',\n args: [params.amountOut, params.path],\n });\n\n return [...result]; // Convert readonly array to mutable array\n }\n\n /**\n * Get a price quote for swapping an exact amount of input tokens on Uniswap V4\n * @param params Parameters for the quote\n * @returns Quote result for V4 pools\n */\n async quoteExactInputV4(params: {\n poolKey: {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n };\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData?: string;\n }): Promise<{\n amountOut: bigint;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n\n const quoterAddress = addresses.uniswapV4Quoter;\n\n if (!quoterAddress) {\n throw new Error('No V4 quoter available on this chain');\n }\n\n const { result } = await this.rpc.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactInputSingle',\n args: [\n {\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n },\n ],\n });\n\n return {\n amountOut: result[0],\n gasEstimate: result[1],\n };\n }\n\n /**\n * Get a price quote for receiving an exact amount of output tokens on Uniswap V4\n * @param params Parameters for the quote\n * @returns Quote result for V4 pools\n */\n async quoteExactOutputV4(params: {\n poolKey: {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n };\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData?: string;\n }): Promise<{\n amountIn: bigint;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n\n const quoterAddress = addresses.uniswapV4Quoter;\n\n if (!quoterAddress) {\n throw new Error('Uniswap V4 Quoter address not available on this chain');\n }\n\n const { result } = await this.rpc.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: [\n {\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n },\n ],\n });\n\n return {\n amountIn: result[0],\n gasEstimate: result[1],\n };\n }\n\n /**\n * Quote a single exact-input trade using the Uniswap V4 Quoter (not Lens)\n * @param params Parameters for the quote\n */\n async quoteExactInputV4Quoter(params: {\n poolKey: {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n };\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData?: string;\n }): Promise<{\n amountOut: bigint;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n const quoterAddress = addresses.uniswapV4Quoter;\n\n if (!quoterAddress) {\n throw new Error('Uniswap V4 Quoter address not available on this chain');\n }\n\n const { result } = await this.rpc.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactInputSingle',\n args: [\n {\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n },\n ],\n });\n\n return {\n amountOut: result[0],\n gasEstimate: result[1],\n };\n }\n\n /**\n * Quote a single exact-output trade using the Uniswap V4 Quoter (not Lens)\n * @param params Parameters for the quote\n */\n async quoteExactOutputV4Quoter(params: {\n poolKey: {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n };\n zeroForOne: boolean;\n exactAmount: bigint;\n hookData?: string;\n }): Promise<{\n amountIn: bigint;\n gasEstimate: bigint;\n }> {\n const addresses = getAddresses(this.chainId);\n const quoterAddress = addresses.uniswapV4Quoter;\n\n if (!quoterAddress) {\n throw new Error('Uniswap V4 Quoter address not available on this chain');\n }\n\n const { result } = await this.rpc.simulateContract({\n address: quoterAddress,\n abi: v4QuoterAbi,\n functionName: 'quoteExactOutputSingle',\n args: [\n {\n poolKey: params.poolKey,\n zeroForOne: params.zeroForOne,\n exactAmount: params.exactAmount,\n hookData: (params.hookData ?? '0x') as `0x${string}`,\n },\n ],\n });\n\n return {\n amountIn: result[0],\n gasEstimate: result[1],\n };\n }\n}\n"]}
|
|
@@ -111,5 +111,5 @@ function buildCurvesFromPresets(params) {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
export { MARKET_CAP_PRESETS, MARKET_CAP_PRESET_ORDER, buildCurvesFromPresets, computeTicks };
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
115
|
-
//# sourceMappingURL=chunk-
|
|
114
|
+
//# sourceMappingURL=chunk-ZEDJUNC6.mjs.map
|
|
115
|
+
//# sourceMappingURL=chunk-ZEDJUNC6.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/builders/shared.ts"],"names":[],"mappings":"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","file":"chunk-HH7HQ4HC.mjs","sourcesContent":["import type { Address } from 'viem';\nimport {\n DEFAULT_MULTICURVE_LOWER_TICKS,\n DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES,\n DEFAULT_MULTICURVE_NUM_POSITIONS,\n DEFAULT_MULTICURVE_UPPER_TICKS,\n FEE_TIERS,\n TICK_SPACINGS,\n WAD,\n} from '../constants';\nimport { MAX_TICK, MIN_TICK } from '../utils';\nimport type {\n PriceRange,\n TickRange,\n MulticurveMarketCapPreset,\n GovernanceOption,\n MigrationConfig,\n} from '../types';\nimport type { SupportedChainId } from '../addresses';\n\n// ============================================================================\n// Common Builder Interface\n// ============================================================================\n\n/**\n * Common interface shared by all auction builders.\n *\n * Defines the methods that all builders (Static, Dynamic, Multicurve) implement.\n * Useful for documentation and ensuring API consistency across builders.\n *\n * @template C - The chain ID type\n */\nexport interface BaseAuctionBuilder<C extends SupportedChainId> {\n /** The chain ID this builder is configured for */\n readonly chainId: C;\n\n /**\n * Configure the token to be created.\n * Supports standard ERC20 or Doppler404 token types.\n */\n tokenConfig(\n params:\n | {\n type?: 'standard';\n name: string;\n symbol: string;\n tokenURI: string;\n yearlyMintRate?: bigint;\n }\n | {\n type: 'doppler404';\n name: string;\n symbol: string;\n baseURI: string;\n unit?: bigint;\n },\n ): this;\n\n /**\n * Configure the token sale parameters.\n * @param params.initialSupply - Total token supply to mint\n * @param params.numTokensToSell - Number of tokens allocated for the bonding curve\n * @param params.numeraire - The quote token address (e.g., WETH)\n */\n saleConfig(params: {\n initialSupply: bigint;\n numTokensToSell: bigint;\n numeraire: Address;\n }): this;\n\n /**\n * Configure token vesting for team/investor allocations.\n * Pass undefined or omit to disable vesting.\n */\n withVesting(params?: {\n duration?: bigint;\n cliffDuration?: number;\n recipients?: Address[];\n amounts?: bigint[];\n }): this;\n\n /**\n * Configure governance for the token.\n * @param params - Use { type: 'default' }, { type: 'noOp' }, { type: 'launchpad', multisig: '0x...' }, or { type: 'custom', ... }\n */\n withGovernance(params: GovernanceOption<C>): this;\n\n /**\n * Configure post-auction liquidity migration.\n * @param migration - Migration target (uniswapV2, uniswapV4, or noOp)\n */\n withMigration(migration: MigrationConfig): this;\n\n /**\n * Set the user address (token creator/owner).\n * Required for build().\n */\n withUserAddress(address: Address): this;\n\n /**\n * Set the integrator address for fee attribution.\n * Defaults to zero address if not provided.\n */\n withIntegrator(address?: Address): this;\n\n /**\n * Override the default gas limit for the create transaction.\n */\n withGasLimit(gas?: bigint): this;\n\n // Module address overrides\n withTokenFactory(address: Address): this;\n withAirlock(address: Address): this;\n withGovernanceFactory(address: Address): this;\n withV2Migrator(address: Address): this;\n withV4Migrator(address: Address): this;\n withNoOpMigrator(address: Address): this;\n}\n\nexport function computeTicks(\n priceRange: PriceRange,\n tickSpacing: number,\n): TickRange {\n const startTick =\n Math.floor(\n Math.log(priceRange.startPrice) / Math.log(1.0001) / tickSpacing,\n ) * tickSpacing;\n const endTick =\n Math.ceil(Math.log(priceRange.endPrice) / Math.log(1.0001) / tickSpacing) *\n tickSpacing;\n return { startTick, endTick };\n}\n\nexport const MARKET_CAP_PRESET_ORDER = [\n 'low',\n 'medium',\n 'high',\n] as const satisfies readonly MulticurveMarketCapPreset[];\n\nexport type MarketCapPresetConfig = {\n tickLower: number;\n tickUpper: number;\n numPositions: number;\n shares: bigint;\n};\n\nexport const MARKET_CAP_PRESETS: Record<\n MulticurveMarketCapPreset,\n MarketCapPresetConfig\n> = {\n low: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[0],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[0],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[0],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[0],\n },\n medium: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[1],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[1],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[1],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[1],\n },\n high: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[2],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[2],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[2],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[2],\n },\n};\n\nexport type MarketCapPresetOverrides = Partial<\n Record<\n MulticurveMarketCapPreset,\n {\n tickLower?: number;\n tickUpper?: number;\n numPositions?: number;\n shares?: bigint;\n }\n >\n>;\n\n/**\n * Helper to build curves from market cap presets with optional filler curve\n */\nexport function buildCurvesFromPresets(params: {\n fee?: number;\n tickSpacing?: number;\n presets?: MulticurveMarketCapPreset[];\n overrides?: MarketCapPresetOverrides;\n}): { fee: number; tickSpacing: number; curves: MarketCapPresetConfig[] } {\n const fee = params?.fee ?? FEE_TIERS.LOW;\n const tickSpacing =\n params?.tickSpacing ?? (TICK_SPACINGS as Record<number, number>)[fee];\n\n if (tickSpacing === undefined) {\n throw new Error(\n 'tickSpacing must be provided when using a custom fee tier',\n );\n }\n\n const requestedPresets = params?.presets ?? [...MARKET_CAP_PRESET_ORDER];\n const uniquePresets: MulticurveMarketCapPreset[] = [];\n for (const preset of requestedPresets) {\n if (!(preset in MARKET_CAP_PRESETS)) {\n throw new Error(`Unsupported market cap preset: ${preset}`);\n }\n if (!uniquePresets.includes(preset)) {\n uniquePresets.push(preset);\n }\n }\n\n if (uniquePresets.length === 0) {\n throw new Error('At least one market cap preset must be provided');\n }\n\n const presetCurves = uniquePresets.map((preset) => {\n const base = MARKET_CAP_PRESETS[preset];\n const override = params?.overrides?.[preset];\n return {\n tickLower: override?.tickLower ?? base.tickLower,\n tickUpper: override?.tickUpper ?? base.tickUpper,\n numPositions: override?.numPositions ?? base.numPositions,\n shares: override?.shares ?? base.shares,\n };\n });\n\n let totalShares = presetCurves.reduce((acc, curve) => {\n if (curve.shares <= 0n) {\n throw new Error('Preset shares must be greater than zero');\n }\n return acc + curve.shares;\n }, 0n);\n\n if (totalShares > WAD) {\n throw new Error('Total preset shares cannot exceed 100% (1e18)');\n }\n\n const curves = [...presetCurves];\n\n // Add filler curve if shares don't sum to 100%\n if (totalShares < WAD) {\n const remainder = WAD - totalShares;\n const lastCurve = curves[curves.length - 1];\n let fillerTickLower = lastCurve?.tickUpper ?? 0;\n let fillerNumPositions = lastCurve?.numPositions ?? 1;\n\n if (fillerNumPositions <= 0) {\n fillerNumPositions = 1;\n }\n\n const minTickAllowed = Math.ceil(MIN_TICK / tickSpacing) * tickSpacing;\n const rawMaxTick = Math.floor(MAX_TICK / tickSpacing) * tickSpacing;\n const maxTickAllowed = rawMaxTick - tickSpacing;\n\n fillerTickLower = Math.max(fillerTickLower, minTickAllowed);\n let fillerTickUpper = fillerTickLower + fillerNumPositions * tickSpacing;\n\n if (fillerTickUpper > maxTickAllowed) {\n fillerTickUpper = maxTickAllowed;\n fillerTickLower = Math.min(fillerTickLower, maxTickAllowed - tickSpacing);\n }\n\n if (fillerTickUpper <= fillerTickLower) {\n fillerTickLower = Math.max(minTickAllowed, maxTickAllowed - tickSpacing);\n fillerTickUpper = fillerTickLower + tickSpacing;\n }\n\n curves.push({\n tickLower: fillerTickLower,\n tickUpper: fillerTickUpper,\n numPositions: fillerNumPositions,\n shares: remainder,\n });\n\n totalShares = WAD;\n }\n\n if (totalShares !== WAD) {\n throw new Error('Failed to normalize preset shares to 100%');\n }\n\n return { fee, tickSpacing, curves };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/builders/shared.ts"],"names":[],"mappings":"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","file":"chunk-ZEDJUNC6.mjs","sourcesContent":["import type { Address } from 'viem';\nimport {\n DEFAULT_MULTICURVE_LOWER_TICKS,\n DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES,\n DEFAULT_MULTICURVE_NUM_POSITIONS,\n DEFAULT_MULTICURVE_UPPER_TICKS,\n FEE_TIERS,\n TICK_SPACINGS,\n WAD,\n} from '../constants';\nimport { MAX_TICK, MIN_TICK } from '../utils';\nimport type {\n PriceRange,\n TickRange,\n MulticurveMarketCapPreset,\n GovernanceOption,\n MigrationConfig,\n} from '../types';\nimport type { SupportedChainId } from '../addresses';\n\n// ============================================================================\n// Common Builder Interface\n// ============================================================================\n\n/**\n * Common interface shared by all auction builders.\n *\n * Defines the methods that all builders (Static, Dynamic, Multicurve) implement.\n * Useful for documentation and ensuring API consistency across builders.\n *\n * @template C - The chain ID type\n */\nexport interface BaseAuctionBuilder<C extends SupportedChainId> {\n /** The chain ID this builder is configured for */\n readonly chainId: C;\n\n /**\n * Configure the token to be created.\n * Supports standard ERC20 or Doppler404 token types.\n */\n tokenConfig(\n params:\n | {\n type?: 'standard';\n name: string;\n symbol: string;\n tokenURI: string;\n yearlyMintRate?: bigint;\n }\n | {\n type: 'doppler404';\n name: string;\n symbol: string;\n baseURI: string;\n unit?: bigint;\n },\n ): this;\n\n /**\n * Configure the token sale parameters.\n * @param params.initialSupply - Total token supply to mint\n * @param params.numTokensToSell - Number of tokens allocated for the bonding curve\n * @param params.numeraire - The quote token address (e.g., WETH)\n */\n saleConfig(params: {\n initialSupply: bigint;\n numTokensToSell: bigint;\n numeraire: Address;\n }): this;\n\n /**\n * Configure token vesting for team/investor allocations.\n * Pass undefined or omit to disable vesting.\n */\n withVesting(params?: {\n duration?: bigint;\n cliffDuration?: number;\n recipients?: Address[];\n amounts?: bigint[];\n }): this;\n\n /**\n * Configure governance for the token.\n * @param params - Use { type: 'default' }, { type: 'noOp' }, { type: 'launchpad', multisig: '0x...' }, or { type: 'custom', ... }\n */\n withGovernance(params: GovernanceOption<C>): this;\n\n /**\n * Configure post-auction liquidity migration.\n * @param migration - Migration target (uniswapV2, uniswapV4, dopplerHook, or noOp)\n */\n withMigration(migration: MigrationConfig): this;\n\n /**\n * Set the user address (token creator/owner).\n * Required for build().\n */\n withUserAddress(address: Address): this;\n\n /**\n * Set the integrator address for fee attribution.\n * Defaults to zero address if not provided.\n */\n withIntegrator(address?: Address): this;\n\n /**\n * Override the default gas limit for the create transaction.\n */\n withGasLimit(gas?: bigint): this;\n\n // Module address overrides\n withTokenFactory(address: Address): this;\n withAirlock(address: Address): this;\n withGovernanceFactory(address: Address): this;\n withV2Migrator(address: Address): this;\n withV4Migrator(address: Address): this;\n withNoOpMigrator(address: Address): this;\n}\n\nexport function computeTicks(\n priceRange: PriceRange,\n tickSpacing: number,\n): TickRange {\n const startTick =\n Math.floor(\n Math.log(priceRange.startPrice) / Math.log(1.0001) / tickSpacing,\n ) * tickSpacing;\n const endTick =\n Math.ceil(Math.log(priceRange.endPrice) / Math.log(1.0001) / tickSpacing) *\n tickSpacing;\n return { startTick, endTick };\n}\n\nexport const MARKET_CAP_PRESET_ORDER = [\n 'low',\n 'medium',\n 'high',\n] as const satisfies readonly MulticurveMarketCapPreset[];\n\nexport type MarketCapPresetConfig = {\n tickLower: number;\n tickUpper: number;\n numPositions: number;\n shares: bigint;\n};\n\nexport const MARKET_CAP_PRESETS: Record<\n MulticurveMarketCapPreset,\n MarketCapPresetConfig\n> = {\n low: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[0],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[0],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[0],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[0],\n },\n medium: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[1],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[1],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[1],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[1],\n },\n high: {\n tickLower: DEFAULT_MULTICURVE_LOWER_TICKS[2],\n tickUpper: DEFAULT_MULTICURVE_UPPER_TICKS[2],\n numPositions: DEFAULT_MULTICURVE_NUM_POSITIONS[2],\n shares: DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES[2],\n },\n};\n\nexport type MarketCapPresetOverrides = Partial<\n Record<\n MulticurveMarketCapPreset,\n {\n tickLower?: number;\n tickUpper?: number;\n numPositions?: number;\n shares?: bigint;\n }\n >\n>;\n\n/**\n * Helper to build curves from market cap presets with optional filler curve\n */\nexport function buildCurvesFromPresets(params: {\n fee?: number;\n tickSpacing?: number;\n presets?: MulticurveMarketCapPreset[];\n overrides?: MarketCapPresetOverrides;\n}): { fee: number; tickSpacing: number; curves: MarketCapPresetConfig[] } {\n const fee = params?.fee ?? FEE_TIERS.LOW;\n const tickSpacing =\n params?.tickSpacing ?? (TICK_SPACINGS as Record<number, number>)[fee];\n\n if (tickSpacing === undefined) {\n throw new Error(\n 'tickSpacing must be provided when using a custom fee tier',\n );\n }\n\n const requestedPresets = params?.presets ?? [...MARKET_CAP_PRESET_ORDER];\n const uniquePresets: MulticurveMarketCapPreset[] = [];\n for (const preset of requestedPresets) {\n if (!(preset in MARKET_CAP_PRESETS)) {\n throw new Error(`Unsupported market cap preset: ${preset}`);\n }\n if (!uniquePresets.includes(preset)) {\n uniquePresets.push(preset);\n }\n }\n\n if (uniquePresets.length === 0) {\n throw new Error('At least one market cap preset must be provided');\n }\n\n const presetCurves = uniquePresets.map((preset) => {\n const base = MARKET_CAP_PRESETS[preset];\n const override = params?.overrides?.[preset];\n return {\n tickLower: override?.tickLower ?? base.tickLower,\n tickUpper: override?.tickUpper ?? base.tickUpper,\n numPositions: override?.numPositions ?? base.numPositions,\n shares: override?.shares ?? base.shares,\n };\n });\n\n let totalShares = presetCurves.reduce((acc, curve) => {\n if (curve.shares <= 0n) {\n throw new Error('Preset shares must be greater than zero');\n }\n return acc + curve.shares;\n }, 0n);\n\n if (totalShares > WAD) {\n throw new Error('Total preset shares cannot exceed 100% (1e18)');\n }\n\n const curves = [...presetCurves];\n\n // Add filler curve if shares don't sum to 100%\n if (totalShares < WAD) {\n const remainder = WAD - totalShares;\n const lastCurve = curves[curves.length - 1];\n let fillerTickLower = lastCurve?.tickUpper ?? 0;\n let fillerNumPositions = lastCurve?.numPositions ?? 1;\n\n if (fillerNumPositions <= 0) {\n fillerNumPositions = 1;\n }\n\n const minTickAllowed = Math.ceil(MIN_TICK / tickSpacing) * tickSpacing;\n const rawMaxTick = Math.floor(MAX_TICK / tickSpacing) * tickSpacing;\n const maxTickAllowed = rawMaxTick - tickSpacing;\n\n fillerTickLower = Math.max(fillerTickLower, minTickAllowed);\n let fillerTickUpper = fillerTickLower + fillerNumPositions * tickSpacing;\n\n if (fillerTickUpper > maxTickAllowed) {\n fillerTickUpper = maxTickAllowed;\n fillerTickLower = Math.min(fillerTickLower, maxTickAllowed - tickSpacing);\n }\n\n if (fillerTickUpper <= fillerTickLower) {\n fillerTickLower = Math.max(minTickAllowed, maxTickAllowed - tickSpacing);\n fillerTickUpper = fillerTickLower + tickSpacing;\n }\n\n curves.push({\n tickLower: fillerTickLower,\n tickUpper: fillerTickUpper,\n numPositions: fillerNumPositions,\n shares: remainder,\n });\n\n totalShares = WAD;\n }\n\n if (totalShares !== WAD) {\n throw new Error('Failed to normalize preset shares to 100%');\n }\n\n return { fee, tickSpacing, curves };\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
type GeneratedDopplerDeployments = Record<string, Record<string, string>>;
|
|
3
3
|
/** @internal */
|
|
4
4
|
declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
5
|
-
readonly
|
|
5
|
+
readonly '1': {
|
|
6
6
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
7
7
|
readonly CloneDERC20VotesV2: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7";
|
|
8
8
|
readonly CloneDERC20VotesV2Factory: "0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1";
|
|
@@ -12,11 +12,15 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
12
12
|
readonly CloneERC20VotesFactory: "0x5A92bFfbc01ea0396A9c7D4154d36d4EAF2e483E";
|
|
13
13
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
14
14
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
15
|
+
readonly DopplerHookMigrator: "0x65b6737C7A897029Afe54Dbb61bc4A84b232e0C4";
|
|
15
16
|
readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
|
|
16
17
|
readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
|
|
17
|
-
readonly Quoter: "
|
|
18
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
18
19
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
20
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
19
21
|
readonly StreamableFeesLocker: "0xe24FC2F7191e850e2D4514aBb4d39305b1871eC6";
|
|
22
|
+
readonly StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47";
|
|
23
|
+
readonly TopUpDistributor: "0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F";
|
|
20
24
|
readonly UniswapV2Locker: "0xA366D94eDA7abEc16bfa5619A855a6208bE3aEE9";
|
|
21
25
|
readonly UniswapV2Migrator: "0x765875bff87614cE0581ee73B9fa663B71F3DfF2";
|
|
22
26
|
readonly UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad";
|
|
@@ -25,7 +29,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
25
29
|
readonly UniswapV4ScheduledMulticurveInitializer: "0xF84378C9F39e0FF267f3101c88773359c5393876";
|
|
26
30
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0";
|
|
27
31
|
};
|
|
28
|
-
readonly
|
|
32
|
+
readonly '130': {
|
|
29
33
|
readonly Airlock: "0x77EbfBAE15AD200758E9E2E61597c0B07d731254";
|
|
30
34
|
readonly Bundler: "0x91231cDdD8d6C86Df602070a3081478e074b97b7";
|
|
31
35
|
readonly DopplerDeployer: "0x0d2f38d807bfAd5C18e430516e10ab560D300caF";
|
|
@@ -43,24 +47,28 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
43
47
|
readonly UniswapV4Migrator: "0x49F3fBB2dFF7f3d03B622e3b2a6d3F2E6fdB2a5A";
|
|
44
48
|
readonly UniswapV4MigratorHook: "0x53C050d3B09C80024138165520Bd7c078D9e2000";
|
|
45
49
|
};
|
|
46
|
-
readonly
|
|
50
|
+
readonly '143': {
|
|
47
51
|
readonly Airlock: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
48
52
|
readonly Bundler: "0xC99b485499f78995C6F1640dbB1413c57f8BA684";
|
|
49
53
|
readonly CloneDERC20VotesV2: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7";
|
|
50
54
|
readonly CloneDERC20VotesV2Factory: "0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1";
|
|
51
55
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
52
56
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
57
|
+
readonly DopplerHookMigrator: "0x65b6737C7A897029Afe54Dbb61bc4A84b232e0C4";
|
|
53
58
|
readonly GovernanceFactory: "0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45";
|
|
54
59
|
readonly LaunchpadGovernanceFactory: "0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D";
|
|
55
60
|
readonly LockableUniswapV3Initializer: "0x8b4C7DB9121FC885689C0A50D5a1429F15AEc2a0";
|
|
56
61
|
readonly NoOpGovernanceFactory: "0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9";
|
|
57
62
|
readonly NoOpMigrator: "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731";
|
|
58
|
-
readonly Quoter: "
|
|
63
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
59
64
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
65
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
60
66
|
readonly StreamableFeesLocker: "0x63f8C8F9beFaab2FaCD7Ece0b0242f78B920Ee90";
|
|
67
|
+
readonly StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47";
|
|
61
68
|
readonly TimelockFactory: "0x44610355465c1F5914C8B8ea0E7c887CC67459b2";
|
|
62
69
|
readonly TokenFactory: "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5";
|
|
63
70
|
readonly TokenFactory80: "0xf0B5141dD9096254B2ca624dff26024f46087229";
|
|
71
|
+
readonly TopUpDistributor: "0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F";
|
|
64
72
|
readonly UniswapV2Locker: "0x08Ab3f5D1177511C438a15b3bd5d8b172b6f715F";
|
|
65
73
|
readonly UniswapV2Migrator: "0x136191B46478cAB023cbC01a36160C4Aad81677a";
|
|
66
74
|
readonly UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad";
|
|
@@ -69,7 +77,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
69
77
|
readonly UniswapV4ScheduledMulticurveInitializer: "0xCe3099B2F07029b086E5e92a1573C5f5A3071783";
|
|
70
78
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0x580ca49389d83b019d07E17e99454f2F218e2dc0";
|
|
71
79
|
};
|
|
72
|
-
readonly
|
|
80
|
+
readonly '1301': {
|
|
73
81
|
readonly Airlock: "0x0d2f38d807bfAd5C18e430516e10ab560D300caF";
|
|
74
82
|
readonly AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426";
|
|
75
83
|
readonly Bundler: "0xED344444633B965cd148F8fFCE3765938A179094";
|
|
@@ -92,12 +100,12 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
92
100
|
readonly UniswapV4ScheduledMulticurveInitializer: "0xF84378C9F39e0FF267f3101c88773359c5393876";
|
|
93
101
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0";
|
|
94
102
|
};
|
|
95
|
-
readonly
|
|
103
|
+
readonly '4326': {
|
|
96
104
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
97
105
|
readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
|
|
98
106
|
readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
|
|
99
107
|
};
|
|
100
|
-
readonly
|
|
108
|
+
readonly '4801': {
|
|
101
109
|
readonly Airlock: "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731";
|
|
102
110
|
readonly GovernanceFactory: "0x136191B46478cAB023cbC01a36160C4Aad81677a";
|
|
103
111
|
readonly TokenFactory: "0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D";
|
|
@@ -105,12 +113,12 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
105
113
|
readonly UniswapV3Initializer: "0x9916Ec1c1E0462F6F8f7514e414F06bf001Ac82A";
|
|
106
114
|
readonly WETH: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
107
115
|
};
|
|
108
|
-
readonly
|
|
116
|
+
readonly '6343': {
|
|
109
117
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
110
118
|
readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
|
|
111
119
|
readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
|
|
112
120
|
};
|
|
113
|
-
readonly
|
|
121
|
+
readonly '8453': {
|
|
114
122
|
readonly Airlock: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
115
123
|
readonly Bundler: "0x136191B46478cAB023cbC01a36160C4Aad81677a";
|
|
116
124
|
readonly CloneDERC20VotesV2: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7";
|
|
@@ -119,17 +127,21 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
119
127
|
readonly DecayMulticurveInitializerHook: "0xbB7784A4d481184283Ed89619A3e3ed143e1Adc0";
|
|
120
128
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
121
129
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
130
|
+
readonly DopplerHookMigrator: "0x65b6737C7A897029Afe54Dbb61bc4A84b232e0C4";
|
|
122
131
|
readonly DopplerLensQuoter: "0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3";
|
|
123
132
|
readonly GovernanceFactory: "0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B";
|
|
124
133
|
readonly LaunchpadGovernanceFactory: "0x40Bcb4dDA3BcF7dba30C5d10c31EE2791ed9ddCa";
|
|
125
134
|
readonly LockableUniswapV3Initializer: "0xE0dC4012AC9C868F09c6e4b20d66ED46D6F258d0";
|
|
126
135
|
readonly NoOpGovernanceFactory: "0x3AD727ee0FBBb8Ee0920933FdB96F23fD56f1299";
|
|
127
136
|
readonly NoOpMigrator: "0x6ddfED58D238Ca3195E49d8ac3d4cEa6386E5C33";
|
|
128
|
-
readonly Quoter: "
|
|
137
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
129
138
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
139
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
130
140
|
readonly StreamableFeesLocker: "0x0A00775D71a42cd33D62780003035e7F5b47bD3A";
|
|
141
|
+
readonly StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47";
|
|
131
142
|
readonly TokenFactory: "0x4225C632b62622Bd7B0A3eC9745C0a866Ff94F6F";
|
|
132
143
|
readonly TokenFactory80: "0xf0B5141dD9096254B2ca624dff26024f46087229";
|
|
144
|
+
readonly TopUpDistributor: "0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F";
|
|
133
145
|
readonly UniswapV2Migrator: "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731";
|
|
134
146
|
readonly UniswapV3Initializer: "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5";
|
|
135
147
|
readonly UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad";
|
|
@@ -140,7 +152,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
140
152
|
readonly UniswapV4ScheduledMulticurveInitializer: "0xA36715dA46Ddf4A769f3290f49AF58bF8132ED8E";
|
|
141
153
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0x3e342a06f9592459D75721d6956B570F02eF2Dc0";
|
|
142
154
|
};
|
|
143
|
-
readonly
|
|
155
|
+
readonly '10143': {
|
|
144
156
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
145
157
|
readonly AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426";
|
|
146
158
|
readonly Bundler: "0xf6023127f6E937091D5B605680056A6D27524bad";
|
|
@@ -164,7 +176,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
164
176
|
readonly UniswapV4MulticurveInitializerHook: "0xFaF16d11737E6552156DD328cD26C530e1da2D40";
|
|
165
177
|
readonly WETH: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
166
178
|
};
|
|
167
|
-
readonly
|
|
179
|
+
readonly '57073': {
|
|
168
180
|
readonly Airlock: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
169
181
|
readonly Bundler: "0x136191B46478cAB023cbC01a36160C4Aad81677a";
|
|
170
182
|
readonly DopplerDeployer: "0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B";
|
|
@@ -175,7 +187,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
175
187
|
readonly UniswapV3Initializer: "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5";
|
|
176
188
|
readonly UniswapV4Initializer: "0x014E1c0bd34f3B10546E554CB33B3293fECDD056";
|
|
177
189
|
};
|
|
178
|
-
readonly
|
|
190
|
+
readonly '84532': {
|
|
179
191
|
readonly Airlock: "0x3411306Ce66c9469BFF1535BA955503c4Bde1C6e";
|
|
180
192
|
readonly AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426";
|
|
181
193
|
readonly BasicMultisig: "0x6f645FA08B7eadAD620CEC85634204b1d7A46DC2";
|
|
@@ -186,18 +198,20 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
186
198
|
readonly CloneERC20Factory: "0xbf4Ca4D527c9760A884df31292f72E9AcA503045";
|
|
187
199
|
readonly CloneERC20Votes: "0x52831E40151a79FE2e74549b0974d44A10Ac30aD";
|
|
188
200
|
readonly CloneERC20VotesFactory: "0x9a497a9fB78e49984B9d260abA1F4AD6321D4D92";
|
|
189
|
-
readonly DecayMulticurveInitializer: "
|
|
190
|
-
readonly DecayMulticurveInitializerHook: "
|
|
201
|
+
readonly DecayMulticurveInitializer: "0xD59cE43E53D69F190E15d9822Fb4540dCcc91178";
|
|
202
|
+
readonly DecayMulticurveInitializerHook: "0xbB7784A4d481184283Ed89619A3e3ed143e1Adc0";
|
|
191
203
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
192
204
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
205
|
+
readonly DopplerHookMigrator: "0x8bBbE586F9A902c15A759FC134A99a2d28bc20c4";
|
|
193
206
|
readonly DopplerLensQuoter: "0x4a8d81Db741248a36D9eb3bc6eF648Bf798B47a7";
|
|
194
207
|
readonly GovernanceFactory: "0x9dBFaaDC8c0cB2c34bA698DD9426555336992e20";
|
|
195
208
|
readonly LockableUniswapV3Initializer: "0x16AdA5Be50C3c2D94Af5fEae6b539C40A78Ad53c";
|
|
196
209
|
readonly MulticurveLibrary: "0x32238a39ba5aF060EFbfAda59979B639E0945fE0";
|
|
197
210
|
readonly NoOpGovernanceFactory: "0x7bD798fafC99A3b17E261F8308A8C11B56935ea1";
|
|
198
211
|
readonly NoOpMigrator: "0xF11066abbd329ac4bBA39455340539322C222eb0";
|
|
199
|
-
readonly Quoter: "
|
|
212
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
200
213
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
214
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
201
215
|
readonly StreamableFeesLocker: "0x3345E557c5C0b474bE1eb4693264008B8562Aa9c";
|
|
202
216
|
readonly TeamGovernanceFactory: "0x8aF3001ED75F86f4Dd910577ECa9C5dB7CEa765c";
|
|
203
217
|
readonly TokenFactory: "0x9D8fd79B2a59c5d91ccBd79c3AEb4de56451Bb02";
|
|
@@ -218,7 +232,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
218
232
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0";
|
|
219
233
|
readonly WETH: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
220
234
|
};
|
|
221
|
-
readonly
|
|
235
|
+
readonly '11155111': {
|
|
222
236
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
223
237
|
readonly AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426";
|
|
224
238
|
readonly CloneDERC20VotesV2: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7";
|
|
@@ -227,13 +241,19 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
227
241
|
readonly CloneERC20Factory: "0xe7Df2A4520C26a2D4Dedb3a7585BFBcd30eABA6e";
|
|
228
242
|
readonly CloneERC20Votes: "0xA8d0E8036D3fAE21C7Af075ad41942Bc1f807CDF";
|
|
229
243
|
readonly CloneERC20VotesFactory: "0x5A92bFfbc01ea0396A9c7D4154d36d4EAF2e483E";
|
|
244
|
+
readonly DecayMulticurveInitializer: "0xD59cE43E53D69F190E15d9822Fb4540dCcc91178";
|
|
245
|
+
readonly DecayMulticurveInitializerHook: "0xbB7784A4d481184283Ed89619A3e3ed143e1Adc0";
|
|
230
246
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
231
247
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
248
|
+
readonly DopplerHookMigrator: "0x65b6737C7A897029Afe54Dbb61bc4A84b232e0C4";
|
|
232
249
|
readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
|
|
233
250
|
readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
|
|
234
|
-
readonly Quoter: "
|
|
251
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
235
252
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
253
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
236
254
|
readonly StreamableFeesLocker: "0xe24FC2F7191e850e2D4514aBb4d39305b1871eC6";
|
|
255
|
+
readonly StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47";
|
|
256
|
+
readonly TopUpDistributor: "0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F";
|
|
237
257
|
readonly UniswapV2Locker: "0xA366D94eDA7abEc16bfa5619A855a6208bE3aEE9";
|
|
238
258
|
readonly UniswapV2Migrator: "0x765875bff87614cE0581ee73B9fa663B71F3DfF2";
|
|
239
259
|
readonly UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
type GeneratedDopplerDeployments = Record<string, Record<string, string>>;
|
|
3
3
|
/** @internal */
|
|
4
4
|
declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
5
|
-
readonly
|
|
5
|
+
readonly '1': {
|
|
6
6
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
7
7
|
readonly CloneDERC20VotesV2: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7";
|
|
8
8
|
readonly CloneDERC20VotesV2Factory: "0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1";
|
|
@@ -12,11 +12,15 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
12
12
|
readonly CloneERC20VotesFactory: "0x5A92bFfbc01ea0396A9c7D4154d36d4EAF2e483E";
|
|
13
13
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
14
14
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
15
|
+
readonly DopplerHookMigrator: "0x65b6737C7A897029Afe54Dbb61bc4A84b232e0C4";
|
|
15
16
|
readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
|
|
16
17
|
readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
|
|
17
|
-
readonly Quoter: "
|
|
18
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
18
19
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
20
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
19
21
|
readonly StreamableFeesLocker: "0xe24FC2F7191e850e2D4514aBb4d39305b1871eC6";
|
|
22
|
+
readonly StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47";
|
|
23
|
+
readonly TopUpDistributor: "0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F";
|
|
20
24
|
readonly UniswapV2Locker: "0xA366D94eDA7abEc16bfa5619A855a6208bE3aEE9";
|
|
21
25
|
readonly UniswapV2Migrator: "0x765875bff87614cE0581ee73B9fa663B71F3DfF2";
|
|
22
26
|
readonly UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad";
|
|
@@ -25,7 +29,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
25
29
|
readonly UniswapV4ScheduledMulticurveInitializer: "0xF84378C9F39e0FF267f3101c88773359c5393876";
|
|
26
30
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0";
|
|
27
31
|
};
|
|
28
|
-
readonly
|
|
32
|
+
readonly '130': {
|
|
29
33
|
readonly Airlock: "0x77EbfBAE15AD200758E9E2E61597c0B07d731254";
|
|
30
34
|
readonly Bundler: "0x91231cDdD8d6C86Df602070a3081478e074b97b7";
|
|
31
35
|
readonly DopplerDeployer: "0x0d2f38d807bfAd5C18e430516e10ab560D300caF";
|
|
@@ -43,24 +47,28 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
43
47
|
readonly UniswapV4Migrator: "0x49F3fBB2dFF7f3d03B622e3b2a6d3F2E6fdB2a5A";
|
|
44
48
|
readonly UniswapV4MigratorHook: "0x53C050d3B09C80024138165520Bd7c078D9e2000";
|
|
45
49
|
};
|
|
46
|
-
readonly
|
|
50
|
+
readonly '143': {
|
|
47
51
|
readonly Airlock: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
48
52
|
readonly Bundler: "0xC99b485499f78995C6F1640dbB1413c57f8BA684";
|
|
49
53
|
readonly CloneDERC20VotesV2: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7";
|
|
50
54
|
readonly CloneDERC20VotesV2Factory: "0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1";
|
|
51
55
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
52
56
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
57
|
+
readonly DopplerHookMigrator: "0x65b6737C7A897029Afe54Dbb61bc4A84b232e0C4";
|
|
53
58
|
readonly GovernanceFactory: "0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45";
|
|
54
59
|
readonly LaunchpadGovernanceFactory: "0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D";
|
|
55
60
|
readonly LockableUniswapV3Initializer: "0x8b4C7DB9121FC885689C0A50D5a1429F15AEc2a0";
|
|
56
61
|
readonly NoOpGovernanceFactory: "0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9";
|
|
57
62
|
readonly NoOpMigrator: "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731";
|
|
58
|
-
readonly Quoter: "
|
|
63
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
59
64
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
65
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
60
66
|
readonly StreamableFeesLocker: "0x63f8C8F9beFaab2FaCD7Ece0b0242f78B920Ee90";
|
|
67
|
+
readonly StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47";
|
|
61
68
|
readonly TimelockFactory: "0x44610355465c1F5914C8B8ea0E7c887CC67459b2";
|
|
62
69
|
readonly TokenFactory: "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5";
|
|
63
70
|
readonly TokenFactory80: "0xf0B5141dD9096254B2ca624dff26024f46087229";
|
|
71
|
+
readonly TopUpDistributor: "0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F";
|
|
64
72
|
readonly UniswapV2Locker: "0x08Ab3f5D1177511C438a15b3bd5d8b172b6f715F";
|
|
65
73
|
readonly UniswapV2Migrator: "0x136191B46478cAB023cbC01a36160C4Aad81677a";
|
|
66
74
|
readonly UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad";
|
|
@@ -69,7 +77,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
69
77
|
readonly UniswapV4ScheduledMulticurveInitializer: "0xCe3099B2F07029b086E5e92a1573C5f5A3071783";
|
|
70
78
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0x580ca49389d83b019d07E17e99454f2F218e2dc0";
|
|
71
79
|
};
|
|
72
|
-
readonly
|
|
80
|
+
readonly '1301': {
|
|
73
81
|
readonly Airlock: "0x0d2f38d807bfAd5C18e430516e10ab560D300caF";
|
|
74
82
|
readonly AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426";
|
|
75
83
|
readonly Bundler: "0xED344444633B965cd148F8fFCE3765938A179094";
|
|
@@ -92,12 +100,12 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
92
100
|
readonly UniswapV4ScheduledMulticurveInitializer: "0xF84378C9F39e0FF267f3101c88773359c5393876";
|
|
93
101
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0";
|
|
94
102
|
};
|
|
95
|
-
readonly
|
|
103
|
+
readonly '4326': {
|
|
96
104
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
97
105
|
readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
|
|
98
106
|
readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
|
|
99
107
|
};
|
|
100
|
-
readonly
|
|
108
|
+
readonly '4801': {
|
|
101
109
|
readonly Airlock: "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731";
|
|
102
110
|
readonly GovernanceFactory: "0x136191B46478cAB023cbC01a36160C4Aad81677a";
|
|
103
111
|
readonly TokenFactory: "0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D";
|
|
@@ -105,12 +113,12 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
105
113
|
readonly UniswapV3Initializer: "0x9916Ec1c1E0462F6F8f7514e414F06bf001Ac82A";
|
|
106
114
|
readonly WETH: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
107
115
|
};
|
|
108
|
-
readonly
|
|
116
|
+
readonly '6343': {
|
|
109
117
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
110
118
|
readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
|
|
111
119
|
readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
|
|
112
120
|
};
|
|
113
|
-
readonly
|
|
121
|
+
readonly '8453': {
|
|
114
122
|
readonly Airlock: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
115
123
|
readonly Bundler: "0x136191B46478cAB023cbC01a36160C4Aad81677a";
|
|
116
124
|
readonly CloneDERC20VotesV2: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7";
|
|
@@ -119,17 +127,21 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
119
127
|
readonly DecayMulticurveInitializerHook: "0xbB7784A4d481184283Ed89619A3e3ed143e1Adc0";
|
|
120
128
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
121
129
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
130
|
+
readonly DopplerHookMigrator: "0x65b6737C7A897029Afe54Dbb61bc4A84b232e0C4";
|
|
122
131
|
readonly DopplerLensQuoter: "0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3";
|
|
123
132
|
readonly GovernanceFactory: "0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B";
|
|
124
133
|
readonly LaunchpadGovernanceFactory: "0x40Bcb4dDA3BcF7dba30C5d10c31EE2791ed9ddCa";
|
|
125
134
|
readonly LockableUniswapV3Initializer: "0xE0dC4012AC9C868F09c6e4b20d66ED46D6F258d0";
|
|
126
135
|
readonly NoOpGovernanceFactory: "0x3AD727ee0FBBb8Ee0920933FdB96F23fD56f1299";
|
|
127
136
|
readonly NoOpMigrator: "0x6ddfED58D238Ca3195E49d8ac3d4cEa6386E5C33";
|
|
128
|
-
readonly Quoter: "
|
|
137
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
129
138
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
139
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
130
140
|
readonly StreamableFeesLocker: "0x0A00775D71a42cd33D62780003035e7F5b47bD3A";
|
|
141
|
+
readonly StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47";
|
|
131
142
|
readonly TokenFactory: "0x4225C632b62622Bd7B0A3eC9745C0a866Ff94F6F";
|
|
132
143
|
readonly TokenFactory80: "0xf0B5141dD9096254B2ca624dff26024f46087229";
|
|
144
|
+
readonly TopUpDistributor: "0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F";
|
|
133
145
|
readonly UniswapV2Migrator: "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731";
|
|
134
146
|
readonly UniswapV3Initializer: "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5";
|
|
135
147
|
readonly UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad";
|
|
@@ -140,7 +152,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
140
152
|
readonly UniswapV4ScheduledMulticurveInitializer: "0xA36715dA46Ddf4A769f3290f49AF58bF8132ED8E";
|
|
141
153
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0x3e342a06f9592459D75721d6956B570F02eF2Dc0";
|
|
142
154
|
};
|
|
143
|
-
readonly
|
|
155
|
+
readonly '10143': {
|
|
144
156
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
145
157
|
readonly AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426";
|
|
146
158
|
readonly Bundler: "0xf6023127f6E937091D5B605680056A6D27524bad";
|
|
@@ -164,7 +176,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
164
176
|
readonly UniswapV4MulticurveInitializerHook: "0xFaF16d11737E6552156DD328cD26C530e1da2D40";
|
|
165
177
|
readonly WETH: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
166
178
|
};
|
|
167
|
-
readonly
|
|
179
|
+
readonly '57073': {
|
|
168
180
|
readonly Airlock: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
169
181
|
readonly Bundler: "0x136191B46478cAB023cbC01a36160C4Aad81677a";
|
|
170
182
|
readonly DopplerDeployer: "0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B";
|
|
@@ -175,7 +187,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
175
187
|
readonly UniswapV3Initializer: "0xaA47D2977d622DBdFD33eeF6a8276727c52EB4e5";
|
|
176
188
|
readonly UniswapV4Initializer: "0x014E1c0bd34f3B10546E554CB33B3293fECDD056";
|
|
177
189
|
};
|
|
178
|
-
readonly
|
|
190
|
+
readonly '84532': {
|
|
179
191
|
readonly Airlock: "0x3411306Ce66c9469BFF1535BA955503c4Bde1C6e";
|
|
180
192
|
readonly AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426";
|
|
181
193
|
readonly BasicMultisig: "0x6f645FA08B7eadAD620CEC85634204b1d7A46DC2";
|
|
@@ -186,18 +198,20 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
186
198
|
readonly CloneERC20Factory: "0xbf4Ca4D527c9760A884df31292f72E9AcA503045";
|
|
187
199
|
readonly CloneERC20Votes: "0x52831E40151a79FE2e74549b0974d44A10Ac30aD";
|
|
188
200
|
readonly CloneERC20VotesFactory: "0x9a497a9fB78e49984B9d260abA1F4AD6321D4D92";
|
|
189
|
-
readonly DecayMulticurveInitializer: "
|
|
190
|
-
readonly DecayMulticurveInitializerHook: "
|
|
201
|
+
readonly DecayMulticurveInitializer: "0xD59cE43E53D69F190E15d9822Fb4540dCcc91178";
|
|
202
|
+
readonly DecayMulticurveInitializerHook: "0xbB7784A4d481184283Ed89619A3e3ed143e1Adc0";
|
|
191
203
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
192
204
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
205
|
+
readonly DopplerHookMigrator: "0x8bBbE586F9A902c15A759FC134A99a2d28bc20c4";
|
|
193
206
|
readonly DopplerLensQuoter: "0x4a8d81Db741248a36D9eb3bc6eF648Bf798B47a7";
|
|
194
207
|
readonly GovernanceFactory: "0x9dBFaaDC8c0cB2c34bA698DD9426555336992e20";
|
|
195
208
|
readonly LockableUniswapV3Initializer: "0x16AdA5Be50C3c2D94Af5fEae6b539C40A78Ad53c";
|
|
196
209
|
readonly MulticurveLibrary: "0x32238a39ba5aF060EFbfAda59979B639E0945fE0";
|
|
197
210
|
readonly NoOpGovernanceFactory: "0x7bD798fafC99A3b17E261F8308A8C11B56935ea1";
|
|
198
211
|
readonly NoOpMigrator: "0xF11066abbd329ac4bBA39455340539322C222eb0";
|
|
199
|
-
readonly Quoter: "
|
|
212
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
200
213
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
214
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
201
215
|
readonly StreamableFeesLocker: "0x3345E557c5C0b474bE1eb4693264008B8562Aa9c";
|
|
202
216
|
readonly TeamGovernanceFactory: "0x8aF3001ED75F86f4Dd910577ECa9C5dB7CEa765c";
|
|
203
217
|
readonly TokenFactory: "0x9D8fd79B2a59c5d91ccBd79c3AEb4de56451Bb02";
|
|
@@ -218,7 +232,7 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
218
232
|
readonly UniswapV4ScheduledMulticurveInitializerHook: "0xc6a562cb5CbFA29BCB1bDCCF903b8B8f2E4A2DC0";
|
|
219
233
|
readonly WETH: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12";
|
|
220
234
|
};
|
|
221
|
-
readonly
|
|
235
|
+
readonly '11155111': {
|
|
222
236
|
readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
|
|
223
237
|
readonly AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426";
|
|
224
238
|
readonly CloneDERC20VotesV2: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7";
|
|
@@ -227,13 +241,19 @@ declare const GENERATED_DOPPLER_DEPLOYMENTS: {
|
|
|
227
241
|
readonly CloneERC20Factory: "0xe7Df2A4520C26a2D4Dedb3a7585BFBcd30eABA6e";
|
|
228
242
|
readonly CloneERC20Votes: "0xA8d0E8036D3fAE21C7Af075ad41942Bc1f807CDF";
|
|
229
243
|
readonly CloneERC20VotesFactory: "0x5A92bFfbc01ea0396A9c7D4154d36d4EAF2e483E";
|
|
244
|
+
readonly DecayMulticurveInitializer: "0xD59cE43E53D69F190E15d9822Fb4540dCcc91178";
|
|
245
|
+
readonly DecayMulticurveInitializerHook: "0xbB7784A4d481184283Ed89619A3e3ed143e1Adc0";
|
|
230
246
|
readonly DopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421";
|
|
231
247
|
readonly DopplerHookInitializer: "0xAA096F558f3d4c9226De77E7Cc05f18E180B2544";
|
|
248
|
+
readonly DopplerHookMigrator: "0x65b6737C7A897029Afe54Dbb61bc4A84b232e0C4";
|
|
232
249
|
readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
|
|
233
250
|
readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
|
|
234
|
-
readonly Quoter: "
|
|
251
|
+
readonly Quoter: "0x525B6c00E1d32677ccaEC5cF07E3045c0FE7102d";
|
|
235
252
|
readonly RehypeDopplerHook: "0x97cAD5684FB7Cc2bEd9a9b5eBfba67138F4f2503";
|
|
253
|
+
readonly RehypeDopplerHookMigrator: "0xd199E7836e91654c0475a90E0C1d0e402bB84372";
|
|
236
254
|
readonly StreamableFeesLocker: "0xe24FC2F7191e850e2D4514aBb4d39305b1871eC6";
|
|
255
|
+
readonly StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47";
|
|
256
|
+
readonly TopUpDistributor: "0xD8F05757B7d638a48Fd14e15EB6782bab50Ad57F";
|
|
237
257
|
readonly UniswapV2Locker: "0xA366D94eDA7abEc16bfa5619A855a6208bE3aEE9";
|
|
238
258
|
readonly UniswapV2Migrator: "0x765875bff87614cE0581ee73B9fa663B71F3DfF2";
|
|
239
259
|
readonly UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkDNB3T5P2_js = require('./chunk-DNB3T5P2.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "GENERATED_DOPPLER_DEPLOYMENTS", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkDNB3T5P2_js.GENERATED_DOPPLER_DEPLOYMENTS; }
|
|
10
10
|
});
|
|
11
11
|
//# sourceMappingURL=deployments.generated.js.map
|
|
12
12
|
//# sourceMappingURL=deployments.generated.js.map
|