@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.
Files changed (206) hide show
  1. package/README.md +94 -0
  2. package/dist/DopplerSDK.js +25 -24
  3. package/dist/DopplerSDK.mjs +24 -23
  4. package/dist/abis/bytecodes/derc20.js +2 -2
  5. package/dist/abis/bytecodes/derc20.mjs +1 -1
  6. package/dist/abis/bytecodes/derc2080.js +2 -2
  7. package/dist/abis/bytecodes/derc2080.mjs +1 -1
  8. package/dist/abis/bytecodes/doppler.js +2 -2
  9. package/dist/abis/bytecodes/doppler.mjs +1 -1
  10. package/dist/abis/bytecodes/dopplerDN404.js +2 -2
  11. package/dist/abis/bytecodes/dopplerDN404.mjs +1 -1
  12. package/dist/abis/bytecodes/stateView.js +2 -2
  13. package/dist/abis/bytecodes/stateView.mjs +1 -1
  14. package/dist/abis/bytecodes.js +10 -10
  15. package/dist/abis/bytecodes.mjs +5 -5
  16. package/dist/abis/index.js +10 -10
  17. package/dist/abis/index.mjs +5 -5
  18. package/dist/addresses.d.mts +3 -0
  19. package/dist/addresses.d.ts +3 -0
  20. package/dist/addresses.js +7 -7
  21. package/dist/addresses.mjs +2 -2
  22. package/dist/builders/DynamicAuctionBuilder.d.mts +2 -0
  23. package/dist/builders/DynamicAuctionBuilder.d.ts +2 -0
  24. package/dist/builders/DynamicAuctionBuilder.js +16 -15
  25. package/dist/builders/DynamicAuctionBuilder.mjs +15 -14
  26. package/dist/builders/MulticurveBuilder.js +16 -15
  27. package/dist/builders/MulticurveBuilder.mjs +15 -14
  28. package/dist/builders/StaticAuctionBuilder.js +16 -15
  29. package/dist/builders/StaticAuctionBuilder.mjs +15 -14
  30. package/dist/builders/index.js +24 -23
  31. package/dist/builders/index.mjs +17 -16
  32. package/dist/builders/shared.d.mts +1 -1
  33. package/dist/builders/shared.d.ts +1 -1
  34. package/dist/builders/shared.js +17 -16
  35. package/dist/builders/shared.mjs +13 -12
  36. package/dist/{chunk-AZOBEWP3.mjs → chunk-3NMGCQJ4.mjs} +2 -2
  37. package/dist/chunk-3NMGCQJ4.mjs.map +1 -0
  38. package/dist/{chunk-OGYWNJGI.js → chunk-5TQOT6CW.js} +2 -2
  39. package/dist/chunk-5TQOT6CW.js.map +1 -0
  40. package/dist/{chunk-GFOBDFVW.js → chunk-6UHDSD42.js} +206 -28
  41. package/dist/chunk-6UHDSD42.js.map +1 -0
  42. package/dist/{chunk-JHPDKSC4.js → chunk-7CAAI5DL.js} +115 -84
  43. package/dist/chunk-7CAAI5DL.js.map +1 -0
  44. package/dist/{chunk-U7CHPFU6.mjs → chunk-7P2SPZC7.mjs} +189 -11
  45. package/dist/chunk-7P2SPZC7.mjs.map +1 -0
  46. package/dist/chunk-7ZUV6WPX.mjs +3 -0
  47. package/dist/{chunk-5TL5V6UX.mjs.map → chunk-7ZUV6WPX.mjs.map} +1 -1
  48. package/dist/{chunk-SQRQYDB3.mjs → chunk-C6MH7HYT.mjs} +11 -11
  49. package/dist/{chunk-SQRQYDB3.mjs.map → chunk-C6MH7HYT.mjs.map} +1 -1
  50. package/dist/{chunk-RJE6LWWF.mjs → chunk-CATH4QRQ.mjs} +3 -3
  51. package/dist/{chunk-RJE6LWWF.mjs.map → chunk-CATH4QRQ.mjs.map} +1 -1
  52. package/dist/{chunk-5JQDXMDN.js → chunk-CMNJZKTM.js} +24 -24
  53. package/dist/{chunk-5JQDXMDN.js.map → chunk-CMNJZKTM.js.map} +1 -1
  54. package/dist/chunk-DNB3T5P2.js +269 -0
  55. package/dist/chunk-DNB3T5P2.js.map +1 -0
  56. package/dist/chunk-DSYPZETD.js +4 -0
  57. package/dist/{chunk-WTS75RUC.js.map → chunk-DSYPZETD.js.map} +1 -1
  58. package/dist/{chunk-GLMPU7VL.js → chunk-EH3V2BJF.js} +12 -12
  59. package/dist/chunk-EH3V2BJF.js.map +1 -0
  60. package/dist/{chunk-36Y3N257.mjs → chunk-EIXUJANI.mjs} +5 -5
  61. package/dist/chunk-EIXUJANI.mjs.map +1 -0
  62. package/dist/{chunk-HX3A6ALC.mjs → chunk-FFV6DMPA.mjs} +3 -3
  63. package/dist/{chunk-HX3A6ALC.mjs.map → chunk-FFV6DMPA.mjs.map} +1 -1
  64. package/dist/{chunk-NJYBKWCD.mjs → chunk-FLFYAWSS.mjs} +3 -3
  65. package/dist/{chunk-NJYBKWCD.mjs.map → chunk-FLFYAWSS.mjs.map} +1 -1
  66. package/dist/{chunk-N33R22A2.js → chunk-FNUBKONK.js} +2 -2
  67. package/dist/{chunk-N33R22A2.js.map → chunk-FNUBKONK.js.map} +1 -1
  68. package/dist/{chunk-COUZYFEE.js → chunk-FTRCBE3J.js} +11 -11
  69. package/dist/{chunk-COUZYFEE.js.map → chunk-FTRCBE3J.js.map} +1 -1
  70. package/dist/{chunk-HHHCRTC7.js → chunk-FZ4FIWCR.js} +5 -5
  71. package/dist/{chunk-HHHCRTC7.js.map → chunk-FZ4FIWCR.js.map} +1 -1
  72. package/dist/chunk-GDODJJ7D.mjs +36 -0
  73. package/dist/chunk-GDODJJ7D.mjs.map +1 -0
  74. package/dist/{chunk-MQNSJCAW.mjs → chunk-GSBQIVME.mjs} +2 -2
  75. package/dist/{chunk-MQNSJCAW.mjs.map → chunk-GSBQIVME.mjs.map} +1 -1
  76. package/dist/{chunk-RKPAL3SU.mjs → chunk-GSTY3GO7.mjs} +3 -3
  77. package/dist/{chunk-RKPAL3SU.mjs.map → chunk-GSTY3GO7.mjs.map} +1 -1
  78. package/dist/{chunk-4CJS5XLY.js → chunk-H7WPK5CR.js} +4 -4
  79. package/dist/{chunk-4CJS5XLY.js.map → chunk-H7WPK5CR.js.map} +1 -1
  80. package/dist/{chunk-SAX7P3MH.js → chunk-HJFVRV47.js} +2 -2
  81. package/dist/{chunk-SAX7P3MH.js.map → chunk-HJFVRV47.js.map} +1 -1
  82. package/dist/{chunk-CXE33IZN.mjs → chunk-HL7ZAAD4.mjs} +19 -7
  83. package/dist/chunk-HL7ZAAD4.mjs.map +1 -0
  84. package/dist/{chunk-2ZM4JVFC.js → chunk-J62YDWIK.js} +2 -2
  85. package/dist/chunk-J62YDWIK.js.map +1 -0
  86. package/dist/{chunk-TYJZL2XZ.js → chunk-JB5XXPLL.js} +25 -13
  87. package/dist/chunk-JB5XXPLL.js.map +1 -0
  88. package/dist/{chunk-WDSV4O6T.mjs → chunk-OHA5KJ2M.mjs} +2 -2
  89. package/dist/chunk-OHA5KJ2M.mjs.map +1 -0
  90. package/dist/{chunk-AS5UUJRI.js → chunk-OX5CESVM.js} +13 -11
  91. package/dist/chunk-OX5CESVM.js.map +1 -0
  92. package/dist/{chunk-VGOEXLQ2.js → chunk-QAPQGDWK.js} +2 -2
  93. package/dist/chunk-QAPQGDWK.js.map +1 -0
  94. package/dist/{chunk-OF7BIKXV.js → chunk-QRTABC4Z.js} +2 -2
  95. package/dist/chunk-QRTABC4Z.js.map +1 -0
  96. package/dist/{chunk-XEWKLVOD.mjs → chunk-RI6SDMER.mjs} +3 -3
  97. package/dist/{chunk-XEWKLVOD.mjs.map → chunk-RI6SDMER.mjs.map} +1 -1
  98. package/dist/{chunk-NWZGO2CH.mjs → chunk-RIIVW6TQ.mjs} +43 -12
  99. package/dist/chunk-RIIVW6TQ.mjs.map +1 -0
  100. package/dist/{chunk-VK5HAWX6.mjs → chunk-SWWLOD7Q.mjs} +2 -2
  101. package/dist/chunk-SWWLOD7Q.mjs.map +1 -0
  102. package/dist/{chunk-Y5RAENN5.js → chunk-TIGHBA37.js} +5 -5
  103. package/dist/{chunk-Y5RAENN5.js.map → chunk-TIGHBA37.js.map} +1 -1
  104. package/dist/{chunk-BFJGY436.mjs → chunk-TLEVIIUE.mjs} +5 -3
  105. package/dist/chunk-TLEVIIUE.mjs.map +1 -0
  106. package/dist/{chunk-LPA32BIK.mjs → chunk-U3GOWK6J.mjs} +2 -2
  107. package/dist/chunk-U3GOWK6J.mjs.map +1 -0
  108. package/dist/{chunk-V7YRKFYK.mjs → chunk-VCX6FG3E.mjs} +5 -5
  109. package/dist/{chunk-V7YRKFYK.mjs.map → chunk-VCX6FG3E.mjs.map} +1 -1
  110. package/dist/{chunk-64ZQRKG3.mjs → chunk-VYSOAGRU.mjs} +2 -2
  111. package/dist/chunk-VYSOAGRU.mjs.map +1 -0
  112. package/dist/chunk-WJBJARLJ.js +38 -0
  113. package/dist/chunk-WJBJARLJ.js.map +1 -0
  114. package/dist/{chunk-OROTK4OT.js → chunk-WNUB3UTT.js} +12 -12
  115. package/dist/chunk-WNUB3UTT.js.map +1 -0
  116. package/dist/{chunk-SMTHFPBA.js → chunk-XMFOZYNI.js} +2 -2
  117. package/dist/chunk-XMFOZYNI.js.map +1 -0
  118. package/dist/chunk-XRYLHTVV.mjs +267 -0
  119. package/dist/chunk-XRYLHTVV.mjs.map +1 -0
  120. package/dist/{chunk-K27G7LLT.js → chunk-XT3BAM4H.js} +5 -5
  121. package/dist/{chunk-K27G7LLT.js.map → chunk-XT3BAM4H.js.map} +1 -1
  122. package/dist/{chunk-VGCXJRUV.mjs → chunk-YBK6EBA5.mjs} +10 -10
  123. package/dist/chunk-YBK6EBA5.mjs.map +1 -0
  124. package/dist/{chunk-545TB6TH.js → chunk-YFEPTSI2.js} +11 -11
  125. package/dist/{chunk-545TB6TH.js.map → chunk-YFEPTSI2.js.map} +1 -1
  126. package/dist/{chunk-HH7HQ4HC.mjs → chunk-ZEDJUNC6.mjs} +2 -2
  127. package/dist/{chunk-HH7HQ4HC.mjs.map → chunk-ZEDJUNC6.mjs.map} +1 -1
  128. package/dist/deployments.generated.d.mts +39 -19
  129. package/dist/deployments.generated.d.ts +39 -19
  130. package/dist/deployments.generated.js +2 -2
  131. package/dist/deployments.generated.mjs +1 -1
  132. package/dist/entities/DopplerFactory.js +14 -13
  133. package/dist/entities/DopplerFactory.mjs +13 -12
  134. package/dist/entities/auction/DynamicAuction.js +9 -9
  135. package/dist/entities/auction/DynamicAuction.mjs +8 -8
  136. package/dist/entities/auction/MulticurvePool.js +10 -10
  137. package/dist/entities/auction/MulticurvePool.mjs +9 -9
  138. package/dist/entities/auction/StaticAuction.js +9 -9
  139. package/dist/entities/auction/StaticAuction.mjs +8 -8
  140. package/dist/entities/auction/index.js +17 -17
  141. package/dist/entities/auction/index.mjs +11 -11
  142. package/dist/entities/quoter/Quoter.js +9 -9
  143. package/dist/entities/quoter/Quoter.mjs +8 -8
  144. package/dist/entities/quoter/index.js +9 -9
  145. package/dist/entities/quoter/index.mjs +8 -8
  146. package/dist/entities/token/derc20/Derc20.js +5 -5
  147. package/dist/entities/token/derc20/Derc20.mjs +5 -5
  148. package/dist/entities/token/derc20/index.js +5 -5
  149. package/dist/entities/token/derc20/index.mjs +5 -5
  150. package/dist/entities/token/index.js +6 -6
  151. package/dist/entities/token/index.mjs +6 -6
  152. package/dist/index.d.mts +2 -1
  153. package/dist/index.d.ts +2 -1
  154. package/dist/index.js +71 -66
  155. package/dist/index.js.map +1 -1
  156. package/dist/index.mjs +24 -23
  157. package/dist/index.mjs.map +1 -1
  158. package/dist/types.d.mts +33 -5
  159. package/dist/types.d.ts +33 -5
  160. package/dist/types.js +8 -8
  161. package/dist/types.mjs +3 -3
  162. package/dist/utils/airlock.js +7 -7
  163. package/dist/utils/airlock.mjs +3 -3
  164. package/dist/utils/dopplerHookMigrator.d.mts +11 -0
  165. package/dist/utils/dopplerHookMigrator.d.ts +11 -0
  166. package/dist/utils/dopplerHookMigrator.js +12 -0
  167. package/dist/utils/dopplerHookMigrator.js.map +1 -0
  168. package/dist/utils/dopplerHookMigrator.mjs +3 -0
  169. package/dist/utils/dopplerHookMigrator.mjs.map +1 -0
  170. package/dist/utils/index.d.mts +1 -0
  171. package/dist/utils/index.d.ts +1 -0
  172. package/dist/utils/index.js +36 -31
  173. package/dist/utils/index.mjs +12 -11
  174. package/dist/utils/marketCapHelpers.js +13 -13
  175. package/dist/utils/marketCapHelpers.mjs +1 -1
  176. package/dist/utils/tokenAddressMiner.js +7 -7
  177. package/dist/utils/tokenAddressMiner.mjs +6 -6
  178. package/package.json +1 -1
  179. package/dist/chunk-2ZM4JVFC.js.map +0 -1
  180. package/dist/chunk-36Y3N257.mjs.map +0 -1
  181. package/dist/chunk-5TL5V6UX.mjs +0 -3
  182. package/dist/chunk-64ZQRKG3.mjs.map +0 -1
  183. package/dist/chunk-AS5UUJRI.js.map +0 -1
  184. package/dist/chunk-AZOBEWP3.mjs.map +0 -1
  185. package/dist/chunk-BFJGY436.mjs.map +0 -1
  186. package/dist/chunk-CXE33IZN.mjs.map +0 -1
  187. package/dist/chunk-GFOBDFVW.js.map +0 -1
  188. package/dist/chunk-GLMPU7VL.js.map +0 -1
  189. package/dist/chunk-JHPDKSC4.js.map +0 -1
  190. package/dist/chunk-LPA32BIK.mjs.map +0 -1
  191. package/dist/chunk-NWZGO2CH.mjs.map +0 -1
  192. package/dist/chunk-OF7BIKXV.js.map +0 -1
  193. package/dist/chunk-OGYWNJGI.js.map +0 -1
  194. package/dist/chunk-OROTK4OT.js.map +0 -1
  195. package/dist/chunk-QFQXHDC7.mjs +0 -247
  196. package/dist/chunk-QFQXHDC7.mjs.map +0 -1
  197. package/dist/chunk-RLUMYHPI.js +0 -249
  198. package/dist/chunk-RLUMYHPI.js.map +0 -1
  199. package/dist/chunk-SMTHFPBA.js.map +0 -1
  200. package/dist/chunk-TYJZL2XZ.js.map +0 -1
  201. package/dist/chunk-U7CHPFU6.mjs.map +0 -1
  202. package/dist/chunk-VGCXJRUV.mjs.map +0 -1
  203. package/dist/chunk-VGOEXLQ2.js.map +0 -1
  204. package/dist/chunk-VK5HAWX6.mjs.map +0 -1
  205. package/dist/chunk-WDSV4O6T.mjs.map +0 -1
  206. 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":";;;;;;AAiBO,IAAM,SAAN,MAAa;AAAA,EAGlB,IAAY,GAAA,GAAoB;AAC9B,IAAA,OAAO,IAAA,CAAK,YAAA;AAAA,EACd;AAAA,EAEA,WAAA,CAAY,cAAqC,OAAA,EAAiB;AAChE,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AACpB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,MAAA,EAWrB;AACD,IAAA,MAAM,SAAA,GAAYA,6BAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,QACjD,SAAS,SAAA,CAAU,QAAA;AAAA,QACnB,GAAA,EAAKC,4BAAA;AAAA,QACL,YAAA,EAAc,uBAAA;AAAA,QACd,IAAA,EAAM;AAAA,UACJ;AAAA,YACE,SAAS,MAAA,CAAO,OAAA;AAAA,YAChB,UAAU,MAAA,CAAO,QAAA;AAAA,YACjB,UAAU,MAAA,CAAO,QAAA;AAAA,YACjB,KAAK,MAAA,CAAO,GAAA;AAAA,YACZ,iBAAA,EAAmB,MAAA,CAAO,iBAAA,IAAqB,MAAA,CAAO,CAAC;AAAA;AACzD;AACF,OACD,CAAA;AACD,MAAA,OAAO;AAAA,QACL,SAAA,EAAW,OAAO,CAAC,CAAA;AAAA,QACnB,iBAAA,EAAmB,OAAO,CAAC,CAAA;AAAA,QAC3B,uBAAA,EAAyB,OAAO,CAAC,CAAA;AAAA,QACjC,WAAA,EAAa,OAAO,CAAC;AAAA,OACvB;AAAA,IACF,SAAS,GAAA,EAAc;AACrB,MAAA,MAAM,UAAA,GACH,GAAA,EAAgD,KAAA,EAAO,IAAA,IACvD,GAAA,CAAuB,IAAA;AAC1B,MAAA,IACE,cACA,OAAO,UAAA,KAAe,YACtB,UAAA,CAAW,UAAA,CAAW,IAAI,CAAA,EAC1B;AACA,QAAA,IAAI;AAEF,UAAA,MAAM,CAAC,MAAA,EAAQ,iBAAiB,CAAA,GAAIC,wBAAA;AAAA,YAClC,CAAC,EAAE,IAAA,EAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,YAC5D;AAAA,WACF;AACA,UAAA,OAAO;AAAA,YACL,SAAA,EAAW,MAAA;AAAA,YACX,iBAAA;AAAA,YACA,uBAAA,EAAyB,CAAA;AAAA,YACzB,WAAA,EAAa;AAAA,WACf;AAAA,QACF,SAAS,CAAA,EAAG;AAAA,QAEZ;AAAA,MACF;AACA,MAAA,MAAM,GAAA;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAAmB,MAAA,EAWtB;AACD,IAAA,MAAM,SAAA,GAAYF,6BAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,QACjD,SAAS,SAAA,CAAU,QAAA;AAAA,QACnB,GAAA,EAAKC,4BAAA;AAAA,QACL,YAAA,EAAc,wBAAA;AAAA,QACd,IAAA,EAAM;AAAA,UACJ;AAAA,YACE,SAAS,MAAA,CAAO,OAAA;AAAA,YAChB,UAAU,MAAA,CAAO,QAAA;AAAA,YACjB,QAAQ,MAAA,CAAO,SAAA;AAAA,YACf,KAAK,MAAA,CAAO,GAAA;AAAA,YACZ,iBAAA,EAAmB,MAAA,CAAO,iBAAA,IAAqB,MAAA,CAAO,CAAC;AAAA;AACzD;AACF,OACD,CAAA;AACD,MAAA,OAAO;AAAA,QACL,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,QAClB,iBAAA,EAAmB,OAAO,CAAC,CAAA;AAAA,QAC3B,uBAAA,EAAyB,OAAO,CAAC,CAAA;AAAA,QACjC,WAAA,EAAa,OAAO,CAAC;AAAA,OACvB;AAAA,IACF,SAAS,GAAA,EAAc;AACrB,MAAA,MAAM,UAAA,GACH,GAAA,EAAgD,KAAA,EAAO,IAAA,IACvD,GAAA,CAAuB,IAAA;AAC1B,MAAA,IACE,cACA,OAAO,UAAA,KAAe,YACtB,UAAA,CAAW,UAAA,CAAW,IAAI,CAAA,EAC1B;AACA,QAAA,IAAI;AAEF,UAAA,MAAM,CAAC,MAAA,EAAQ,iBAAiB,CAAA,GAAIC,wBAAA;AAAA,YAClC,CAAC,EAAE,IAAA,EAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,SAAA,EAAU,EAAG,EAAE,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,YAC5D;AAAA,WACF;AACA,UAAA,OAAO;AAAA,YACL,QAAA,EAAU,MAAA;AAAA,YACV,iBAAA;AAAA,YACA,uBAAA,EAAyB,CAAA;AAAA,YACzB,WAAA,EAAa;AAAA,WACf;AAAA,QACF,SAAS,CAAA,EAAG;AAAA,QAEZ;AAAA,MACF;AACA,MAAA,MAAM,GAAA;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,MAAA,EAGF;AACpB,IAAA,MAAM,SAAA,GAAYF,6BAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAA,IAAI,CAAC,UAAU,aAAA,EAAe;AAC5B,MAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA,IACjE;AAEA,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACzC,SAAS,SAAA,CAAU,aAAA;AAAA,MACnB,GAAA,EAAKG,qCAAA;AAAA,MACL,YAAA,EAAc,eAAA;AAAA,MACd,IAAA,EAAM,CAAC,MAAA,CAAO,QAAA,EAAU,OAAO,IAAI;AAAA,KACpC,CAAA;AAED,IAAA,OAAO,CAAC,GAAG,MAAM,CAAA;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAAmB,MAAA,EAGH;AACpB,IAAA,MAAM,SAAA,GAAYH,6BAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAA,IAAI,CAAC,UAAU,aAAA,EAAe;AAC5B,MAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA,IACjE;AAEA,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa;AAAA,MACzC,SAAS,SAAA,CAAU,aAAA;AAAA,MACnB,GAAA,EAAKG,qCAAA;AAAA,MACL,YAAA,EAAc,cAAA;AAAA,MACd,IAAA,EAAM,CAAC,MAAA,CAAO,SAAA,EAAW,OAAO,IAAI;AAAA,KACrC,CAAA;AAED,IAAA,OAAO,CAAC,GAAG,MAAM,CAAA;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,MAAA,EAcrB;AACD,IAAA,MAAM,SAAA,GAAYH,6BAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAA,MAAM,gBAAgB,SAAA,CAAU,eAAA;AAEhC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,MAAM,IAAI,MAAM,sCAAsC,CAAA;AAAA,IACxD;AAEA,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MACjD,OAAA,EAAS,aAAA;AAAA,MACT,GAAA,EAAKI,4BAAA;AAAA,MACL,YAAA,EAAc,uBAAA;AAAA,MACd,IAAA,EAAM;AAAA,QACJ;AAAA,UACE,SAAS,MAAA,CAAO,OAAA;AAAA,UAChB,YAAY,MAAA,CAAO,UAAA;AAAA,UACnB,aAAa,MAAA,CAAO,WAAA;AAAA,UACpB,QAAA,EAAW,OAAO,QAAA,IAAY;AAAA;AAChC;AACF,KACD,CAAA;AAED,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,OAAO,CAAC,CAAA;AAAA,MACnB,WAAA,EAAa,OAAO,CAAC;AAAA,KACvB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAAmB,MAAA,EActB;AACD,IAAA,MAAM,SAAA,GAAYJ,6BAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAE3C,IAAA,MAAM,gBAAgB,SAAA,CAAU,eAAA;AAEhC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACzE;AAEA,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MACjD,OAAA,EAAS,aAAA;AAAA,MACT,GAAA,EAAKI,4BAAA;AAAA,MACL,YAAA,EAAc,wBAAA;AAAA,MACd,IAAA,EAAM;AAAA,QACJ;AAAA,UACE,SAAS,MAAA,CAAO,OAAA;AAAA,UAChB,YAAY,MAAA,CAAO,UAAA;AAAA,UACnB,aAAa,MAAA,CAAO,WAAA;AAAA,UACpB,QAAA,EAAW,OAAO,QAAA,IAAY;AAAA;AAChC;AACF,KACD,CAAA;AAED,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,MAClB,WAAA,EAAa,OAAO,CAAC;AAAA,KACvB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,wBAAwB,MAAA,EAc3B;AACD,IAAA,MAAM,SAAA,GAAYJ,6BAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAC3C,IAAA,MAAM,gBAAgB,SAAA,CAAU,eAAA;AAEhC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACzE;AAEA,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MACjD,OAAA,EAAS,aAAA;AAAA,MACT,GAAA,EAAKI,4BAAA;AAAA,MACL,YAAA,EAAc,uBAAA;AAAA,MACd,IAAA,EAAM;AAAA,QACJ;AAAA,UACE,SAAS,MAAA,CAAO,OAAA;AAAA,UAChB,YAAY,MAAA,CAAO,UAAA;AAAA,UACnB,aAAa,MAAA,CAAO,WAAA;AAAA,UACpB,QAAA,EAAW,OAAO,QAAA,IAAY;AAAA;AAChC;AACF,KACD,CAAA;AAED,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,OAAO,CAAC,CAAA;AAAA,MACnB,WAAA,EAAa,OAAO,CAAC;AAAA,KACvB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,yBAAyB,MAAA,EAc5B;AACD,IAAA,MAAM,SAAA,GAAYJ,6BAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AAC3C,IAAA,MAAM,gBAAgB,SAAA,CAAU,eAAA;AAEhC,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACzE;AAEA,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,MAAM,IAAA,CAAK,IAAI,gBAAA,CAAiB;AAAA,MACjD,OAAA,EAAS,aAAA;AAAA,MACT,GAAA,EAAKI,4BAAA;AAAA,MACL,YAAA,EAAc,wBAAA;AAAA,MACd,IAAA,EAAM;AAAA,QACJ;AAAA,UACE,SAAS,MAAA,CAAO,OAAA;AAAA,UAChB,YAAY,MAAA,CAAO,UAAA;AAAA,UACnB,aAAa,MAAA,CAAO,WAAA;AAAA,UACpB,QAAA,EAAW,OAAO,QAAA,IAAY;AAAA;AAChC;AACF,KACD,CAAA;AAED,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,MAClB,WAAA,EAAa,OAAO,CAAC;AAAA,KACvB;AAAA,EACF;AACF","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-HH7HQ4HC.mjs.map
