@whetstone-research/doppler-sdk 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +46 -1
  2. package/dist/DopplerSDK.js +18 -18
  3. package/dist/DopplerSDK.mjs +17 -17
  4. package/dist/abis/index.d.mts +32 -1
  5. package/dist/abis/index.d.ts +32 -1
  6. package/dist/abis/index.js +26 -22
  7. package/dist/abis/index.mjs +1 -1
  8. package/dist/addresses.d.mts +1 -0
  9. package/dist/addresses.d.ts +1 -0
  10. package/dist/addresses.js +7 -7
  11. package/dist/addresses.mjs +2 -2
  12. package/dist/builders/DynamicAuctionBuilder.js +9 -9
  13. package/dist/builders/DynamicAuctionBuilder.mjs +8 -8
  14. package/dist/builders/MulticurveBuilder.d.mts +16 -0
  15. package/dist/builders/MulticurveBuilder.d.ts +16 -0
  16. package/dist/builders/MulticurveBuilder.js +9 -9
  17. package/dist/builders/MulticurveBuilder.mjs +8 -8
  18. package/dist/builders/StaticAuctionBuilder.js +9 -9
  19. package/dist/builders/StaticAuctionBuilder.mjs +8 -8
  20. package/dist/builders/index.js +17 -17
  21. package/dist/builders/index.mjs +10 -10
  22. package/dist/builders/shared.js +10 -10
  23. package/dist/builders/shared.mjs +6 -6
  24. package/dist/{chunk-ZQA3VG53.mjs → chunk-36Y3N257.mjs} +118 -20
  25. package/dist/chunk-36Y3N257.mjs.map +1 -0
  26. package/dist/{chunk-LOVD3NCN.js → chunk-3MVW6UIW.js} +18 -2
  27. package/dist/chunk-3MVW6UIW.js.map +1 -0
  28. package/dist/{chunk-WGP4RHM7.js → chunk-3SCK4LGS.js} +26 -26
  29. package/dist/{chunk-WGP4RHM7.js.map → chunk-3SCK4LGS.js.map} +1 -1
  30. package/dist/{chunk-UGBCLUOX.js → chunk-4CJS5XLY.js} +26 -26
  31. package/dist/{chunk-UGBCLUOX.js.map → chunk-4CJS5XLY.js.map} +1 -1
  32. package/dist/{chunk-IJEMEVGS.mjs → chunk-4LNXE5DF.mjs} +4 -4
  33. package/dist/{chunk-IJEMEVGS.mjs.map → chunk-4LNXE5DF.mjs.map} +1 -1
  34. package/dist/{chunk-4DUE547M.js → chunk-6BQY5EPB.js} +4 -2
  35. package/dist/chunk-6BQY5EPB.js.map +1 -0
  36. package/dist/{chunk-27TY7K5D.js → chunk-AS5UUJRI.js} +11 -11
  37. package/dist/{chunk-27TY7K5D.js.map → chunk-AS5UUJRI.js.map} +1 -1
  38. package/dist/{chunk-Y4IZVDJE.mjs → chunk-BFJGY436.mjs} +3 -3
  39. package/dist/{chunk-Y4IZVDJE.mjs.map → chunk-BFJGY436.mjs.map} +1 -1
  40. package/dist/{chunk-NVJNZ7XO.js → chunk-COUZYFEE.js} +27 -27
  41. package/dist/{chunk-NVJNZ7XO.js.map → chunk-COUZYFEE.js.map} +1 -1
  42. package/dist/{chunk-JCJVX42H.mjs → chunk-CXE33IZN.mjs} +5 -5
  43. package/dist/{chunk-JCJVX42H.mjs.map → chunk-CXE33IZN.mjs.map} +1 -1
  44. package/dist/{chunk-BZKX3J3R.mjs → chunk-E2NF4AQB.mjs} +18 -3
  45. package/dist/chunk-E2NF4AQB.mjs.map +1 -0
  46. package/dist/{chunk-3Q2BALCB.js → chunk-GFOBDFVW.js} +344 -147
  47. package/dist/chunk-GFOBDFVW.js.map +1 -0
  48. package/dist/{chunk-CXYA7OX6.js → chunk-GLMPU7VL.js} +132 -34
  49. package/dist/chunk-GLMPU7VL.js.map +1 -0
  50. package/dist/{chunk-PE47QUJV.mjs → chunk-HH7HQ4HC.mjs} +3 -3
  51. package/dist/{chunk-PE47QUJV.mjs.map → chunk-HH7HQ4HC.mjs.map} +1 -1
  52. package/dist/{chunk-IUXOT6OY.js → chunk-HHHCRTC7.js} +53 -15
  53. package/dist/chunk-HHHCRTC7.js.map +1 -0
  54. package/dist/{chunk-LXUF7RNX.mjs → chunk-IWJOPXYN.mjs} +4 -3
  55. package/dist/chunk-IWJOPXYN.mjs.map +1 -0
  56. package/dist/{chunk-4BPFHO6W.js → chunk-J2E2GILK.js} +20 -20
  57. package/dist/{chunk-4BPFHO6W.js.map → chunk-J2E2GILK.js.map} +1 -1
  58. package/dist/{chunk-2UUVAFXS.js → chunk-JHPDKSC4.js} +78 -72
  59. package/dist/chunk-JHPDKSC4.js.map +1 -0
  60. package/dist/{chunk-AQKQRG7M.js → chunk-K27G7LLT.js} +5 -5
  61. package/dist/{chunk-AQKQRG7M.js.map → chunk-K27G7LLT.js.map} +1 -1
  62. package/dist/{chunk-FM5ASWDQ.mjs → chunk-NJYBKWCD.mjs} +45 -7
  63. package/dist/chunk-NJYBKWCD.mjs.map +1 -0
  64. package/dist/{chunk-RAII4DRI.mjs → chunk-NWZGO2CH.mjs} +10 -4
  65. package/dist/chunk-NWZGO2CH.mjs.map +1 -0
  66. package/dist/{chunk-WM2YFSKT.mjs → chunk-QFQXHDC7.mjs} +11 -2
  67. package/dist/chunk-QFQXHDC7.mjs.map +1 -0
  68. package/dist/{chunk-RKJ2466C.mjs → chunk-QOGBOT2M.mjs} +3 -3
  69. package/dist/{chunk-RKJ2466C.mjs.map → chunk-QOGBOT2M.mjs.map} +1 -1
  70. package/dist/{chunk-AG3E3XYB.mjs → chunk-RJE6LWWF.mjs} +4 -4
  71. package/dist/{chunk-AG3E3XYB.mjs.map → chunk-RJE6LWWF.mjs.map} +1 -1
  72. package/dist/{chunk-EKQKHXJN.mjs → chunk-RKPAL3SU.mjs} +3 -3
  73. package/dist/{chunk-EKQKHXJN.mjs.map → chunk-RKPAL3SU.mjs.map} +1 -1
  74. package/dist/{chunk-JXNAHW6C.js → chunk-RLUMYHPI.js} +11 -2
  75. package/dist/chunk-RLUMYHPI.js.map +1 -0
  76. package/dist/{chunk-5FJCRKQ6.js → chunk-RXUJ4DUB.js} +28 -28
  77. package/dist/{chunk-5FJCRKQ6.js.map → chunk-RXUJ4DUB.js.map} +1 -1
  78. package/dist/{chunk-MGLI4N4B.js → chunk-SAX7P3MH.js} +22 -22
  79. package/dist/{chunk-MGLI4N4B.js.map → chunk-SAX7P3MH.js.map} +1 -1
  80. package/dist/{chunk-226TXYRB.mjs → chunk-SKU6VE6L.mjs} +12 -12
  81. package/dist/{chunk-226TXYRB.mjs.map → chunk-SKU6VE6L.mjs.map} +1 -1
  82. package/dist/{chunk-DVQWWF23.js → chunk-TYJZL2XZ.js} +24 -24
  83. package/dist/{chunk-DVQWWF23.js.map → chunk-TYJZL2XZ.js.map} +1 -1
  84. package/dist/{chunk-IJRI5LNK.mjs → chunk-U7CHPFU6.mjs} +248 -51
  85. package/dist/chunk-U7CHPFU6.mjs.map +1 -0
  86. package/dist/{chunk-WMOJQ6MS.mjs → chunk-V7YRKFYK.mjs} +5 -5
  87. package/dist/{chunk-WMOJQ6MS.mjs.map → chunk-V7YRKFYK.mjs.map} +1 -1
  88. package/dist/{chunk-IEEK2PMP.mjs → chunk-XEWKLVOD.mjs} +4 -4
  89. package/dist/{chunk-IEEK2PMP.mjs.map → chunk-XEWKLVOD.mjs.map} +1 -1
  90. package/dist/{chunk-HVYUDMHH.js → chunk-Y5RAENN5.js} +16 -16
  91. package/dist/{chunk-HVYUDMHH.js.map → chunk-Y5RAENN5.js.map} +1 -1
  92. package/dist/constants.d.mts +7 -1
  93. package/dist/constants.d.ts +7 -1
  94. package/dist/constants.js +51 -47
  95. package/dist/constants.mjs +1 -1
  96. package/dist/deployments.generated.d.mts +9 -0
  97. package/dist/deployments.generated.d.ts +9 -0
  98. package/dist/deployments.generated.js +2 -2
  99. package/dist/deployments.generated.mjs +1 -1
  100. package/dist/entities/DopplerFactory.d.mts +2 -0
  101. package/dist/entities/DopplerFactory.d.ts +2 -0
  102. package/dist/entities/DopplerFactory.js +7 -7
  103. package/dist/entities/DopplerFactory.mjs +6 -6
  104. package/dist/entities/auction/DynamicAuction.js +5 -5
  105. package/dist/entities/auction/DynamicAuction.mjs +4 -4
  106. package/dist/entities/auction/MulticurvePool.d.mts +9 -3
  107. package/dist/entities/auction/MulticurvePool.d.ts +9 -3
  108. package/dist/entities/auction/MulticurvePool.js +7 -6
  109. package/dist/entities/auction/MulticurvePool.mjs +6 -5
  110. package/dist/entities/auction/StaticAuction.js +5 -5
  111. package/dist/entities/auction/StaticAuction.mjs +4 -4
  112. package/dist/entities/auction/index.js +11 -10
  113. package/dist/entities/auction/index.mjs +8 -7
  114. package/dist/entities/quoter/Quoter.js +5 -5
  115. package/dist/entities/quoter/Quoter.mjs +4 -4
  116. package/dist/entities/quoter/index.js +5 -5
  117. package/dist/entities/quoter/index.mjs +4 -4
  118. package/dist/entities/token/derc20/Derc20.js +3 -3
  119. package/dist/entities/token/derc20/Derc20.mjs +2 -2
  120. package/dist/entities/token/derc20/index.js +3 -3
  121. package/dist/entities/token/derc20/index.mjs +2 -2
  122. package/dist/entities/token/index.js +3 -3
  123. package/dist/entities/token/index.mjs +2 -2
  124. package/dist/index.d.mts +3 -3
  125. package/dist/index.d.ts +3 -3
  126. package/dist/index.js +108 -100
  127. package/dist/index.js.map +1 -1
  128. package/dist/index.mjs +17 -17
  129. package/dist/index.mjs.map +1 -1
  130. package/dist/types.d.mts +32 -1
  131. package/dist/types.d.ts +32 -1
  132. package/dist/types.js +8 -8
  133. package/dist/types.mjs +3 -3
  134. package/dist/utils/airlock.js +7 -7
  135. package/dist/utils/airlock.mjs +3 -3
  136. package/dist/utils/index.js +8 -8
  137. package/dist/utils/index.mjs +4 -4
  138. package/dist/utils/tokenAddressMiner.js +1 -1
  139. package/dist/utils/tokenAddressMiner.mjs +1 -1
  140. package/package.json +1 -1
  141. package/dist/chunk-2UUVAFXS.js.map +0 -1
  142. package/dist/chunk-3Q2BALCB.js.map +0 -1
  143. package/dist/chunk-4DUE547M.js.map +0 -1
  144. package/dist/chunk-BZKX3J3R.mjs.map +0 -1
  145. package/dist/chunk-CXYA7OX6.js.map +0 -1
  146. package/dist/chunk-FM5ASWDQ.mjs.map +0 -1
  147. package/dist/chunk-IJRI5LNK.mjs.map +0 -1
  148. package/dist/chunk-IUXOT6OY.js.map +0 -1
  149. package/dist/chunk-JXNAHW6C.js.map +0 -1
  150. package/dist/chunk-LOVD3NCN.js.map +0 -1
  151. package/dist/chunk-LXUF7RNX.mjs.map +0 -1
  152. package/dist/chunk-RAII4DRI.mjs.map +0 -1
  153. package/dist/chunk-WM2YFSKT.mjs.map +0 -1
  154. package/dist/chunk-ZQA3VG53.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/entities/auction/MulticurvePool.ts"],"names":["getAddresses","zeroAddress","v4MulticurveInitializerAbi","computePoolId","v4MulticurveMigratorAbi","streamableFeesLockerAbi","DYNAMIC_FEE_FLAG","decayMulticurveInitializerHookAbi"],"mappings":"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","file":"chunk-HHHCRTC7.js","sourcesContent":["import {\n type Address,\n type PublicClient,\n type WalletClient,\n type Hash,\n type Hex,\n zeroAddress,\n} from 'viem';\nimport {\n LockablePoolStatus,\n type MulticurveDecayFeeSchedule,\n type MulticurvePoolState,\n type SupportedPublicClient,\n type V4PoolKey,\n} from '../../types';\nimport {\n decayMulticurveInitializerHookAbi,\n v4MulticurveInitializerAbi,\n v4MulticurveMigratorAbi,\n streamableFeesLockerAbi,\n} from '../../abis';\nimport { getAddresses } from '../../addresses';\nimport type { SupportedChainId } from '../../addresses';\nimport { DYNAMIC_FEE_FLAG } from '../../constants';\nimport { computePoolId } from '../../utils/poolKey';\n\n/** Result from finding which initializer contains the pool */\ninterface InitializerDiscoveryResult {\n initializerAddress: Address;\n state: MulticurvePoolState;\n}\n\n/**\n * MulticurvePool class for interacting with V4 multicurve pools\n *\n * Multicurve pools use the V4 multicurve initializer which supports:\n * - Multiple bonding curves with different price ranges\n * - Fee collection for configured beneficiaries\n * - No-migration lockable liquidity\n *\n * Note: V4 pools don't have their own contract addresses. The token address\n * is used as the lookup key to retrieve pool state from the initializer contract.\n *\n * Terminology: The contracts call the created token \"asset\" (paired against \"numeraire\", e.g., WETH).\n * We use \"tokenAddress\" in the SDK for consistency.\n */\nexport class MulticurvePool {\n private client: SupportedPublicClient;\n private walletClient?: WalletClient;\n private tokenAddress: Address;\n private get rpc(): PublicClient {\n return this.client as PublicClient;\n }\n\n constructor(\n client: SupportedPublicClient,\n walletClient: WalletClient | undefined,\n tokenAddress: Address,\n ) {\n this.client = client;\n this.walletClient = walletClient;\n this.tokenAddress = tokenAddress;\n }\n\n /**\n * Get the token address for this pool\n * This is also the lookup key used to retrieve pool state from the initializer\n * (Called \"asset\" in the contracts, but we use \"tokenAddress\" for SDK consistency)\n */\n getTokenAddress(): Address {\n return this.tokenAddress;\n }\n\n /**\n * Get current pool state from the multicurve initializer\n *\n * Automatically discovers which initializer (standard, scheduled, or decay) contains the pool.\n */\n async getState(): Promise<MulticurvePoolState> {\n const { state } = await this.findInitializerForPool();\n return state;\n }\n\n /**\n * Find which initializer contains this pool and return both the address and state.\n *\n * Tries v4MulticurveInitializer first (more common), then falls back to\n * v4ScheduledMulticurveInitializer and v4DecayMulticurveInitializer if needed.\n */\n private async findInitializerForPool(): Promise<InitializerDiscoveryResult> {\n const chainId = await this.rpc.getChainId();\n const addresses = getAddresses(chainId as SupportedChainId);\n\n // Build list of initializers to try, preferring non-scheduled (more common)\n const initializersToTry: Address[] = [\n addresses.v4MulticurveInitializer,\n addresses.v4ScheduledMulticurveInitializer,\n addresses.v4DecayMulticurveInitializer,\n ].filter(\n (addr): addr is Address => addr !== undefined && addr !== zeroAddress,\n );\n\n if (initializersToTry.length === 0) {\n throw new Error(\n 'No V4 multicurve initializer addresses configured for this chain',\n );\n }\n\n const triedInitializers: Address[] = [];\n\n for (const initializerAddress of initializersToTry) {\n triedInitializers.push(initializerAddress);\n\n const stateData = await this.rpc.readContract({\n address: initializerAddress,\n abi: v4MulticurveInitializerAbi,\n functionName: 'getState',\n args: [this.tokenAddress],\n });\n\n // Parse the returned tuple into a strongly typed PoolKey\n const [numeraire, status, rawPoolKey, farTick] = stateData as readonly [\n Address,\n number,\n {\n currency0: Address;\n currency1: Address;\n fee: number;\n tickSpacing: number;\n hooks: Address;\n } & readonly [Address, Address, number, number, Address],\n number,\n ];\n\n const poolKey = this.parsePoolKey(rawPoolKey);\n\n // Check if pool exists in this initializer\n // A non-existent pool will have zeroed hooks and tickSpacing\n if (poolKey.hooks !== zeroAddress && poolKey.tickSpacing !== 0) {\n const state: MulticurvePoolState = {\n asset: this.tokenAddress,\n numeraire,\n fee: poolKey.fee,\n tickSpacing: poolKey.tickSpacing,\n status,\n poolKey,\n farTick: Number(farTick),\n };\n return { initializerAddress, state };\n }\n }\n\n // Pool not found in any initializer\n throw new Error(\n `Pool not found for token ${this.tokenAddress}. ` +\n `Tried initializers: ${triedInitializers.join(', ')}`,\n );\n }\n\n /**\n * Collect fees from the pool and distribute to beneficiaries\n *\n * This function can be called by any beneficiary to trigger fee collection\n * and distribution. Fees are automatically distributed according to the\n * configured beneficiary shares.\n *\n * @returns Object containing the amounts of fees0 and fees1 distributed, and the transaction hash\n */\n async collectFees(): Promise<{\n fees0: bigint;\n fees1: bigint;\n transactionHash: Hash;\n }> {\n if (!this.walletClient) {\n throw new Error('Wallet client required to collect fees');\n }\n\n const chainId = await this.rpc.getChainId();\n const addresses = getAddresses(chainId as SupportedChainId);\n\n // Discover which initializer has this pool and get state in one call\n const { initializerAddress, state } = await this.findInitializerForPool();\n\n if (state.status === LockablePoolStatus.Locked) {\n const poolId = computePoolId(state.poolKey);\n return this.collectFeesFromContract(\n initializerAddress,\n v4MulticurveInitializerAbi,\n poolId,\n );\n }\n\n if (state.status === LockablePoolStatus.Exited) {\n if (!addresses.v4Migrator) {\n throw new Error(\n 'V4 multicurve migrator address not configured for this chain',\n );\n }\n\n const assetData = await this.rpc.readContract({\n address: addresses.v4Migrator,\n abi: v4MulticurveMigratorAbi,\n functionName: 'getAssetData',\n args: [state.poolKey.currency0, state.poolKey.currency1],\n });\n\n const migratorPoolKey = this.parsePoolKey(\n (assetData as any).poolKey ?? (assetData as any)[1],\n );\n const poolId = computePoolId(migratorPoolKey);\n\n const beneficiaries =\n (assetData as any).beneficiaries ?? (assetData as any)[4] ?? [];\n if (!Array.isArray(beneficiaries) || beneficiaries.length === 0) {\n throw new Error(\n 'Migrated multicurve pool has no beneficiaries configured',\n );\n }\n\n const lockerAddress = await this.resolveLockerAddress(\n addresses.v4Migrator,\n addresses.streamableFeesLocker,\n );\n\n const streamData = await this.rpc.readContract({\n address: lockerAddress,\n abi: streamableFeesLockerAbi,\n functionName: 'streams',\n args: [poolId],\n });\n\n const startDate = Number(\n (streamData as any).startDate ?? (streamData as any)[2] ?? 0,\n );\n if (startDate === 0) {\n throw new Error('Migrated multicurve stream not initialized');\n }\n\n return this.collectFeesFromContract(\n lockerAddress,\n streamableFeesLockerAbi,\n poolId,\n );\n }\n\n throw new Error('Multicurve pool is not locked or migrated');\n }\n\n /**\n * Get the numeraire address for this pool\n */\n async getNumeraireAddress(): Promise<Address> {\n const state = await this.getState();\n return state.numeraire;\n }\n\n /**\n * Get the decay fee schedule for dynamic-fee multicurve pools.\n *\n * Returns `null` when the pool is not using dynamic fees.\n */\n async getFeeSchedule(): Promise<MulticurveDecayFeeSchedule | null> {\n const { state } = await this.findInitializerForPool();\n if (state.poolKey.fee !== DYNAMIC_FEE_FLAG) {\n return null;\n }\n\n const poolId = computePoolId(state.poolKey);\n try {\n const scheduleData = await this.rpc.readContract({\n address: state.poolKey.hooks,\n abi: decayMulticurveInitializerHookAbi,\n functionName: 'getFeeScheduleOf',\n args: [poolId],\n });\n\n const scheduleStruct = scheduleData as any;\n return {\n startingTime: Number(\n scheduleStruct.startingTime ?? scheduleStruct[0] ?? 0,\n ),\n startFee: Number(scheduleStruct.startFee ?? scheduleStruct[1] ?? 0),\n endFee: Number(scheduleStruct.endFee ?? scheduleStruct[2] ?? 0),\n lastFee: Number(scheduleStruct.lastFee ?? scheduleStruct[3] ?? 0),\n durationSeconds: Number(\n scheduleStruct.durationSeconds ?? scheduleStruct[4] ?? 0,\n ),\n };\n } catch {\n throw new Error(\n `Dynamic multicurve hook at ${state.poolKey.hooks} does not expose getFeeScheduleOf(poolId)`,\n );\n }\n }\n\n private parsePoolKey(rawPoolKey: unknown): V4PoolKey {\n const poolKeyStruct = rawPoolKey as any;\n return {\n currency0: (poolKeyStruct.currency0 ?? poolKeyStruct[0]) as Address,\n currency1: (poolKeyStruct.currency1 ?? poolKeyStruct[1]) as Address,\n fee: Number(poolKeyStruct.fee ?? poolKeyStruct[2]),\n tickSpacing: Number(poolKeyStruct.tickSpacing ?? poolKeyStruct[3]),\n hooks: (poolKeyStruct.hooks ?? poolKeyStruct[4]) as Address,\n };\n }\n\n private async resolveLockerAddress(\n migratorAddress: Address,\n configuredLocker?: Address,\n ): Promise<Address> {\n if (configuredLocker) {\n return configuredLocker;\n }\n\n const lockerAddress = await this.rpc.readContract({\n address: migratorAddress,\n abi: v4MulticurveMigratorAbi,\n functionName: 'locker',\n args: [],\n });\n\n return lockerAddress as Address;\n }\n\n private async collectFeesFromContract(\n contractAddress: Address,\n abi: typeof v4MulticurveInitializerAbi | typeof streamableFeesLockerAbi,\n poolId: Hex,\n ): Promise<{ fees0: bigint; fees1: bigint; transactionHash: Hash }> {\n const { request, result } = await this.rpc.simulateContract({\n address: contractAddress,\n abi,\n functionName: 'collectFees',\n args: [poolId],\n account: this.walletClient!.account,\n });\n\n const hash = await this.walletClient!.writeContract(request);\n\n await this.rpc.waitForTransactionReceipt({ hash, confirmations: 1 });\n\n const [fees0, fees1] = result as readonly [bigint, bigint];\n\n return {\n fees0,\n fees1,\n transactionHash: hash,\n };\n }\n}\n"]}
@@ -22,6 +22,7 @@ var VALID_FEE_TIERS = [
22
22
  ];
23
23
  var V3_FEE_TIERS = VALID_FEE_TIERS;
24
24
  var V4_MAX_FEE = 1e5;
25
+ var DECAY_MAX_START_FEE = 8e5;
25
26
  var TICK_SPACINGS = {
26
27
  100: 1,
27
28
  500: 10,
@@ -90,6 +91,6 @@ var DYNAMIC_FEE_FLAG = 8388608;
90
91
  var FEE_AMOUNT_MASK = 16777215;
91
92
  var DYNAMIC_AUCTION_VALID_FEES = [100, 500, 3e3, 1e4];
92
93
 
93
- export { BASIS_POINTS, DAY_SECONDS, DEAD_ADDRESS, DEFAULT_AUCTION_DURATION, DEFAULT_CREATE_GAS_LIMIT, DEFAULT_EPOCH_LENGTH, DEFAULT_LOCK_DURATION, DEFAULT_MULTICURVE_LOWER_TICKS, DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES, DEFAULT_MULTICURVE_NUM_POSITIONS, DEFAULT_MULTICURVE_UPPER_TICKS, DEFAULT_PD_SLUGS, DEFAULT_V3_END_TICK, DEFAULT_V3_FEE, DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD, DEFAULT_V3_INITIAL_SUPPLY, DEFAULT_V3_INITIAL_VOTING_DELAY, DEFAULT_V3_INITIAL_VOTING_PERIOD, DEFAULT_V3_MAX_SHARE_TO_BE_SOLD, DEFAULT_V3_NUM_POSITIONS, DEFAULT_V3_NUM_TOKENS_TO_SELL, DEFAULT_V3_PRE_MINT, DEFAULT_V3_START_TICK, DEFAULT_V3_VESTING_DURATION, DEFAULT_V3_YEARLY_MINT_RATE, DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD, DEFAULT_V4_INITIAL_VOTING_DELAY, DEFAULT_V4_INITIAL_VOTING_PERIOD, DEFAULT_V4_YEARLY_MINT_RATE, DOPPLER_FLAGS, DOPPLER_MAX_TICK_SPACING, DYNAMIC_AUCTION_VALID_FEES, DYNAMIC_FEE_FLAG, FEE_AMOUNT_MASK, FEE_TIERS, FLAG_MASK, MAX_SQRT_RATIO, MIN_SQRT_RATIO, SECONDS_PER_DAY, SECONDS_PER_YEAR, TICK_SPACINGS, V3_FEE_TIERS, V4_MAX_FEE, VALID_FEE_TIERS, WAD, ZERO_ADDRESS };
94
- //# sourceMappingURL=chunk-LXUF7RNX.mjs.map
95
- //# sourceMappingURL=chunk-LXUF7RNX.mjs.map
94
+ export { BASIS_POINTS, DAY_SECONDS, DEAD_ADDRESS, DECAY_MAX_START_FEE, DEFAULT_AUCTION_DURATION, DEFAULT_CREATE_GAS_LIMIT, DEFAULT_EPOCH_LENGTH, DEFAULT_LOCK_DURATION, DEFAULT_MULTICURVE_LOWER_TICKS, DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES, DEFAULT_MULTICURVE_NUM_POSITIONS, DEFAULT_MULTICURVE_UPPER_TICKS, DEFAULT_PD_SLUGS, DEFAULT_V3_END_TICK, DEFAULT_V3_FEE, DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD, DEFAULT_V3_INITIAL_SUPPLY, DEFAULT_V3_INITIAL_VOTING_DELAY, DEFAULT_V3_INITIAL_VOTING_PERIOD, DEFAULT_V3_MAX_SHARE_TO_BE_SOLD, DEFAULT_V3_NUM_POSITIONS, DEFAULT_V3_NUM_TOKENS_TO_SELL, DEFAULT_V3_PRE_MINT, DEFAULT_V3_START_TICK, DEFAULT_V3_VESTING_DURATION, DEFAULT_V3_YEARLY_MINT_RATE, DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD, DEFAULT_V4_INITIAL_VOTING_DELAY, DEFAULT_V4_INITIAL_VOTING_PERIOD, DEFAULT_V4_YEARLY_MINT_RATE, DOPPLER_FLAGS, DOPPLER_MAX_TICK_SPACING, DYNAMIC_AUCTION_VALID_FEES, DYNAMIC_FEE_FLAG, FEE_AMOUNT_MASK, FEE_TIERS, FLAG_MASK, MAX_SQRT_RATIO, MIN_SQRT_RATIO, SECONDS_PER_DAY, SECONDS_PER_YEAR, TICK_SPACINGS, V3_FEE_TIERS, V4_MAX_FEE, VALID_FEE_TIERS, WAD, ZERO_ADDRESS };
95
+ //# sourceMappingURL=chunk-IWJOPXYN.mjs.map
96
+ //# sourceMappingURL=chunk-IWJOPXYN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":";;;AAGO,IAAM,MAAM,GAAA,IAAO;AACnB,IAAM,YAAA,GACX;AACK,IAAM,YAAA,GACX;AAaK,IAAM,SAAA,GAAY;AAAA,EACvB,MAAA,EAAQ,GAAA;AAAA;AAAA,EACR,GAAA,EAAK,GAAA;AAAA;AAAA,EACL,MAAA,EAAQ,GAAA;AAAA;AAAA,EACR,IAAA,EAAM;AAAA;AACR;AASO,IAAM,eAAA,GAAsC;AAAA,EACjD,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAM;AAClB;AAMO,IAAM,YAAA,GAAe;AAOrB,IAAM,UAAA,GAAa;AAOnB,IAAM,mBAAA,GAAsB;AAI5B,IAAM,aAAA,GAAgB;AAAA,EAC3B,GAAA,EAAK,CAAA;AAAA,EACL,GAAA,EAAK,EAAA;AAAA,EACL,GAAA,EAAM,EAAA;AAAA,EACN,GAAA,EAAO;AACT;AAMO,IAAM,wBAAA,GAA2B;AAGjC,IAAM,eAAA,GAAkB;AACxB,IAAM,mBAAmB,GAAA,GAAM;AAG/B,IAAM,oBAAA,GAAuB;AAC7B,IAAM,2BAA2B,CAAA,GAAI;AACrC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,gBAAA,GAAmB;AACzB,IAAM,WAAA,GAAc;AAGpB,IAAM,wBAAA,GAA2B;AAGjC,IAAM,qBAAA,GAAwB;AAC9B,IAAM,mBAAA,GAAsB;AAC5B,IAAM,wBAAA,GAA2B;AACjC,IAAM,cAAA,GAAiB;AACvB,IAAM,+BAAA,GAAkC;AACxC,IAAM,gCAAA,GAAmC;AACzC,IAAM,qCAAA,GAAwC;AAC9C,IAAM,2BAAA,GAA8B,OAAO,gBAAgB;AAC3D,IAAM,yBAAA,GAA4B,WAAW,YAAY;AACzD,IAAM,6BAAA,GAAgC,WAAW,WAAW;AAC5D,IAAM,2BAAA,GAA8B,WAAW,MAAM;AACrD,IAAM,mBAAA,GAAsB,WAAW,SAAS;AAChD,IAAM,+BAAA,GAAkC,WAAW,MAAM;AAGzD,IAAM,+BAAA,GAAkC;AACxC,IAAM,gCAAA,GAAmC;AACzC,IAAM,qCAAA,GAAwC;AAC9C,IAAM,2BAAA,GAA8B,WAAW,MAAM;AAKrD,IAAM,8BAAA,GAAiC;AAAA,EAC5C,OAAA;AAAA,EAAU,OAAA;AAAA,EAAU;AACtB;AACO,IAAM,8BAAA,GAAiC;AAAA,EAC5C,OAAA;AAAA,EAAU,OAAA;AAAA,EAAU;AACtB;AACO,IAAM,gCAAA,GAAmC,CAAC,EAAA,EAAI,EAAA,EAAI,EAAE;AACpD,IAAM,oCAAA,GAAuC;AAAA,EAClD,WAAW,MAAM,CAAA;AAAA;AAAA,EACjB,WAAW,OAAO,CAAA;AAAA;AAAA,EAClB,WAAW,KAAK;AAAA;AAClB;AAGO,IAAM,cAAA,GAAiB;AACvB,IAAM,cAAA,GACX;AAGK,IAAM,YAAA,GAAe;AAGrB,IAAM,SAAA,GAAY,OAAO,KAAM;AAC/B,IAAM,aAAA,GAAgB,MAAA;AAAA,EAC1B,CAAA,IAAK,EAAA;AAAA,EACH,CAAA,IAAK,EAAA;AAAA,EACL,CAAA,IAAK,EAAA;AAAA,EACL,CAAA,IAAK,CAAA;AAAA,EACL,CAAA,IAAK,CAAA;AAAA,EACL,CAAA,IAAK;AAAA;AACV;AAGO,IAAM,gBAAA,GAAmB;AACzB,IAAM,eAAA,GAAkB;AAOxB,IAAM,0BAAA,GAA6B,CAAC,GAAA,EAAK,GAAA,EAAK,KAAM,GAAK","file":"chunk-IWJOPXYN.mjs","sourcesContent":["import { Address, parseEther } from 'viem';\n\n// Common constants\nexport const WAD = 10n ** 18n;\nexport const DEAD_ADDRESS =\n '0x000000000000000000000000000000000000dEaD' as Address;\nexport const ZERO_ADDRESS =\n '0x0000000000000000000000000000000000000000' as Address;\n\n// =============================================================================\n// Fee Tiers - V3 vs V4 Distinction\n// =============================================================================\n//\n// Uniswap V3 (Static Auctions): Fees are COUPLED to tick spacings. Only 4 tiers allowed.\n// Uniswap V4 (Dynamic/Multicurve): Fees are DECOUPLED. Any fee 0-100,000 is valid.\n//\n// The standard fee tiers below are recognized by both V3 and V4, but V4 pools\n// can use ANY fee value as long as you provide an explicit tickSpacing.\n\n/** Standard fee tiers recognized by both Uniswap V3 and V4 */\nexport const FEE_TIERS = {\n LOWEST: 100, // 0.01%\n LOW: 500, // 0.05%\n MEDIUM: 3000, // 0.30%\n HIGH: 10000, // 1.00%\n} as const;\n\n/** Valid fee tier values (100, 500, 3000, 10000) */\nexport type FeeTier = (typeof FEE_TIERS)[keyof typeof FEE_TIERS];\n\n/**\n * Standard fee tiers - REQUIRED for V3 (Static Auctions).\n * V4 pools can use custom fees but these are the recommended defaults.\n */\nexport const VALID_FEE_TIERS: readonly FeeTier[] = [\n 100, 500, 3000, 10000,\n] as const;\n\n/**\n * V3 fee tiers - These are the ONLY valid fees for Uniswap V3 pools.\n * Static Auctions use V3 and must use one of these tiers.\n */\nexport const V3_FEE_TIERS = VALID_FEE_TIERS;\n\n/**\n * Maximum LP fee for V4 pools (from DopplerHookInitializer.sol).\n * V4 pools can use any fee from 0 to this value.\n * @see DopplerHookInitializer.sol line 171: `uint24 constant MAX_LP_FEE = 100_000`\n */\nexport const V4_MAX_FEE = 100_000; // 10%\n\n/**\n * Maximum allowed start fee for decay multicurve schedules.\n * This is intentionally higher than V4_MAX_FEE to support anti-sniping launches.\n * 800_000 = 80%\n */\nexport const DECAY_MAX_START_FEE = 800_000; // 80%\n\n// Tick spacings for different fee tiers (standard Uniswap V3 mapping)\n// In V4, tickSpacing is independent of fee - you can use any combination\nexport const TICK_SPACINGS = {\n 100: 1,\n 500: 10,\n 3000: 60,\n 10000: 200,\n} as const;\n\n/**\n * Maximum tick spacing allowed by Doppler.sol for dynamic (Dutch) auctions.\n * @see Doppler.sol line 159: `int24 constant MAX_TICK_SPACING = 30`\n */\nexport const DOPPLER_MAX_TICK_SPACING = 30;\n\n// Time constants\nexport const SECONDS_PER_DAY = 86400;\nexport const SECONDS_PER_YEAR = 365 * SECONDS_PER_DAY;\n\n// Default values\nexport const DEFAULT_EPOCH_LENGTH = 43200; // 12 hours in seconds (matching V4 SDK)\nexport const DEFAULT_AUCTION_DURATION = 7 * SECONDS_PER_DAY; // 7 days\nexport const DEFAULT_LOCK_DURATION = SECONDS_PER_YEAR; // 1 year\nexport const DEFAULT_PD_SLUGS = 5; // Default price discovery slugs\nexport const DAY_SECONDS = SECONDS_PER_DAY; // Alias for consistency\n\n// Default gas limit to fall back on when create() simulations do not return a value\nexport const DEFAULT_CREATE_GAS_LIMIT = 13_500_000n;\n\n// V3 Default parameters\nexport const DEFAULT_V3_START_TICK = 175000;\nexport const DEFAULT_V3_END_TICK = 225000;\nexport const DEFAULT_V3_NUM_POSITIONS = 15;\nexport const DEFAULT_V3_FEE = 10000; // 1% fee tier\nexport const DEFAULT_V3_INITIAL_VOTING_DELAY = 172800; // 2 days\nexport const DEFAULT_V3_INITIAL_VOTING_PERIOD = 1209600; // 14 days\nexport const DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD = 0n;\nexport const DEFAULT_V3_VESTING_DURATION = BigInt(SECONDS_PER_YEAR);\nexport const DEFAULT_V3_INITIAL_SUPPLY = parseEther('1000000000'); // 1 billion tokens\nexport const DEFAULT_V3_NUM_TOKENS_TO_SELL = parseEther('900000000'); // 900 million tokens\nexport const DEFAULT_V3_YEARLY_MINT_RATE = parseEther('0.02'); // 2% yearly mint rate\nexport const DEFAULT_V3_PRE_MINT = parseEther('9000000'); // 9 million tokens (0.9%)\nexport const DEFAULT_V3_MAX_SHARE_TO_BE_SOLD = parseEther('0.35'); // 35%\n\n// V4 Default parameters\nexport const DEFAULT_V4_INITIAL_VOTING_DELAY = 7200; // 2 hours\nexport const DEFAULT_V4_INITIAL_VOTING_PERIOD = 50400; // 14 hours\nexport const DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD = 0n;\nexport const DEFAULT_V4_YEARLY_MINT_RATE = parseEther('0.02'); // 2% yearly mint rate\n\n// V4 Multicurve Default Tick Ranges\n// Based on market cap tiers: LOW ($7.5k -> $30k), MEDIUM ($50k -> $150k), HIGH ($250k -> $750k)\n// Calculated for 1B token supply, $4500 numeraire (e.g., WETH on Base)\nexport const DEFAULT_MULTICURVE_LOWER_TICKS = [\n -202_100, -183_100, -167_000,\n] as const;\nexport const DEFAULT_MULTICURVE_UPPER_TICKS = [\n -188_200, -172_100, -156_000,\n] as const;\nexport const DEFAULT_MULTICURVE_NUM_POSITIONS = [11, 11, 11] as const;\nexport const DEFAULT_MULTICURVE_MAX_SUPPLY_SHARES = [\n parseEther('0.05'), // 5% for LOW tier\n parseEther('0.125'), // 12.5% for MEDIUM tier\n parseEther('0.2'), // 20% for HIGH tier\n] as const;\n\n// Price bounds\nexport const MIN_SQRT_RATIO = 4295128739n;\nexport const MAX_SQRT_RATIO =\n 1461446703485210103287273052203988822378723970342n;\n\n// Basis points\nexport const BASIS_POINTS = 10000;\n\n// V4 Hook Flags for Doppler\nexport const FLAG_MASK = BigInt(0x3fff);\nexport const DOPPLER_FLAGS = BigInt(\n (1 << 13) | // BEFORE_INITIALIZE_FLAG\n (1 << 12) | // AFTER_INITIALIZE_FLAG\n (1 << 11) | // BEFORE_ADD_LIQUIDITY_FLAG\n (1 << 7) | // BEFORE_SWAP_FLAG\n (1 << 6) | // AFTER_SWAP_FLAG\n (1 << 5), // BEFORE_DONATE_FLAG\n);\n\n// V4 Dynamic Fee Flag\nexport const DYNAMIC_FEE_FLAG = 0x800000; // 8388608 in decimal\nexport const FEE_AMOUNT_MASK = 0xffffff; // Mask to extract actual fee from dynamic fee\n\n/**\n * @deprecated Dynamic auctions (V4) support ANY fee 0-100,000 with explicit tickSpacing.\n * This constant is kept for backwards compatibility but is no longer enforced.\n * Standard fee tiers still auto-derive tickSpacing; custom fees require explicit tickSpacing.\n */\nexport const DYNAMIC_AUCTION_VALID_FEES = [100, 500, 3000, 10000] as const;\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunk2UUVAFXS_js = require('./chunk-2UUVAFXS.js');
4
- var chunkLOVD3NCN_js = require('./chunk-LOVD3NCN.js');
3
+ var chunkJHPDKSC4_js = require('./chunk-JHPDKSC4.js');
4
+ var chunk3MVW6UIW_js = require('./chunk-3MVW6UIW.js');
5
5
  var viem = require('viem');
6
6
 
7
7
  var Quoter = class {
@@ -18,11 +18,11 @@ var Quoter = class {
18
18
  * @returns Quote result including output amount and price impact
19
19
  */
20
20
  async quoteExactInputV3(params) {
21
- const addresses = chunk2UUVAFXS_js.getAddresses(this.chainId);
21
+ const addresses = chunkJHPDKSC4_js.getAddresses(this.chainId);
22
22
  try {
23
23
  const { result } = await this.rpc.simulateContract({
24
24
  address: addresses.v3Quoter,
25
- abi: chunkLOVD3NCN_js.quoterV2Abi,
25
+ abi: chunk3MVW6UIW_js.quoterV2Abi,
26
26
  functionName: "quoteExactInputSingle",
27
27
  args: [
28
28
  {
@@ -66,11 +66,11 @@ var Quoter = class {
66
66
  * @returns Quote result including required input amount
67
67
  */
68
68
  async quoteExactOutputV3(params) {
69
- const addresses = chunk2UUVAFXS_js.getAddresses(this.chainId);
69
+ const addresses = chunkJHPDKSC4_js.getAddresses(this.chainId);
70
70
  try {
71
71
  const { result } = await this.rpc.simulateContract({
72
72
  address: addresses.v3Quoter,
73
- abi: chunkLOVD3NCN_js.quoterV2Abi,
73
+ abi: chunk3MVW6UIW_js.quoterV2Abi,
74
74
  functionName: "quoteExactOutputSingle",
75
75
  args: [
76
76
  {
@@ -114,13 +114,13 @@ var Quoter = class {
114
114
  * @returns Array of amounts for each step in the path
115
115
  */
116
116
  async quoteExactInputV2(params) {
117
- const addresses = chunk2UUVAFXS_js.getAddresses(this.chainId);
117
+ const addresses = chunkJHPDKSC4_js.getAddresses(this.chainId);
118
118
  if (!addresses.univ2Router02) {
119
119
  throw new Error("Uniswap V2 Router not available on this chain");
120
120
  }
121
121
  const result = await this.rpc.readContract({
122
122
  address: addresses.univ2Router02,
123
- abi: chunkLOVD3NCN_js.uniswapV2Router02Abi,
123
+ abi: chunk3MVW6UIW_js.uniswapV2Router02Abi,
124
124
  functionName: "getAmountsOut",
125
125
  args: [params.amountIn, params.path]
126
126
  });
@@ -132,13 +132,13 @@ var Quoter = class {
132
132
  * @returns Array of amounts for each step in the path
133
133
  */
134
134
  async quoteExactOutputV2(params) {
135
- const addresses = chunk2UUVAFXS_js.getAddresses(this.chainId);
135
+ const addresses = chunkJHPDKSC4_js.getAddresses(this.chainId);
136
136
  if (!addresses.univ2Router02) {
137
137
  throw new Error("Uniswap V2 Router not available on this chain");
138
138
  }
139
139
  const result = await this.rpc.readContract({
140
140
  address: addresses.univ2Router02,
141
- abi: chunkLOVD3NCN_js.uniswapV2Router02Abi,
141
+ abi: chunk3MVW6UIW_js.uniswapV2Router02Abi,
142
142
  functionName: "getAmountsIn",
143
143
  args: [params.amountOut, params.path]
144
144
  });
@@ -150,14 +150,14 @@ var Quoter = class {
150
150
  * @returns Quote result for V4 pools
151
151
  */
152
152
  async quoteExactInputV4(params) {
153
- const addresses = chunk2UUVAFXS_js.getAddresses(this.chainId);
153
+ const addresses = chunkJHPDKSC4_js.getAddresses(this.chainId);
154
154
  const quoterAddress = addresses.uniswapV4Quoter;
155
155
  if (!quoterAddress) {
156
156
  throw new Error("No V4 quoter available on this chain");
157
157
  }
158
158
  const { result } = await this.rpc.simulateContract({
159
159
  address: quoterAddress,
160
- abi: chunkLOVD3NCN_js.v4QuoterAbi,
160
+ abi: chunk3MVW6UIW_js.v4QuoterAbi,
161
161
  functionName: "quoteExactInputSingle",
162
162
  args: [
163
163
  {
@@ -179,14 +179,14 @@ var Quoter = class {
179
179
  * @returns Quote result for V4 pools
180
180
  */
181
181
  async quoteExactOutputV4(params) {
182
- const addresses = chunk2UUVAFXS_js.getAddresses(this.chainId);
182
+ const addresses = chunkJHPDKSC4_js.getAddresses(this.chainId);
183
183
  const quoterAddress = addresses.dopplerLens;
184
184
  if (!quoterAddress) {
185
185
  throw new Error("No V4 quoter available on this chain");
186
186
  }
187
187
  const { result } = await this.rpc.simulateContract({
188
188
  address: quoterAddress,
189
- abi: chunkLOVD3NCN_js.v4QuoterAbi,
189
+ abi: chunk3MVW6UIW_js.v4QuoterAbi,
190
190
  functionName: "quoteExactOutputSingle",
191
191
  args: [
192
192
  {
@@ -207,14 +207,14 @@ var Quoter = class {
207
207
  * @param params Parameters for the quote
208
208
  */
209
209
  async quoteExactInputV4Quoter(params) {
210
- const addresses = chunk2UUVAFXS_js.getAddresses(this.chainId);
210
+ const addresses = chunkJHPDKSC4_js.getAddresses(this.chainId);
211
211
  const quoterAddress = addresses.uniswapV4Quoter;
212
212
  if (!quoterAddress) {
213
213
  throw new Error("Uniswap V4 Quoter address not available on this chain");
214
214
  }
215
215
  const { result } = await this.rpc.simulateContract({
216
216
  address: quoterAddress,
217
- abi: chunkLOVD3NCN_js.v4QuoterAbi,
217
+ abi: chunk3MVW6UIW_js.v4QuoterAbi,
218
218
  functionName: "quoteExactInputSingle",
219
219
  args: [
220
220
  {
@@ -235,14 +235,14 @@ var Quoter = class {
235
235
  * @param params Parameters for the quote
236
236
  */
237
237
  async quoteExactOutputV4Quoter(params) {
238
- const addresses = chunk2UUVAFXS_js.getAddresses(this.chainId);
238
+ const addresses = chunkJHPDKSC4_js.getAddresses(this.chainId);
239
239
  const quoterAddress = addresses.uniswapV4Quoter;
240
240
  if (!quoterAddress) {
241
241
  throw new Error("Uniswap V4 Quoter address not available on this chain");
242
242
  }
243
243
  const { result } = await this.rpc.simulateContract({
244
244
  address: quoterAddress,
245
- abi: chunkLOVD3NCN_js.v4QuoterAbi,
245
+ abi: chunk3MVW6UIW_js.v4QuoterAbi,
246
246
  functionName: "quoteExactOutputSingle",
247
247
  args: [
248
248
  {
@@ -261,5 +261,5 @@ var Quoter = class {
261
261
  };
262
262
 
263
263
  exports.Quoter = Quoter;
264
- //# sourceMappingURL=chunk-4BPFHO6W.js.map
265
- //# sourceMappingURL=chunk-4BPFHO6W.js.map
264
+ //# sourceMappingURL=chunk-J2E2GILK.js.map
265
+ //# sourceMappingURL=chunk-J2E2GILK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/entities/quoter/Quoter.ts"],"names":["getAddresses","quoterV2Abi","decodeAbiParameters","uniswapV2Router02Abi","v4QuoterAbi"],"mappings":"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","file":"chunk-4BPFHO6W.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 // Use v4Quoter if available, otherwise use dopplerLens (they're the same contract)\n const quoterAddress = addresses.dopplerLens;\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: '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-J2E2GILK.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 // Use v4Quoter if available, otherwise use dopplerLens (they're the same contract)\n const quoterAddress = addresses.dopplerLens;\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: '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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkJXNAHW6C_js = require('./chunk-JXNAHW6C.js');
3
+ var chunkRLUMYHPI_js = require('./chunk-RLUMYHPI.js');
4
4
 
5
5
  // src/addresses.ts
6
6
  var CHAIN_IDS = {
@@ -36,56 +36,62 @@ var ADDRESSES = {
36
36
  uniswapV4Quoter: "0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203"
37
37
  },
38
38
  [CHAIN_IDS.BASE]: {
39
- airlock: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Airlock,
40
- tokenFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].TokenFactory80,
41
- v3Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV3Initializer,
39
+ airlock: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Airlock,
40
+ tokenFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].TokenFactory80,
41
+ v3Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV3Initializer,
42
42
  v3Quoter: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",
43
- lockableV3Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].LockableUniswapV3Initializer,
44
- v4Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Initializer,
45
- v4MulticurveInitializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4MulticurveInitializer,
43
+ lockableV3Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].LockableUniswapV3Initializer,
44
+ v4Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Initializer,
45
+ v4MulticurveInitializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4MulticurveInitializer,
46
46
  // From Doppler multicurve deployments (Base mainnet)
47
- v4ScheduledMulticurveInitializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4ScheduledMulticurveInitializer,
47
+ v4ScheduledMulticurveInitializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4ScheduledMulticurveInitializer,
48
48
  // From Doppler scheduled multicurve deployments (Base mainnet)
49
- dopplerLens: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerLensQuoter,
50
- dopplerDeployer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerDeployer,
49
+ v4DecayMulticurveInitializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DecayMulticurveInitializer,
50
+ // From Doppler decay multicurve deployments (Base mainnet)
51
+ dopplerLens: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerLensQuoter,
52
+ dopplerDeployer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerDeployer,
51
53
  poolManager: "0x498581ff718922c3f8e6a244956af099b2652b2b",
52
- v2Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV2Migrator,
53
- v4Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Migrator,
54
- noOpMigrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].NoOpMigrator,
54
+ rehypeDopplerHook: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].RehypeDopplerHook,
55
+ dopplerHookInitializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerHookInitializer,
56
+ v2Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV2Migrator,
57
+ v4Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].UniswapV4Migrator,
58
+ noOpMigrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].NoOpMigrator,
55
59
  governanceFactory: "0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9",
56
60
  noOpGovernanceFactory: "0xe7dfbd5b0a2c3b4464653a9becdc489229ef090e",
57
- launchpadGovernanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].LaunchpadGovernanceFactory,
58
- streamableFeesLocker: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].StreamableFeesLocker,
61
+ launchpadGovernanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].LaunchpadGovernanceFactory,
62
+ streamableFeesLocker: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].StreamableFeesLocker,
59
63
  universalRouter: "0x6ff5693b99212da76ad316178a184ab56d299b43",
60
64
  univ2Router02: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
61
65
  permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
62
- bundler: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Bundler,
66
+ bundler: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Bundler,
63
67
  weth: "0x4200000000000000000000000000000000000006",
64
68
  uniswapV4Quoter: "0x0d5e0f971ed27fbff6c2837bf31316121532048d"
65
69
  },
66
70
  [CHAIN_IDS.BASE_SEPOLIA]: {
67
- airlock: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].Airlock,
68
- tokenFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].TokenFactory80,
71
+ airlock: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].Airlock,
72
+ tokenFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].TokenFactory80,
69
73
  doppler404Factory: "0xdd8cea2890f1b3498436f19ec8da8fecc2cb7af7",
70
- v3Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV3Initializer,
74
+ v3Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV3Initializer,
71
75
  v3Quoter: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27",
72
- lockableV3Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].LockableUniswapV3Initializer,
73
- v4Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4Initializer,
74
- v4MulticurveInitializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4MulticurveInitializer,
75
- v4ScheduledMulticurveInitializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4ScheduledMulticurveInitializer,
76
+ lockableV3Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].LockableUniswapV3Initializer,
77
+ v4Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4Initializer,
78
+ v4MulticurveInitializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4MulticurveInitializer,
79
+ v4ScheduledMulticurveInitializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4ScheduledMulticurveInitializer,
76
80
  // From Doppler scheduled multicurve deployments (Base Sepolia)
81
+ v4DecayMulticurveInitializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DecayMulticurveInitializer,
82
+ // From Doppler decay multicurve deployments (Base Sepolia)
77
83
  dopplerHookInitializer: "0x98CD6478DeBe443069dB863Abb9626d94de9A544",
78
84
  rehypeDopplerHook: "0x636a756cee08775cc18780f52dd90b634f18ad37",
79
- dopplerLens: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DopplerLensQuoter,
80
- dopplerDeployer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DopplerDeployer,
85
+ dopplerLens: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DopplerLensQuoter,
86
+ dopplerDeployer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DopplerDeployer,
81
87
  poolManager: "0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408",
82
- v2Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV2Migrator,
83
- v4Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4Migrator,
84
- v4MigratorHook: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4MigratorHook,
85
- noOpMigrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].NoOpMigrator,
86
- governanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].GovernanceFactory,
88
+ v2Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV2Migrator,
89
+ v4Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4Migrator,
90
+ v4MigratorHook: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].UniswapV4MigratorHook,
91
+ noOpMigrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].NoOpMigrator,
92
+ governanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].GovernanceFactory,
87
93
  noOpGovernanceFactory: "0x916b8987e4ad325c10d58ed8dc2036a6ff5eb228",
88
- streamableFeesLocker: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].StreamableFeesLocker,
94
+ streamableFeesLocker: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].StreamableFeesLocker,
89
95
  universalRouter: "0x492E6456D9528771018DeB9E87ef7750EF184104",
90
96
  univ2Router02: "0x1689E7B1F10000AE47eBfE339a4f69dECd19F602",
91
97
  permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
@@ -95,16 +101,16 @@ var ADDRESSES = {
95
101
  },
96
102
  [CHAIN_IDS.INK]: {
97
103
  airlock: "0x014E1c0bd34f3B10546E554CB33B3293fECDD056",
98
- tokenFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].TokenFactory,
99
- v3Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV3Initializer,
104
+ tokenFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].TokenFactory,
105
+ v3Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV3Initializer,
100
106
  v3Quoter: "0x96b572D2d880cf2Fa2563651BD23ADE6f5516652",
101
107
  v4Initializer: "0xC99b485499f78995C6F1640dbB1413c57f8BA684",
102
108
  dopplerLens: "0x3972c00f7ed4885e145823eb7c655375d275a1c5",
103
- dopplerDeployer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].DopplerDeployer,
109
+ dopplerDeployer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].DopplerDeployer,
104
110
  poolManager: "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
105
- v2Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV2Migrator,
111
+ v2Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].UniswapV2Migrator,
106
112
  v4Migrator: ZERO_ADDRESS,
107
- governanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].GovernanceFactory,
113
+ governanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].GovernanceFactory,
108
114
  noOpGovernanceFactory: ZERO_ADDRESS,
109
115
  // Not yet deployed
110
116
  streamableFeesLocker: ZERO_ADDRESS,
@@ -112,36 +118,36 @@ var ADDRESSES = {
112
118
  universalRouter: "0x112908dac86e20e7241b0927479ea3bf935d1fa0",
113
119
  univ2Router02: "0xB3FB126ACDd5AdCA2f50Ac644a7a2303745f18b4",
114
120
  permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
115
- bundler: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].Bundler,
121
+ bundler: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.INK].Bundler,
116
122
  weth: "0x4200000000000000000000000000000000000006",
117
123
  uniswapV4Quoter: "0x3972c00f7ed4885e145823eb7c655375d275a1c5"
118
124
  },
119
125
  [CHAIN_IDS.UNICHAIN]: {
120
- airlock: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].Airlock,
121
- tokenFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].TokenFactory,
122
- v3Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV3Initializer,
126
+ airlock: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].Airlock,
127
+ tokenFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].TokenFactory,
128
+ v3Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV3Initializer,
123
129
  v3Quoter: "0x385A5cf5F83e99f7BB2852b6A19C3538b9FA7658",
124
130
  v4Initializer: "0x2F2BAcd46d3F5c9EE052Ab392b73711dB89129DB",
125
131
  dopplerLens: "0x333e3c607b141b18ff6de9f258db6e77fe7491e0",
126
132
  dopplerDeployer: "0x06FEFD02F0b6d9f57F52cfacFc113665Dfa20F0f",
127
133
  poolManager: "0x1f98400000000000000000000000000000000004",
128
- v2Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV2Migrator,
129
- v4Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV4Migrator,
130
- noOpMigrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].NoOpMigrator,
131
- governanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].GovernanceFactory,
132
- noOpGovernanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].NoOpGovernanceFactory,
134
+ v2Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV2Migrator,
135
+ v4Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].UniswapV4Migrator,
136
+ noOpMigrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].NoOpMigrator,
137
+ governanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].GovernanceFactory,
138
+ noOpGovernanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].NoOpGovernanceFactory,
133
139
  streamableFeesLocker: ZERO_ADDRESS,
134
140
  // Not yet deployed
135
141
  universalRouter: "0xef740bf23acae26f6492b10de645d6b98dc8eaf3",
136
142
  univ2Router02: "0x284f11109359a7e1306c3e447ef14d38400063ff",
137
143
  permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
138
- bundler: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].Bundler,
144
+ bundler: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN].Bundler,
139
145
  weth: "0x4200000000000000000000000000000000000006",
140
146
  uniswapV4Quoter: "0x333e3c607b141b18ff6de9f258db6e77fe7491e0"
141
147
  },
142
148
  [CHAIN_IDS.UNICHAIN_SEPOLIA]: {
143
149
  airlock: "0x651ab94B4777e2e4cdf96082d90C65bd947b73A4",
144
- tokenFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].TokenFactory,
150
+ tokenFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].TokenFactory,
145
151
  v3Initializer: "0x7Fb9a622186B4660A5988C223ebb9d3690dD5007",
146
152
  v3Quoter: "0x6Dd37329A1A225a6Fca658265D460423DCafBF89",
147
153
  v4Initializer: "0x992375478626E67F4e639d3298EbCAaE51C3dF0b",
@@ -150,9 +156,9 @@ var ADDRESSES = {
150
156
  poolManager: "0x00B036B58a818B1BC34d502D3fE730Db729e62AC",
151
157
  v2Migrator: "0x44C448E38A2C3D206c9132E7f645510dFbBC946b",
152
158
  v4Migrator: "0x44C448E38A2C3D206c9132E7f645510dFbBC946b",
153
- noOpMigrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].NoOpMigrator,
159
+ noOpMigrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].NoOpMigrator,
154
160
  governanceFactory: "0x1E4332EEfAE9e4967C2D186f7b2d439D778e81cC",
