@whetstone-research/doppler-sdk 0.0.23 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/README.md +556 -229
  2. package/dist/chunk-3LTCKCJC.js +319 -0
  3. package/dist/chunk-3LTCKCJC.js.map +1 -0
  4. package/dist/chunk-PZ5AY32C.js +9 -0
  5. package/dist/{chunk-3PNCB4W5.js.map → chunk-PZ5AY32C.js.map} +1 -1
  6. package/dist/chunk-RO6R66OM.js +974 -0
  7. package/dist/chunk-RO6R66OM.js.map +1 -0
  8. package/dist/evm/index.d.ts +8533 -0
  9. package/dist/evm/index.js +15055 -0
  10. package/dist/evm/index.js.map +1 -0
  11. package/dist/oracle-BSvZ6pxp.d.ts +820 -0
  12. package/dist/pda-RVIHNLRP.js +4 -0
  13. package/dist/pda-RVIHNLRP.js.map +1 -0
  14. package/dist/solana/index.d.ts +2495 -0
  15. package/dist/solana/index.js +2209 -0
  16. package/dist/solana/index.js.map +1 -0
  17. package/dist/solana/react/index.d.ts +1046 -0
  18. package/dist/solana/react/index.js +1436 -0
  19. package/dist/solana/react/index.js.map +1 -0
  20. package/package.json +37 -21
  21. package/dist/DopplerSDK.d.mts +0 -94
  22. package/dist/DopplerSDK.d.ts +0 -94
  23. package/dist/DopplerSDK.js +0 -51
  24. package/dist/DopplerSDK.js.map +0 -1
  25. package/dist/DopplerSDK.mjs +0 -42
  26. package/dist/DopplerSDK.mjs.map +0 -1
  27. package/dist/abis/bytecodes/derc20.d.mts +0 -3
  28. package/dist/abis/bytecodes/derc20.d.ts +0 -3
  29. package/dist/abis/bytecodes/derc20.js +0 -9
  30. package/dist/abis/bytecodes/derc20.js.map +0 -1
  31. package/dist/abis/bytecodes/derc20.mjs +0 -3
  32. package/dist/abis/bytecodes/derc20.mjs.map +0 -1
  33. package/dist/abis/bytecodes/derc2080.d.mts +0 -3
  34. package/dist/abis/bytecodes/derc2080.d.ts +0 -3
  35. package/dist/abis/bytecodes/derc2080.js +0 -9
  36. package/dist/abis/bytecodes/derc2080.js.map +0 -1
  37. package/dist/abis/bytecodes/derc2080.mjs +0 -3
  38. package/dist/abis/bytecodes/derc2080.mjs.map +0 -1
  39. package/dist/abis/bytecodes/doppler.d.mts +0 -3
  40. package/dist/abis/bytecodes/doppler.d.ts +0 -3
  41. package/dist/abis/bytecodes/doppler.js +0 -9
  42. package/dist/abis/bytecodes/doppler.js.map +0 -1
  43. package/dist/abis/bytecodes/doppler.mjs +0 -3
  44. package/dist/abis/bytecodes/doppler.mjs.map +0 -1
  45. package/dist/abis/bytecodes/dopplerDN404.d.mts +0 -3
  46. package/dist/abis/bytecodes/dopplerDN404.d.ts +0 -3
  47. package/dist/abis/bytecodes/dopplerDN404.js +0 -9
  48. package/dist/abis/bytecodes/dopplerDN404.js.map +0 -1
  49. package/dist/abis/bytecodes/dopplerDN404.mjs +0 -3
  50. package/dist/abis/bytecodes/dopplerDN404.mjs.map +0 -1
  51. package/dist/abis/bytecodes/stateView.d.mts +0 -3
  52. package/dist/abis/bytecodes/stateView.d.ts +0 -3
  53. package/dist/abis/bytecodes/stateView.js +0 -9
  54. package/dist/abis/bytecodes/stateView.js.map +0 -1
  55. package/dist/abis/bytecodes/stateView.mjs +0 -3
  56. package/dist/abis/bytecodes/stateView.mjs.map +0 -1
  57. package/dist/abis/bytecodes.d.mts +0 -5
  58. package/dist/abis/bytecodes.d.ts +0 -5
  59. package/dist/abis/bytecodes.js +0 -33
  60. package/dist/abis/bytecodes.js.map +0 -1
  61. package/dist/abis/bytecodes.mjs +0 -8
  62. package/dist/abis/bytecodes.mjs.map +0 -1
  63. package/dist/abis/index.d.mts +0 -3460
  64. package/dist/abis/index.d.ts +0 -3460
  65. package/dist/abis/index.js +0 -122
  66. package/dist/abis/index.js.map +0 -1
  67. package/dist/abis/index.mjs +0 -9
  68. package/dist/abis/index.mjs.map +0 -1
  69. package/dist/addresses.d.mts +0 -65
  70. package/dist/addresses.d.ts +0 -65
  71. package/dist/addresses.js +0 -29
  72. package/dist/addresses.js.map +0 -1
  73. package/dist/addresses.mjs +0 -4
  74. package/dist/addresses.mjs.map +0 -1
  75. package/dist/builders/DynamicAuctionBuilder.d.mts +0 -138
  76. package/dist/builders/DynamicAuctionBuilder.d.ts +0 -138
  77. package/dist/builders/DynamicAuctionBuilder.js +0 -35
  78. package/dist/builders/DynamicAuctionBuilder.js.map +0 -1
  79. package/dist/builders/DynamicAuctionBuilder.mjs +0 -26
  80. package/dist/builders/DynamicAuctionBuilder.mjs.map +0 -1
  81. package/dist/builders/MulticurveBuilder.d.mts +0 -183
  82. package/dist/builders/MulticurveBuilder.d.ts +0 -183
  83. package/dist/builders/MulticurveBuilder.js +0 -35
  84. package/dist/builders/MulticurveBuilder.js.map +0 -1
  85. package/dist/builders/MulticurveBuilder.mjs +0 -26
  86. package/dist/builders/MulticurveBuilder.mjs.map +0 -1
  87. package/dist/builders/StaticAuctionBuilder.d.mts +0 -131
  88. package/dist/builders/StaticAuctionBuilder.d.ts +0 -131
  89. package/dist/builders/StaticAuctionBuilder.js +0 -35
  90. package/dist/builders/StaticAuctionBuilder.js.map +0 -1
  91. package/dist/builders/StaticAuctionBuilder.mjs +0 -26
  92. package/dist/builders/StaticAuctionBuilder.mjs.map +0 -1
  93. package/dist/builders/index.d.mts +0 -8
  94. package/dist/builders/index.d.ts +0 -8
  95. package/dist/builders/index.js +0 -62
  96. package/dist/builders/index.js.map +0 -1
  97. package/dist/builders/index.mjs +0 -29
  98. package/dist/builders/index.mjs.map +0 -1
  99. package/dist/builders/shared.d.mts +0 -115
  100. package/dist/builders/shared.d.ts +0 -115
  101. package/dist/builders/shared.js +0 -45
  102. package/dist/builders/shared.js.map +0 -1
  103. package/dist/builders/shared.mjs +0 -24
  104. package/dist/builders/shared.mjs.map +0 -1
  105. package/dist/chunk-25GEBO3B.mjs +0 -219
  106. package/dist/chunk-25GEBO3B.mjs.map +0 -1
  107. package/dist/chunk-3MVW6UIW.js +0 -2294
  108. package/dist/chunk-3MVW6UIW.js.map +0 -1
  109. package/dist/chunk-3NMGCQJ4.mjs +0 -6
  110. package/dist/chunk-3NMGCQJ4.mjs.map +0 -1
  111. package/dist/chunk-3PNCB4W5.js +0 -4
  112. package/dist/chunk-4VWQNNNW.js +0 -233
  113. package/dist/chunk-4VWQNNNW.js.map +0 -1
  114. package/dist/chunk-4XN6DQBW.js +0 -4
  115. package/dist/chunk-4XN6DQBW.js.map +0 -1
  116. package/dist/chunk-5TQOT6CW.js +0 -8
  117. package/dist/chunk-5TQOT6CW.js.map +0 -1
  118. package/dist/chunk-6BQY5EPB.js +0 -144
  119. package/dist/chunk-6BQY5EPB.js.map +0 -1
  120. package/dist/chunk-6H6X3VTZ.js +0 -18
  121. package/dist/chunk-6H6X3VTZ.js.map +0 -1
  122. package/dist/chunk-6UHDSD42.js +0 -2585
  123. package/dist/chunk-6UHDSD42.js.map +0 -1
  124. package/dist/chunk-7CAAI5DL.js +0 -273
  125. package/dist/chunk-7CAAI5DL.js.map +0 -1
  126. package/dist/chunk-7M57PU6V.js +0 -28
  127. package/dist/chunk-7M57PU6V.js.map +0 -1
  128. package/dist/chunk-7P2SPZC7.mjs +0 -2583
  129. package/dist/chunk-7P2SPZC7.mjs.map +0 -1
  130. package/dist/chunk-7ZUV6WPX.mjs +0 -3
  131. package/dist/chunk-7ZUV6WPX.mjs.map +0 -1
  132. package/dist/chunk-ABT6AT7C.mjs +0 -16
  133. package/dist/chunk-ABT6AT7C.mjs.map +0 -1
  134. package/dist/chunk-C6MH7HYT.mjs +0 -138
  135. package/dist/chunk-C6MH7HYT.mjs.map +0 -1
  136. package/dist/chunk-CATH4QRQ.mjs +0 -141
  137. package/dist/chunk-CATH4QRQ.mjs.map +0 -1
  138. package/dist/chunk-CFAAYL5M.mjs +0 -26
  139. package/dist/chunk-CFAAYL5M.mjs.map +0 -1
  140. package/dist/chunk-CMNJZKTM.js +0 -140
  141. package/dist/chunk-CMNJZKTM.js.map +0 -1
  142. package/dist/chunk-CWTGQAOG.mjs +0 -72
  143. package/dist/chunk-CWTGQAOG.mjs.map +0 -1
  144. package/dist/chunk-DNB3T5P2.js +0 -269
  145. package/dist/chunk-DNB3T5P2.js.map +0 -1
  146. package/dist/chunk-DOUF6NON.mjs +0 -3
  147. package/dist/chunk-DOUF6NON.mjs.map +0 -1
  148. package/dist/chunk-DSYPZETD.js +0 -4
  149. package/dist/chunk-DSYPZETD.js.map +0 -1
  150. package/dist/chunk-E2NF4AQB.mjs +0 -2271
  151. package/dist/chunk-E2NF4AQB.mjs.map +0 -1
  152. package/dist/chunk-EH3V2BJF.js +0 -592
  153. package/dist/chunk-EH3V2BJF.js.map +0 -1
  154. package/dist/chunk-EIXUJANI.mjs +0 -590
  155. package/dist/chunk-EIXUJANI.mjs.map +0 -1
  156. package/dist/chunk-FFV6DMPA.mjs +0 -263
  157. package/dist/chunk-FFV6DMPA.mjs.map +0 -1
  158. package/dist/chunk-FLFYAWSS.mjs +0 -238
  159. package/dist/chunk-FLFYAWSS.mjs.map +0 -1
  160. package/dist/chunk-FNUBKONK.js +0 -291
  161. package/dist/chunk-FNUBKONK.js.map +0 -1
  162. package/dist/chunk-FOESYJP3.mjs +0 -3
  163. package/dist/chunk-FOESYJP3.mjs.map +0 -1
  164. package/dist/chunk-FTRCBE3J.js +0 -320
  165. package/dist/chunk-FTRCBE3J.js.map +0 -1
  166. package/dist/chunk-FZ4FIWCR.js +0 -240
  167. package/dist/chunk-FZ4FIWCR.js.map +0 -1
  168. package/dist/chunk-GDODJJ7D.mjs +0 -36
  169. package/dist/chunk-GDODJJ7D.mjs.map +0 -1
  170. package/dist/chunk-GSBQIVME.mjs +0 -278
  171. package/dist/chunk-GSBQIVME.mjs.map +0 -1
  172. package/dist/chunk-GSTY3GO7.mjs +0 -40
  173. package/dist/chunk-GSTY3GO7.mjs.map +0 -1
  174. package/dist/chunk-H3B54PFV.mjs +0 -17
  175. package/dist/chunk-H3B54PFV.mjs.map +0 -1
  176. package/dist/chunk-H7WPK5CR.js +0 -297
  177. package/dist/chunk-H7WPK5CR.js.map +0 -1
  178. package/dist/chunk-HJFVRV47.js +0 -120
  179. package/dist/chunk-HJFVRV47.js.map +0 -1
  180. package/dist/chunk-HL7ZAAD4.mjs +0 -375
  181. package/dist/chunk-HL7ZAAD4.mjs.map +0 -1
  182. package/dist/chunk-IWJOPXYN.mjs +0 -96
  183. package/dist/chunk-IWJOPXYN.mjs.map +0 -1
  184. package/dist/chunk-J62YDWIK.js +0 -8
  185. package/dist/chunk-J62YDWIK.js.map +0 -1
  186. package/dist/chunk-JB5XXPLL.js +0 -377
  187. package/dist/chunk-JB5XXPLL.js.map +0 -1
  188. package/dist/chunk-JIKAD4YL.js +0 -4
  189. package/dist/chunk-JIKAD4YL.js.map +0 -1
  190. package/dist/chunk-KAZQJ24E.mjs +0 -59
  191. package/dist/chunk-KAZQJ24E.mjs.map +0 -1
  192. package/dist/chunk-KHUE77HC.js +0 -81
  193. package/dist/chunk-KHUE77HC.js.map +0 -1
  194. package/dist/chunk-KOAC3BBP.mjs +0 -11
  195. package/dist/chunk-KOAC3BBP.mjs.map +0 -1
  196. package/dist/chunk-OHA5KJ2M.mjs +0 -6
  197. package/dist/chunk-OHA5KJ2M.mjs.map +0 -1
  198. package/dist/chunk-OX5CESVM.js +0 -40
  199. package/dist/chunk-OX5CESVM.js.map +0 -1
  200. package/dist/chunk-P25HBGP5.mjs +0 -3
  201. package/dist/chunk-P25HBGP5.mjs.map +0 -1
  202. package/dist/chunk-P7CHGWY7.js +0 -4
  203. package/dist/chunk-P7CHGWY7.js.map +0 -1
  204. package/dist/chunk-QAPQGDWK.js +0 -8
  205. package/dist/chunk-QAPQGDWK.js.map +0 -1
  206. package/dist/chunk-QOGBOT2M.mjs +0 -328
  207. package/dist/chunk-QOGBOT2M.mjs.map +0 -1
  208. package/dist/chunk-QRTABC4Z.js +0 -8
  209. package/dist/chunk-QRTABC4Z.js.map +0 -1
  210. package/dist/chunk-QSQGLWNY.mjs +0 -3
  211. package/dist/chunk-QSQGLWNY.mjs.map +0 -1
  212. package/dist/chunk-RI6SDMER.mjs +0 -295
  213. package/dist/chunk-RI6SDMER.mjs.map +0 -1
  214. package/dist/chunk-RIIVW6TQ.mjs +0 -267
  215. package/dist/chunk-RIIVW6TQ.mjs.map +0 -1
  216. package/dist/chunk-RV64M4Q6.mjs +0 -3
  217. package/dist/chunk-RV64M4Q6.mjs.map +0 -1
  218. package/dist/chunk-RXUJ4DUB.js +0 -330
  219. package/dist/chunk-RXUJ4DUB.js.map +0 -1
  220. package/dist/chunk-SD7BHT2F.mjs +0 -3
  221. package/dist/chunk-SD7BHT2F.mjs.map +0 -1
  222. package/dist/chunk-SWWLOD7Q.mjs +0 -6
  223. package/dist/chunk-SWWLOD7Q.mjs.map +0 -1
  224. package/dist/chunk-TIGHBA37.js +0 -143
  225. package/dist/chunk-TIGHBA37.js.map +0 -1
  226. package/dist/chunk-TLEVIIUE.mjs +0 -34
  227. package/dist/chunk-TLEVIIUE.mjs.map +0 -1
  228. package/dist/chunk-U3GOWK6J.mjs +0 -6
  229. package/dist/chunk-U3GOWK6J.mjs.map +0 -1
  230. package/dist/chunk-UPVKABAV.js +0 -19
  231. package/dist/chunk-UPVKABAV.js.map +0 -1
  232. package/dist/chunk-VCX6FG3E.mjs +0 -318
  233. package/dist/chunk-VCX6FG3E.mjs.map +0 -1
  234. package/dist/chunk-VEIVYUYF.js +0 -4
  235. package/dist/chunk-VEIVYUYF.js.map +0 -1
  236. package/dist/chunk-VYSOAGRU.mjs +0 -6
  237. package/dist/chunk-VYSOAGRU.mjs.map +0 -1
  238. package/dist/chunk-WJBJARLJ.js +0 -38
  239. package/dist/chunk-WJBJARLJ.js.map +0 -1
  240. package/dist/chunk-WNUB3UTT.js +0 -241
  241. package/dist/chunk-WNUB3UTT.js.map +0 -1
  242. package/dist/chunk-WQHTNL5L.js +0 -4
  243. package/dist/chunk-WQHTNL5L.js.map +0 -1
  244. package/dist/chunk-X3UMAHOJ.js +0 -4
  245. package/dist/chunk-X3UMAHOJ.js.map +0 -1
  246. package/dist/chunk-XMFOZYNI.js +0 -8
  247. package/dist/chunk-XMFOZYNI.js.map +0 -1
  248. package/dist/chunk-XNMXN5SZ.mjs +0 -3
  249. package/dist/chunk-XNMXN5SZ.mjs.map +0 -1
  250. package/dist/chunk-XRYLHTVV.mjs +0 -267
  251. package/dist/chunk-XRYLHTVV.mjs.map +0 -1
  252. package/dist/chunk-XSJTASPK.js +0 -13
  253. package/dist/chunk-XSJTASPK.js.map +0 -1
  254. package/dist/chunk-XT3BAM4H.js +0 -45
  255. package/dist/chunk-XT3BAM4H.js.map +0 -1
  256. package/dist/chunk-YBK6EBA5.mjs +0 -239
  257. package/dist/chunk-YBK6EBA5.mjs.map +0 -1
  258. package/dist/chunk-YFEPTSI2.js +0 -265
  259. package/dist/chunk-YFEPTSI2.js.map +0 -1
  260. package/dist/chunk-YYLD3AJ7.js +0 -61
  261. package/dist/chunk-YYLD3AJ7.js.map +0 -1
  262. package/dist/chunk-ZEDJUNC6.mjs +0 -115
  263. package/dist/chunk-ZEDJUNC6.mjs.map +0 -1
  264. package/dist/constants.d.mts +0 -91
  265. package/dist/constants.d.ts +0 -91
  266. package/dist/constants.js +0 -196
  267. package/dist/constants.js.map +0 -1
  268. package/dist/constants.mjs +0 -3
  269. package/dist/constants.mjs.map +0 -1
  270. package/dist/deployments.generated.d.mts +0 -267
  271. package/dist/deployments.generated.d.ts +0 -267
  272. package/dist/deployments.generated.js +0 -12
  273. package/dist/deployments.generated.js.map +0 -1
  274. package/dist/deployments.generated.mjs +0 -3
  275. package/dist/deployments.generated.mjs.map +0 -1
  276. package/dist/entities/DopplerFactory.d.mts +0 -266
  277. package/dist/entities/DopplerFactory.d.ts +0 -266
  278. package/dist/entities/DopplerFactory.js +0 -33
  279. package/dist/entities/DopplerFactory.js.map +0 -1
  280. package/dist/entities/DopplerFactory.mjs +0 -24
  281. package/dist/entities/DopplerFactory.mjs.map +0 -1
  282. package/dist/entities/auction/DynamicAuction.d.mts +0 -72
  283. package/dist/entities/auction/DynamicAuction.d.ts +0 -72
  284. package/dist/entities/auction/DynamicAuction.js +0 -21
  285. package/dist/entities/auction/DynamicAuction.js.map +0 -1
  286. package/dist/entities/auction/DynamicAuction.mjs +0 -12
  287. package/dist/entities/auction/DynamicAuction.mjs.map +0 -1
  288. package/dist/entities/auction/MulticurvePool.d.mts +0 -74
  289. package/dist/entities/auction/MulticurvePool.d.ts +0 -74
  290. package/dist/entities/auction/MulticurvePool.js +0 -24
  291. package/dist/entities/auction/MulticurvePool.js.map +0 -1
  292. package/dist/entities/auction/MulticurvePool.mjs +0 -15
  293. package/dist/entities/auction/MulticurvePool.mjs.map +0 -1
  294. package/dist/entities/auction/StaticAuction.d.mts +0 -44
  295. package/dist/entities/auction/StaticAuction.d.ts +0 -44
  296. package/dist/entities/auction/StaticAuction.js +0 -21
  297. package/dist/entities/auction/StaticAuction.js.map +0 -1
  298. package/dist/entities/auction/StaticAuction.mjs +0 -12
  299. package/dist/entities/auction/StaticAuction.mjs.map +0 -1
  300. package/dist/entities/auction/index.d.mts +0 -7
  301. package/dist/entities/auction/index.d.ts +0 -7
  302. package/dist/entities/auction/index.js +0 -35
  303. package/dist/entities/auction/index.js.map +0 -1
  304. package/dist/entities/auction/index.mjs +0 -18
  305. package/dist/entities/auction/index.mjs.map +0 -1
  306. package/dist/entities/quoter/Quoter.d.mts +0 -150
  307. package/dist/entities/quoter/Quoter.d.ts +0 -150
  308. package/dist/entities/quoter/Quoter.js +0 -21
  309. package/dist/entities/quoter/Quoter.js.map +0 -1
  310. package/dist/entities/quoter/Quoter.mjs +0 -12
  311. package/dist/entities/quoter/Quoter.mjs.map +0 -1
  312. package/dist/entities/quoter/index.d.mts +0 -5
  313. package/dist/entities/quoter/index.d.ts +0 -5
  314. package/dist/entities/quoter/index.js +0 -22
  315. package/dist/entities/quoter/index.js.map +0 -1
  316. package/dist/entities/quoter/index.mjs +0 -13
  317. package/dist/entities/quoter/index.mjs.map +0 -1
  318. package/dist/entities/token/derc20/Derc20.d.mts +0 -102
  319. package/dist/entities/token/derc20/Derc20.d.ts +0 -102
  320. package/dist/entities/token/derc20/Derc20.js +0 -19
  321. package/dist/entities/token/derc20/Derc20.js.map +0 -1
  322. package/dist/entities/token/derc20/Derc20.mjs +0 -10
  323. package/dist/entities/token/derc20/Derc20.mjs.map +0 -1
  324. package/dist/entities/token/derc20/index.d.mts +0 -5
  325. package/dist/entities/token/derc20/index.d.ts +0 -5
  326. package/dist/entities/token/derc20/index.js +0 -20
  327. package/dist/entities/token/derc20/index.js.map +0 -1
  328. package/dist/entities/token/derc20/index.mjs +0 -11
  329. package/dist/entities/token/derc20/index.mjs.map +0 -1
  330. package/dist/entities/token/eth/Eth.d.mts +0 -54
  331. package/dist/entities/token/eth/Eth.d.ts +0 -54
  332. package/dist/entities/token/eth/Eth.js +0 -12
  333. package/dist/entities/token/eth/Eth.js.map +0 -1
  334. package/dist/entities/token/eth/Eth.mjs +0 -3
  335. package/dist/entities/token/eth/Eth.mjs.map +0 -1
  336. package/dist/entities/token/eth/index.d.mts +0 -5
  337. package/dist/entities/token/eth/index.d.ts +0 -5
  338. package/dist/entities/token/eth/index.js +0 -13
  339. package/dist/entities/token/eth/index.js.map +0 -1
  340. package/dist/entities/token/eth/index.mjs +0 -4
  341. package/dist/entities/token/eth/index.mjs.map +0 -1
  342. package/dist/entities/token/index.d.mts +0 -6
  343. package/dist/entities/token/index.d.ts +0 -6
  344. package/dist/entities/token/index.js +0 -27
  345. package/dist/entities/token/index.js.map +0 -1
  346. package/dist/entities/token/index.mjs +0 -14
  347. package/dist/entities/token/index.mjs.map +0 -1
  348. package/dist/index.d.mts +0 -37
  349. package/dist/index.d.ts +0 -37
  350. package/dist/index.js +0 -565
  351. package/dist/index.js.map +0 -1
  352. package/dist/index.mjs +0 -47
  353. package/dist/index.mjs.map +0 -1
  354. package/dist/types.d.mts +0 -607
  355. package/dist/types.d.ts +0 -607
  356. package/dist/types.js +0 -30
  357. package/dist/types.js.map +0 -1
  358. package/dist/types.mjs +0 -5
  359. package/dist/types.mjs.map +0 -1
  360. package/dist/utils/airlock.d.mts +0 -11
  361. package/dist/utils/airlock.d.ts +0 -11
  362. package/dist/utils/airlock.js +0 -26
  363. package/dist/utils/airlock.js.map +0 -1
  364. package/dist/utils/airlock.mjs +0 -5
  365. package/dist/utils/airlock.mjs.map +0 -1
  366. package/dist/utils/balanceDelta.d.mts +0 -10
  367. package/dist/utils/balanceDelta.d.ts +0 -10
  368. package/dist/utils/balanceDelta.js +0 -12
  369. package/dist/utils/balanceDelta.js.map +0 -1
  370. package/dist/utils/balanceDelta.mjs +0 -3
  371. package/dist/utils/balanceDelta.mjs.map +0 -1
  372. package/dist/utils/computeOptimalGamma.d.mts +0 -7
  373. package/dist/utils/computeOptimalGamma.d.ts +0 -7
  374. package/dist/utils/computeOptimalGamma.js +0 -12
  375. package/dist/utils/computeOptimalGamma.js.map +0 -1
  376. package/dist/utils/computeOptimalGamma.mjs +0 -3
  377. package/dist/utils/computeOptimalGamma.mjs.map +0 -1
  378. package/dist/utils/dopplerHookMigrator.d.mts +0 -11
  379. package/dist/utils/dopplerHookMigrator.d.ts +0 -11
  380. package/dist/utils/dopplerHookMigrator.js +0 -12
  381. package/dist/utils/dopplerHookMigrator.js.map +0 -1
  382. package/dist/utils/dopplerHookMigrator.mjs +0 -3
  383. package/dist/utils/dopplerHookMigrator.mjs.map +0 -1
  384. package/dist/utils/index.d.mts +0 -14
  385. package/dist/utils/index.d.ts +0 -14
  386. package/dist/utils/index.js +0 -195
  387. package/dist/utils/index.js.map +0 -1
  388. package/dist/utils/index.mjs +0 -22
  389. package/dist/utils/index.mjs.map +0 -1
  390. package/dist/utils/isToken0Expected.d.mts +0 -13
  391. package/dist/utils/isToken0Expected.d.ts +0 -13
  392. package/dist/utils/isToken0Expected.js +0 -12
  393. package/dist/utils/isToken0Expected.js.map +0 -1
  394. package/dist/utils/isToken0Expected.mjs +0 -3
  395. package/dist/utils/isToken0Expected.mjs.map +0 -1
  396. package/dist/utils/marketCapHelpers.d.mts +0 -259
  397. package/dist/utils/marketCapHelpers.d.ts +0 -259
  398. package/dist/utils/marketCapHelpers.js +0 -58
  399. package/dist/utils/marketCapHelpers.js.map +0 -1
  400. package/dist/utils/marketCapHelpers.mjs +0 -5
  401. package/dist/utils/marketCapHelpers.mjs.map +0 -1
  402. package/dist/utils/poolKey.d.mts +0 -17
  403. package/dist/utils/poolKey.d.ts +0 -17
  404. package/dist/utils/poolKey.js +0 -12
  405. package/dist/utils/poolKey.js.map +0 -1
  406. package/dist/utils/poolKey.mjs +0 -3
  407. package/dist/utils/poolKey.mjs.map +0 -1
  408. package/dist/utils/priceHelpers.d.mts +0 -86
  409. package/dist/utils/priceHelpers.d.ts +0 -86
  410. package/dist/utils/priceHelpers.js +0 -41
  411. package/dist/utils/priceHelpers.js.map +0 -1
  412. package/dist/utils/priceHelpers.mjs +0 -4
  413. package/dist/utils/priceHelpers.mjs.map +0 -1
  414. package/dist/utils/tickMath.d.mts +0 -72
  415. package/dist/utils/tickMath.d.ts +0 -72
  416. package/dist/utils/tickMath.js +0 -60
  417. package/dist/utils/tickMath.js.map +0 -1
  418. package/dist/utils/tickMath.mjs +0 -3
  419. package/dist/utils/tickMath.mjs.map +0 -1
  420. package/dist/utils/tokenAddressMiner.d.mts +0 -37
  421. package/dist/utils/tokenAddressMiner.d.ts +0 -37
  422. package/dist/utils/tokenAddressMiner.js +0 -19
  423. package/dist/utils/tokenAddressMiner.js.map +0 -1
  424. package/dist/utils/tokenAddressMiner.mjs +0 -10
  425. package/dist/utils/tokenAddressMiner.mjs.map +0 -1
