@ape.swap/bonds-sdk 3.1.8 → 3.1.9-test.3

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 (736) hide show
  1. package/dist/components/BondFilters/BondFilters.js +41 -0
  2. package/dist/components/BondFilters/BondFilters.js.map +1 -0
  3. package/dist/components/ChainOptionList/ChainOptionsButtons.js +35 -0
  4. package/dist/components/ChainOptionList/ChainOptionsButtons.js.map +1 -0
  5. package/dist/components/ChainOptionList/ChainOptionsList.js +41 -0
  6. package/dist/components/ChainOptionList/ChainOptionsList.js.map +1 -0
  7. package/dist/components/ChainOptionList/constants.js +11 -0
  8. package/dist/components/ChainOptionList/constants.js.map +1 -0
  9. package/dist/components/ChainOptionList/styles.js +54 -0
  10. package/dist/components/ChainOptionList/styles.js.map +1 -0
  11. package/dist/components/ConnectButton/AppKitButton.js +22 -0
  12. package/dist/components/ConnectButton/AppKitButton.js.map +1 -0
  13. package/dist/components/ConnectButton/RainbowKitButton.js +35 -0
  14. package/dist/components/ConnectButton/RainbowKitButton.js.map +1 -0
  15. package/dist/components/ConnectButton/index.js +26 -0
  16. package/dist/components/ConnectButton/index.js.map +1 -0
  17. package/dist/components/FavIcons/AddFavToken.js +34 -0
  18. package/dist/components/FavIcons/AddFavToken.js.map +1 -0
  19. package/dist/components/FavIcons/FavFilter.js +29 -0
  20. package/dist/components/FavIcons/FavFilter.js.map +1 -0
  21. package/dist/components/LoadingSpinner/index.js +50 -0
  22. package/dist/components/LoadingSpinner/index.js.map +1 -0
  23. package/dist/components/MenuSelect/MenuSelect.js +30 -0
  24. package/dist/components/MenuSelect/MenuSelect.js.map +1 -0
  25. package/dist/components/MenuSelect/RecommendationSelector.js +57 -0
  26. package/dist/components/MenuSelect/RecommendationSelector.js.map +1 -0
  27. package/dist/components/NetworkFilter/index.js +112 -0
  28. package/dist/components/NetworkFilter/index.js.map +1 -0
  29. package/dist/components/PlaceholderMonkey/index.js +31 -0
  30. package/dist/components/PlaceholderMonkey/index.js.map +1 -0
  31. package/dist/components/ProgressBar/ProgressBar.js +11 -0
  32. package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
  33. package/dist/components/ProgressBar/ProgressBarWrapper.js +23 -0
  34. package/dist/components/ProgressBar/ProgressBarWrapper.js.map +1 -0
  35. package/dist/components/ProgressBar/styles.js +15 -0
  36. package/dist/components/ProgressBar/styles.js.map +1 -0
  37. package/dist/components/SafeHTMLComponent/index.js +30 -0
  38. package/dist/components/SafeHTMLComponent/index.js.map +1 -0
  39. package/dist/components/SlippageModal/index.js +70 -0
  40. package/dist/components/SlippageModal/index.js.map +1 -0
  41. package/dist/components/StepBubble/index.js +61 -0
  42. package/dist/components/StepBubble/index.js.map +1 -0
  43. package/dist/components/Toast/index.js +55 -0
  44. package/dist/components/Toast/index.js.map +1 -0
  45. package/dist/components/Toast/styles.js +30 -0
  46. package/dist/components/Toast/styles.js.map +1 -0
  47. package/dist/components/TokenInfoAndName/index.js +66 -0
  48. package/dist/components/TokenInfoAndName/index.js.map +1 -0
  49. package/dist/components/TokenSelectorModal/TokenRow.js +31 -0
  50. package/dist/components/TokenSelectorModal/TokenRow.js.map +1 -0
  51. package/dist/components/TokenSelectorModal/index.js +62 -0
  52. package/dist/components/TokenSelectorModal/index.js.map +1 -0
  53. package/dist/components/TokenSelectorPanel/index.js +55 -0
  54. package/dist/components/TokenSelectorPanel/index.js.map +1 -0
  55. package/dist/components/Tooltip/ButtonsRow.js +36 -0
  56. package/dist/components/Tooltip/ButtonsRow.js.map +1 -0
  57. package/dist/components/Tooltip/Tooltip.js +46 -0
  58. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  59. package/dist/components/Tooltip/styles.js +32 -0
  60. package/dist/components/Tooltip/styles.js.map +1 -0
  61. package/dist/components/YouTooltip/YouTooltip.js +44 -0
  62. package/dist/components/YouTooltip/YouTooltip.js.map +1 -0
  63. package/dist/components/uikit-sdk/Button/Button.js +84 -0
  64. package/dist/components/uikit-sdk/Button/Button.js.map +1 -0
  65. package/dist/components/uikit-sdk/Button/IconButton.js +23 -0
  66. package/dist/components/uikit-sdk/Button/IconButton.js.map +1 -0
  67. package/dist/components/uikit-sdk/Button/styles.js +31 -0
  68. package/dist/components/uikit-sdk/Button/styles.js.map +1 -0
  69. package/dist/components/uikit-sdk/Button/types.js +39 -0
  70. package/dist/components/uikit-sdk/Button/types.js.map +1 -0
  71. package/dist/components/uikit-sdk/Checkbox/index.js +25 -0
  72. package/dist/components/uikit-sdk/Checkbox/index.js.map +1 -0
  73. package/dist/components/uikit-sdk/Checkbox/types.js +8 -0
  74. package/dist/components/uikit-sdk/Checkbox/types.js.map +1 -0
  75. package/dist/components/uikit-sdk/Flex/index.js +9 -0
  76. package/dist/components/uikit-sdk/Flex/index.js.map +1 -0
  77. package/dist/components/uikit-sdk/Input/Input.js +53 -0
  78. package/dist/components/uikit-sdk/Input/Input.js.map +1 -0
  79. package/dist/components/uikit-sdk/LoadingDots/index.js +41 -0
  80. package/dist/components/uikit-sdk/LoadingDots/index.js.map +1 -0
  81. package/dist/components/uikit-sdk/Modal/ModalHeader.js +13 -0
  82. package/dist/components/uikit-sdk/Modal/ModalHeader.js.map +1 -0
  83. package/dist/components/uikit-sdk/Modal/index.js +26 -0
  84. package/dist/components/uikit-sdk/Modal/index.js.map +1 -0
  85. package/dist/components/uikit-sdk/Modal/styles.js +47 -0
  86. package/dist/components/uikit-sdk/Modal/styles.js.map +1 -0
  87. package/dist/components/uikit-sdk/Select/Select.js +51 -0
  88. package/dist/components/uikit-sdk/Select/Select.js.map +1 -0
  89. package/dist/components/uikit-sdk/Select/SelectItem.js +20 -0
  90. package/dist/components/uikit-sdk/Select/SelectItem.js.map +1 -0
  91. package/dist/components/uikit-sdk/Select/styles.js +50 -0
  92. package/dist/components/uikit-sdk/Select/styles.js.map +1 -0
  93. package/dist/components/uikit-sdk/Select/types.d.ts +1 -1
  94. package/dist/components/uikit-sdk/Select/types.js +39 -0
  95. package/dist/components/uikit-sdk/Select/types.js.map +1 -0
  96. package/dist/components/uikit-sdk/Skeleton/index.js +16 -0
  97. package/dist/components/uikit-sdk/Skeleton/index.js.map +1 -0
  98. package/dist/components/uikit-sdk/Skeleton/styles.js +43 -0
  99. package/dist/components/uikit-sdk/Skeleton/styles.js.map +1 -0
  100. package/dist/components/uikit-sdk/Skeleton/types.js +13 -0
  101. package/dist/components/uikit-sdk/Skeleton/types.js.map +1 -0
  102. package/dist/components/uikit-sdk/Svg/Icons/AbondFullLogo.js +18 -0
  103. package/dist/components/uikit-sdk/Svg/Icons/AbondFullLogo.js.map +1 -0
  104. package/dist/components/uikit-sdk/Svg/Icons/AbondSmallLogo.js +8 -0
  105. package/dist/components/uikit-sdk/Svg/Icons/AbondSmallLogo.js.map +1 -0
  106. package/dist/components/uikit-sdk/Svg/Icons/AccountMonkey.js +18 -0
  107. package/dist/components/uikit-sdk/Svg/Icons/AccountMonkey.js.map +1 -0
  108. package/dist/components/uikit-sdk/Svg/Icons/AllChains.js +8 -0
  109. package/dist/components/uikit-sdk/Svg/Icons/AllChains.js.map +1 -0
  110. package/dist/components/uikit-sdk/Svg/Icons/ApebondLogo.js +19 -0
  111. package/dist/components/uikit-sdk/Svg/Icons/ApebondLogo.js.map +1 -0
  112. package/dist/components/uikit-sdk/Svg/Icons/ApeswapSmallLogo.js +8 -0
  113. package/dist/components/uikit-sdk/Svg/Icons/ApeswapSmallLogo.js.map +1 -0
  114. package/dist/components/uikit-sdk/Svg/Icons/Arrow.js +18 -0
  115. package/dist/components/uikit-sdk/Svg/Icons/Arrow.js.map +1 -0
  116. package/dist/components/uikit-sdk/Svg/Icons/Audit.js +18 -0
  117. package/dist/components/uikit-sdk/Svg/Icons/Audit.js.map +1 -0
  118. package/dist/components/uikit-sdk/Svg/Icons/BananaIcon.js +8 -0
  119. package/dist/components/uikit-sdk/Svg/Icons/BananaIcon.js.map +1 -0
  120. package/dist/components/uikit-sdk/Svg/Icons/BillsM1.js +18 -0
  121. package/dist/components/uikit-sdk/Svg/Icons/BillsM1.js.map +1 -0
  122. package/dist/components/uikit-sdk/Svg/Icons/BillsM2.js +19 -0
  123. package/dist/components/uikit-sdk/Svg/Icons/BillsM2.js.map +1 -0
  124. package/dist/components/uikit-sdk/Svg/Icons/BillsM3.js +18 -0
  125. package/dist/components/uikit-sdk/Svg/Icons/BillsM3.js.map +1 -0
  126. package/dist/components/uikit-sdk/Svg/Icons/Bridge.js +18 -0
  127. package/dist/components/uikit-sdk/Svg/Icons/Bridge.js.map +1 -0
  128. package/dist/components/uikit-sdk/Svg/Icons/Bubble.js +18 -0
  129. package/dist/components/uikit-sdk/Svg/Icons/Bubble.js.map +1 -0
  130. package/dist/components/uikit-sdk/Svg/Icons/Calculator.js +18 -0
  131. package/dist/components/uikit-sdk/Svg/Icons/Calculator.js.map +1 -0
  132. package/dist/components/uikit-sdk/Svg/Icons/Calendar.js +8 -0
  133. package/dist/components/uikit-sdk/Svg/Icons/Calendar.js.map +1 -0
  134. package/dist/components/uikit-sdk/Svg/Icons/Cancelled.js +18 -0
  135. package/dist/components/uikit-sdk/Svg/Icons/Cancelled.js.map +1 -0
  136. package/dist/components/uikit-sdk/Svg/Icons/Card.js +18 -0
  137. package/dist/components/uikit-sdk/Svg/Icons/Card.js.map +1 -0
  138. package/dist/components/uikit-sdk/Svg/Icons/Caret.js +18 -0
  139. package/dist/components/uikit-sdk/Svg/Icons/Caret.js.map +1 -0
  140. package/dist/components/uikit-sdk/Svg/Icons/Chain.js +10 -0
  141. package/dist/components/uikit-sdk/Svg/Icons/Chain.js.map +1 -0
  142. package/dist/components/uikit-sdk/Svg/Icons/Chart.js +18 -0
  143. package/dist/components/uikit-sdk/Svg/Icons/Chart.js.map +1 -0
  144. package/dist/components/uikit-sdk/Svg/Icons/Chat.js +18 -0
  145. package/dist/components/uikit-sdk/Svg/Icons/Chat.js.map +1 -0
  146. package/dist/components/uikit-sdk/Svg/Icons/Close.js +11 -0
  147. package/dist/components/uikit-sdk/Svg/Icons/Close.js.map +1 -0
  148. package/dist/components/uikit-sdk/Svg/Icons/Cog.js +18 -0
  149. package/dist/components/uikit-sdk/Svg/Icons/Cog.js.map +1 -0
  150. package/dist/components/uikit-sdk/Svg/Icons/Collapse.js +18 -0
  151. package/dist/components/uikit-sdk/Svg/Icons/Collapse.js.map +1 -0
  152. package/dist/components/uikit-sdk/Svg/Icons/Copy.js +18 -0
  153. package/dist/components/uikit-sdk/Svg/Icons/Copy.js.map +1 -0
  154. package/dist/components/uikit-sdk/Svg/Icons/Discord.js +18 -0
  155. package/dist/components/uikit-sdk/Svg/Icons/Discord.js.map +1 -0
  156. package/dist/components/uikit-sdk/Svg/Icons/DiscordNew.js +18 -0
  157. package/dist/components/uikit-sdk/Svg/Icons/DiscordNew.js.map +1 -0
  158. package/dist/components/uikit-sdk/Svg/Icons/Docs.js +18 -0
  159. package/dist/components/uikit-sdk/Svg/Icons/Docs.js.map +1 -0
  160. package/dist/components/uikit-sdk/Svg/Icons/DocsV2.js +18 -0
  161. package/dist/components/uikit-sdk/Svg/Icons/DocsV2.js.map +1 -0
  162. package/dist/components/uikit-sdk/Svg/Icons/Ellipse.js +18 -0
  163. package/dist/components/uikit-sdk/Svg/Icons/Ellipse.js.map +1 -0
  164. package/dist/components/uikit-sdk/Svg/Icons/Error.js +18 -0
  165. package/dist/components/uikit-sdk/Svg/Icons/Error.js.map +1 -0
  166. package/dist/components/uikit-sdk/Svg/Icons/Expand.js +18 -0
  167. package/dist/components/uikit-sdk/Svg/Icons/Expand.js.map +1 -0
  168. package/dist/components/uikit-sdk/Svg/Icons/Explorer.js +18 -0
  169. package/dist/components/uikit-sdk/Svg/Icons/Explorer.js.map +1 -0
  170. package/dist/components/uikit-sdk/Svg/Icons/External.js +18 -0
  171. package/dist/components/uikit-sdk/Svg/Icons/External.js.map +1 -0
  172. package/dist/components/uikit-sdk/Svg/Icons/Farcaster.js +8 -0
  173. package/dist/components/uikit-sdk/Svg/Icons/Farcaster.js.map +1 -0
  174. package/dist/components/uikit-sdk/Svg/Icons/Farm.js +18 -0
  175. package/dist/components/uikit-sdk/Svg/Icons/Farm.js.map +1 -0
  176. package/dist/components/uikit-sdk/Svg/Icons/Fav.js +18 -0
  177. package/dist/components/uikit-sdk/Svg/Icons/Fav.js.map +1 -0
  178. package/dist/components/uikit-sdk/Svg/Icons/FilledURL.js +18 -0
  179. package/dist/components/uikit-sdk/Svg/Icons/FilledURL.js.map +1 -0
  180. package/dist/components/uikit-sdk/Svg/Icons/Fire.js +8 -0
  181. package/dist/components/uikit-sdk/Svg/Icons/Fire.js.map +1 -0
  182. package/dist/components/uikit-sdk/Svg/Icons/FirePink.js +8 -0
  183. package/dist/components/uikit-sdk/Svg/Icons/FirePink.js.map +1 -0
  184. package/dist/components/uikit-sdk/Svg/Icons/Frame.js +18 -0
  185. package/dist/components/uikit-sdk/Svg/Icons/Frame.js.map +1 -0
  186. package/dist/components/uikit-sdk/Svg/Icons/FullLogo.js +8 -0
  187. package/dist/components/uikit-sdk/Svg/Icons/FullLogo.js.map +1 -0
  188. package/dist/components/uikit-sdk/Svg/Icons/Gnana.js +18 -0
  189. package/dist/components/uikit-sdk/Svg/Icons/Gnana.js.map +1 -0
  190. package/dist/components/uikit-sdk/Svg/Icons/GreenShield.js +8 -0
  191. package/dist/components/uikit-sdk/Svg/Icons/GreenShield.js.map +1 -0
  192. package/dist/components/uikit-sdk/Svg/Icons/Hamburger.js +18 -0
  193. package/dist/components/uikit-sdk/Svg/Icons/Hamburger.js.map +1 -0
  194. package/dist/components/uikit-sdk/Svg/Icons/HamburgerClosed.js +18 -0
  195. package/dist/components/uikit-sdk/Svg/Icons/HamburgerClosed.js.map +1 -0
  196. package/dist/components/uikit-sdk/Svg/Icons/Home.js +18 -0
  197. package/dist/components/uikit-sdk/Svg/Icons/Home.js.map +1 -0
  198. package/dist/components/uikit-sdk/Svg/Icons/Hot.js +8 -0
  199. package/dist/components/uikit-sdk/Svg/Icons/Hot.js.map +1 -0
  200. package/dist/components/uikit-sdk/Svg/Icons/Info.js +18 -0
  201. package/dist/components/uikit-sdk/Svg/Icons/Info.js.map +1 -0
  202. package/dist/components/uikit-sdk/Svg/Icons/InfoSolid.js +18 -0
  203. package/dist/components/uikit-sdk/Svg/Icons/InfoSolid.js.map +1 -0
  204. package/dist/components/uikit-sdk/Svg/Icons/Insight.js +18 -0
  205. package/dist/components/uikit-sdk/Svg/Icons/Insight.js.map +1 -0
  206. package/dist/components/uikit-sdk/Svg/Icons/Instagram.js +18 -0
  207. package/dist/components/uikit-sdk/Svg/Icons/Instagram.js.map +1 -0
  208. package/dist/components/uikit-sdk/Svg/Icons/Island.js +18 -0
  209. package/dist/components/uikit-sdk/Svg/Icons/Island.js.map +1 -0
  210. package/dist/components/uikit-sdk/Svg/Icons/LanguageIcon.js +18 -0
  211. package/dist/components/uikit-sdk/Svg/Icons/LanguageIcon.js.map +1 -0
  212. package/dist/components/uikit-sdk/Svg/Icons/LineChart.js +8 -0
  213. package/dist/components/uikit-sdk/Svg/Icons/LineChart.js.map +1 -0
  214. package/dist/components/uikit-sdk/Svg/Icons/LiquidityIcon.js +18 -0
  215. package/dist/components/uikit-sdk/Svg/Icons/LiquidityIcon.js.map +1 -0
  216. package/dist/components/uikit-sdk/Svg/Icons/Logout.js +18 -0
  217. package/dist/components/uikit-sdk/Svg/Icons/Logout.js.map +1 -0
  218. package/dist/components/uikit-sdk/Svg/Icons/Medium.js +18 -0
  219. package/dist/components/uikit-sdk/Svg/Icons/Medium.js.map +1 -0
  220. package/dist/components/uikit-sdk/Svg/Icons/MenuSettings.js +18 -0
  221. package/dist/components/uikit-sdk/Svg/Icons/MenuSettings.js.map +1 -0
  222. package/dist/components/uikit-sdk/Svg/Icons/Message.js +11 -0
  223. package/dist/components/uikit-sdk/Svg/Icons/Message.js.map +1 -0
  224. package/dist/components/uikit-sdk/Svg/Icons/Migrate.js +18 -0
  225. package/dist/components/uikit-sdk/Svg/Icons/Migrate.js.map +1 -0
  226. package/dist/components/uikit-sdk/Svg/Icons/Moon.js +18 -0
  227. package/dist/components/uikit-sdk/Svg/Icons/Moon.js.map +1 -0
  228. package/dist/components/uikit-sdk/Svg/Icons/More.js +18 -0
  229. package/dist/components/uikit-sdk/Svg/Icons/More.js.map +1 -0
  230. package/dist/components/uikit-sdk/Svg/Icons/NFA.js +18 -0
  231. package/dist/components/uikit-sdk/Svg/Icons/NFA.js.map +1 -0
  232. package/dist/components/uikit-sdk/Svg/Icons/NavCaret.js +18 -0
  233. package/dist/components/uikit-sdk/Svg/Icons/NavCaret.js.map +1 -0
  234. package/dist/components/uikit-sdk/Svg/Icons/PlaceholderMonkey.js +18 -0
  235. package/dist/components/uikit-sdk/Svg/Icons/PlaceholderMonkey.js.map +1 -0
  236. package/dist/components/uikit-sdk/Svg/Icons/PlaceholderMonkeyAlt.js +18 -0
  237. package/dist/components/uikit-sdk/Svg/Icons/PlaceholderMonkeyAlt.js.map +1 -0
  238. package/dist/components/uikit-sdk/Svg/Icons/Play.js +8 -0
  239. package/dist/components/uikit-sdk/Svg/Icons/Play.js.map +1 -0
  240. package/dist/components/uikit-sdk/Svg/Icons/Pool.js +18 -0
  241. package/dist/components/uikit-sdk/Svg/Icons/Pool.js.map +1 -0
  242. package/dist/components/uikit-sdk/Svg/Icons/Positions.js +18 -0
  243. package/dist/components/uikit-sdk/Svg/Icons/Positions.js.map +1 -0
  244. package/dist/components/uikit-sdk/Svg/Icons/ProfileDark.js +8 -0
  245. package/dist/components/uikit-sdk/Svg/Icons/ProfileDark.js.map +1 -0
  246. package/dist/components/uikit-sdk/Svg/Icons/ProfileIcon.js +15 -0
  247. package/dist/components/uikit-sdk/Svg/Icons/ProfileIcon.js.map +1 -0
  248. package/dist/components/uikit-sdk/Svg/Icons/ProfileLight.js +8 -0
  249. package/dist/components/uikit-sdk/Svg/Icons/ProfileLight.js.map +1 -0
  250. package/dist/components/uikit-sdk/Svg/Icons/Question.js +8 -0
  251. package/dist/components/uikit-sdk/Svg/Icons/Question.js.map +1 -0
  252. package/dist/components/uikit-sdk/Svg/Icons/QuestionCircle.js +18 -0
  253. package/dist/components/uikit-sdk/Svg/Icons/QuestionCircle.js.map +1 -0
  254. package/dist/components/uikit-sdk/Svg/Icons/QuestionFill.js +18 -0
  255. package/dist/components/uikit-sdk/Svg/Icons/QuestionFill.js.map +1 -0
  256. package/dist/components/uikit-sdk/Svg/Icons/Quiz.js +18 -0
  257. package/dist/components/uikit-sdk/Svg/Icons/Quiz.js.map +1 -0
  258. package/dist/components/uikit-sdk/Svg/Icons/Receipt.js +18 -0
  259. package/dist/components/uikit-sdk/Svg/Icons/Receipt.js.map +1 -0
  260. package/dist/components/uikit-sdk/Svg/Icons/Reddit.js +18 -0
  261. package/dist/components/uikit-sdk/Svg/Icons/Reddit.js.map +1 -0
  262. package/dist/components/uikit-sdk/Svg/Icons/Rocket.js +18 -0
  263. package/dist/components/uikit-sdk/Svg/Icons/Rocket.js.map +1 -0
  264. package/dist/components/uikit-sdk/Svg/Icons/ScrollTop.js +18 -0
  265. package/dist/components/uikit-sdk/Svg/Icons/ScrollTop.js.map +1 -0
  266. package/dist/components/uikit-sdk/Svg/Icons/Search.js +18 -0
  267. package/dist/components/uikit-sdk/Svg/Icons/Search.js.map +1 -0
  268. package/dist/components/uikit-sdk/Svg/Icons/Send.js +18 -0
  269. package/dist/components/uikit-sdk/Svg/Icons/Send.js.map +1 -0
  270. package/dist/components/uikit-sdk/Svg/Icons/Settings.js +18 -0
  271. package/dist/components/uikit-sdk/Svg/Icons/Settings.js.map +1 -0
  272. package/dist/components/uikit-sdk/Svg/Icons/Share.js +18 -0
  273. package/dist/components/uikit-sdk/Svg/Icons/Share.js.map +1 -0
  274. package/dist/components/uikit-sdk/Svg/Icons/Sort.js +18 -0
  275. package/dist/components/uikit-sdk/Svg/Icons/Sort.js.map +1 -0
  276. package/dist/components/uikit-sdk/Svg/Icons/Star.js +8 -0
  277. package/dist/components/uikit-sdk/Svg/Icons/Star.js.map +1 -0
  278. package/dist/components/uikit-sdk/Svg/Icons/StarFilled.js +8 -0
  279. package/dist/components/uikit-sdk/Svg/Icons/StarFilled.js.map +1 -0
  280. package/dist/components/uikit-sdk/Svg/Icons/Success.js +18 -0
  281. package/dist/components/uikit-sdk/Svg/Icons/Success.js.map +1 -0
  282. package/dist/components/uikit-sdk/Svg/Icons/SuccessOutline.js +18 -0
  283. package/dist/components/uikit-sdk/Svg/Icons/SuccessOutline.js.map +1 -0
  284. package/dist/components/uikit-sdk/Svg/Icons/SwapArrows.js +18 -0
  285. package/dist/components/uikit-sdk/Svg/Icons/SwapArrows.js.map +1 -0
  286. package/dist/components/uikit-sdk/Svg/Icons/SwitchArrows.js +18 -0
  287. package/dist/components/uikit-sdk/Svg/Icons/SwitchArrows.js.map +1 -0
  288. package/dist/components/uikit-sdk/Svg/Icons/Tag.js +8 -0
  289. package/dist/components/uikit-sdk/Svg/Icons/Tag.js.map +1 -0
  290. package/dist/components/uikit-sdk/Svg/Icons/Telegram.js +18 -0
  291. package/dist/components/uikit-sdk/Svg/Icons/Telegram.js.map +1 -0
  292. package/dist/components/uikit-sdk/Svg/Icons/TelegramNew.js +18 -0
  293. package/dist/components/uikit-sdk/Svg/Icons/TelegramNew.js.map +1 -0
  294. package/dist/components/uikit-sdk/Svg/Icons/TextLogo.js +8 -0
  295. package/dist/components/uikit-sdk/Svg/Icons/TextLogo.js.map +1 -0
  296. package/dist/components/uikit-sdk/Svg/Icons/Tick.js +18 -0
  297. package/dist/components/uikit-sdk/Svg/Icons/Tick.js.map +1 -0
  298. package/dist/components/uikit-sdk/Svg/Icons/TickShield.js +18 -0
  299. package/dist/components/uikit-sdk/Svg/Icons/TickShield.js.map +1 -0
  300. package/dist/components/uikit-sdk/Svg/Icons/Timer.js +8 -0
  301. package/dist/components/uikit-sdk/Svg/Icons/Timer.js.map +1 -0
  302. package/dist/components/uikit-sdk/Svg/Icons/Trade.js +18 -0
  303. package/dist/components/uikit-sdk/Svg/Icons/Trade.js.map +1 -0
  304. package/dist/components/uikit-sdk/Svg/Icons/Trash.js +18 -0
  305. package/dist/components/uikit-sdk/Svg/Icons/Trash.js.map +1 -0
  306. package/dist/components/uikit-sdk/Svg/Icons/Twitter.js +18 -0
  307. package/dist/components/uikit-sdk/Svg/Icons/Twitter.js.map +1 -0
  308. package/dist/components/uikit-sdk/Svg/Icons/URL.js +18 -0
  309. package/dist/components/uikit-sdk/Svg/Icons/URL.js.map +1 -0
  310. package/dist/components/uikit-sdk/Svg/Icons/Vaults.js +18 -0
  311. package/dist/components/uikit-sdk/Svg/Icons/Vaults.js.map +1 -0
  312. package/dist/components/uikit-sdk/Svg/Icons/Verified.js +8 -0
  313. package/dist/components/uikit-sdk/Svg/Icons/Verified.js.map +1 -0
  314. package/dist/components/uikit-sdk/Svg/Icons/Wallet.js +18 -0
  315. package/dist/components/uikit-sdk/Svg/Icons/Wallet.js.map +1 -0
  316. package/dist/components/uikit-sdk/Svg/Icons/Warning.js +18 -0
  317. package/dist/components/uikit-sdk/Svg/Icons/Warning.js.map +1 -0
  318. package/dist/components/uikit-sdk/Svg/Icons/Watch.js +18 -0
  319. package/dist/components/uikit-sdk/Svg/Icons/Watch.js.map +1 -0
  320. package/dist/components/uikit-sdk/Svg/Icons/Website.js +18 -0
  321. package/dist/components/uikit-sdk/Svg/Icons/Website.js.map +1 -0
  322. package/dist/components/uikit-sdk/Svg/Icons/WebsiteNew.js +18 -0
  323. package/dist/components/uikit-sdk/Svg/Icons/WebsiteNew.js.map +1 -0
  324. package/dist/components/uikit-sdk/Svg/Icons/WhitepaperNew.js +18 -0
  325. package/dist/components/uikit-sdk/Svg/Icons/WhitepaperNew.js.map +1 -0
  326. package/dist/components/uikit-sdk/Svg/Icons/XNew.js +18 -0
  327. package/dist/components/uikit-sdk/Svg/Icons/XNew.js.map +1 -0
  328. package/dist/components/uikit-sdk/Svg/Icons/YellowQuestionMark.js +8 -0
  329. package/dist/components/uikit-sdk/Svg/Icons/YellowQuestionMark.js.map +1 -0
  330. package/dist/components/uikit-sdk/Svg/Icons/ZapArrow.js +18 -0
  331. package/dist/components/uikit-sdk/Svg/Icons/ZapArrow.js.map +1 -0
  332. package/dist/components/uikit-sdk/Svg/Icons/ZapIcon.js +18 -0
  333. package/dist/components/uikit-sdk/Svg/Icons/ZapIcon.js.map +1 -0
  334. package/dist/components/uikit-sdk/Svg/Icons/polygonNew.js +18 -0
  335. package/dist/components/uikit-sdk/Svg/Icons/polygonNew.js.map +1 -0
  336. package/dist/components/uikit-sdk/Svg/index.js +515 -0
  337. package/dist/components/uikit-sdk/Svg/index.js.map +1 -0
  338. package/dist/components/uikit-sdk/Svg/styles.js +14 -0
  339. package/dist/components/uikit-sdk/Svg/styles.js.map +1 -0
  340. package/dist/components/uikit-sdk/Svg/tokens/ABOND.js +8 -0
  341. package/dist/components/uikit-sdk/Svg/tokens/ABOND.js.map +1 -0
  342. package/dist/components/uikit-sdk/Svg/tokens/ARBITRUM.js +8 -0
  343. package/dist/components/uikit-sdk/Svg/tokens/ARBITRUM.js.map +1 -0
  344. package/dist/components/uikit-sdk/Svg/tokens/AVAX.js +8 -0
  345. package/dist/components/uikit-sdk/Svg/tokens/AVAX.js.map +1 -0
  346. package/dist/components/uikit-sdk/Svg/tokens/BANANA.js +8 -0
  347. package/dist/components/uikit-sdk/Svg/tokens/BANANA.js.map +1 -0
  348. package/dist/components/uikit-sdk/Svg/tokens/BASE.js +8 -0
  349. package/dist/components/uikit-sdk/Svg/tokens/BASE.js.map +1 -0
  350. package/dist/components/uikit-sdk/Svg/tokens/BERA.js +8 -0
  351. package/dist/components/uikit-sdk/Svg/tokens/BERA.js.map +1 -0
  352. package/dist/components/uikit-sdk/Svg/tokens/BLAST.js +8 -0
  353. package/dist/components/uikit-sdk/Svg/tokens/BLAST.js.map +1 -0
  354. package/dist/components/uikit-sdk/Svg/tokens/BNB.js +8 -0
  355. package/dist/components/uikit-sdk/Svg/tokens/BNB.js.map +1 -0
  356. package/dist/components/uikit-sdk/Svg/tokens/BSC.js +8 -0
  357. package/dist/components/uikit-sdk/Svg/tokens/BSC.js.map +1 -0
  358. package/dist/components/uikit-sdk/Svg/tokens/CELO.js +8 -0
  359. package/dist/components/uikit-sdk/Svg/tokens/CELO.js.map +1 -0
  360. package/dist/components/uikit-sdk/Svg/tokens/CRONOS.js +8 -0
  361. package/dist/components/uikit-sdk/Svg/tokens/CRONOS.js.map +1 -0
  362. package/dist/components/uikit-sdk/Svg/tokens/CROSSFI.js +8 -0
  363. package/dist/components/uikit-sdk/Svg/tokens/CROSSFI.js.map +1 -0
  364. package/dist/components/uikit-sdk/Svg/tokens/ETH.js +8 -0
  365. package/dist/components/uikit-sdk/Svg/tokens/ETH.js.map +1 -0
  366. package/dist/components/uikit-sdk/Svg/tokens/FANTOM.js +8 -0
  367. package/dist/components/uikit-sdk/Svg/tokens/FANTOM.js.map +1 -0
  368. package/dist/components/uikit-sdk/Svg/tokens/GNANA.js +8 -0
  369. package/dist/components/uikit-sdk/Svg/tokens/GNANA.js.map +1 -0
  370. package/dist/components/uikit-sdk/Svg/tokens/GNOSIS.js +8 -0
  371. package/dist/components/uikit-sdk/Svg/tokens/GNOSIS.js.map +1 -0
  372. package/dist/components/uikit-sdk/Svg/tokens/GraphLinq.js +8 -0
  373. package/dist/components/uikit-sdk/Svg/tokens/GraphLinq.js.map +1 -0
  374. package/dist/components/uikit-sdk/Svg/tokens/INEVM.js +8 -0
  375. package/dist/components/uikit-sdk/Svg/tokens/INEVM.js.map +1 -0
  376. package/dist/components/uikit-sdk/Svg/tokens/IOTA.js +8 -0
  377. package/dist/components/uikit-sdk/Svg/tokens/IOTA.js.map +1 -0
  378. package/dist/components/uikit-sdk/Svg/tokens/KATANA.js +8 -0
  379. package/dist/components/uikit-sdk/Svg/tokens/KATANA.js.map +1 -0
  380. package/dist/components/uikit-sdk/Svg/tokens/LIGHTLINK.js +8 -0
  381. package/dist/components/uikit-sdk/Svg/tokens/LIGHTLINK.js.map +1 -0
  382. package/dist/components/uikit-sdk/Svg/tokens/LINEA.js +8 -0
  383. package/dist/components/uikit-sdk/Svg/tokens/LINEA.js.map +1 -0
  384. package/dist/components/uikit-sdk/Svg/tokens/MONAD.js +8 -0
  385. package/dist/components/uikit-sdk/Svg/tokens/MONAD.js.map +1 -0
  386. package/dist/components/uikit-sdk/Svg/tokens/OKX.js +8 -0
  387. package/dist/components/uikit-sdk/Svg/tokens/OKX.js.map +1 -0
  388. package/dist/components/uikit-sdk/Svg/tokens/OPTIMISM.js +10 -0
  389. package/dist/components/uikit-sdk/Svg/tokens/OPTIMISM.js.map +1 -0
  390. package/dist/components/uikit-sdk/Svg/tokens/POLYGON.js +8 -0
  391. package/dist/components/uikit-sdk/Svg/tokens/POLYGON.js.map +1 -0
  392. package/dist/components/uikit-sdk/Svg/tokens/POLYGONZK.js +8 -0
  393. package/dist/components/uikit-sdk/Svg/tokens/POLYGONZK.js.map +1 -0
  394. package/dist/components/uikit-sdk/Svg/tokens/SONIC.js +8 -0
  395. package/dist/components/uikit-sdk/Svg/tokens/SONIC.js.map +1 -0
  396. package/dist/components/uikit-sdk/Svg/tokens/TLOS.js +8 -0
  397. package/dist/components/uikit-sdk/Svg/tokens/TLOS.js.map +1 -0
  398. package/dist/components/uikit-sdk/Svg/tokens/UNICHAIN.js +8 -0
  399. package/dist/components/uikit-sdk/Svg/tokens/UNICHAIN.js.map +1 -0
  400. package/dist/components/uikit-sdk/Svg/types.js +183 -0
  401. package/dist/components/uikit-sdk/Svg/types.js.map +1 -0
  402. package/dist/components/uikit-sdk/Svg/walletIcons/BinanceChain.js +8 -0
  403. package/dist/components/uikit-sdk/Svg/walletIcons/BinanceChain.js.map +1 -0
  404. package/dist/components/uikit-sdk/Svg/walletIcons/Bitkeep.js +8 -0
  405. package/dist/components/uikit-sdk/Svg/walletIcons/Bitkeep.js.map +1 -0
  406. package/dist/components/uikit-sdk/Svg/walletIcons/Brave.js +8 -0
  407. package/dist/components/uikit-sdk/Svg/walletIcons/Brave.js.map +1 -0
  408. package/dist/components/uikit-sdk/Svg/walletIcons/Coinbase.js +8 -0
  409. package/dist/components/uikit-sdk/Svg/walletIcons/Coinbase.js.map +1 -0
  410. package/dist/components/uikit-sdk/Svg/walletIcons/MadWallet.js +8 -0
  411. package/dist/components/uikit-sdk/Svg/walletIcons/MadWallet.js.map +1 -0
  412. package/dist/components/uikit-sdk/Svg/walletIcons/MathWallet.js +8 -0
  413. package/dist/components/uikit-sdk/Svg/walletIcons/MathWallet.js.map +1 -0
  414. package/dist/components/uikit-sdk/Svg/walletIcons/Metamask.js +8 -0
  415. package/dist/components/uikit-sdk/Svg/walletIcons/Metamask.js.map +1 -0
  416. package/dist/components/uikit-sdk/Svg/walletIcons/Nabox.js +8 -0
  417. package/dist/components/uikit-sdk/Svg/walletIcons/Nabox.js.map +1 -0
  418. package/dist/components/uikit-sdk/Svg/walletIcons/OKX.js +8 -0
  419. package/dist/components/uikit-sdk/Svg/walletIcons/OKX.js.map +1 -0
  420. package/dist/components/uikit-sdk/Svg/walletIcons/OntoWallet.js +8 -0
  421. package/dist/components/uikit-sdk/Svg/walletIcons/OntoWallet.js.map +1 -0
  422. package/dist/components/uikit-sdk/Svg/walletIcons/SafePalWallet.js +8 -0
  423. package/dist/components/uikit-sdk/Svg/walletIcons/SafePalWallet.js.map +1 -0
  424. package/dist/components/uikit-sdk/Svg/walletIcons/SocialLogin.js +8 -0
  425. package/dist/components/uikit-sdk/Svg/walletIcons/SocialLogin.js.map +1 -0
  426. package/dist/components/uikit-sdk/Svg/walletIcons/TokenPocket.js +8 -0
  427. package/dist/components/uikit-sdk/Svg/walletIcons/TokenPocket.js.map +1 -0
  428. package/dist/components/uikit-sdk/Svg/walletIcons/TorusWallet.js +8 -0
  429. package/dist/components/uikit-sdk/Svg/walletIcons/TorusWallet.js.map +1 -0
  430. package/dist/components/uikit-sdk/Svg/walletIcons/TrustWallet.js +8 -0
  431. package/dist/components/uikit-sdk/Svg/walletIcons/TrustWallet.js.map +1 -0
  432. package/dist/components/uikit-sdk/Svg/walletIcons/Unstoppable.js +8 -0
  433. package/dist/components/uikit-sdk/Svg/walletIcons/Unstoppable.js.map +1 -0
  434. package/dist/components/uikit-sdk/Svg/walletIcons/WalletConnect.js +8 -0
  435. package/dist/components/uikit-sdk/Svg/walletIcons/WalletConnect.js.map +1 -0
  436. package/dist/components/uikit-sdk/Svg/walletIcons/WalletImage.js +8 -0
  437. package/dist/components/uikit-sdk/Svg/walletIcons/WalletImage.js.map +1 -0
  438. package/dist/components/uikit-sdk/SwiperDots/index.js +16 -0
  439. package/dist/components/uikit-sdk/SwiperDots/index.js.map +1 -0
  440. package/dist/components/uikit-sdk/Tag/ListTag.js +18 -0
  441. package/dist/components/uikit-sdk/Tag/ListTag.js.map +1 -0
  442. package/dist/components/uikit-sdk/Text/index.js +15 -0
  443. package/dist/components/uikit-sdk/Text/index.js.map +1 -0
  444. package/dist/components/uikit-sdk/Text/types.js +16 -0
  445. package/dist/components/uikit-sdk/Text/types.js.map +1 -0
  446. package/dist/components/uikit-sdk/Toggle/index.js +18 -0
  447. package/dist/components/uikit-sdk/Toggle/index.js.map +1 -0
  448. package/dist/components/uikit-sdk/Toggle/styles.js +22 -0
  449. package/dist/components/uikit-sdk/Toggle/styles.js.map +1 -0
  450. package/dist/components/uikit-sdk/TokenImage/index.js +57 -0
  451. package/dist/components/uikit-sdk/TokenImage/index.js.map +1 -0
  452. package/dist/components/uikit-sdk/TooltipBubble/index.js +65 -0
  453. package/dist/components/uikit-sdk/TooltipBubble/index.js.map +1 -0
  454. package/dist/components/uikit-sdk/TooltipBubble/styles.js +108 -0
  455. package/dist/components/uikit-sdk/TooltipBubble/styles.js.map +1 -0
  456. package/dist/components/uikit-sdk/TooltipBubble/types.js +12 -0
  457. package/dist/components/uikit-sdk/TooltipBubble/types.js.map +1 -0
  458. package/dist/config/abi/BOND_2_0_0.json.js +1065 -0
  459. package/dist/config/abi/BOND_2_0_0.json.js.map +1 -0
  460. package/dist/config/abi/BOND_2_4_0.json.js +2409 -0
  461. package/dist/config/abi/BOND_2_4_0.json.js.map +1 -0
  462. package/dist/config/abi/bondNft.json.js +959 -0
  463. package/dist/config/abi/bondNft.json.js.map +1 -0
  464. package/dist/config/abi/deposit.json.js +29 -0
  465. package/dist/config/abi/deposit.json.js.map +1 -0
  466. package/dist/config/abi/depositSig.json.js +39 -0
  467. package/dist/config/abi/depositSig.json.js.map +1 -0
  468. package/dist/config/abi/erc20.json.js +229 -0
  469. package/dist/config/abi/erc20.json.js.map +1 -0
  470. package/dist/config/abi/launchBond_v2_4_1.json.js +2358 -0
  471. package/dist/config/abi/launchBond_v2_4_1.json.js.map +1 -0
  472. package/dist/config/abi/lensContract.json.js +338 -0
  473. package/dist/config/abi/lensContract.json.js.map +1 -0
  474. package/dist/config/abi/multicallv2.json.js +151 -0
  475. package/dist/config/abi/multicallv2.json.js.map +1 -0
  476. package/dist/config/abi/price-getter-v3.json.js +853 -0
  477. package/dist/config/abi/price-getter-v3.json.js.map +1 -0
  478. package/dist/config/abi/usdtETH.json.js +704 -0
  479. package/dist/config/abi/usdtETH.json.js.map +1 -0
  480. package/dist/config/constants/addresses.js +61 -0
  481. package/dist/config/constants/addresses.js.map +1 -0
  482. package/dist/config/constants/chains.js +101 -0
  483. package/dist/config/constants/chains.js.map +1 -0
  484. package/dist/config/constants/networks.js +50 -0
  485. package/dist/config/constants/networks.js.map +1 -0
  486. package/dist/config/constants/queryKeys.js +28 -0
  487. package/dist/config/constants/queryKeys.js.map +1 -0
  488. package/dist/config/constants/tokens.js +669 -0
  489. package/dist/config/constants/tokens.js.map +1 -0
  490. package/dist/config/constants/tooltips.js +21 -0
  491. package/dist/config/constants/tooltips.js.map +1 -0
  492. package/dist/config/constants/variables.js +21 -0
  493. package/dist/config/constants/variables.js.map +1 -0
  494. package/dist/contexts/ModalContext.js +70 -0
  495. package/dist/contexts/ModalContext.js.map +1 -0
  496. package/dist/contexts/Popups.js +28 -0
  497. package/dist/contexts/Popups.js.map +1 -0
  498. package/dist/contexts/SwiperProvider.js +21 -0
  499. package/dist/contexts/SwiperProvider.js.map +1 -0
  500. package/dist/hooks/useDebounce.js +21 -0
  501. package/dist/hooks/useDebounce.js.map +1 -0
  502. package/dist/hooks/useIsMobile.js +22 -0
  503. package/dist/hooks/useIsMobile.js.map +1 -0
  504. package/dist/hooks/useModal.js +34 -0
  505. package/dist/hooks/useModal.js.map +1 -0
  506. package/dist/hooks/useMonitorTxHash.d.ts +1 -0
  507. package/dist/hooks/useMonitorTxHash.js +26 -0
  508. package/dist/hooks/useMonitorTxHash.js.map +1 -0
  509. package/dist/hooks/useSendReferenceId.js +22 -0
  510. package/dist/hooks/useSendReferenceId.js.map +1 -0
  511. package/dist/hooks/useSortedZapList.js +44 -0
  512. package/dist/hooks/useSortedZapList.js.map +1 -0
  513. package/dist/hooks/useSwiper.js +13 -0
  514. package/dist/hooks/useSwiper.js.map +1 -0
  515. package/dist/hooks/useTokenFromZapList.js +13 -0
  516. package/dist/hooks/useTokenFromZapList.js.map +1 -0
  517. package/dist/hooks/useTopTags.js +38 -0
  518. package/dist/hooks/useTopTags.js.map +1 -0
  519. package/dist/main.d.ts +1 -4
  520. package/dist/main.js +6 -98175
  521. package/dist/main.js.map +1 -0
  522. package/dist/providers/index.js +62 -0
  523. package/dist/providers/index.js.map +1 -0
  524. package/dist/state/abtesting/useCookie.js +40 -0
  525. package/dist/state/abtesting/useCookie.js.map +1 -0
  526. package/dist/state/activeView/index.js +39 -0
  527. package/dist/state/activeView/index.js.map +1 -0
  528. package/dist/state/allowance/useAllowance.js +136 -0
  529. package/dist/state/allowance/useAllowance.js.map +1 -0
  530. package/dist/state/balance/useCurrencyBalance.js +39 -0
  531. package/dist/state/balance/useCurrencyBalance.js.map +1 -0
  532. package/dist/state/balance/useUserTokensBalance.js +79 -0
  533. package/dist/state/balance/useUserTokensBalance.js.map +1 -0
  534. package/dist/state/bondApiStats/useUserApiStats.js +25 -0
  535. package/dist/state/bondApiStats/useUserApiStats.js.map +1 -0
  536. package/dist/state/bonds/useBondNFTData.js +35 -0
  537. package/dist/state/bonds/useBondNFTData.js.map +1 -0
  538. package/dist/state/bonds/useBondsData.js +204 -0
  539. package/dist/state/bonds/useBondsData.js.map +1 -0
  540. package/dist/state/bonds/useBondsList.js +34 -0
  541. package/dist/state/bonds/useBondsList.js.map +1 -0
  542. package/dist/state/bonds/useGetBondRecommendations.js +23 -0
  543. package/dist/state/bonds/useGetBondRecommendations.js.map +1 -0
  544. package/dist/state/bonds/useHotBonds.js +51 -0
  545. package/dist/state/bonds/useHotBonds.js.map +1 -0
  546. package/dist/state/bonds/useTierProofSignature.js +45 -0
  547. package/dist/state/bonds/useTierProofSignature.js.map +1 -0
  548. package/dist/state/bonds/useUserBonds.js +70 -0
  549. package/dist/state/bonds/useUserBonds.js.map +1 -0
  550. package/dist/state/bonds/utils.js +105 -0
  551. package/dist/state/bonds/utils.js.map +1 -0
  552. package/dist/state/chainFilterOption/useChainFilterOption.js +34 -0
  553. package/dist/state/chainFilterOption/useChainFilterOption.js.map +1 -0
  554. package/dist/state/favoriteTokens/useFavoriteTokens.js +49 -0
  555. package/dist/state/favoriteTokens/useFavoriteTokens.js.map +1 -0
  556. package/dist/state/popups/usePopups.js +57 -0
  557. package/dist/state/popups/usePopups.js.map +1 -0
  558. package/dist/state/preTGEBonds/usePreTGEList.js +35 -0
  559. package/dist/state/preTGEBonds/usePreTGEList.js.map +1 -0
  560. package/dist/state/preTGEBonds/usePreTGEUserBonds.js +140 -0
  561. package/dist/state/preTGEBonds/usePreTGEUserBonds.js.map +1 -0
  562. package/dist/state/price/useCurrencyPrice.js +17 -0
  563. package/dist/state/price/useCurrencyPrice.js.map +1 -0
  564. package/dist/state/slippage/useSlippage.js +22 -0
  565. package/dist/state/slippage/useSlippage.js.map +1 -0
  566. package/dist/state/tiers/useTierPoints.js +110 -0
  567. package/dist/state/tiers/useTierPoints.js.map +1 -0
  568. package/dist/state/tokenPrices/useTokenPrices.js +183 -0
  569. package/dist/state/tokenPrices/useTokenPrices.js.map +1 -0
  570. package/dist/state/useSDKConfig.js +49 -0
  571. package/dist/state/useSDKConfig.js.map +1 -0
  572. package/dist/state/zap/getChainParam.js +54 -0
  573. package/dist/state/zap/getChainParam.js.map +1 -0
  574. package/dist/state/zap/useSoulZapBondQuote.js +148 -0
  575. package/dist/state/zap/useSoulZapBondQuote.js.map +1 -0
  576. package/dist/state/zap/useSoulZapTokenQuote.js +124 -0
  577. package/dist/state/zap/useSoulZapTokenQuote.js.map +1 -0
  578. package/dist/theme/base.js +125 -0
  579. package/dist/theme/base.js.map +1 -0
  580. package/dist/theme/colors.js +25 -0
  581. package/dist/theme/colors.js.map +1 -0
  582. package/dist/theme/components.js +365 -0
  583. package/dist/theme/components.js.map +1 -0
  584. package/dist/theme/index.js +12 -0
  585. package/dist/theme/index.js.map +1 -0
  586. package/dist/utils/convertToTokenValue.js +27 -0
  587. package/dist/utils/convertToTokenValue.js.map +1 -0
  588. package/dist/utils/displayHelpers.js +168 -0
  589. package/dist/utils/displayHelpers.js.map +1 -0
  590. package/dist/utils/formatNumber.js +53 -0
  591. package/dist/utils/formatNumber.js.map +1 -0
  592. package/dist/utils/formatNumbers.js +66 -0
  593. package/dist/utils/formatNumbers.js.map +1 -0
  594. package/dist/utils/getBalanceNumber.js +11 -0
  595. package/dist/utils/getBalanceNumber.js.map +1 -0
  596. package/dist/utils/getDotPos.js +12 -0
  597. package/dist/utils/getDotPos.js.map +1 -0
  598. package/dist/utils/getNativeTicker.js +19 -0
  599. package/dist/utils/getNativeTicker.js.map +1 -0
  600. package/dist/utils/getTimePeriods.js +46 -0
  601. package/dist/utils/getTimePeriods.js.map +1 -0
  602. package/dist/utils/index.js +16 -0
  603. package/dist/utils/index.js.map +1 -0
  604. package/dist/utils/multicall.js +41 -0
  605. package/dist/utils/multicall.js.map +1 -0
  606. package/dist/utils/numbers.js +9 -0
  607. package/dist/utils/numbers.js.map +1 -0
  608. package/dist/utils/remove0xPrefix.js +9 -0
  609. package/dist/utils/remove0xPrefix.js.map +1 -0
  610. package/dist/utils/reportError.js +31 -0
  611. package/dist/utils/reportError.js.map +1 -0
  612. package/dist/utils/roundNumber.js +16 -0
  613. package/dist/utils/roundNumber.js.map +1 -0
  614. package/dist/utils/track.js +6 -0
  615. package/dist/utils/track.js.map +1 -0
  616. package/dist/views/Bonds/Bonds.js +145 -0
  617. package/dist/views/Bonds/Bonds.js.map +1 -0
  618. package/dist/views/Bonds/components/BannerTestnet/BannerTestnet.js +48 -0
  619. package/dist/views/Bonds/components/BannerTestnet/BannerTestnet.js.map +1 -0
  620. package/dist/views/Bonds/components/BondRows/BondRow.js +65 -0
  621. package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -0
  622. package/dist/views/Bonds/components/BondRows/BondRowsByChain.js +24 -0
  623. package/dist/views/Bonds/components/BondRows/BondRowsByChain.js.map +1 -0
  624. package/dist/views/Bonds/components/BondRows/BondRowsWithTitle.js +57 -0
  625. package/dist/views/Bonds/components/BondRows/BondRowsWithTitle.js.map +1 -0
  626. package/dist/views/Bonds/components/BondRows/ChainTitle.js +37 -0
  627. package/dist/views/Bonds/components/BondRows/ChainTitle.js.map +1 -0
  628. package/dist/views/Bonds/components/BondRows/ModalHandler.js +57 -0
  629. package/dist/views/Bonds/components/BondRows/ModalHandler.js.map +1 -0
  630. package/dist/views/Bonds/components/BondsMenu/BondsMenu.js +35 -0
  631. package/dist/views/Bonds/components/BondsMenu/BondsMenu.js.map +1 -0
  632. package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +58 -0
  633. package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -0
  634. package/dist/views/Bonds/components/BonusComponents/BonusContainer.js +11 -0
  635. package/dist/views/Bonds/components/BonusComponents/BonusContainer.js.map +1 -0
  636. package/dist/views/Bonds/components/BonusComponents/BonusTable.js +53 -0
  637. package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -0
  638. package/dist/views/Bonds/components/BuyAgainRow/index.js +93 -0
  639. package/dist/views/Bonds/components/BuyAgainRow/index.js.map +1 -0
  640. package/dist/views/Bonds/components/CheckURL/index.js +43 -0
  641. package/dist/views/Bonds/components/CheckURL/index.js.map +1 -0
  642. package/dist/views/Bonds/components/HotBondCards/HotBondCard.js +49 -0
  643. package/dist/views/Bonds/components/HotBondCards/HotBondCard.js.map +1 -0
  644. package/dist/views/Bonds/components/HotBondCards/index.d.ts +1 -1
  645. package/dist/views/Bonds/components/HotBondCards/index.js +72 -0
  646. package/dist/views/Bonds/components/HotBondCards/index.js.map +1 -0
  647. package/dist/views/Bonds/components/HotBondCards/styles.js +47 -0
  648. package/dist/views/Bonds/components/HotBondCards/styles.js.map +1 -0
  649. package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js +26 -0
  650. package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js.map +1 -0
  651. package/dist/views/Bonds/components/RecommendationCards/index.js +79 -0
  652. package/dist/views/Bonds/components/RecommendationCards/index.js.map +1 -0
  653. package/dist/views/Bonds/components/RecommendationCards/styles.js +24 -0
  654. package/dist/views/Bonds/components/RecommendationCards/styles.js.map +1 -0
  655. package/dist/views/Bonds/index.js +12 -0
  656. package/dist/views/Bonds/index.js.map +1 -0
  657. package/dist/views/Bonds/utils.js +124 -0
  658. package/dist/views/Bonds/utils.js.map +1 -0
  659. package/dist/views/BuyBond/BuyBond.js +352 -0
  660. package/dist/views/BuyBond/BuyBond.js.map +1 -0
  661. package/dist/views/BuyBond/BuyBondModal.js +23 -0
  662. package/dist/views/BuyBond/BuyBondModal.js.map +1 -0
  663. package/dist/views/BuyBond/components/BondCards.js +80 -0
  664. package/dist/views/BuyBond/components/BondCards.js.map +1 -0
  665. package/dist/views/BuyBond/components/BondModalHeader.js +80 -0
  666. package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -0
  667. package/dist/views/BuyBond/components/BondModalMinTierHeader.js +32 -0
  668. package/dist/views/BuyBond/components/BondModalMinTierHeader.js.map +1 -0
  669. package/dist/views/BuyBond/components/Estimations.js +59 -0
  670. package/dist/views/BuyBond/components/Estimations.js.map +1 -0
  671. package/dist/views/BuyBond/components/ExpandedViewButton.js +36 -0
  672. package/dist/views/BuyBond/components/ExpandedViewButton.js.map +1 -0
  673. package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +63 -0
  674. package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +1 -0
  675. package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js +53 -0
  676. package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js.map +1 -0
  677. package/dist/views/BuyBond/components/NoBonusModal/NoBonusModal.js +35 -0
  678. package/dist/views/BuyBond/components/NoBonusModal/NoBonusModal.js.map +1 -0
  679. package/dist/views/BuyBond/components/ProjectDescription.js +37 -0
  680. package/dist/views/BuyBond/components/ProjectDescription.js.map +1 -0
  681. package/dist/views/BuyBond/findHighestTrueBondPrice.js +51 -0
  682. package/dist/views/BuyBond/findHighestTrueBondPrice.js.map +1 -0
  683. package/dist/views/BuyBond/index.js +12 -0
  684. package/dist/views/BuyBond/index.js.map +1 -0
  685. package/dist/views/FullBondsView/FullBondsView.js +31 -0
  686. package/dist/views/FullBondsView/FullBondsView.js.map +1 -0
  687. package/dist/views/FullBondsView/index.js +12 -0
  688. package/dist/views/FullBondsView/index.js.map +1 -0
  689. package/dist/views/PreTGEBonds/components/BuyComponent/BondCards.js +71 -0
  690. package/dist/views/PreTGEBonds/components/BuyComponent/BondCards.js.map +1 -0
  691. package/dist/views/PreTGEBonds/components/BuyComponent/ParticipationSuccessful.js +76 -0
  692. package/dist/views/PreTGEBonds/components/BuyComponent/ParticipationSuccessful.js.map +1 -0
  693. package/dist/views/PreTGEBonds/components/BuyComponent/PreTGEBuyComponent.js +144 -0
  694. package/dist/views/PreTGEBonds/components/BuyComponent/PreTGEBuyComponent.js.map +1 -0
  695. package/dist/views/PreTGEBonds/components/BuyComponent/PreTGEModalHandler.js +36 -0
  696. package/dist/views/PreTGEBonds/components/BuyComponent/PreTGEModalHandler.js.map +1 -0
  697. package/dist/views/PreTGEBonds/components/BuyComponent/styles.js +42 -0
  698. package/dist/views/PreTGEBonds/components/BuyComponent/styles.js.map +1 -0
  699. package/dist/views/PreTGEBonds/components/PreTGEUserRows/PreTGEActions.js +115 -0
  700. package/dist/views/PreTGEBonds/components/PreTGEUserRows/PreTGEActions.js.map +1 -0
  701. package/dist/views/PreTGEBonds/components/PreTGEUserRows/PreTGEUserRow.js +50 -0
  702. package/dist/views/PreTGEBonds/components/PreTGEUserRows/PreTGEUserRow.js.map +1 -0
  703. package/dist/views/TransactionModal/TransactionModal.js +187 -0
  704. package/dist/views/TransactionModal/TransactionModal.js.map +1 -0
  705. package/dist/views/YourBonds/YourBonds.js +128 -0
  706. package/dist/views/YourBonds/YourBonds.js.map +1 -0
  707. package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js +131 -0
  708. package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js.map +1 -0
  709. package/dist/views/YourBonds/components/ClaimAll/index.js +35 -0
  710. package/dist/views/YourBonds/components/ClaimAll/index.js.map +1 -0
  711. package/dist/views/YourBonds/components/UserBondRow/index.js +109 -0
  712. package/dist/views/YourBonds/components/UserBondRow/index.js.map +1 -0
  713. package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js +28 -0
  714. package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js.map +1 -0
  715. package/dist/views/YourBonds/fetchBillsUser.js +110 -0
  716. package/dist/views/YourBonds/fetchBillsUser.js.map +1 -0
  717. package/dist/views/YourBonds/getBillNftData.js +55 -0
  718. package/dist/views/YourBonds/getBillNftData.js.map +1 -0
  719. package/dist/views/YourBonds/index.js +12 -0
  720. package/dist/views/YourBonds/index.js.map +1 -0
  721. package/dist/views/YourBondsModal/YourBondsModal.js +183 -0
  722. package/dist/views/YourBondsModal/YourBondsModal.js.map +1 -0
  723. package/dist/views/YourBondsModal/components/Recommendations/CardRecommendation.js +55 -0
  724. package/dist/views/YourBondsModal/components/Recommendations/CardRecommendation.js.map +1 -0
  725. package/dist/views/YourBondsModal/components/Recommendations/CardRecommendationsMobile.js +57 -0
  726. package/dist/views/YourBondsModal/components/Recommendations/CardRecommendationsMobile.js.map +1 -0
  727. package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js +52 -0
  728. package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js.map +1 -0
  729. package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js +84 -0
  730. package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js.map +1 -0
  731. package/dist/views/YourBondsModal/components/TransferBondModal/index.js +39 -0
  732. package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -0
  733. package/dist/views/ZapModal/index.js +155 -0
  734. package/dist/views/ZapModal/index.js.map +1 -0
  735. package/package.json +11 -9
  736. package/dist/assets/output-2LTDuc8n.css +0 -174