155
- noOpGovernanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].NoOpGovernanceFactory,
161
+ noOpGovernanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.UNICHAIN_SEPOLIA].NoOpGovernanceFactory,
156
162
  streamableFeesLocker: ZERO_ADDRESS,
157
163
  // Not yet deployed
158
164
  universalRouter: "0xf70536B3bcC1bD1a972dc186A2cf84cC6da6Be5D",
@@ -163,53 +169,53 @@ var ADDRESSES = {
163
169
  uniswapV4Quoter: "0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472"
164
170
  },
165
171
  [CHAIN_IDS.MONAD_TESTNET]: {
166
- airlock: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].Airlock,
167
- tokenFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].TokenFactory80,
168
- v3Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV3Initializer,
172
+ airlock: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].Airlock,
173
+ tokenFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].TokenFactory80,
174
+ v3Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV3Initializer,
169
175
  v3Quoter: ZERO_ADDRESS,
170
- v4Initializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV4Initializer,
171
- dopplerLens: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].DopplerLensQuoter,
172
- dopplerDeployer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].DopplerDeployer,
176
+ v4Initializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV4Initializer,
177
+ dopplerLens: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].DopplerLensQuoter,
178
+ dopplerDeployer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].DopplerDeployer,
173
179
  poolManager: "0xe93882f395B0b24180855c68Ab19B2d78573ceBc",