115
- //# sourceMappingURL=chunk-HH7HQ4HC.mjs.map
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 "1": {
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "130": {
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 "143": {
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "1301": {
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 "4326": {
103
+ readonly '4326': {
96
104
  readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
97
105
  readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
98
106
  readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
99
107
  };
100
- readonly "4801": {
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 "6343": {
116
+ readonly '6343': {
109
117
  readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
110
118
  readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
111
119
  readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
112
120
  };
113
- readonly "8453": {
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "10143": {
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 "57073": {
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 "84532": {
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: "0xd59ce43e53d69f190e15d9822fb4540dccc91178";
190
- readonly DecayMulticurveInitializerHook: "0xbb7784a4d481184283ed89619a3e3ed143e1adc0";
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "11155111": {
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "1": {
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "130": {
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 "143": {
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "1301": {
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 "4326": {
103
+ readonly '4326': {
96
104
  readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
97
105
  readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
98
106
  readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
99
107
  };
100
- readonly "4801": {
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 "6343": {
116
+ readonly '6343': {
109
117
  readonly Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA";
110
118
  readonly NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638";
111
119
  readonly NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5";
112
120
  };
113
- readonly "8453": {
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "10143": {
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 "57073": {
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 "84532": {
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: "0xd59ce43e53d69f190e15d9822fb4540dccc91178";
190
- readonly DecayMulticurveInitializerHook: "0xbb7784a4d481184283ed89619a3e3ed143e1adc0";
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 "11155111": {
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: "0xeC0fAe60Ac92044B4946DFaec87AC4CE53015906";
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 chunkRLUMYHPI_js = require('./chunk-RLUMYHPI.js');
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 chunkRLUMYHPI_js.GENERATED_DOPPLER_DEPLOYMENTS; }
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
@@ -1,3 +1,3 @@
1
- export { GENERATED_DOPPLER_DEPLOYMENTS } from './chunk-QFQXHDC7.mjs';
1
+ export { GENERATED_DOPPLER_DEPLOYMENTS } from './chunk-XRYLHTVV.mjs';
2
2
  //# sourceMappingURL=deployments.generated.mjs.map
3
3
  //# sourceMappingURL=deployments.generated.mjs.map