@@ -0,0 +1,204 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
3
+ import axios from 'axios';
4
+ import { useSDKConfig, useURLByEnvironment } from '../useSDKConfig.js';
5
+ import useTokenPrices from '../tokenPrices/useTokenPrices.js';
6
+ import useBondsList from './useBondsList.js';
7
+ import { BillVersion } from '@ape.swap/apeswap-lists';
8
+ import { ACF_TO_ABOND } from '../../config/constants/addresses.js';
9
+ import multicall from '../../utils/multicall.js';
10
+ import BOND_2_4_0 from '../../config/abi/BOND_2_4_0.json.js';
11
+ import ERC_20_ABI from '../../config/abi/erc20.json.js';
12
+ import { chunk } from 'lodash';
13
+ import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
14
+ import BigNumber from 'bignumber.js';
15
+ import { reportError } from '../../utils/reportError.js';
16
+ import usePreTGEList from '../preTGEBonds/usePreTGEList.js';
17
+ import { getPreTGEBondsData } from './utils.js';
18
+
19
+ function useBondsData() {
20
+ const { data: tokenPrices } = useTokenPrices();
21
+ const { data: bondList } = useBondsList();
22
+ const { data: preTGEList } = usePreTGEList();
23
+ const { chains } = useSDKConfig();
24
+ const apiUrl = useURLByEnvironment('apiV2');
25
+ const realTimeApiURL = useURLByEnvironment('realTimeApi');
26
+ return useQuery({
27
+ queryKey: [QUERY_KEYS.BONDS_DATA],
28
+ queryFn: () => getBondsData(chains, tokenPrices, bondList, preTGEList, realTimeApiURL, apiUrl),
29
+ refetchInterval: 20000, // i.e. 20 sec
30
+ refetchOnWindowFocus: false,
31
+ retry: 0,
32
+ initialData: [],
33
+ enabled: !!chains && chains.length > 0,
34
+ });
35
+ }
36
+ //TODO: move this function to utils once SOLANA code is merged
37
+ const getBondsData = async (chains, tokenPrices, bondList, preTGEList, realTimeApiURL, apiUrl) => {
38
+ try {
39
+ const response = await axios.get(`${realTimeApiURL}/bonds`);
40
+ return response.data.bonds;
41
+ }
42
+ catch {
43
+ console.time('Fallback'); // Start debug timer
44
+ const billData = [];
45
+ if (tokenPrices && bondList) {
46
+ await Promise.all([
47
+ ...chains.map(async (chainId) => {
48
+ const filteredBonds = bondList?.filter((bill) => bill?.contractAddress?.[chainId]?.toLowerCase() !== ACF_TO_ABOND.toLowerCase() &&
49
+ !bill.soldOut &&
50
+ bill.chainId === chainId) ?? [];
51
+ const returnedBills = await fetchBills(chainId, tokenPrices, filteredBonds, apiUrl);
52
+ billData.push(returnedBills);
53
+ }),
54
+ ...chains.map(async (chainId) => {
55
+ const filteredBonds = preTGEList?.filter((bond) => bond.chainId === chainId) ?? [];
56
+ const preTGEBondsData = await getPreTGEBondsData(chainId, tokenPrices, filteredBonds, apiUrl);
57
+ billData.push(preTGEBondsData);
58
+ }),
59
+ ]);
60
+ }
61
+ console.timeEnd(`Fallback`);
62
+ return billData?.flat();
63
+ }
64
+ };
65
+ const fetchBills = async (chainId, tokenPrices, bills, apiUrl) => {
66
+ try {
67
+ const billIds = [];
68
+ const billCalls = bills.flatMap((bill) => {
69
+ billIds.push(bill.index);
70
+ return [
71
+ {
72
+ address: bill.contractAddress[bill.chainId] ?? '',
73
+ name: bill.billVersion === BillVersion.V4 ? 'trueBondPrices' : 'trueBillPrice()',
74
+ },
75
+ {
76
+ address: bill.contractAddress[bill.chainId] ?? '',
77
+ name: 'totalPayoutGiven',
78
+ },
79
+ {
80
+ address: bill.contractAddress[bill.chainId] ?? '',
81
+ name: 'terms',
82
+ },
83
+ {
84
+ address: bill.contractAddress[bill.chainId] ?? '',
85
+ name: bill.billVersion !== BillVersion.V1 ? 'getMaxTotalPayout' : 'maxTotalPayout',
86
+ },
87
+ {
88
+ address: bill.contractAddress[bill.chainId] ?? '',
89
+ name: 'feeInPayout',
90
+ },
91
+ // keep custom treasury at the very last position
92
+ {
93
+ address: bill.contractAddress[bill.chainId] ?? '',
94
+ name: 'customTreasury',
95
+ },
96
+ ];
97
+ });
98
+ const vals = await multicall(chainId, BOND_2_4_0, billCalls);
99
+ // The following lines basically grab the values from customTreasury returned from bills contract and then,
100
+ // appends the treasury contract's balance to the chunk that will be passed to cleanBillsData
101
+ // appendIndex value assumes customTreasury will be at the end of the billCalls array
102
+ const appendIndex = billCalls.length / bills.length;
103
+ const treasuryAddresses = vals
104
+ .filter((_, i) => (i % appendIndex) + 1 === appendIndex)
105
+ .map((customTreasury) => customTreasury[0]);
106
+ const treasuryBalanceCalls = treasuryAddresses.map((treasuryAddress, i) => ({
107
+ address: bills?.[i]?.earnToken?.address?.[chainId] ?? '',
108
+ name: 'balanceOf',
109
+ params: [treasuryAddress],
110
+ }));
111
+ const treasuryBalances = await multicall(chainId, ERC_20_ABI, treasuryBalanceCalls);
112
+ const updatedVals = vals.reduce((acc, val, index) => {
113
+ acc.push(val);
114
+ if ((index + 1) % appendIndex === 0) {
115
+ const pos = (index + 1) / appendIndex;
116
+ acc.push(treasuryBalances[pos - 1]);
117
+ }
118
+ return acc;
119
+ }, []);
120
+ //
121
+ const chunkSize = updatedVals?.length / bills?.length;
122
+ const chunkedBills = chunk(updatedVals, chunkSize);
123
+ return cleanBillsData(billIds, chunkedBills, tokenPrices, chainId, bills);
124
+ }
125
+ catch (e) {
126
+ console.error(e);
127
+ reportError({
128
+ apiUrl,
129
+ error: e,
130
+ extraInfo: { type: 'getBondsData', e },
131
+ });
132
+ return [];
133
+ }
134
+ };
135
+ const cleanBillsData = (billIds, chunkedBills, tokenPrices, chainId, bills) => {
136
+ const data = chunkedBills?.map((chunk, index) => {
137
+ const bill = bills?.find((bill) => bill?.index === billIds[index]);
138
+ const lpPrice = tokenPrices?.find((tokenPrice) => tokenPrice?.address?.toLowerCase() === bill?.lpToken?.address?.[bill?.chainId]?.toLowerCase() &&
139
+ tokenPrice?.chainId === chainId)?.price ?? 0;
140
+ const earnTokenPrice = tokenPrices?.find((tokenPrice) => tokenPrice?.address?.toLowerCase() === bill?.earnToken?.address?.[bill?.chainId]?.toLowerCase() &&
141
+ tokenPrice?.chainId === chainId)?.price ?? 0;
142
+ const [trueBillPrice, totalPayoutGiven, terms, maxTotalPayout, fee, , customTreasuryBalance] = chunk;
143
+ const feeInPayout = Number(fee / 10000);
144
+ const [, vestingTerm, , maxPayout] = terms;
145
+ const tokensRemaining = new BigNumber(maxTotalPayout ?? '0')
146
+ .minus(new BigNumber(totalPayoutGiven))
147
+ .div(new BigNumber(10).pow(bill?.earnToken.decimals[bill?.chainId] ?? 18))
148
+ .toNumber();
149
+ const treasuryBalance = getBalanceNumber(customTreasuryBalance);
150
+ const bonus = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice);
151
+ const bonusWithFee = getBonusWithFee(feeInPayout, trueBillPrice, lpPrice, earnTokenPrice);
152
+ let trueBondPrices = [];
153
+ if (bill?.billVersion === BillVersion.V4) {
154
+ trueBondPrices = trueBillPrice[0].map((data) => {
155
+ return {
156
+ points: data[2].toString(),
157
+ trueBondPrice: data[0].toString(),
158
+ bonus: getRawBonus(data[0].toString(), lpPrice, earnTokenPrice),
159
+ bonusWithFee: getBonusWithFee(feeInPayout, data[0].toString(), lpPrice, earnTokenPrice),
160
+ };
161
+ });
162
+ }
163
+ else {
164
+ trueBondPrices = [
165
+ {
166
+ points: '0',
167
+ trueBondPrice: trueBillPrice.toString(),
168
+ bonus,
169
+ bonusWithFee,
170
+ },
171
+ ];
172
+ }
173
+ const cleanedData = {
174
+ ...bill,
175
+ feeInPayout,
176
+ showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',
177
+ trueBondPrices,
178
+ principalTokenPrice: lpPrice?.toString() ?? '0',
179
+ payoutTokenPrice: earnTokenPrice?.toString() ?? '0',
180
+ tokensRemaining: Math.min(treasuryBalance, tokensRemaining).toString(),
181
+ maxTotalPayout: maxTotalPayout?.toString(),
182
+ maxPayout: maxPayout?.toString(),
183
+ totalPayoutGiven: totalPayoutGiven?.toString(),
184
+ vestingTerm: vestingTerm.toNumber(),
185
+ };
186
+ return cleanedData;
187
+ });
188
+ return data;
189
+ };
190
+ const getBonusWithFee = (feeInPayout, trueBillPrice, lpPrice, earnTokenPrice) => {
191
+ const fee = feeInPayout ?? 0;
192
+ const trueBillPriceMinusFee = new BigNumber(trueBillPrice ?? 0).times((100 + fee) / 100);
193
+ const priceUSDMinusFee = getBalanceNumber(trueBillPriceMinusFee) * lpPrice;
194
+ const discountWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100;
195
+ return discountWithoutFee > 0 ? (discountWithoutFee / (100 - discountWithoutFee)) * 100 : 0;
196
+ };
197
+ const getRawBonus = (trueBillPrice, lpPrice, earnTokenPrice) => {
198
+ const priceUsd = getBalanceNumber(trueBillPrice.toString()) * lpPrice;
199
+ const discount = ((earnTokenPrice - priceUsd) / earnTokenPrice) * 100;
200
+ return discount > 0 ? (discount / (100 - discount)) * 100 : 0;
201
+ };
202
+
203
+ export { useBondsData as default, getBondsData, getBonusWithFee, getRawBonus };
204
+ //# sourceMappingURL=useBondsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBondsData.js","sources":["../../../src/state/bonds/useBondsData.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BondsData, TrueBondPrices } from '../../types/bonds'\nimport axios from 'axios'\nimport { useSDKConfig, useURLByEnvironment } from '../useSDKConfig'\nimport useTokenPrices, { TokenPrices } from '../tokenPrices/useTokenPrices'\nimport useBondsList from './useBondsList'\nimport { BillsConfig, BillVersion, ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport { ACF_TO_ABOND } from '../../config/constants/addresses'\nimport multicall from '../../utils/multicall'\nimport BOND_2_4_0 from '../../config/abi/BOND_2_4_0.json'\nimport ERC20ABI from '../../config/abi/erc20.json'\nimport { chunk } from 'lodash'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport BigNumber from 'bignumber.js'\nimport { reportError } from '../../utils/reportError'\nimport usePreTGEList from '../preTGEBonds/usePreTGEList'\nimport { getPreTGEBondsData } from './utils'\n\nexport default function useBondsData(): UseQueryResult<BondsData[]> {\n const { data: tokenPrices } = useTokenPrices()\n const { data: bondList } = useBondsList()\n const { data: preTGEList } = usePreTGEList()\n const { chains } = useSDKConfig()\n const apiUrl = useURLByEnvironment('apiV2')\n\n const realTimeApiURL = useURLByEnvironment('realTimeApi')\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_DATA],\n queryFn: () => getBondsData(chains!, tokenPrices, bondList, preTGEList, realTimeApiURL, apiUrl),\n refetchInterval: 20000, // i.e. 20 sec\n refetchOnWindowFocus: false,\n retry: 0,\n initialData: [],\n enabled: !!chains && chains.length > 0,\n })\n}\n\n//TODO: move this function to utils once SOLANA code is merged\nexport const getBondsData = async (\n chains: number[],\n tokenPrices?: TokenPrices[],\n bondList?: BillsConfig[],\n preTGEList?: PreTGEConfig[],\n realTimeApiURL?: string,\n apiUrl?: string,\n): Promise<BondsData[]> => {\n try {\n const response = await axios.get(`${realTimeApiURL}/bonds`)\n return response.data.bonds\n } catch {\n console.time('Fallback') // Start debug timer\n const billData: BondsData[][] = []\n if (tokenPrices && bondList) {\n await Promise.all([\n ...chains.map(async (chainId: ChainId) => {\n const filteredBonds: BillsConfig[] =\n bondList?.filter(\n (bill: BillsConfig) =>\n bill?.contractAddress?.[chainId]?.toLowerCase() !== ACF_TO_ABOND.toLowerCase() &&\n !bill.soldOut &&\n bill.chainId === chainId,\n ) ?? []\n\n const returnedBills: BondsData[] = await fetchBills(chainId, tokenPrices, filteredBonds, apiUrl)\n billData.push(returnedBills)\n }),\n ...chains.map(async (chainId: ChainId) => {\n const filteredBonds = preTGEList?.filter((bond) => bond.chainId === chainId) ?? []\n const preTGEBondsData = await getPreTGEBondsData(chainId, tokenPrices, filteredBonds, apiUrl)\n billData.push(preTGEBondsData)\n }),\n ])\n }\n console.timeEnd(`Fallback`)\n return billData?.flat()\n }\n}\n\nconst fetchBills = async (chainId: number, tokenPrices: TokenPrices[], bills: BillsConfig[], apiUrl?: string) => {\n try {\n const billIds: number[] = []\n const billCalls = bills.flatMap((bill) => {\n billIds.push(bill.index)\n return [\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion === BillVersion.V4 ? 'trueBondPrices' : 'trueBillPrice()',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'totalPayoutGiven',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion !== BillVersion.V1 ? 'getMaxTotalPayout' : 'maxTotalPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPayout',\n },\n // keep custom treasury at the very last position\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'customTreasury',\n },\n ]\n })\n const vals = await multicall(chainId, BOND_2_4_0, billCalls)\n\n // The following lines basically grab the values from customTreasury returned from bills contract and then,\n // appends the treasury contract's balance to the chunk that will be passed to cleanBillsData\n\n // appendIndex value assumes customTreasury will be at the end of the billCalls array\n const appendIndex = billCalls.length / bills.length\n const treasuryAddresses = vals\n .filter((_: any, i: number) => (i % appendIndex) + 1 === appendIndex)\n .map((customTreasury: string[]) => customTreasury[0])\n const treasuryBalanceCalls = treasuryAddresses.map((treasuryAddress: string, i: number) => ({\n address: bills?.[i]?.earnToken?.address?.[chainId as ChainId] ?? '',\n name: 'balanceOf',\n params: [treasuryAddress],\n }))\n const treasuryBalances = await multicall(chainId, ERC20ABI, treasuryBalanceCalls)\n const updatedVals = vals.reduce((acc: any, val: any, index: number) => {\n acc.push(val)\n if ((index + 1) % appendIndex === 0) {\n const pos = (index + 1) / appendIndex\n acc.push(treasuryBalances[pos - 1])\n }\n return acc\n }, [])\n\n //\n const chunkSize = updatedVals?.length / bills?.length\n const chunkedBills = chunk(updatedVals, chunkSize)\n\n return cleanBillsData(billIds, chunkedBills, tokenPrices, chainId, bills)\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getBondsData', e },\n })\n return []\n }\n}\n\nconst cleanBillsData = (\n billIds: number[],\n chunkedBills: any[],\n tokenPrices: TokenPrices[],\n chainId: ChainId,\n bills: BillsConfig[],\n): BondsData[] => {\n const data: BondsData[] = chunkedBills?.map((chunk, index) => {\n const bill = bills?.find((bill) => bill?.index === billIds[index]) as BillsConfig\n\n const lpPrice =\n tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.address?.toLowerCase() === bill?.lpToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )?.price ?? 0\n\n const earnTokenPrice =\n tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.address?.toLowerCase() === bill?.earnToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )?.price ?? 0\n\n const [trueBillPrice, totalPayoutGiven, terms, maxTotalPayout, fee, , customTreasuryBalance] = chunk\n const feeInPayout = Number(fee / 10000)\n const [, vestingTerm, , maxPayout] = terms\n const tokensRemaining = new BigNumber(maxTotalPayout ?? '0')\n .minus(new BigNumber(totalPayoutGiven))\n .div(new BigNumber(10).pow(bill?.earnToken.decimals[bill?.chainId] ?? 18))\n .toNumber()\n const treasuryBalance = getBalanceNumber(customTreasuryBalance)\n\n const bonus: number = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice)\n const bonusWithFee = getBonusWithFee(feeInPayout, trueBillPrice, lpPrice, earnTokenPrice)\n let trueBondPrices: TrueBondPrices[] = []\n if (bill?.billVersion === BillVersion.V4) {\n trueBondPrices = trueBillPrice[0].map((data: any) => {\n return {\n points: data[2].toString(),\n trueBondPrice: data[0].toString(),\n bonus: getRawBonus(data[0].toString(), lpPrice, earnTokenPrice),\n bonusWithFee: getBonusWithFee(feeInPayout, data[0].toString(), lpPrice, earnTokenPrice),\n }\n })\n } else {\n trueBondPrices = [\n {\n points: '0',\n trueBondPrice: trueBillPrice.toString(),\n bonus,\n bonusWithFee,\n },\n ]\n }\n\n const cleanedData: BondsData = {\n ...bill,\n feeInPayout,\n showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',\n trueBondPrices,\n principalTokenPrice: lpPrice?.toString() ?? '0',\n payoutTokenPrice: earnTokenPrice?.toString() ?? '0',\n tokensRemaining: Math.min(treasuryBalance, tokensRemaining).toString(),\n maxTotalPayout: maxTotalPayout?.toString(),\n maxPayout: maxPayout?.toString(),\n totalPayoutGiven: totalPayoutGiven?.toString(),\n vestingTerm: vestingTerm.toNumber(),\n }\n return cleanedData\n })\n return data\n}\n\nexport const getBonusWithFee = (\n feeInPayout: number,\n trueBillPrice: BigNumber,\n lpPrice: number,\n earnTokenPrice: number,\n) => {\n const fee = feeInPayout ?? 0\n const trueBillPriceMinusFee = new BigNumber(trueBillPrice ?? 0).times((100 + fee) / 100)\n const priceUSDMinusFee = getBalanceNumber(trueBillPriceMinusFee) * lpPrice\n const discountWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100\n return discountWithoutFee > 0 ? (discountWithoutFee / (100 - discountWithoutFee)) * 100 : 0\n}\n\nexport const getRawBonus = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const priceUsd = getBalanceNumber(trueBillPrice.toString()) * lpPrice\n const discount: number = ((earnTokenPrice - priceUsd) / earnTokenPrice) * 100\n return discount > 0 ? (discount / (100 - discount)) * 100 : 0\n}\n"],"names":["ERC20ABI"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
3
+ import axios from 'axios';
4
+ import { useURLByEnvironment } from '../useSDKConfig.js';
5
+ import { reportError } from '../../utils/reportError.js';
6
+
7
+ function useBondsList() {
8
+ const realTime = useURLByEnvironment('realTimeApi');
9
+ const apiUrl = useURLByEnvironment('apiV2');
10
+ return useQuery({
11
+ queryKey: [QUERY_KEYS.BONDS_LIST],
12
+ queryFn: () => getBondsList(realTime, apiUrl),
13
+ staleTime: Infinity,
14
+ refetchInterval: 300000, // 5 min
15
+ refetchOnWindowFocus: false,
16
+ });
17
+ }
18
+ const getBondsList = async (realTimeapiURL, apiUrl) => {
19
+ try {
20
+ const response = await axios.get(`${realTimeapiURL}/utils/bonds`);
21
+ return response.data;
22
+ }
23
+ catch (e) {
24
+ reportError({
25
+ apiUrl,
26
+ error: e,
27
+ extraInfo: { type: 'getBondsList', e },
28
+ });
29
+ return [];
30
+ }
31
+ };
32
+
33
+ export { useBondsList as default, getBondsList };
34
+ //# sourceMappingURL=useBondsList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBondsList.js","sources":["../../../src/state/bonds/useBondsList.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { BillsConfig } from '@ape.swap/apeswap-lists'\nimport { useURLByEnvironment } from '../useSDKConfig'\nimport { reportError } from '../../utils/reportError'\n\nexport default function useBondsList(): UseQueryResult<BillsConfig[]> {\n const realTime = useURLByEnvironment('realTimeApi')\n const apiUrl = useURLByEnvironment('apiV2')\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_LIST],\n queryFn: () => getBondsList(realTime, apiUrl),\n staleTime: Infinity,\n refetchInterval: 300000, // 5 min\n refetchOnWindowFocus: false,\n })\n}\n\nexport const getBondsList = async (realTimeapiURL: string, apiUrl: string): Promise<BillsConfig[]> => {\n try {\n const response = await axios.get(`${realTimeapiURL}/utils/bonds`)\n return response.data\n } catch (e) {\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getBondsList', e },\n })\n return []\n }\n}\n"],"names":[],"mappings":";;;;;;AAOc,SAAU,YAAY,GAAA;AAClC,IAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC;AACnD,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAC3C,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QACjC,OAAO,EAAE,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC7C,QAAA,SAAS,EAAE,QAAQ;QACnB,eAAe,EAAE,MAAM;AACvB,QAAA,oBAAoB,EAAE,KAAK;AAC5B,KAAA,CAAC;AACJ;AAEO,MAAM,YAAY,GAAG,OAAO,cAAsB,EAAE,MAAc,KAA4B;AACnG,IAAA,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,EAAG,cAAc,CAAA,YAAA,CAAc,CAAC;QACjE,OAAO,QAAQ,CAAC,IAAI;IACtB;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;YACV,MAAM;AACN,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE;AACvC,SAAA,CAAC;AACF,QAAA,OAAO,EAAE;IACX;AACF;;;;"}
@@ -0,0 +1,23 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import axios from 'axios';
3
+ import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
4
+ import { useURLByEnvironment, useSDKConfig } from '../useSDKConfig.js';
5
+
6
+ const getBondRecommendations = async (apiV2URL, user, contract, limit, chains) => {
7
+ const { data } = await axios.get(`${apiV2URL}/recommendations/bonds?user=${user}&contract=${contract}&limit=${limit}&chains=${chains}`);
8
+ return data?.bonds;
9
+ };
10
+ function useGetBondRecommendations(user, contract, limit = '3') {
11
+ const apiV2URL = useURLByEnvironment('apiV2');
12
+ const SDKConfig = useSDKConfig();
13
+ return useQuery({
14
+ queryKey: [`${QUERY_KEYS.BOND_RECOMMENDATIONS}-${contract}-${limit}-${SDKConfig.chains}`],
15
+ queryFn: () => getBondRecommendations(apiV2URL, user, contract, limit, SDKConfig.chains),
16
+ staleTime: Infinity,
17
+ refetchOnWindowFocus: false,
18
+ refetchOnMount: false,
19
+ });
20
+ }
21
+
22
+ export { useGetBondRecommendations as default, getBondRecommendations };
23
+ //# sourceMappingURL=useGetBondRecommendations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetBondRecommendations.js","sources":["../../../src/state/bonds/useGetBondRecommendations.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport axios from 'axios'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { useSDKConfig, useURLByEnvironment } from '../useSDKConfig'\n\nexport interface BondRecommendation {\n chainId: number\n type: string\n principalToken: string\n principalTokenName: string\n payoutToken: string\n payoutTokenName: string\n billAddress: string\n discount: number\n bonus: number\n link: string\n billNftAddress: string\n initTime: number\n soldOut: boolean\n inactive: boolean\n maxTotalPayout: number\n totalPayoutGiven: number\n tokensRemaining: number\n showcaseToken: string\n showcaseTokenName: string\n vestingTerm: number\n earnTokenPrice: number\n priceUsd: number\n tags: string[]\n arr: number\n}\n\nexport const getBondRecommendations = async (\n apiV2URL: string,\n user?: string,\n contract?: string,\n limit?: string,\n chains?: number[],\n): Promise<BondRecommendation[]> => {\n const { data } = await axios.get(\n `${apiV2URL}/recommendations/bonds?user=${user}&contract=${contract}&limit=${limit}&chains=${chains}`,\n )\n return data?.bonds\n}\n\nexport default function useGetBondRecommendations(user?: string, contract?: string, limit: string = '3') {\n const apiV2URL = useURLByEnvironment('apiV2')\n const SDKConfig = useSDKConfig()\n return useQuery({\n queryKey: [`${QUERY_KEYS.BOND_RECOMMENDATIONS}-${contract}-${limit}-${SDKConfig.chains}`],\n queryFn: () => getBondRecommendations(apiV2URL, user, contract, limit, SDKConfig.chains),\n staleTime: Infinity,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n })\n}\n"],"names":[],"mappings":";;;;;AAgCO,MAAM,sBAAsB,GAAG,OACpC,QAAgB,EAChB,IAAa,EACb,QAAiB,EACjB,KAAc,EACd,MAAiB,KACgB;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,CAAA,EAAG,QAAQ,CAAA,4BAAA,EAA+B,IAAI,aAAa,QAAQ,CAAA,OAAA,EAAU,KAAK,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE,CACtG;IACD,OAAO,IAAI,EAAE,KAAK;AACpB;AAEc,SAAU,yBAAyB,CAAC,IAAa,EAAE,QAAiB,EAAE,KAAA,GAAgB,GAAG,EAAA;AACrG,IAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAC7C,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,CAAA,EAAG,UAAU,CAAC,oBAAoB,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,SAAS,CAAC,MAAM,EAAE,CAAC;AACzF,QAAA,OAAO,EAAE,MAAM,sBAAsB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;AACxF,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,cAAc,EAAE,KAAK;AACtB,KAAA,CAAC;AACJ;;;;"}
@@ -0,0 +1,51 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
3
+ import axios from 'axios';
4
+ import useBondsData from './useBondsData.js';
5
+ import { STRAPI_URL } from '../../config/constants/variables.js';
6
+ import { reportError } from '../../utils/reportError.js';
7
+ import { useURLByEnvironment } from '../useSDKConfig.js';
8
+
9
+ function useHotBondContracts() {
10
+ const apiUrl = useURLByEnvironment('apiV2');
11
+ return useQuery({
12
+ queryKey: [QUERY_KEYS.HOT_BONDS_CONTRACTS],
13
+ queryFn: () => getHotBondsContracts(apiUrl),
14
+ staleTime: Infinity,
15
+ refetchOnWindowFocus: false,
16
+ refetchOnMount: false,
17
+ retry: 1,
18
+ });
19
+ }
20
+ function useHotBonds() {
21
+ const { data: bondsData } = useBondsData();
22
+ const { data: hotBondContracts } = useHotBondContracts();
23
+ return useQuery({
24
+ queryKey: [QUERY_KEYS.HOT_BONDS, bondsData?.length, hotBondContracts?.length],
25
+ queryFn: () => getHotBonds(bondsData, hotBondContracts),
26
+ refetchOnWindowFocus: false,
27
+ refetchInterval: 30000,
28
+ enabled: !!bondsData && bondsData.length > 0 && !!hotBondContracts && hotBondContracts.length > 0,
29
+ retry: 0,
30
+ });
31
+ }
32
+ const getHotBondsContracts = async (apiUrl) => {
33
+ try {
34
+ const response = await axios.get(`${STRAPI_URL}/hot-bonds`);
35
+ return response.data.map((bond) => bond.BondAddress.toLowerCase());
36
+ }
37
+ catch (e) {
38
+ reportError({
39
+ apiUrl,
40
+ error: e,
41
+ extraInfo: { type: 'getHotBondsContracts', e },
42
+ });
43
+ return [];
44
+ }
45
+ };
46
+ const getHotBonds = async (bondData, hotBondContracts) => {
47
+ return bondData.filter((bond) => hotBondContracts.includes(bond?.contractAddress?.[bond?.chainId]?.toLowerCase() ?? ''));
48
+ };
49
+
50
+ export { useHotBonds as default, getHotBonds, getHotBondsContracts, useHotBondContracts };
51
+ //# sourceMappingURL=useHotBonds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHotBonds.js","sources":["../../../src/state/bonds/useHotBonds.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport useBondsData from './useBondsData'\nimport { BondsData } from '../../types/bonds'\nimport { STRAPI_URL } from '../../config/constants/variables'\nimport { reportError } from '../../utils/reportError'\nimport { useURLByEnvironment } from '../useSDKConfig'\n\nexport function useHotBondContracts() {\n const apiUrl = useURLByEnvironment('apiV2')\n return useQuery({\n queryKey: [QUERY_KEYS.HOT_BONDS_CONTRACTS],\n queryFn: () => getHotBondsContracts(apiUrl),\n staleTime: Infinity,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n retry: 1,\n })\n}\n\nexport default function useHotBonds(): UseQueryResult<BondsData[]> {\n const { data: bondsData } = useBondsData()\n const { data: hotBondContracts } = useHotBondContracts()\n return useQuery({\n queryKey: [QUERY_KEYS.HOT_BONDS, bondsData?.length, hotBondContracts?.length],\n queryFn: () => getHotBonds(bondsData!, hotBondContracts!),\n refetchOnWindowFocus: false,\n refetchInterval: 30000,\n enabled: !!bondsData && bondsData.length > 0 && !!hotBondContracts && hotBondContracts.length > 0,\n retry: 0,\n })\n}\n\nexport const getHotBondsContracts = async (apiUrl: string): Promise<string[]> => {\n try {\n const response = await axios.get(`${STRAPI_URL}/hot-bonds`)\n return response.data.map((bond: { BondAddress: string }) => bond.BondAddress.toLowerCase())\n } catch (e) {\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getHotBondsContracts', e },\n })\n return []\n }\n}\n\nexport const getHotBonds = async (bondData: BondsData[], hotBondContracts: string[]): Promise<BondsData[]> => {\n return bondData.filter((bond) =>\n hotBondContracts.includes(bond?.contractAddress?.[bond?.chainId]?.toLowerCase() ?? ''),\n )\n}\n"],"names":[],"mappings":";;;;;;;;SASgB,mBAAmB,GAAA;AACjC,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAC3C,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC1C,QAAA,OAAO,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC;AAC3C,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACJ;AAEc,SAAU,WAAW,GAAA;IACjC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE;IAC1C,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,EAAE;AACxD,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC;QAC7E,OAAO,EAAE,MAAM,WAAW,CAAC,SAAU,EAAE,gBAAiB,CAAC;AACzD,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;AACjG,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACJ;MAEa,oBAAoB,GAAG,OAAO,MAAc,KAAuB;AAC9E,IAAA,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,EAAG,UAAU,CAAA,UAAA,CAAY,CAAC;AAC3D,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAA6B,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAC7F;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;YACV,MAAM;AACN,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,EAAE;AAC/C,SAAA,CAAC;AACF,QAAA,OAAO,EAAE;IACX;AACF;AAEO,MAAM,WAAW,GAAG,OAAO,QAAqB,EAAE,gBAA0B,KAA0B;AAC3G,IAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAC1B,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CACvF;AACH;;;;"}
@@ -0,0 +1,45 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
3
+ import axios from 'axios';
4
+ import { useAccount } from 'wagmi';
5
+ import { useSDKConfig } from '../useSDKConfig.js';
6
+ import { reportError } from '../../utils/reportError.js';
7
+
8
+ function useTierProofSignature(bondAddress, chainId, isUserRestricted) {
9
+ const { address: account } = useAccount();
10
+ const SDKConfig = useSDKConfig();
11
+ const apiAddress = SDKConfig?.urls?.apiV2;
12
+ return useQuery({
13
+ queryKey: [QUERY_KEYS.TIER_PROOF_SIG, account, bondAddress, chainId, isUserRestricted],
14
+ queryFn: () => getTierProofSig(apiAddress, account, bondAddress, chainId),
15
+ refetchOnWindowFocus: false,
16
+ retry: 1,
17
+ refetchInterval: 1800000, // 30 mins
18
+ initialData: null,
19
+ enabled: !!bondAddress && !!account && !!apiAddress && !!chainId && SDKConfig.useTiers && !isUserRestricted,
20
+ });
21
+ }
22
+ const getTierProofSig = async (apiAddress, account, bondAddress, chainId) => {
23
+ try {
24
+ const requestBody = {
25
+ user: account, // Use the account as the "user" parameter
26
+ bond: bondAddress, // Use the bondAddress
27
+ chainId: chainId, // Use the specified chainId (Polygon)
28
+ };
29
+ const response = await axios.post(`${apiAddress}/tier-signature`, requestBody);
30
+ return response.data.tierProofSignature;
31
+ }
32
+ catch (e) {
33
+ reportError({
34
+ apiUrl: apiAddress,
35
+ error: e,
36
+ extraInfo: { type: 'getTierProofSig', bondAddress, e },
37
+ chainId,
38
+ account,
39
+ });
40
+ return null;
41
+ }
42
+ };
43
+
44
+ export { useTierProofSignature as default, getTierProofSig };
45
+ //# sourceMappingURL=useTierProofSignature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTierProofSignature.js","sources":["../../../src/state/bonds/useTierProofSignature.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { useAccount } from 'wagmi'\nimport { useSDKConfig } from '../useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { reportError } from '../../utils/reportError'\n\nexport default function useTierProofSignature(\n bondAddress?: string,\n chainId?: ChainId,\n isUserRestricted?: boolean,\n): UseQueryResult<string | null> {\n const { address: account } = useAccount()\n const SDKConfig = useSDKConfig()\n const apiAddress = SDKConfig?.urls?.apiV2\n\n return useQuery({\n queryKey: [QUERY_KEYS.TIER_PROOF_SIG, account, bondAddress, chainId, isUserRestricted],\n queryFn: () => getTierProofSig(apiAddress, account!, bondAddress!, chainId!),\n refetchOnWindowFocus: false,\n retry: 1,\n refetchInterval: 1800000, // 30 mins\n initialData: null,\n enabled: !!bondAddress && !!account && !!apiAddress && !!chainId && SDKConfig.useTiers && !isUserRestricted,\n })\n}\n\nexport const getTierProofSig = async (\n apiAddress: string,\n account: string,\n bondAddress: string,\n chainId: ChainId,\n): Promise<string | null> => {\n try {\n const requestBody = {\n user: account, // Use the account as the \"user\" parameter\n bond: bondAddress, // Use the bondAddress\n chainId: chainId, // Use the specified chainId (Polygon)\n }\n\n const response = await axios.post(`${apiAddress}/tier-signature`, requestBody)\n return response.data.tierProofSignature\n } catch (e) {\n reportError({\n apiUrl: apiAddress,\n error: e,\n extraInfo: { type: 'getTierProofSig', bondAddress, e },\n chainId,\n account,\n })\n return null\n }\n}\n"],"names":[],"mappings":";;;;;;;AAQc,SAAU,qBAAqB,CAC3C,WAAoB,EACpB,OAAiB,EACjB,gBAA0B,EAAA;IAE1B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE;AACzC,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;AAEzC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACtF,QAAA,OAAO,EAAE,MAAM,eAAe,CAAC,UAAU,EAAE,OAAQ,EAAE,WAAY,EAAE,OAAQ,CAAC;AAC5E,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,KAAK,EAAE,CAAC;QACR,eAAe,EAAE,OAAO;AACxB,QAAA,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,gBAAgB;AAC5G,KAAA,CAAC;AACJ;AAEO,MAAM,eAAe,GAAG,OAC7B,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,OAAgB,KACU;AAC1B,IAAA,IAAI;AACF,QAAA,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;SACjB;AAED,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA,EAAG,UAAU,CAAA,eAAA,CAAiB,EAAE,WAAW,CAAC;AAC9E,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,kBAAkB;IACzC;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;AACV,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,EAAE;YACtD,OAAO;YACP,OAAO;AACR,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AACF;;;;"}
@@ -0,0 +1,70 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
3
+ import { BillVersion } from '@ape.swap/apeswap-lists';
4
+ import useBondsList from './useBondsList.js';
5
+ import { fetchUserOwnedBillsDataAsync } from '../../views/YourBonds/fetchBillsUser.js';
6
+ import { useAccount } from 'wagmi';
7
+ import { useSDKConfig } from '../useSDKConfig.js';
8
+ import useTokenPrices from '../tokenPrices/useTokenPrices.js';
9
+ import { ACF_TO_ABOND } from '../../config/constants/addresses.js';
10
+ import { reportError } from '../../utils/reportError.js';
11
+
12
+ function useUserBonds() {
13
+ // First fetch the full list of bonds
14
+ const { data: bondList } = useBondsList();
15
+ const { address } = useAccount();
16
+ const SDKConfig = useSDKConfig();
17
+ const { data: tokenPrices } = useTokenPrices();
18
+ const chains = SDKConfig?.chains;
19
+ const apiUrl = SDKConfig?.urls?.apiV2;
20
+ // Once the full list is fetched, fetch user's purchased bonds
21
+ return useQuery({
22
+ queryKey: [QUERY_KEYS.USER_BONDS, address],
23
+ queryFn: () => getUserBonds(address, bondList, chains, tokenPrices, apiUrl),
24
+ refetchOnWindowFocus: false,
25
+ refetchInterval: 60000,
26
+ enabled: !!bondList && !!address && !!tokenPrices,
27
+ });
28
+ }
29
+ const getUserBonds = async (account, bondList, chains, tokenPrices, apiUrl) => {
30
+ try {
31
+ const bondsByChain = bondList.reduce((acc, bond) => {
32
+ // Exclude ACF to ABOND bonds, fixed price bonds, and migration bonds
33
+ if (bond.contractAddress[bond.chainId]?.toLowerCase() === ACF_TO_ABOND.toLowerCase() ||
34
+ bond.billVersion === BillVersion.FixedPrice ||
35
+ bond.billType === 'migration') {
36
+ return acc; // Skip this bond
37
+ }
38
+ // Only process bonds that belong to the specified chains
39
+ if (chains.includes(bond.chainId)) {
40
+ // Initialize acc[bond.chainId] if it doesn't exist yet
41
+ if (!acc[bond.chainId]) {
42
+ acc[bond.chainId] = [];
43
+ }
44
+ // Safely push the bond to the array
45
+ acc[bond.chainId].push(bond);
46
+ }
47
+ return acc;
48
+ }, {});
49
+ const results = await Promise.allSettled(chains
50
+ .filter((chain) => bondsByChain[chain])
51
+ .map((chain) => fetchUserOwnedBillsDataAsync(chain, account, bondsByChain[chain], tokenPrices)));
52
+ // Filter out only fulfilled promises
53
+ const fulfilledResults = results
54
+ .filter((result) => result.status === 'fulfilled')
55
+ .map((result) => result.value);
56
+ return fulfilledResults.flat().flatMap((result) => result.userOwnedBills);
57
+ }
58
+ catch (e) {
59
+ reportError({
60
+ apiUrl,
61
+ error: e,
62
+ extraInfo: { type: 'getUserBonds', bondList, chains, e },
63
+ account,
64
+ });
65
+ return [];
66
+ }
67
+ };
68
+
69
+ export { useUserBonds as default, getUserBonds };
70
+ //# sourceMappingURL=useUserBonds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUserBonds.js","sources":["../../../src/state/bonds/useUserBonds.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BillsConfig, BillVersion } from '@ape.swap/apeswap-lists'\nimport useBondsList from './useBondsList'\nimport { fetchUserOwnedBillsDataAsync } from '../../views/YourBonds/fetchBillsUser'\nimport { UserBill } from '../../types/yourbonds'\nimport { useAccount } from 'wagmi'\nimport { useSDKConfig } from '../useSDKConfig'\nimport useTokenPrices, { TokenPrices } from '../tokenPrices/useTokenPrices'\n\nimport { ACF_TO_ABOND } from '../../config/constants/addresses'\nimport { reportError } from '../../utils/reportError'\n\nexport default function useUserBonds(): UseQueryResult<UserBill[]> {\n // First fetch the full list of bonds\n const { data: bondList } = useBondsList()\n const { address } = useAccount()\n const SDKConfig = useSDKConfig()\n const { data: tokenPrices } = useTokenPrices()\n const chains = SDKConfig?.chains as number[]\n const apiUrl = SDKConfig?.urls?.apiV2\n // Once the full list is fetched, fetch user's purchased bonds\n return useQuery({\n queryKey: [QUERY_KEYS.USER_BONDS, address],\n queryFn: () => getUserBonds(address!, bondList!, chains, tokenPrices!, apiUrl),\n refetchOnWindowFocus: false,\n refetchInterval: 60000,\n enabled: !!bondList && !!address && !!tokenPrices,\n })\n}\n\nexport const getUserBonds = async (\n account: string,\n bondList: BillsConfig[],\n chains: number[],\n tokenPrices: TokenPrices[],\n apiUrl?: string,\n): Promise<UserBill[]> => {\n try {\n const bondsByChain = bondList.reduce(\n (acc, bond) => {\n // Exclude ACF to ABOND bonds, fixed price bonds, and migration bonds\n if (\n bond.contractAddress[bond.chainId]?.toLowerCase() === ACF_TO_ABOND.toLowerCase() ||\n bond.billVersion === BillVersion.FixedPrice ||\n bond.billType === 'migration'\n ) {\n return acc // Skip this bond\n }\n\n // Only process bonds that belong to the specified chains\n if (chains.includes(bond.chainId)) {\n // Initialize acc[bond.chainId] if it doesn't exist yet\n if (!acc[bond.chainId]) {\n acc[bond.chainId] = []\n }\n\n // Safely push the bond to the array\n acc[bond.chainId].push(bond)\n }\n return acc\n },\n {} as Record<number, BillsConfig[]>,\n )\n\n const results = await Promise.allSettled(\n chains\n .filter((chain) => bondsByChain[chain])\n .map((chain) => fetchUserOwnedBillsDataAsync(chain as number, account, bondsByChain[chain], tokenPrices)),\n )\n\n // Filter out only fulfilled promises\n const fulfilledResults = results\n .filter((result): result is PromiseFulfilledResult<any> => result.status === 'fulfilled')\n .map((result) => result.value)\n\n return fulfilledResults.flat().flatMap((result) => result.userOwnedBills)\n } catch (e) {\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getUserBonds', bondList, chains, e },\n account,\n })\n return []\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAac,SAAU,YAAY,GAAA;;IAElC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE;AACzC,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE;AAChC,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE;AAC9C,IAAA,MAAM,MAAM,GAAG,SAAS,EAAE,MAAkB;AAC5C,IAAA,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;;AAErC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;AAC1C,QAAA,OAAO,EAAE,MAAM,YAAY,CAAC,OAAQ,EAAE,QAAS,EAAE,MAAM,EAAE,WAAY,EAAE,MAAM,CAAC;AAC9E,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,eAAe,EAAE,KAAK;QACtB,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW;AAClD,KAAA,CAAC;AACJ;AAEO,MAAM,YAAY,GAAG,OAC1B,OAAe,EACf,QAAuB,EACvB,MAAgB,EAChB,WAA0B,EAC1B,MAAe,KACQ;AACvB,IAAA,IAAI;QACF,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC,GAAG,EAAE,IAAI,KAAI;;AAEZ,YAAA,IACE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE;AAChF,gBAAA,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU;AAC3C,gBAAA,IAAI,CAAC,QAAQ,KAAK,WAAW,EAC7B;gBACA,OAAO,GAAG,CAAA;YACZ;;YAGA,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;;gBAEjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtB,oBAAA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBACxB;;gBAGA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B;AACA,YAAA,OAAO,GAAG;QACZ,CAAC,EACD,EAAmC,CACpC;AAED,QAAA,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC;aACG,MAAM,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,CAAC;aACrC,GAAG,CAAC,CAAC,KAAK,KAAK,4BAA4B,CAAC,KAAe,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAC5G;;QAGD,MAAM,gBAAgB,GAAG;aACtB,MAAM,CAAC,CAAC,MAAM,KAA4C,MAAM,CAAC,MAAM,KAAK,WAAW;aACvF,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC;AAEhC,QAAA,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,cAAc,CAAC;IAC3E;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;YACV,MAAM;AACN,YAAA,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE;YACxD,OAAO;AACR,SAAA,CAAC;AACF,QAAA,OAAO,EAAE;IACX;AACF;;;;"}
@@ -0,0 +1,105 @@
1
+ import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
2
+ import multicall from '../../utils/multicall.js';
3
+ import { chunk } from 'lodash';
4
+ import launchBondsABI_V2_2_0 from '../../config/abi/launchBond_v2_4_1.json.js';
5
+
6
+ const getPreTGEBondsData = async (chain, tokenPrices, preTGEBonds, apiUrl) => {
7
+ try {
8
+ if (!preTGEBonds?.length)
9
+ return [];
10
+ const data = [];
11
+ const chainId = chain;
12
+ const preTGEBondsIds = [];
13
+ const launchBondsCalls = preTGEBonds.flatMap((bond) => {
14
+ preTGEBondsIds.push(bond.index);
15
+ const bill = bond;
16
+ return [
17
+ {
18
+ address: bill.contractAddress[bill.chainId],
19
+ name: 'trueBillPrice',
20
+ },
21
+ {
22
+ address: bill.contractAddress[bill.chainId],
23
+ name: 'terms',
24
+ },
25
+ {
26
+ address: bill.contractAddress[bill.chainId],
27
+ name: 'totalPrincipalBilled',
28
+ },
29
+ {
30
+ address: bill.contractAddress[bill.chainId],
31
+ name: 'finalized',
32
+ },
33
+ {
34
+ address: bill.contractAddress[bill.chainId],
35
+ name: 'minPoints',
36
+ },
37
+ {
38
+ address: bill.contractAddress[bill.chainId],
39
+ name: 'maxPoints',
40
+ },
41
+ {
42
+ address: bill.contractAddress[bill.chainId],
43
+ name: 'startVestingTimestamp',
44
+ },
45
+ ];
46
+ });
47
+ const vals = await multicall(chainId, launchBondsABI_V2_2_0, launchBondsCalls);
48
+ const chunkSize = vals.length / preTGEBonds.length;
49
+ const chunkedBills = chunk(vals, chunkSize);
50
+ const returnedBills = chunkedBills?.map((chunk, index) => {
51
+ const bondConfig = preTGEBonds?.find((bill) => bill?.index === preTGEBondsIds[index]);
52
+ const [trueBillPrice, terms, totalPrincipalBilled, finalized, minPoints, maxPoints, startVestingTimestamp] = chunk;
53
+ const [, , vestingTerm, , , initialRelease, totalRaise, maxTotalPayout] = terms;
54
+ const initPrice = getBalanceNumber(trueBillPrice, bondConfig?.lpToken?.decimals?.[bondConfig?.chainId] ?? 18);
55
+ const lpPrice = tokenPrices?.find((tokenPrice) => tokenPrice?.address?.toLowerCase() === bondConfig?.lpToken?.address?.[bondConfig?.chainId]?.toLowerCase() &&
56
+ tokenPrice?.chainId === chainId)?.price ?? 0;
57
+ const earnTokenPrice = tokenPrices?.find((tokenPrice) => tokenPrice?.address?.toLowerCase() === bondConfig?.earnToken?.address?.[bondConfig?.chainId]?.toLowerCase() &&
58
+ tokenPrice?.chainId === chainId)?.price;
59
+ const principalTokenPrice = lpPrice?.toString() ?? '0';
60
+ const payoutTokenPrice = earnTokenPrice ? earnTokenPrice?.toString() : initPrice?.toString();
61
+ const bonus = Math.round((bondConfig.tgePrice / initPrice) * 100 - 100);
62
+ const data = {
63
+ ...bondConfig,
64
+ initialRelease: initialRelease / 10000,
65
+ vestingTerm: vestingTerm?.toNumber(),
66
+ trueBondPrices: [
67
+ {
68
+ points: '0',
69
+ trueBondPrice: trueBillPrice?.toString(),
70
+ bonus,
71
+ bonusWithFee: bonus, // placeholder, wont be used
72
+ },
73
+ ],
74
+ maxTotalPayout: maxTotalPayout?.toString(),
75
+ totalPrincipalBilled: totalPrincipalBilled?.toString(),
76
+ payoutTokenPrice,
77
+ principalTokenPrice,
78
+ totalRaise: totalRaise?.toString(),
79
+ finalized: finalized[0],
80
+ minPoints: minPoints.toString(),
81
+ maxPoints: maxPoints.toString(),
82
+ startVestingTimestamp: startVestingTimestamp?.toString(),
83
+ initTime: { [bondConfig.chainId]: terms.startTime.toNumber() },
84
+ finishTime: terms.endTime.toNumber(),
85
+ initPrice,
86
+ soldOut: finalized[0] || (terms.endTime.toNumber() ?? 0) < Date.now() / 1000 || bondConfig.soldOut,
87
+ };
88
+ return data;
89
+ });
90
+ data.push(returnedBills);
91
+ return data.flat();
92
+ }
93
+ catch (e) {
94
+ console.error(e);
95
+ reportError({
96
+ apiUrl,
97
+ error: e,
98
+ extraInfo: { type: 'getLaunchBondsPublicData', preTGEBonds, chain, e },
99
+ });
100
+ return [];
101
+ }
102
+ };
103
+
104
+ export { getPreTGEBondsData };
105
+ //# sourceMappingURL=utils.js.map