174
- v2Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV2Migrator,
180
+ v2Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].UniswapV2Migrator,
175
181
  v4Migrator: "0xBEd386a1Fc62B6598c9b8d2BF634471B6Fe75EB7",
176
- noOpMigrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].NoOpMigrator,
177
- governanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].GovernanceFactory,
178
- noOpGovernanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].NoOpGovernanceFactory,
182
+ noOpMigrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].NoOpMigrator,
183
+ governanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].GovernanceFactory,
184
+ noOpGovernanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].NoOpGovernanceFactory,
179
185
  streamableFeesLocker: "0x91231cDdD8d6C86Df602070a3081478e074b97b7",
180
186
  // Not yet deployed
181
187
  universalRouter: ZERO_ADDRESS,
182
188
  univ2Router02: ZERO_ADDRESS,
183
189
  permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
184
- bundler: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].Bundler,
190
+ bundler: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_TESTNET].Bundler,
185
191
  weth: ZERO_ADDRESS,
186
192
  // TODO: Get Monad Testnet weth
187
193
  uniswapV4Quoter: ZERO_ADDRESS
188
194
  },
189
195
  [CHAIN_IDS.MONAD_MAINNET]: {
190
- airlock: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Airlock,
191
- tokenFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].TokenFactory80,
196
+ airlock: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Airlock,
197
+ tokenFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].TokenFactory80,
192
198
  v3Initializer: ZERO_ADDRESS,