@@ -1,36 +0,0 @@
1
- import { encodeAbiParameters } from 'viem';
2
-
3
- // src/utils/dopplerHookMigrator.ts
4
- function encodeRehypeDopplerHookMigratorCalldata(params) {
5
- return encodeAbiParameters(
6
- [
7
- { type: "address" },
8
- // numeraire
9
- { type: "address" },
10
- // buybackDestination
11
- { type: "uint24" },
12
- // customFee
13
- { type: "uint256" },
14
- // assetBuybackPercentWad
15
- { type: "uint256" },
16
- // numeraireBuybackPercentWad
17
- { type: "uint256" },
18
- // beneficiaryPercentWad
19
- { type: "uint256" }
20
- // lpPercentWad
21
- ],
22
- [
23
- params.numeraire,
24
- params.config.buybackDestination,
25
- params.config.customFee,
26
- params.config.assetBuybackPercentWad,
27
- params.config.numeraireBuybackPercentWad,
28
- params.config.beneficiaryPercentWad,
29
- params.config.lpPercentWad
30
- ]
31
- );
32
- }
33
-
34
- export { encodeRehypeDopplerHookMigratorCalldata };
35
- //# sourceMappingURL=chunk-GDODJJ7D.mjs.map
36
- //# sourceMappingURL=chunk-GDODJJ7D.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/dopplerHookMigrator.ts"],"names":[],"mappings":";;;AAGO,SAAS,wCAAwC,MAAA,EAGhD;AACN,EAAA,OAAO,mBAAA;AAAA,IACL;AAAA,MACE,EAAE,MAAM,SAAA,EAAU;AAAA;AAAA,MAClB,EAAE,MAAM,SAAA,EAAU;AAAA;AAAA,MAClB,EAAE,MAAM,QAAA,EAAS;AAAA;AAAA,MACjB,EAAE,MAAM,SAAA,EAAU;AAAA;AAAA,MAClB,EAAE,MAAM,SAAA,EAAU;AAAA;AAAA,MAClB,EAAE,MAAM,SAAA,EAAU;AAAA;AAAA,MAClB,EAAE,MAAM,SAAA;AAAU;AAAA,KACpB;AAAA,IACA;AAAA,MACE,MAAA,CAAO,SAAA;AAAA,MACP,OAAO,MAAA,CAAO,kBAAA;AAAA,MACd,OAAO,MAAA,CAAO,SAAA;AAAA,MACd,OAAO,MAAA,CAAO,sBAAA;AAAA,MACd,OAAO,MAAA,CAAO,0BAAA;AAAA,MACd,OAAO,MAAA,CAAO,qBAAA;AAAA,MACd,OAAO,MAAA,CAAO;AAAA;AAChB,GACF;AACF","file":"chunk-GDODJJ7D.mjs","sourcesContent":["import { encodeAbiParameters, type Address, type Hex } from 'viem';\nimport type { RehypeDopplerHookMigratorConfig } from '../types';\n\nexport function encodeRehypeDopplerHookMigratorCalldata(params: {\n numeraire: Address;\n config: RehypeDopplerHookMigratorConfig;\n}): Hex {\n return encodeAbiParameters(\n [\n { type: 'address' }, // numeraire\n { type: 'address' }, // buybackDestination\n { type: 'uint24' }, // customFee\n { type: 'uint256' }, // assetBuybackPercentWad\n { type: 'uint256' }, // numeraireBuybackPercentWad\n { type: 'uint256' }, // beneficiaryPercentWad\n { type: 'uint256' }, // lpPercentWad\n ],\n [\n params.numeraire,\n params.config.buybackDestination,\n params.config.customFee,\n params.config.assetBuybackPercentWad,\n params.config.numeraireBuybackPercentWad,\n params.config.beneficiaryPercentWad,\n params.config.lpPercentWad,\n ],\n );\n}\n"]}
@@ -1,278 +0,0 @@
1
- import { isToken0Expected } from './chunk-ABT6AT7C.mjs';
2
- import { MAX_TICK, MIN_TICK } from './chunk-25GEBO3B.mjs';
3
-
4
- // src/utils/marketCapHelpers.ts
5
- function getMaxTickRounded(tickSpacing) {
6
- return Math.floor(MAX_TICK / tickSpacing) * tickSpacing;
7
- }
8
- function marketCapToTokenPrice(marketCapUSD, tokenSupply, tokenDecimals = 18) {
9
- if (marketCapUSD <= 0) {
10
- throw new Error("Market cap must be positive");
11
- }
12
- if (tokenSupply <= 0n) {
13
- throw new Error("Token supply must be positive");
14
- }
15
- const supplyNum = Number(tokenSupply) / 10 ** tokenDecimals;
16
- return marketCapUSD / supplyNum;
17
- }
18
- function tokenPriceToRatio(tokenPriceUSD, numerairePriceUSD, tokenDecimals = 18, numeraireDecimals = 18) {
19
- if (tokenPriceUSD <= 0) {
20
- throw new Error("Token price must be positive");
21
- }
22
- if (numerairePriceUSD <= 0) {
23
- throw new Error("Numeraire price must be positive");
24
- }
25
- const ratio = numerairePriceUSD / tokenPriceUSD;
26
- const decimalAdjustment = 10 ** (tokenDecimals - numeraireDecimals);
27
- return ratio * decimalAdjustment;
28
- }
29
- function ratioToTick(ratio) {
30
- if (ratio <= 0) {
31
- throw new Error("Ratio must be positive");
32
- }
33
- return Math.log(ratio) / Math.log(1.0001);
34
- }
35
- function isToken1(tokenAddress, numeraireAddress) {
36
- return tokenAddress.toLowerCase() > numeraireAddress.toLowerCase();
37
- }
38
- function _computeRawTick(marketCapUSD, tokenSupply, numerairePriceUSD, tokenDecimals, numeraireDecimals, tickSpacing) {
39
- if (marketCapUSD <= 0) {
40
- throw new Error("Market cap must be positive");
41
- }
42
- const tokenPrice = marketCapToTokenPrice(
43
- marketCapUSD,
44
- tokenSupply,
45
- tokenDecimals
46
- );
47
- const ratio = tokenPriceToRatio(
48
- tokenPrice,
49
- numerairePriceUSD,
50
- tokenDecimals,
51
- numeraireDecimals
52
- );
53
- const rawTick = ratioToTick(ratio);
54
- const alignedTick = Math.floor(rawTick / tickSpacing) * tickSpacing;
55
- if (alignedTick < MIN_TICK || alignedTick > MAX_TICK) {
56
- throw new Error(
57
- `Calculated tick ${alignedTick} is out of bounds [${MIN_TICK}, ${MAX_TICK}]. Market cap ${marketCapUSD.toLocaleString()} may be too extreme for the given parameters.`
58
- );
59
- }
60
- return alignedTick;
61
- }
62
- function marketCapToTicksForStaticAuction(params) {
63
- const {
64
- marketCapRange,
65
- tokenSupply,
66
- numerairePriceUSD,
67
- tickSpacing,
68
- tokenDecimals = 18,
69
- numeraireDecimals = 18
70
- } = params;
71
- if (marketCapRange.start <= 0) {
72
- throw new Error("Start market cap must be positive");
73
- }
74
- if (marketCapRange.end <= 0) {
75
- throw new Error("End market cap must be positive");
76
- }
77
- if (marketCapRange.start >= marketCapRange.end) {
78
- throw new Error("Start market cap must be less than end market cap");
79
- }
80
- const tickAtStart = _computeRawTick(
81
- marketCapRange.start,
82
- tokenSupply,
83
- numerairePriceUSD,
84
- tokenDecimals,
85
- numeraireDecimals,
86
- tickSpacing
87
- );
88
- const tickAtEnd = _computeRawTick(
89
- marketCapRange.end,
90
- tokenSupply,
91
- numerairePriceUSD,
92
- tokenDecimals,
93
- numeraireDecimals,
94
- tickSpacing
95
- );
96
- const startTick = Math.min(Math.abs(tickAtStart), Math.abs(tickAtEnd));
97
- const endTick = Math.max(Math.abs(tickAtStart), Math.abs(tickAtEnd));
98
- if (startTick === endTick) {
99
- throw new Error(
100
- `Market cap range ${marketCapRange.start.toLocaleString()} - ${marketCapRange.end.toLocaleString()} resulted in same tick (${startTick}). Try a wider range or smaller tick spacing.`
101
- );
102
- }
103
- return { startTick, endTick };
104
- }
105
- function marketCapToTicksForDynamicAuction(params) {
106
- const {
107
- marketCapRange,
108
- tokenSupply,
109
- numerairePriceUSD,
110
- numeraire,
111
- tickSpacing,
112
- tokenDecimals = 18,
113
- numeraireDecimals = 18
114
- } = params;
115
- if (marketCapRange.start <= 0 || marketCapRange.end <= 0) {
116
- throw new Error("Market cap values must be positive");
117
- }
118
- if (marketCapRange.start >= marketCapRange.end) {
119
- throw new Error("Start market cap must be less than end market cap");
120
- }
121
- const tickAtStart = _computeRawTick(
122
- marketCapRange.start,
123
- tokenSupply,
124
- numerairePriceUSD,
125
- tokenDecimals,
126
- numeraireDecimals,
127
- tickSpacing
128
- );
129
- const tickAtEnd = _computeRawTick(
130
- marketCapRange.end,
131
- tokenSupply,
132
- numerairePriceUSD,
133
- tokenDecimals,
134
- numeraireDecimals,
135
- tickSpacing
136
- );
137
- const tokenIsToken0 = isToken0Expected(numeraire);
138
- if (tokenIsToken0) {
139
- const startTick = -Math.min(Math.abs(tickAtStart), Math.abs(tickAtEnd));
140
- const endTick = -Math.max(Math.abs(tickAtStart), Math.abs(tickAtEnd));
141
- if (startTick === endTick) {
142
- throw new Error(
143
- `Market cap range resulted in same tick (${startTick}). Try a wider range.`
144
- );
145
- }
146
- return { startTick, endTick };
147
- } else {
148
- const startTick = Math.min(Math.abs(tickAtStart), Math.abs(tickAtEnd));
149
- const endTick = Math.max(Math.abs(tickAtStart), Math.abs(tickAtEnd));
150
- if (startTick === endTick) {
151
- throw new Error(
152
- `Market cap range resulted in same tick (${startTick}). Try a wider range.`
153
- );
154
- }
155
- return { startTick, endTick };
156
- }
157
- }
158
- function marketCapToTicksForMulticurve(params) {
159
- const {
160
- marketCapLower,
161
- marketCapUpper,
162
- tokenSupply,
163
- numerairePriceUSD,
164
- tickSpacing,
165
- tokenDecimals = 18,
166
- numeraireDecimals = 18
167
- } = params;
168
- if (marketCapLower <= 0) {
169
- throw new Error("Lower market cap must be positive");
170
- }
171
- if (marketCapUpper !== "max" && marketCapUpper <= 0) {
172
- throw new Error("Upper market cap must be positive");
173
- }
174
- if (marketCapUpper !== "max" && marketCapLower >= marketCapUpper) {
175
- throw new Error("Lower market cap must be less than upper market cap");
176
- }
177
- const tickAtLower = -_computeRawTick(
178
- marketCapLower,
179
- tokenSupply,
180
- numerairePriceUSD,
181
- tokenDecimals,
182
- numeraireDecimals,
183
- tickSpacing
184
- );
185
- const tickAtUpper = marketCapUpper === "max" ? getMaxTickRounded(tickSpacing) : -_computeRawTick(
186
- marketCapUpper,
187
- tokenSupply,
188
- numerairePriceUSD,
189
- tokenDecimals,
190
- numeraireDecimals,
191
- tickSpacing
192
- );
193
- const tickLower = Math.min(tickAtLower, tickAtUpper);
194
- const tickUpper = Math.max(tickAtLower, tickAtUpper);
195
- if (tickLower === tickUpper) {
196
- const upperLabel = marketCapUpper === "max" ? "max" : `$${marketCapUpper.toLocaleString()}`;
197
- throw new Error(
198
- `Market cap range $${marketCapLower.toLocaleString()} - ${upperLabel} resulted in same tick (${tickLower}). Try a wider range or smaller tick spacing.`
199
- );
200
- }
201
- return { tickLower, tickUpper };
202
- }
203
- function marketCapToTickForMulticurve(params) {
204
- const {
205
- marketCapUSD,
206
- tokenSupply,
207
- numerairePriceUSD,
208
- tickSpacing,
209
- tokenDecimals = 18,
210
- numeraireDecimals = 18
211
- } = params;
212
- const rawTick = -_computeRawTick(
213
- marketCapUSD,
214
- tokenSupply,
215
- numerairePriceUSD,
216
- tokenDecimals,
217
- numeraireDecimals,
218
- tickSpacing
219
- );
220
- return rawTick === 0 ? 0 : rawTick;
221
- }
222
- function applyTickOffsets(pegTick, offsetLower, offsetUpper, numeraire) {
223
- return {
224
- tickLower: pegTick + offsetLower,
225
- tickUpper: pegTick + offsetUpper
226
- };
227
- }
228
- function validateMarketCapParameters(marketCap, tokenSupply, tokenDecimals = 18) {
229
- const warnings = [];
230
- if (marketCap < 1e3) {
231
- warnings.push(
232
- `Market cap $${marketCap.toLocaleString()} is very small. Consider if this is intentional.`
233
- );
234
- }
235
- if (marketCap > 1e12) {
236
- warnings.push(
237
- `Market cap $${marketCap.toLocaleString()} is very large (> $1T). Verify this is correct.`
238
- );
239
- }
240
- const tokenPrice = marketCapToTokenPrice(
241
- marketCap,
242
- tokenSupply,
243
- tokenDecimals
244
- );
245
- if (tokenPrice < 1e-6) {
246
- warnings.push(
247
- `Implied token price $${tokenPrice.toExponential(2)} is very small. This may cause precision issues.`
248
- );
249
- }
250
- if (tokenPrice > 1e6) {
251
- warnings.push(
252
- `Implied token price $${tokenPrice.toLocaleString()} is very large. Verify your token supply and market cap values.`
253
- );
254
- }
255
- return {
256
- valid: warnings.length === 0,
257
- warnings
258
- };
259
- }
260
- function tickToMarketCap(params) {
261
- const {
262
- tick,
263
- tokenSupply,
264
- numerairePriceUSD,
265
- tokenDecimals = 18,
266
- numeraireDecimals = 18
267
- } = params;
268
- const adjustedTick = Math.abs(tick);
269
- const ratio = Math.pow(1.0001, adjustedTick);
270
- const decimalAdjustment = 10 ** (tokenDecimals - numeraireDecimals);
271
- const tokenPriceUSD = numerairePriceUSD / (ratio / decimalAdjustment);
272
- const supplyNum = Number(tokenSupply) / 10 ** tokenDecimals;
273
- return tokenPriceUSD * supplyNum;
274
- }
275
-
276
- export { applyTickOffsets, getMaxTickRounded, isToken1, marketCapToTickForMulticurve, marketCapToTicksForDynamicAuction, marketCapToTicksForMulticurve, marketCapToTicksForStaticAuction, marketCapToTokenPrice, ratioToTick, tickToMarketCap, tokenPriceToRatio, validateMarketCapParameters };
277
- //# sourceMappingURL=chunk-GSBQIVME.mjs.map
278
- //# sourceMappingURL=chunk-GSBQIVME.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/marketCapHelpers.ts"],"names":[],"mappings":"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","file":"chunk-GSBQIVME.mjs","sourcesContent":["/**\n * Market cap conversion utilities for token launches\n *\n * These utilities convert between market cap (USD) and Uniswap ticks\n * following the mathematical relationship:\n *\n * Market Cap (USD) → Token Price (USD) → Ratio (numeraire/token) → Tick\n *\n * Based on reference implementation: plan/priceMultiCurve.py\n */\n\nimport type { Address } from 'viem';\nimport type {\n MarketCapRange,\n MarketCapValidationResult,\n StaticAuctionTickParams,\n DynamicAuctionTickParams,\n MulticurveTickRangeParams,\n MulticurveTickParams,\n TickToMarketCapParams,\n} from '../types';\nimport { MIN_TICK, MAX_TICK } from './tickMath';\nimport { isToken0Expected } from './isToken0Expected';\n\n// Re-export types from types.ts for convenience\nexport type {\n MarketCapRange,\n MarketCapValidationResult,\n StaticAuctionTickParams,\n DynamicAuctionTickParams,\n MulticurveTickRangeParams,\n MulticurveTickParams,\n TickToMarketCapParams,\n} from '../types';\n\nexport function getMaxTickRounded(tickSpacing: number): number {\n return Math.floor(MAX_TICK / tickSpacing) * tickSpacing;\n}\n\n/**\n * Convert market cap to token price\n *\n * @param marketCapUSD - Market capitalization in USD\n * @param tokenSupply - Total token supply (as bigint with decimals, e.g., parseEther('1000000000'))\n * @param tokenDecimals - Token decimals (default: 18)\n * @returns Price of one token in USD\n *\n * @example\n * ```ts\n * // $1M market cap with 1B tokens (18 decimals)\n * const price = marketCapToTokenPrice(1_000_000, parseEther('1000000000'))\n * // Returns: 0.001 (each token is worth $0.001)\n * ```\n */\nexport function marketCapToTokenPrice(\n marketCapUSD: number,\n tokenSupply: bigint,\n tokenDecimals: number = 18,\n): number {\n if (marketCapUSD <= 0) {\n throw new Error('Market cap must be positive');\n }\n if (tokenSupply <= 0n) {\n throw new Error('Token supply must be positive');\n }\n\n // Convert supply from bigint with decimals to human-readable number\n const supplyNum = Number(tokenSupply) / 10 ** tokenDecimals;\n return marketCapUSD / supplyNum;\n}\n\n/**\n * Convert token price to price ratio (numeraire per token)\n *\n * @param tokenPriceUSD - Price of one token in USD\n * @param numerairePriceUSD - Price of numeraire (e.g., ETH) in USD\n * @param tokenDecimals - Token decimals (default: 18)\n * @param numeraireDecimals - Numeraire decimals (default: 18)\n * @returns Price ratio adjusted for decimals\n *\n * @example\n * ```ts\n * // Token at $0.001, ETH at $3000, both 18 decimals\n * const ratio = tokenPriceToRatio(0.001, 3000, 18, 18)\n * // Returns: 3,000,000 (3M ETH wei per token wei at this ratio)\n * ```\n */\nexport function tokenPriceToRatio(\n tokenPriceUSD: number,\n numerairePriceUSD: number,\n tokenDecimals: number = 18,\n numeraireDecimals: number = 18,\n): number {\n if (tokenPriceUSD <= 0) {\n throw new Error('Token price must be positive');\n }\n if (numerairePriceUSD <= 0) {\n throw new Error('Numeraire price must be positive');\n }\n\n // How much numeraire per token (in USD terms first)\n // numerairePriceUSD / tokenPriceUSD = numeraire units per token\n const ratio = numerairePriceUSD / tokenPriceUSD;\n\n // Adjust for decimal differences\n // Formula: (numeraire / tokenPrice) * (10 ** (assetDecimals - numeraireDecimals))\n const decimalAdjustment = 10 ** (tokenDecimals - numeraireDecimals);\n\n return ratio * decimalAdjustment;\n}\n\n/**\n * Convert ratio to tick using Uniswap's formula: tick = log(ratio) / log(1.0001)\n *\n * @param ratio - Price ratio (must be positive)\n * @returns Raw tick value (before spacing adjustment)\n *\n * @example\n * ```ts\n * ratioToTick(1) // Returns: 0\n * ratioToTick(1.0001) // Returns: ~1\n * ratioToTick(Math.pow(1.0001, 1000)) // Returns: ~1000\n * ```\n */\nexport function ratioToTick(ratio: number): number {\n if (ratio <= 0) {\n throw new Error('Ratio must be positive');\n }\n\n // Uniswap tick formula: tick = log(price) / log(1.0001)\n return Math.log(ratio) / Math.log(1.0001);\n}\n\n/**\n * Determine if the new token will be token1 in the Uniswap pair\n *\n * Uniswap orders tokens by address (token0 < token1 in hex comparison).\n * This affects how ticks are interpreted for price calculations.\n *\n * @param tokenAddress - Address of the new token\n * @param numeraireAddress - Address of the numeraire (e.g., WETH)\n * @returns true if token will be token1, false if token0\n *\n * @example\n * ```ts\n * isToken1('0xB000...', '0xA000...') // true (B > A)\n * isToken1('0xA000...', '0xB000...') // false (A < B)\n * ```\n */\nexport function isToken1(\n tokenAddress: string,\n numeraireAddress: string,\n): boolean {\n return tokenAddress.toLowerCase() > numeraireAddress.toLowerCase();\n}\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// CORE TICK COMPUTATION (Internal)\n// ═══════════════════════════════════════════════════════════════════════════════\n\n/**\n * Core tick computation - NO sign manipulation.\n * Returns the raw mathematical tick for a given market cap.\n *\n * @internal Not exported - use auction-specific functions instead.\n */\nfunction _computeRawTick(\n marketCapUSD: number,\n tokenSupply: bigint,\n numerairePriceUSD: number,\n tokenDecimals: number,\n numeraireDecimals: number,\n tickSpacing: number,\n): number {\n if (marketCapUSD <= 0) {\n throw new Error('Market cap must be positive');\n }\n\n // Step 1: Market cap → token price\n const tokenPrice = marketCapToTokenPrice(\n marketCapUSD,\n tokenSupply,\n tokenDecimals,\n );\n\n // Step 2: Token price → ratio\n const ratio = tokenPriceToRatio(\n tokenPrice,\n numerairePriceUSD,\n tokenDecimals,\n numeraireDecimals,\n );\n\n // Step 3: Ratio → raw tick\n const rawTick = ratioToTick(ratio);\n\n // Step 4: Align to tick spacing (floor division)\n const alignedTick = Math.floor(rawTick / tickSpacing) * tickSpacing;\n\n // Step 5: Bounds check\n if (alignedTick < MIN_TICK || alignedTick > MAX_TICK) {\n throw new Error(\n `Calculated tick ${alignedTick} is out of bounds [${MIN_TICK}, ${MAX_TICK}]. ` +\n `Market cap ${marketCapUSD.toLocaleString()} may be too extreme for the given parameters.`,\n );\n }\n\n return alignedTick;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════════\n// AUCTION-SPECIFIC TICK FUNCTIONS\n// ═══════════════════════════════════════════════════════════════════════════════\n\n/**\n * Convert market cap range to ticks for V3 Static Auctions.\n *\n * V3 Static auctions ALWAYS use positive ticks with startTick < endTick.\n * This is because CREATE2 mining ensures token address > numeraire (token1).\n *\n * @param params - Configuration object with market cap range and token parameters\n * @returns { startTick, endTick } - positive ticks, startTick < endTick\n *\n * @example\n * ```ts\n * const { startTick, endTick } = marketCapToTicksForStaticAuction({\n * marketCapRange: { start: 100_000, end: 10_000_000 },\n * tokenSupply: parseEther('1000000000'),\n * numerairePriceUSD: 3000,\n * tickSpacing: 60,\n * })\n * // Returns: { startTick: 120000, endTick: 170000 } (both positive)\n * ```\n */\nexport function marketCapToTicksForStaticAuction(\n params: StaticAuctionTickParams,\n): { startTick: number; endTick: number } {\n const {\n marketCapRange,\n tokenSupply,\n numerairePriceUSD,\n tickSpacing,\n tokenDecimals = 18,\n numeraireDecimals = 18,\n } = params;\n\n if (marketCapRange.start <= 0) {\n throw new Error('Start market cap must be positive');\n }\n if (marketCapRange.end <= 0) {\n throw new Error('End market cap must be positive');\n }\n if (marketCapRange.start >= marketCapRange.end) {\n throw new Error('Start market cap must be less than end market cap');\n }\n\n // Compute raw ticks\n const tickAtStart = _computeRawTick(\n marketCapRange.start,\n tokenSupply,\n numerairePriceUSD,\n tokenDecimals,\n numeraireDecimals,\n tickSpacing,\n );\n const tickAtEnd = _computeRawTick(\n marketCapRange.end,\n tokenSupply,\n numerairePriceUSD,\n tokenDecimals,\n numeraireDecimals,\n tickSpacing,\n );\n\n // V3 Static: Always positive ticks, startTick < endTick\n // Take absolute value and ensure proper ordering\n const startTick = Math.min(Math.abs(tickAtStart), Math.abs(tickAtEnd));\n const endTick = Math.max(Math.abs(tickAtStart), Math.abs(tickAtEnd));\n\n if (startTick === endTick) {\n throw new Error(\n `Market cap range ${marketCapRange.start.toLocaleString()} - ${marketCapRange.end.toLocaleString()} ` +\n `resulted in same tick (${startTick}). Try a wider range or smaller tick spacing.`,\n );\n }\n\n return { startTick, endTick };\n}\n\n/**\n * Convert market cap range to ticks for V4 Dynamic Auctions (Doppler).\n *\n * Dynamic auctions compute tick sign based on expected token ordering:\n * - Token1 (ETH numeraire): positive ticks, startTick < endTick\n * - Token0 (stablecoin numeraire): negative ticks, startTick > endTick\n *\n * Unlike Multicurve, Doppler contract does NOT auto-flip ticks.\n *\n * @param params - Configuration object with market cap range and token parameters\n * @returns { startTick, endTick } with correct sign and ordering for Doppler contract\n *\n * @example\n * ```ts\n * // ETH numeraire (token1) - positive ticks\n * const eth = marketCapToTicksForDynamicAuction({\n * marketCapRange: { start: 50_000, end: 500_000 },\n * tokenSupply: parseEther('1000000000'),\n * numerairePriceUSD: 3000,\n * numeraire: WETH_ADDRESS,\n * tickSpacing: 30,\n * })\n * // Returns: { startTick: 120000, endTick: 170000 } (positive, ascending)\n *\n * // USDC numeraire (token0) - negative ticks\n * const usdc = marketCapToTicksForDynamicAuction({\n * marketCapRange: { start: 50_000, end: 500_000 },\n * tokenSupply: parseEther('1000000000'),\n * numerairePriceUSD: 1,\n * numeraire: USDC_ADDRESS,\n * tickSpacing: 30,\n * tokenDecimals: 18,\n * numeraireDecimals: 6,\n * })\n * // Returns: { startTick: -120000, endTick: -170000 } (negative, descending)\n * ```\n */\nexport function marketCapToTicksForDynamicAuction(\n params: DynamicAuctionTickParams,\n): { startTick: number; endTick: number } {\n const {\n marketCapRange,\n tokenSupply,\n numerairePriceUSD,\n numeraire,\n tickSpacing,\n tokenDecimals = 18,\n numeraireDecimals = 18,\n } = params;\n\n if (marketCapRange.start <= 0 || marketCapRange.end <= 0) {\n throw new Error('Market cap values must be positive');\n }\n if (marketCapRange.start >= marketCapRange.end) {\n throw new Error('Start market cap must be less than end market cap');\n }\n\n // Compute raw ticks\n const tickAtStart = _computeRawTick(\n marketCapRange.start,\n tokenSupply,\n numerairePriceUSD,\n tokenDecimals,\n numeraireDecimals,\n tickSpacing,\n );\n const tickAtEnd = _computeRawTick(\n marketCapRange.end,\n tokenSupply,\n numerairePriceUSD,\n tokenDecimals,\n numeraireDecimals,\n tickSpacing,\n );\n\n // Determine token ordering from numeraire address\n const tokenIsToken0 = isToken0Expected(numeraire);\n\n if (tokenIsToken0) {\n // Token0 (stablecoin numeraire): negative ticks, startTick > endTick\n const startTick = -Math.min(Math.abs(tickAtStart), Math.abs(tickAtEnd));\n const endTick = -Math.max(Math.abs(tickAtStart), Math.abs(tickAtEnd));\n\n if (startTick === endTick) {\n throw new Error(\n `Market cap range resulted in same tick (${startTick}). Try a wider range.`,\n );\n }\n\n return { startTick, endTick }; // e.g., { -120000, -170000 }\n } else {\n // Token1 (ETH numeraire): positive ticks, startTick < endTick\n const startTick = Math.min(Math.abs(tickAtStart), Math.abs(tickAtEnd));\n const endTick = Math.max(Math.abs(tickAtStart), Math.abs(tickAtEnd));\n\n if (startTick === endTick) {\n throw new Error(\n `Market cap range resulted in same tick (${startTick}). Try a wider range.`,\n );\n }\n\n return { startTick, endTick }; // e.g., { 120000, 170000 }\n }\n}\n\n/**\n * Convert market cap range to ticks for V4 Multicurve pools.\n *\n * Tick sign depends on the underlying price ratio - can be positive or negative.\n * The contract's adjustCurves() handles token ordering internally.\n *\n * @param params - Configuration object with market cap range and token parameters\n * @returns { tickLower, tickUpper } - tick range where tickLower < tickUpper\n *\n * @example\n * ```ts\n * const { tickLower, tickUpper } = marketCapToTicksForMulticurve({\n * marketCapLower: 500_000,\n * marketCapUpper: 5_000_000,\n * tokenSupply: parseEther('1000000000'),\n * numerairePriceUSD: 3000,\n * tickSpacing: 60,\n * })\n * ```\n */\nexport function marketCapToTicksForMulticurve(\n params: MulticurveTickRangeParams,\n): { tickLower: number; tickUpper: number } {\n const {\n marketCapLower,\n marketCapUpper,\n tokenSupply,\n numerairePriceUSD,\n tickSpacing,\n tokenDecimals = 18,\n numeraireDecimals = 18,\n } = params;\n\n if (marketCapLower <= 0) {\n throw new Error('Lower market cap must be positive');\n }\n if (marketCapUpper !== 'max' && marketCapUpper <= 0) {\n throw new Error('Upper market cap must be positive');\n }\n if (marketCapUpper !== 'max' && marketCapLower >= marketCapUpper) {\n throw new Error('Lower market cap must be less than upper market cap');\n }\n\n // Compute raw ticks\n const tickAtLower = -_computeRawTick(\n marketCapLower,\n tokenSupply,\n numerairePriceUSD,\n tokenDecimals,\n numeraireDecimals,\n tickSpacing,\n );\n const tickAtUpper =\n marketCapUpper === 'max'\n ? getMaxTickRounded(tickSpacing)\n : -_computeRawTick(\n marketCapUpper,\n tokenSupply,\n numerairePriceUSD,\n tokenDecimals,\n numeraireDecimals,\n tickSpacing,\n );\n\n // Use natural tick ordering (lower market cap = lower tick value)\n const tickLower = Math.min(tickAtLower, tickAtUpper);\n const tickUpper = Math.max(tickAtLower, tickAtUpper);\n\n if (tickLower === tickUpper) {\n const upperLabel =\n marketCapUpper === 'max' ? 'max' : `$${marketCapUpper.toLocaleString()}`;\n throw new Error(\n `Market cap range $${marketCapLower.toLocaleString()} - ${upperLabel} ` +\n `resulted in same tick (${tickLower}). Try a wider range or smaller tick spacing.`,\n );\n }\n\n return { tickLower, tickUpper };\n}\n\n/**\n * Convert a single market cap to a tick for Multicurve use cases.\n *\n * Used for farTick and pegTick calculations.\n * Tick sign depends on the underlying price ratio - can be positive or negative.\n *\n * @param params - Configuration object with market cap and token parameters\n * @returns Tick value (sign depends on price ratio)\n *\n * @example\n * ```ts\n * const farTick = marketCapToTickForMulticurve({\n * marketCapUSD: 50_000_000,\n * tokenSupply: supply,\n * numerairePriceUSD: 3000,\n * tickSpacing: 60,\n * })\n * ```\n */\nexport function marketCapToTickForMulticurve(\n params: MulticurveTickParams,\n): number {\n const {\n marketCapUSD,\n tokenSupply,\n numerairePriceUSD,\n tickSpacing,\n tokenDecimals = 18,\n numeraireDecimals = 18,\n } = params;\n\n // Multicurve uses a canonical tick space where the contract's adjustCurves()\n // resolves token ordering. This must match marketCapToTicksForMulticurve().\n const rawTick = -_computeRawTick(\n marketCapUSD,\n tokenSupply,\n numerairePriceUSD,\n tokenDecimals,\n numeraireDecimals,\n tickSpacing,\n );\n\n // Normalize -0 to 0\n return rawTick === 0 ? 0 : rawTick;\n}\n\n/**\n * Apply curvature offsets to a peg tick for Multicurve positions.\n *\n * Tick sign depends on the underlying price ratio - can be positive or negative.\n * The contract's adjustCurves() handles token ordering internally.\n *\n * @example\n * ```ts\n * // Peg at 200000, curve extends 10000 ticks toward higher market cap\n * applyTickOffsets(200000, 0, 10000, WETH)\n * // Returns: { tickLower: 200000, tickUpper: 210000 }\n * ```\n */\nexport function applyTickOffsets(\n pegTick: number,\n offsetLower: number,\n offsetUpper: number,\n numeraire: Address,\n): { tickLower: number; tickUpper: number } {\n void numeraire; // Kept for API compatibility\n return {\n tickLower: pegTick + offsetLower,\n tickUpper: pegTick + offsetUpper,\n };\n}\n\n/**\n * Validate market cap parameters and return warnings for unusual values\n *\n * This doesn't prevent execution but helps catch potential mistakes:\n * - Very small market caps (< $1,000)\n * - Very large market caps (> $1 trillion)\n * - Extreme token prices (< $0.000001 or > $1M)\n *\n * @param marketCap - Market cap value to validate\n * @param tokenSupply - Token supply (with decimals)\n * @param tokenDecimals - Token decimals (default: 18)\n * @returns Validation result with warnings array\n *\n * @example\n * ```ts\n * const result = validateMarketCapParameters(500, parseEther('1000000'))\n * if (result.warnings.length > 0) {\n * console.warn('Warnings:', result.warnings)\n * }\n * ```\n */\nexport function validateMarketCapParameters(\n marketCap: number,\n tokenSupply: bigint,\n tokenDecimals: number = 18,\n): MarketCapValidationResult {\n const warnings: string[] = [];\n\n // Check for unreasonably small market caps\n if (marketCap < 1000) {\n warnings.push(\n `Market cap $${marketCap.toLocaleString()} is very small. Consider if this is intentional.`,\n );\n }\n\n // Check for unreasonably large market caps\n if (marketCap > 1_000_000_000_000) {\n warnings.push(\n `Market cap $${marketCap.toLocaleString()} is very large (> $1T). Verify this is correct.`,\n );\n }\n\n // Calculate implied token price\n const tokenPrice = marketCapToTokenPrice(\n marketCap,\n tokenSupply,\n tokenDecimals,\n );\n\n // Check for extremely small token prices\n if (tokenPrice < 0.000001) {\n warnings.push(\n `Implied token price $${tokenPrice.toExponential(2)} is very small. ` +\n `This may cause precision issues.`,\n );\n }\n\n // Check for extremely large token prices\n if (tokenPrice > 1_000_000) {\n warnings.push(\n `Implied token price $${tokenPrice.toLocaleString()} is very large. ` +\n `Verify your token supply and market cap values.`,\n );\n }\n\n return {\n valid: warnings.length === 0,\n warnings,\n };\n}\n\n/**\n * Calculate market cap from a tick (reverse conversion)\n *\n * Useful for displaying what market cap a given tick represents.\n * Works with ticks from any auction type (Static, Dynamic, Multicurve).\n *\n * @param params - Configuration object with tick and token parameters\n * @returns Market cap in USD\n *\n * @example\n * ```ts\n * // Works with negative ticks (Multicurve)\n * tickToMarketCap({\n * tick: -156000,\n * tokenSupply: supply,\n * numerairePriceUSD: 3000,\n * })\n *\n * // Works with positive ticks (Static/Dynamic)\n * tickToMarketCap({\n * tick: 156000,\n * tokenSupply: supply,\n * numerairePriceUSD: 3000,\n * })\n * ```\n */\nexport function tickToMarketCap(params: TickToMarketCapParams): number {\n const {\n tick,\n tokenSupply,\n numerairePriceUSD,\n tokenDecimals = 18,\n numeraireDecimals = 18,\n } = params;\n\n // Use absolute value since tick sign varies by auction type\n // but the underlying ratio is always positive\n const adjustedTick = Math.abs(tick);\n\n // Tick → ratio (reverse of ratioToTick)\n const ratio = Math.pow(1.0001, adjustedTick);\n\n // Ratio → token price (reverse of tokenPriceToRatio)\n // ratio = (numerairePriceUSD / tokenPriceUSD) * 10^(tokenDecimals - numeraireDecimals)\n // tokenPriceUSD = numerairePriceUSD / (ratio / decimalAdjustment)\n const decimalAdjustment = 10 ** (tokenDecimals - numeraireDecimals);\n const tokenPriceUSD = numerairePriceUSD / (ratio / decimalAdjustment);\n\n // Token price → market cap (reverse of marketCapToTokenPrice)\n const supplyNum = Number(tokenSupply) / 10 ** tokenDecimals;\n return tokenPriceUSD * supplyNum;\n}\n"]}
@@ -1,40 +0,0 @@
1
- import { ADDRESSES } from './chunk-RIIVW6TQ.mjs';
2
-
3
- // src/utils/airlock.ts
4
- var airlockAbi = [
5
- {
6
- type: "function",
7
- name: "owner",
8
- inputs: [],
9
- outputs: [{ name: "", type: "address", internalType: "address" }],
10
- stateMutability: "view"
11
- }
12
- ];
13
- var getAirlockOwner = async (publicClient) => {
14
- const client = publicClient;
15
- const chainId = client.chain?.id;
16
- if (!chainId || !ADDRESSES[chainId]) {
17
- throw new Error("Unsupported chain ID for airlock owner lookup");
18
- }
19
- const airlockAddress = ADDRESSES[chainId].airlock;
20
- const owner = await client.readContract({
21
- address: airlockAddress,
22
- abi: airlockAbi,
23
- functionName: "owner"
24
- });
25
- if (!owner) throw new Error("Airlock owner not found");
26
- return owner;
27
- };
28
- var DEFAULT_AIRLOCK_BENEFICIARY_SHARES = BigInt(5e16);
29
- var createAirlockBeneficiary = (owner, shares = DEFAULT_AIRLOCK_BENEFICIARY_SHARES) => ({
30
- beneficiary: owner,
31
- shares
32
- });
33
- var getAirlockBeneficiary = async (publicClient, shares = DEFAULT_AIRLOCK_BENEFICIARY_SHARES) => {
34
- const owner = await getAirlockOwner(publicClient);
35
- return createAirlockBeneficiary(owner, shares);
36
- };
37
-
38
- export { DEFAULT_AIRLOCK_BENEFICIARY_SHARES, createAirlockBeneficiary, getAirlockBeneficiary, getAirlockOwner };
39
- //# sourceMappingURL=chunk-GSTY3GO7.mjs.map
40
- //# sourceMappingURL=chunk-GSTY3GO7.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/airlock.ts"],"names":[],"mappings":";;;AAIA,IAAM,UAAA,GAAa;AAAA,EACjB;AAAA,IACE,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,QAAQ,EAAC;AAAA,IACT,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,IAAI,IAAA,EAAM,SAAA,EAAW,YAAA,EAAc,SAAA,EAAW,CAAA;AAAA,IAChE,eAAA,EAAiB;AAAA;AAErB,CAAA;AAEO,IAAM,eAAA,GAAkB,OAC7B,YAAA,KACqB;AACrB,EAAA,MAAM,MAAA,GAAS,YAAA;AACf,EAAA,MAAM,OAAA,GAAU,OAAO,KAAA,EAAO,EAAA;AAC9B,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,SAAA,CAAU,OAAO,CAAA,EAAG;AACnC,IAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA,EACjE;AAEA,EAAA,MAAM,cAAA,GAAiB,SAAA,CAAU,OAAO,CAAA,CAAE,OAAA;AAE1C,EAAA,MAAM,KAAA,GAAQ,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,IACtC,OAAA,EAAS,cAAA;AAAA,IACT,GAAA,EAAK,UAAA;AAAA,IACL,YAAA,EAAc;AAAA,GACf,CAAA;AAED,EAAA,IAAI,CAAC,KAAA,EAAO,MAAM,IAAI,MAAM,yBAAyB,CAAA;AACrD,EAAA,OAAO,KAAA;AACT;AAGO,IAAM,kCAAA,GAAqC,OAAO,IAAI;AAEtD,IAAM,wBAAA,GAA2B,CACtC,KAAA,EACA,MAAA,GAAiB,kCAAA,MACI;AAAA,EACrB,WAAA,EAAa,KAAA;AAAA,EACb;AACF,CAAA;AAEO,IAAM,qBAAA,GAAwB,OACnC,YAAA,EACA,MAAA,GAAiB,kCAAA,KACY;AAC7B,EAAA,MAAM,KAAA,GAAQ,MAAM,eAAA,CAAgB,YAAY,CAAA;AAChD,EAAA,OAAO,wBAAA,CAAyB,OAAO,MAAM,CAAA;AAC/C","file":"chunk-GSTY3GO7.mjs","sourcesContent":["import type { PublicClient, Address } from 'viem';\nimport { ADDRESSES, type SupportedChainId } from '../addresses';\nimport type { BeneficiaryData } from '../types';\n\nconst airlockAbi = [\n {\n type: 'function',\n name: 'owner',\n inputs: [],\n outputs: [{ name: '', type: 'address', internalType: 'address' }],\n stateMutability: 'view',\n },\n] as const;\n\nexport const getAirlockOwner = async (\n publicClient: unknown,\n): Promise<Address> => {\n const client = publicClient as PublicClient;\n const chainId = client.chain?.id as SupportedChainId | undefined;\n if (!chainId || !ADDRESSES[chainId]) {\n throw new Error('Unsupported chain ID for airlock owner lookup');\n }\n\n const airlockAddress = ADDRESSES[chainId].airlock;\n\n const owner = await client.readContract({\n address: airlockAddress,\n abi: airlockAbi,\n functionName: 'owner',\n });\n\n if (!owner) throw new Error('Airlock owner not found');\n return owner as Address;\n};\n\n// Default airlock beneficiary shares (5% = 0.05e18 WAD)\nexport const DEFAULT_AIRLOCK_BENEFICIARY_SHARES = BigInt(5e16); // 5% in WAD\n\nexport const createAirlockBeneficiary = (\n owner: Address,\n shares: bigint = DEFAULT_AIRLOCK_BENEFICIARY_SHARES,\n): BeneficiaryData => ({\n beneficiary: owner,\n shares,\n});\n\nexport const getAirlockBeneficiary = async (\n publicClient: unknown,\n shares: bigint = DEFAULT_AIRLOCK_BENEFICIARY_SHARES,\n): Promise<BeneficiaryData> => {\n const owner = await getAirlockOwner(publicClient);\n return createAirlockBeneficiary(owner, shares);\n};\n"]}
@@ -1,17 +0,0 @@
1
- // src/utils/computeOptimalGamma.ts
2
- function computeOptimalGamma(startTick, endTick, duration, epochLength, tickSpacing) {
3
- const totalEpochs = duration / epochLength;
4
- const tickDelta = Math.abs(endTick - startTick);
5
- let perEpochTicks = Math.ceil(tickDelta / totalEpochs);
6
- const multiples = Math.ceil(perEpochTicks / tickSpacing);
7
- let gamma = multiples * tickSpacing;
8
- gamma = Math.max(tickSpacing, gamma);
9
- if (gamma % tickSpacing !== 0) {
10
- throw new Error("Computed gamma must be divisible by tick spacing");
11
- }
12
- return gamma;
13
- }
14
-
15
- export { computeOptimalGamma };
16
- //# sourceMappingURL=chunk-H3B54PFV.mjs.map
17
- //# sourceMappingURL=chunk-H3B54PFV.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/computeOptimalGamma.ts"],"names":[],"mappings":";AAIO,SAAS,mBAAA,CACd,SAAA,EACA,OAAA,EACA,QAAA,EACA,aACA,WAAA,EACQ;AAER,EAAA,MAAM,cAAc,QAAA,GAAW,WAAA;AAC/B,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,GAAA,CAAI,OAAA,GAAU,SAAS,CAAA;AAE9C,EAAA,IAAI,aAAA,GAAgB,IAAA,CAAK,IAAA,CAAK,SAAA,GAAY,WAAW,CAAA;AAErD,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,IAAA,CAAK,aAAA,GAAgB,WAAW,CAAA;AACvD,EAAA,IAAI,QAAQ,SAAA,GAAY,WAAA;AAExB,EAAA,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,WAAA,EAAa,KAAK,CAAA;AACnC,EAAA,IAAI,KAAA,GAAQ,gBAAgB,CAAA,EAAG;AAC7B,IAAA,MAAM,IAAI,MAAM,kDAAkD,CAAA;AAAA,EACpE;AACA,EAAA,OAAO,KAAA;AACT","file":"chunk-H3B54PFV.mjs","sourcesContent":["/**\n * Compute optimal gamma parameter based on price range and time parameters\n * Gamma determines how much the price can move per epoch during the sale.\n */\nexport function computeOptimalGamma(\n startTick: number,\n endTick: number,\n duration: number,\n epochLength: number,\n tickSpacing: number,\n): number {\n // Calculate total number of epochs\n const totalEpochs = duration / epochLength;\n const tickDelta = Math.abs(endTick - startTick);\n // Base per-epoch movement in ticks\n let perEpochTicks = Math.ceil(tickDelta / totalEpochs);\n // Quantize up to the nearest multiple of tickSpacing\n const multiples = Math.ceil(perEpochTicks / tickSpacing);\n let gamma = multiples * tickSpacing;\n // Ensure minimum of one tickSpacing\n gamma = Math.max(tickSpacing, gamma);\n if (gamma % tickSpacing !== 0) {\n throw new Error('Computed gamma must be divisible by tick spacing');\n }\n return gamma;\n}\n"]}