193
199
  v3Quoter: "0x66266174564170519409d8853898f065c719536b",
194
200
  v4Initializer: ZERO_ADDRESS,
195
201
  dopplerLens: ZERO_ADDRESS,
196
202
  dopplerDeployer: ZERO_ADDRESS,
197
203
  poolManager: "0x188d586ddcf52439676ca21a244753fa19f9ea8e",
198
- v2Migrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV2Migrator,
204
+ v2Migrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV2Migrator,
199
205
  v4Migrator: ZERO_ADDRESS,
200
- noOpMigrator: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpMigrator,
201
- governanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].GovernanceFactory,
202
- noOpGovernanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpGovernanceFactory,
203
- launchpadGovernanceFactory: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].LaunchpadGovernanceFactory,
204
- v4ScheduledMulticurveInitializer: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV4ScheduledMulticurveInitializer,
206
+ noOpMigrator: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpMigrator,
207
+ governanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].GovernanceFactory,
208
+ noOpGovernanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpGovernanceFactory,
209
+ launchpadGovernanceFactory: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].LaunchpadGovernanceFactory,
210
+ v4ScheduledMulticurveInitializer: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].UniswapV4ScheduledMulticurveInitializer,
205
211
  streamableFeesLocker: ZERO_ADDRESS,
206
212
  // Not yet deployed
207
213
  universalRouter: "0x0d97dc33264bfc1c226207428a79b26757fb9dc3",
208
214
  univ2Router02: ZERO_ADDRESS,
209
215
  permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
210
- bundler: chunkJXNAHW6C_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Bundler,
216
+ bundler: chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Bundler,
211
217
  weth: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
212
- // INFO: this is wmon, but we treat it as weth because mon is native
218
+ // INFO: this is wmon, but we treat it as weth because mon is native
213
219
  uniswapV4Quoter: "0xa222dd357a9076d1091ed6aa2e16c9742dd26891"
214
220
  }
215
221
  };
@@ -232,5 +238,5 @@ exports.CHAIN_IDS = CHAIN_IDS;
232
238
  exports.SUPPORTED_CHAIN_IDS = SUPPORTED_CHAIN_IDS;
233
239
  exports.getAddresses = getAddresses;
234
240
  exports.isSupportedChainId = isSupportedChainId;
235
- //# sourceMappingURL=chunk-2UUVAFXS.js.map
236
- //# sourceMappingURL=chunk-2UUVAFXS.js.map
241
+ //# sourceMappingURL=chunk-JHPDKSC4.js.map
242
+ //# sourceMappingURL=chunk-JHPDKSC4.js.map