@ape.swap/bonds-sdk 6.2.1 → 6.2.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 (263) hide show
  1. package/dist/components/MenuSelect/MenuSelect.d.ts +1 -1
  2. package/dist/components/MenuSelect/MenuSelect.js.map +1 -1
  3. package/dist/components/ProgressBar/ProgressBarWrapper.d.ts +1 -1
  4. package/dist/components/ProgressBar/ProgressBarWrapper.js.map +1 -1
  5. package/dist/components/TokenInfoAndName/index.d.ts +0 -1
  6. package/dist/components/TokenInfoAndName/index.js +1 -1
  7. package/dist/components/TokenInfoAndName/index.js.map +1 -1
  8. package/dist/components/TokenSelectorModal/TokenRow.js +2 -2
  9. package/dist/components/TokenSelectorModal/TokenRow.js.map +1 -1
  10. package/dist/components/TokenSelectorPanel/index.js +3 -3
  11. package/dist/components/TokenSelectorPanel/index.js.map +1 -1
  12. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  13. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  14. package/dist/components/uikit-sdk/Button/Button.js +0 -36
  15. package/dist/components/uikit-sdk/Button/Button.js.map +1 -1
  16. package/dist/components/uikit-sdk/Button/types.d.ts +6 -10
  17. package/dist/components/uikit-sdk/Button/types.js +0 -5
  18. package/dist/components/uikit-sdk/Button/types.js.map +1 -1
  19. package/dist/components/uikit-sdk/Checkbox/types.d.ts +2 -1
  20. package/dist/components/uikit-sdk/Checkbox/types.js.map +1 -1
  21. package/dist/components/uikit-sdk/Skeleton/styles.d.ts +0 -12
  22. package/dist/components/uikit-sdk/Skeleton/styles.js +1 -1
  23. package/dist/components/uikit-sdk/Skeleton/styles.js.map +1 -1
  24. package/dist/components/uikit-sdk/Svg/Icons/ZapIcon.d.ts +2 -2
  25. package/dist/components/uikit-sdk/Svg/styles.d.ts +0 -2
  26. package/dist/components/uikit-sdk/Svg/styles.js.map +1 -1
  27. package/dist/components/uikit-sdk/Text/types.d.ts +1 -1
  28. package/dist/components/uikit-sdk/Text/types.js +1 -1
  29. package/dist/components/uikit-sdk/Text/types.js.map +1 -1
  30. package/dist/components/uikit-sdk/TooltipBubble/types.d.ts +2 -1
  31. package/dist/components/uikit-sdk/TooltipBubble/types.js.map +1 -1
  32. package/dist/config/constants/aptosZapTokens.d.ts +0 -9
  33. package/dist/config/constants/aptosZapTokens.js +1 -2
  34. package/dist/config/constants/aptosZapTokens.js.map +1 -1
  35. package/dist/config/constants/networks.d.ts +0 -2
  36. package/dist/config/constants/networks.js +1 -1
  37. package/dist/config/constants/networks.js.map +1 -1
  38. package/dist/config/constants/tokens.d.ts +1 -2
  39. package/dist/constants/aptosConstants.d.ts +0 -6
  40. package/dist/constants/aptosConstants.js +15 -1
  41. package/dist/constants/aptosConstants.js.map +1 -1
  42. package/dist/constants/solanaConstants.d.ts +0 -6
  43. package/dist/constants/solanaConstants.js +0 -21
  44. package/dist/constants/solanaConstants.js.map +1 -1
  45. package/dist/constants/suiConstants.d.ts +0 -5
  46. package/dist/constants/suiConstants.js +11 -0
  47. package/dist/constants/suiConstants.js.map +1 -1
  48. package/dist/hooks/useSortedZapList.d.ts +1 -1
  49. package/dist/hooks/useSortedZapList.js +1 -2
  50. package/dist/hooks/useSortedZapList.js.map +1 -1
  51. package/dist/hooks/useTokenFromZapList.js +0 -1
  52. package/dist/hooks/useTokenFromZapList.js.map +1 -1
  53. package/dist/providers/index.d.ts +11 -0
  54. package/dist/providers/index.js +0 -6
  55. package/dist/providers/index.js.map +1 -1
  56. package/dist/state/allowance/useAllowance.js +2 -3
  57. package/dist/state/allowance/useAllowance.js.map +1 -1
  58. package/dist/state/balance/useCurrencyBalance.js +2 -3
  59. package/dist/state/balance/useCurrencyBalance.js.map +1 -1
  60. package/dist/state/balance/useCurrencyBalanceAptos.js +5 -5
  61. package/dist/state/balance/useCurrencyBalanceAptos.js.map +1 -1
  62. package/dist/state/balance/useCurrencyBalanceSolana.d.ts +0 -2
  63. package/dist/state/balance/useCurrencyBalanceSolana.js +3 -6
  64. package/dist/state/balance/useCurrencyBalanceSolana.js.map +1 -1
  65. package/dist/state/balance/useCurrencyBalanceSui.js +2 -2
  66. package/dist/state/balance/useCurrencyBalanceSui.js.map +1 -1
  67. package/dist/state/balance/useUserTokensBalance.js +3 -5
  68. package/dist/state/balance/useUserTokensBalance.js.map +1 -1
  69. package/dist/state/bondApiStats/useGetBondApiStats.d.ts +0 -1
  70. package/dist/state/bondApiStats/useGetBondApiStats.js +1 -1
  71. package/dist/state/bondApiStats/useGetBondApiStats.js.map +1 -1
  72. package/dist/state/bonds/fetchBondsData/cleanBillsData.js +16 -13
  73. package/dist/state/bonds/fetchBondsData/cleanBillsData.js.map +1 -1
  74. package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.d.ts +1 -1
  75. package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.js +4 -6
  76. package/dist/state/bonds/fetchBondsData/fetchBondsDataAptos.js.map +1 -1
  77. package/dist/state/bonds/fetchBondsData/fetchBondsDataEVM.d.ts +1 -1
  78. package/dist/state/bonds/fetchBondsData/fetchBondsDataEVM.js +4 -3
  79. package/dist/state/bonds/fetchBondsData/fetchBondsDataEVM.js.map +1 -1
  80. package/dist/state/bonds/fetchBondsData/fetchBondsDataSOL.d.ts +1 -1
  81. package/dist/state/bonds/fetchBondsData/fetchBondsDataSOL.js +2 -3
  82. package/dist/state/bonds/fetchBondsData/fetchBondsDataSOL.js.map +1 -1
  83. package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.d.ts +1 -1
  84. package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.js +5 -7
  85. package/dist/state/bonds/fetchBondsData/fetchBondsDataSui.js.map +1 -1
  86. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.d.ts +1 -2
  87. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js +2 -5
  88. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsEVM.js.map +1 -1
  89. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSOL.js +2 -5
  90. package/dist/state/bonds/fetchUsersBonds/fetchUsersBondsSOL.js.map +1 -1
  91. package/dist/state/bonds/useBondsList.d.ts +1 -2
  92. package/dist/state/bonds/useBondsList.js +1 -1
  93. package/dist/state/bonds/useBondsList.js.map +1 -1
  94. package/dist/state/bonds/useBondsListPreTGE.d.ts +1 -2
  95. package/dist/state/bonds/useBondsListPreTGE.js +1 -1
  96. package/dist/state/bonds/useBondsListPreTGE.js.map +1 -1
  97. package/dist/state/bonds/useTierProofSignature.d.ts +0 -1
  98. package/dist/state/bonds/useTierProofSignature.js +1 -1
  99. package/dist/state/bonds/useTierProofSignature.js.map +1 -1
  100. package/dist/state/bonds/useUserBondsPreTGE.d.ts +3 -4
  101. package/dist/state/bonds/useUserBondsPreTGE.js +4 -7
  102. package/dist/state/bonds/useUserBondsPreTGE.js.map +1 -1
  103. package/dist/state/historicalPrice/useHistoricalPrice.d.ts +1 -2
  104. package/dist/state/historicalPrice/useHistoricalPrice.js +1 -1
  105. package/dist/state/historicalPrice/useHistoricalPrice.js.map +1 -1
  106. package/dist/state/hotBonds/useHotBonds.d.ts +0 -2
  107. package/dist/state/hotBonds/useHotBonds.js +1 -1
  108. package/dist/state/hotBonds/useHotBonds.js.map +1 -1
  109. package/dist/state/price/useCurrencyPrice.js +1 -2
  110. package/dist/state/price/useCurrencyPrice.js.map +1 -1
  111. package/dist/state/recommendations/useGetBondRecommendations.d.ts +0 -1
  112. package/dist/state/recommendations/useGetBondRecommendations.js +1 -1
  113. package/dist/state/recommendations/useGetBondRecommendations.js.map +1 -1
  114. package/dist/state/tiers/useTierPoints.d.ts +0 -6
  115. package/dist/state/tiers/useTierPoints.js +16 -17
  116. package/dist/state/tiers/useTierPoints.js.map +1 -1
  117. package/dist/state/zap/useAptosZapQuote.d.ts +1 -16
  118. package/dist/state/zap/useAptosZapQuote.js +4 -4
  119. package/dist/state/zap/useAptosZapQuote.js.map +1 -1
  120. package/dist/state/zap/useJupiterSolanaQuote.js +4 -11
  121. package/dist/state/zap/useJupiterSolanaQuote.js.map +1 -1
  122. package/dist/state/zap/useSoulZapBondQuote.js +12 -21
  123. package/dist/state/zap/useSoulZapBondQuote.js.map +1 -1
  124. package/dist/state/zap/useSuiZapQuote.d.ts +1 -1
  125. package/dist/state/zap/useSuiZapQuote.js +9 -14
  126. package/dist/state/zap/useSuiZapQuote.js.map +1 -1
  127. package/dist/theme/base.d.ts +1 -4
  128. package/dist/theme/base.js +1 -1
  129. package/dist/theme/base.js.map +1 -1
  130. package/dist/theme/components.d.ts +0 -20
  131. package/dist/theme/components.js +1 -1
  132. package/dist/theme/components.js.map +1 -1
  133. package/dist/types/aptosBonds.d.ts +0 -60
  134. package/dist/types/bondIssuanceCodec.d.ts +0 -1
  135. package/dist/types/bondIssuanceCodec.js.map +1 -1
  136. package/dist/types/bondTermCodec.d.ts +0 -1
  137. package/dist/types/bondTermCodec.js.map +1 -1
  138. package/dist/types/solanaBonds.d.ts +4 -3
  139. package/dist/utils/aptosHelpers.d.ts +1 -14
  140. package/dist/utils/aptosHelpers.js +30 -2
  141. package/dist/utils/aptosHelpers.js.map +1 -1
  142. package/dist/utils/bondPriceHelpers.d.ts +1 -1
  143. package/dist/utils/bondPriceHelpers.js +5 -11
  144. package/dist/utils/bondPriceHelpers.js.map +1 -1
  145. package/dist/utils/calculateSolanaTrueBillPrice.d.ts +0 -4
  146. package/dist/utils/calculateSolanaTrueBillPrice.js +33 -32
  147. package/dist/utils/calculateSolanaTrueBillPrice.js.map +1 -1
  148. package/dist/utils/convertToBigish.d.ts +0 -1
  149. package/dist/utils/convertToBigish.js +3 -18
  150. package/dist/utils/convertToBigish.js.map +1 -1
  151. package/dist/utils/displayHelpers.d.ts +3 -9
  152. package/dist/utils/displayHelpers.js +63 -47
  153. package/dist/utils/displayHelpers.js.map +1 -1
  154. package/dist/utils/fixedPoint.d.ts +28 -0
  155. package/dist/utils/fixedPoint.js +239 -0
  156. package/dist/utils/fixedPoint.js.map +1 -0
  157. package/dist/utils/formatNumber.d.ts +0 -7
  158. package/dist/utils/formatNumber.js +6 -12
  159. package/dist/utils/formatNumber.js.map +1 -1
  160. package/dist/utils/getBalanceNumber.d.ts +1 -2
  161. package/dist/utils/getBalanceNumber.js +5 -3
  162. package/dist/utils/getBalanceNumber.js.map +1 -1
  163. package/dist/utils/getNativeTicker.js +0 -1
  164. package/dist/utils/getNativeTicker.js.map +1 -1
  165. package/dist/utils/suiHelpers.d.ts +0 -2
  166. package/dist/utils/suiHelpers.js +13 -15
  167. package/dist/utils/suiHelpers.js.map +1 -1
  168. package/dist/views/Bonds/Bonds.d.ts +0 -4
  169. package/dist/views/Bonds/Bonds.js.map +1 -1
  170. package/dist/views/Bonds/components/BondRows/ActiveBondRows.d.ts +1 -1
  171. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js +2 -3
  172. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
  173. package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +1 -2
  174. package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -1
  175. package/dist/views/Bonds/components/BonusComponents/BonusTable.js +1 -2
  176. package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -1
  177. package/dist/views/Bonds/components/BuyAgainRow/index.js +2 -4
  178. package/dist/views/Bonds/components/BuyAgainRow/index.js.map +1 -1
  179. package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.d.ts +1 -1
  180. package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js.map +1 -1
  181. package/dist/views/Bonds/utils.d.ts +0 -2
  182. package/dist/views/Bonds/utils.js +2 -3
  183. package/dist/views/Bonds/utils.js.map +1 -1
  184. package/dist/views/BuyBond/BuyBondModal.d.ts +1 -1
  185. package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
  186. package/dist/views/BuyBond/BuyComponent.js +16 -17
  187. package/dist/views/BuyBond/BuyComponent.js.map +1 -1
  188. package/dist/views/BuyBond/BuyComponentAptos.d.ts +1 -1
  189. package/dist/views/BuyBond/BuyComponentAptos.js +20 -33
  190. package/dist/views/BuyBond/BuyComponentAptos.js.map +1 -1
  191. package/dist/views/BuyBond/BuyComponentPreTGE.js +6 -8
  192. package/dist/views/BuyBond/BuyComponentPreTGE.js.map +1 -1
  193. package/dist/views/BuyBond/BuyComponentSolana.d.ts +1 -1
  194. package/dist/views/BuyBond/BuyComponentSolana.js +20 -27
  195. package/dist/views/BuyBond/BuyComponentSolana.js.map +1 -1
  196. package/dist/views/BuyBond/BuyComponentSui.d.ts +1 -1
  197. package/dist/views/BuyBond/BuyComponentSui.js +15 -28
  198. package/dist/views/BuyBond/BuyComponentSui.js.map +1 -1
  199. package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js +2 -2
  200. package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js.map +1 -1
  201. package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js +6 -9
  202. package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js.map +1 -1
  203. package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.d.ts +1 -1
  204. package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js.map +1 -1
  205. package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.d.ts +1 -1
  206. package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js.map +1 -1
  207. package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.d.ts +1 -1
  208. package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.js.map +1 -1
  209. package/dist/views/ProjectView/components/BondStats/index.js +2 -4
  210. package/dist/views/ProjectView/components/BondStats/index.js.map +1 -1
  211. package/dist/views/ProjectView/components/BondStats/types.d.ts +2 -1
  212. package/dist/views/ProjectView/components/BondStats/types.js.map +1 -1
  213. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.d.ts +1 -1
  214. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
  215. package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js +4 -5
  216. package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js.map +1 -1
  217. package/dist/views/YourBondsModal/components/LinkShare/htmlToJpeg.d.ts +8 -0
  218. package/dist/views/YourBondsModal/components/LinkShare/htmlToJpeg.js +43 -0
  219. package/dist/views/YourBondsModal/components/LinkShare/htmlToJpeg.js.map +1 -0
  220. package/dist/views/YourBondsModal/components/LinkShare/templateImageShare.d.ts +8 -1
  221. package/dist/views/YourBondsModal/components/LinkShare/templateImageShare.js +172 -15
  222. package/dist/views/YourBondsModal/components/LinkShare/templateImageShare.js.map +1 -1
  223. package/dist/views/YourBondsModal/components/LinkShare/utils.js +19 -10
  224. package/dist/views/YourBondsModal/components/LinkShare/utils.js.map +1 -1
  225. package/dist/views/YourBondsModal/components/TransferBondModal/index.js +1 -2
  226. package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
  227. package/package.json +6 -8
  228. package/dist/components/AccordionText/index.d.ts +0 -6
  229. package/dist/components/RestrictedRegionModal/index.d.ts +0 -5
  230. package/dist/components/TabNavigation/index.d.ts +0 -8
  231. package/dist/components/uikit-sdk/Input/NumericInput.d.ts +0 -9
  232. package/dist/components/uikit-sdk/Modal/ModalFooter.d.ts +0 -4
  233. package/dist/components/uikit-sdk/Svg/Icons/Audit.d.ts +0 -4
  234. package/dist/components/uikit-sdk/Svg/Icons/Fire.d.ts +0 -4
  235. package/dist/components/uikit-sdk/Svg/Icons/FullLogo.d.ts +0 -4
  236. package/dist/components/uikit-sdk/Svg/Icons/Instagram.d.ts +0 -4
  237. package/dist/components/uikit-sdk/Svg/Icons/Language.d.ts +0 -4
  238. package/dist/components/uikit-sdk/Svg/Icons/Medium.d.ts +0 -4
  239. package/dist/components/uikit-sdk/Svg/Icons/Pool.d.ts +0 -4
  240. package/dist/components/uikit-sdk/Svg/Icons/Reddit.d.ts +0 -4
  241. package/dist/components/uikit-sdk/Svg/Icons/Telegram.d.ts +0 -4
  242. package/dist/components/uikit-sdk/Svg/Icons/Website.d.ts +0 -4
  243. package/dist/components/uikit-sdk/Svg/tokens/BSC.d.ts +0 -4
  244. package/dist/components/uikit-sdk/Svg/tokens/CELO.d.ts +0 -4
  245. package/dist/components/uikit-sdk/Svg/tokens/CRONOS.d.ts +0 -4
  246. package/dist/components/uikit-sdk/Svg/tokens/FANTOM.d.ts +0 -4
  247. package/dist/components/uikit-sdk/Svg/tokens/GNOSIS.d.ts +0 -4
  248. package/dist/components/uikit-sdk/Svg/tokens/OKX.d.ts +0 -4
  249. package/dist/components/uikit-sdk/Svg/tokens/OPTIMISM.d.ts +0 -4
  250. package/dist/components/uikit-sdk/Svg/tokens/POLYGONZK.d.ts +0 -4
  251. package/dist/config/constants/tokens.js +0 -36
  252. package/dist/config/constants/tokens.js.map +0 -1
  253. package/dist/contexts/RefreshContext.d.ts +0 -10
  254. package/dist/hooks/useRefresh.d.ts +0 -6
  255. package/dist/hooks/useTimer.d.ts +0 -2
  256. package/dist/state/bondApiStats/useUserApiStats.d.ts +0 -22
  257. package/dist/state/bonds/aptosBondsConfig.d.ts +0 -4
  258. package/dist/state/bonds/fetchUsersBonds/getBillNftData.d.ts +0 -9
  259. package/dist/state/geoFencing/useGeoFencing.d.ts +0 -5
  260. package/dist/state/zap/useSoulZapTokenQuote.d.ts +0 -3
  261. package/dist/state/zap/useTierOptimizationPreview.d.ts +0 -27
  262. package/dist/views/ZapModal/index.d.ts +0 -13
  263. package/dist/views/ZapModal/styles.d.ts +0 -2
@@ -7,7 +7,6 @@ import BondRow from '../BondRows/BondRow.js';
7
7
  import track from '../../../../utils/track.js';
8
8
  import { useSDKConfig } from '../../../../state/useSDKConfig.js';
9
9
  import { formatNumberSI } from '../../../../utils/formatNumber.js';
10
- import BigNumber from 'bignumber.js';
11
10
  import { remainingPercentage, getVestingTermsTooltipString, getVestingTermsString } from '../../../../utils/displayHelpers.js';
12
11
 
13
12
  const BuyAgainRow = () => {
@@ -27,11 +26,10 @@ const BuyAgainRow = () => {
27
26
  const remainingTokensUsd = (bond) => {
28
27
  const tokensRemaining = 'tokensRemaining' in bond ? bond.tokensRemaining : '0';
29
28
  const payoutTokenPrice = 'payoutTokenPrice' in bond ? bond.payoutTokenPrice : 0;
30
- const tokens = new BigNumber(tokensRemaining ?? '0');
31
- return tokens.times(payoutTokenPrice ?? '0');
29
+ return Number(tokensRemaining ?? '0') * Number(payoutTokenPrice ?? '0');
32
30
  };
33
31
  const remainingTokensString = bond
34
- ? `${remainingTokensFormat(bond)} ${bond.earnToken.symbol} ($${formatNumberSI(remainingTokensUsd(bond).toNumber())})`
32
+ ? `${remainingTokensFormat(bond)} ${bond.earnToken.symbol} ($${formatNumberSI(remainingTokensUsd(bond))})`
35
33
  : '';
36
34
  return bond ? (jsxs(Flex, { sx: {
37
35
  position: 'relative',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/Bonds/components/BuyAgainRow/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { isBondSoldOut } from '../../utils'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport BondRow from '../BondRows/BondRow'\nimport track from '../../../../utils/track'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { BondsData } from '../../../../types/bonds'\nimport { BillsConfig } from '@ape.swap/apeswap-lists'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport BigNumber from 'bignumber.js'\nimport {\n getVestingTermsString,\n getVestingTermsTooltipString,\n remainingPercentage,\n} from '../../../../utils/displayHelpers'\n\nconst BuyAgainRow = () => {\n const { data: bills } = useBondsData()\n const SDKConfig = useSDKConfig()\n const highlightedBond = SDKConfig.highlightedBond\n const chains = SDKConfig?.chains as number[]\n\n const bond = useMemo(\n () =>\n bills?.find(\n (bill) =>\n bill.earnToken.symbol.toLowerCase() === highlightedBond?.toLowerCase() &&\n !bill.soldOut &&\n !bill.hide &&\n chains.includes(bill.chainId),\n ),\n [bills, chains, highlightedBond],\n )\n\n const bondAddress = bond?.contractAddress?.[bond.chainId]\n\n const remainingTokensFormat = (bond: BondsData | BillsConfig) => {\n const tokensRemaining = 'tokensRemaining' in bond ? bond.tokensRemaining : '0'\n return formatNumberSI(parseFloat(tokensRemaining ?? '0'), 0)\n }\n\n const remainingTokensUsd = (bond: BondsData | BillsConfig): BigNumber => {\n const tokensRemaining = 'tokensRemaining' in bond ? bond.tokensRemaining : '0'\n const payoutTokenPrice = 'payoutTokenPrice' in bond ? bond.payoutTokenPrice : 0\n const tokens = new BigNumber(tokensRemaining ?? '0')\n return tokens.times(payoutTokenPrice ?? '0')\n }\n\n const remainingTokensString = bond\n ? `${remainingTokensFormat(bond)} ${bond.earnToken.symbol} ($${formatNumberSI(remainingTokensUsd(bond).toNumber())})`\n : ''\n\n return bond ? (\n <Flex\n sx={{\n position: 'relative',\n width: '100%',\n mb: '10px',\n }}\n >\n <Flex\n sx={{\n p: '0 1px',\n width: '100%',\n pt: '5px',\n background: 'primaryButton',\n borderRadius: 'normal',\n flexDirection: 'column',\n opacity: 0.5,\n }}\n >\n <Flex\n className=\"buy-again-header\"\n sx={{\n width: '100%',\n fontSize: '12px',\n fontWeight: 500,\n pl: '26px',\n color: 'primaryBright',\n height: '91px',\n }}\n >\n BOND SPOTLIGHT\n </Flex>\n </Flex>\n <Flex\n onClick={() => {\n track({\n event: 'buyAgainClick',\n chain: bond.chainId,\n data: {\n bond: bond.earnToken.symbol,\n },\n })\n }}\n sx={{ position: 'absolute', top: '25px', left: '1px', width: 'calc(100% - 2px)' }}\n >\n <BondRow\n key={`${bondAddress}-${bond.chainId}`}\n bondAddress={bond?.contractAddress?.[bond?.chainId] as string}\n bondChain={bond.chainId}\n billType={bond.billType}\n payoutToken={bond.earnToken}\n tag={bond.tags?.[0]}\n bondSoldOut={isBondSoldOut(bond, SDKConfig.showLowValueBonds)}\n trueBondPrices={bond?.trueBondPrices}\n minTier={bond?.minTier}\n vestingTermString={getVestingTermsString(bond)}\n vestingCliffString={getVestingTermsTooltipString(bond)}\n percentageAvailable={remainingPercentage(bond)}\n remainingTokensString={remainingTokensString}\n />\n </Flex>\n </Flex>\n ) : null\n}\n\nexport default BuyAgainRow\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/Bonds/components/BuyAgainRow/index.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { isBondSoldOut } from '../../utils'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport BondRow from '../BondRows/BondRow'\nimport track from '../../../../utils/track'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { BondsData } from '../../../../types/bonds'\nimport { BillsConfig } from '@ape.swap/apeswap-lists'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport {\n getVestingTermsString,\n getVestingTermsTooltipString,\n remainingPercentage,\n} from '../../../../utils/displayHelpers'\n\nconst BuyAgainRow = () => {\n const { data: bills } = useBondsData()\n const SDKConfig = useSDKConfig()\n const highlightedBond = SDKConfig.highlightedBond\n const chains = SDKConfig?.chains as number[]\n\n const bond = useMemo(\n () =>\n bills?.find(\n (bill) =>\n bill.earnToken.symbol.toLowerCase() === highlightedBond?.toLowerCase() &&\n !bill.soldOut &&\n !bill.hide &&\n chains.includes(bill.chainId),\n ),\n [bills, chains, highlightedBond],\n )\n\n const bondAddress = bond?.contractAddress?.[bond.chainId]\n\n const remainingTokensFormat = (bond: BondsData | BillsConfig) => {\n const tokensRemaining = 'tokensRemaining' in bond ? bond.tokensRemaining : '0'\n return formatNumberSI(parseFloat(tokensRemaining ?? '0'), 0)\n }\n\n const remainingTokensUsd = (bond: BondsData | BillsConfig): number => {\n const tokensRemaining = 'tokensRemaining' in bond ? bond.tokensRemaining : '0'\n const payoutTokenPrice = 'payoutTokenPrice' in bond ? bond.payoutTokenPrice : 0\n return Number(tokensRemaining ?? '0') * Number(payoutTokenPrice ?? '0')\n }\n\n const remainingTokensString = bond\n ? `${remainingTokensFormat(bond)} ${bond.earnToken.symbol} ($${formatNumberSI(remainingTokensUsd(bond))})`\n : ''\n\n return bond ? (\n <Flex\n sx={{\n position: 'relative',\n width: '100%',\n mb: '10px',\n }}\n >\n <Flex\n sx={{\n p: '0 1px',\n width: '100%',\n pt: '5px',\n background: 'primaryButton',\n borderRadius: 'normal',\n flexDirection: 'column',\n opacity: 0.5,\n }}\n >\n <Flex\n className=\"buy-again-header\"\n sx={{\n width: '100%',\n fontSize: '12px',\n fontWeight: 500,\n pl: '26px',\n color: 'primaryBright',\n height: '91px',\n }}\n >\n BOND SPOTLIGHT\n </Flex>\n </Flex>\n <Flex\n onClick={() => {\n track({\n event: 'buyAgainClick',\n chain: bond.chainId,\n data: {\n bond: bond.earnToken.symbol,\n },\n })\n }}\n sx={{ position: 'absolute', top: '25px', left: '1px', width: 'calc(100% - 2px)' }}\n >\n <BondRow\n key={`${bondAddress}-${bond.chainId}`}\n bondAddress={bond?.contractAddress?.[bond?.chainId] as string}\n bondChain={bond.chainId}\n billType={bond.billType}\n payoutToken={bond.earnToken}\n tag={bond.tags?.[0]}\n bondSoldOut={isBondSoldOut(bond, SDKConfig.showLowValueBonds)}\n trueBondPrices={bond?.trueBondPrices}\n minTier={bond?.minTier}\n vestingTermString={getVestingTermsString(bond)}\n vestingCliffString={getVestingTermsTooltipString(bond)}\n percentageAvailable={remainingPercentage(bond)}\n remainingTokensString={remainingTokensString}\n />\n </Flex>\n </Flex>\n ) : null\n}\n\nexport default BuyAgainRow\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ChainId } from '@ape.swap/apeswap-lists';
3
- export interface SmallCardBond {
3
+ interface SmallCardBond {
4
4
  vestingTerm: number;
5
5
  payoutTokenName: string;
6
6
  contractAddress: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SmallRecommendationCard.js","sources":["../../../../../src/views/Bonds/components/RecommendationCards/SmallRecommendationCard.tsx"],"sourcesContent":["import React from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { styles } from './styles'\n\nexport interface SmallCardBond {\n vestingTerm: number\n payoutTokenName: string\n contractAddress: string\n bonus: number\n chainId: ChainId\n}\n\nconst SmallRecommendationCard = ({ recommendation }: { recommendation: SmallCardBond }) => {\n const vestingTime = getTimePeriods(recommendation.vestingTerm, true)\n\n return (\n <Flex\n sx={styles.smallCardContainer}\n onClick={() =>\n window.open(\n `${window.location.origin}/bonds?bondAddress=${recommendation.contractAddress}&bondChain=${recommendation.chainId}`,\n '_self',\n )\n }\n >\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={recommendation.payoutTokenName} size={32} chain={recommendation.chainId} />\n <Flex sx={{ mx: '10px', alignItems: 'center' }}>\n <Flex sx={{ fontSize: '14px', px: '6px' }}>{recommendation.payoutTokenName}</Flex>\n <Flex sx={styles.subTitle}>{vestingTime.days}D</Flex>\n </Flex>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <Flex sx={styles.subTitle}>Bonus</Flex>\n <Flex sx={{ fontSize: '12px', color: recommendation.bonus > 0 ? 'success' : 'error', ml: '6px' }}>\n {recommendation.bonus.toFixed(2)}%\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default SmallRecommendationCard\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAeA,MAAM,uBAAuB,GAAG,CAAC,EAAE,cAAc,EAAqC,KAAI;IACxF,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC;AAEpE,IAAA,QACEA,IAAA,CAAC,IAAI,IACH,EAAE,EAAE,MAAM,CAAC,kBAAkB,EAC7B,OAAO,EAAE,MACP,MAAM,CAAC,IAAI,CACT,CAAA,EAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA,mBAAA,EAAsB,cAAc,CAAC,eAAe,CAAA,WAAA,EAAc,cAAc,CAAC,OAAO,EAAE,EACnH,OAAO,CACR,EAAA,QAAA,EAAA,CAGHA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAChCC,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,EAAA,CAAI,EAC/FD,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAC5CC,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAAG,cAAc,CAAC,eAAe,EAAA,CAAQ,EAClFD,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,aAAG,WAAW,CAAC,IAAI,EAAA,GAAA,CAAA,EAAA,CAAS,CAAA,EAAA,CAChD,IACF,EACPA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,aAChCC,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,OAAA,EAAA,CAAc,EACvCD,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,aAC7F,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAC3B,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEX;;;;"}
1
+ {"version":3,"file":"SmallRecommendationCard.js","sources":["../../../../../src/views/Bonds/components/RecommendationCards/SmallRecommendationCard.tsx"],"sourcesContent":["import React from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { styles } from './styles'\n\ninterface SmallCardBond {\n vestingTerm: number\n payoutTokenName: string\n contractAddress: string\n bonus: number\n chainId: ChainId\n}\n\nconst SmallRecommendationCard = ({ recommendation }: { recommendation: SmallCardBond }) => {\n const vestingTime = getTimePeriods(recommendation.vestingTerm, true)\n\n return (\n <Flex\n sx={styles.smallCardContainer}\n onClick={() =>\n window.open(\n `${window.location.origin}/bonds?bondAddress=${recommendation.contractAddress}&bondChain=${recommendation.chainId}`,\n '_self',\n )\n }\n >\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={recommendation.payoutTokenName} size={32} chain={recommendation.chainId} />\n <Flex sx={{ mx: '10px', alignItems: 'center' }}>\n <Flex sx={{ fontSize: '14px', px: '6px' }}>{recommendation.payoutTokenName}</Flex>\n <Flex sx={styles.subTitle}>{vestingTime.days}D</Flex>\n </Flex>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <Flex sx={styles.subTitle}>Bonus</Flex>\n <Flex sx={{ fontSize: '12px', color: recommendation.bonus > 0 ? 'success' : 'error', ml: '6px' }}>\n {recommendation.bonus.toFixed(2)}%\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default SmallRecommendationCard\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAeA,MAAM,uBAAuB,GAAG,CAAC,EAAE,cAAc,EAAqC,KAAI;IACxF,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC;AAEpE,IAAA,QACEA,IAAA,CAAC,IAAI,IACH,EAAE,EAAE,MAAM,CAAC,kBAAkB,EAC7B,OAAO,EAAE,MACP,MAAM,CAAC,IAAI,CACT,CAAA,EAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA,mBAAA,EAAsB,cAAc,CAAC,eAAe,CAAA,WAAA,EAAc,cAAc,CAAC,OAAO,EAAE,EACnH,OAAO,CACR,EAAA,QAAA,EAAA,CAGHA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAChCC,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,EAAA,CAAI,EAC/FD,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAC5CC,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAAG,cAAc,CAAC,eAAe,EAAA,CAAQ,EAClFD,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,aAAG,WAAW,CAAC,IAAI,EAAA,GAAA,CAAA,EAAA,CAAS,CAAA,EAAA,CAChD,IACF,EACPA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,aAChCC,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,OAAA,EAAA,CAAc,EACvCD,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,aAC7F,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAC3B,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEX;;;;"}
@@ -1,8 +1,6 @@
1
1
  import { BondsData } from '../../types/bonds';
2
2
  import { SortOptions } from './Bonds';
3
- import { BillsConfig } from '@ape.swap/apeswap-lists';
4
3
  export declare const isBondSoldOut: (bill: BondsData, showLowValueBonds?: boolean) => boolean;
5
4
  export declare const sortBonds: (sortConfig?: SortOptions, bonds?: BondsData[]) => BondsData[];
6
5
  export declare const getDiscountColor: (discount?: number) => string;
7
- export declare const calculateARR: (bond: BondsData | BillsConfig, useTiers: boolean) => string;
8
6
  export declare const isBondSupported: (SDKVersion: string, bondVersion: string) => boolean;
@@ -1,4 +1,3 @@
1
- import BigNumber from 'bignumber.js';
2
1
  import { getTimePeriods } from '../../utils/getTimePeriods.js';
3
2
  import { LaunchBondTiers } from '@ape.swap/apeswap-lists';
4
3
  import { TIERS_WEIGHT } from '../../state/tiers/useTierPoints.js';
@@ -23,14 +22,14 @@ const isBondSoldOut = (bill, showLowValueBonds) => {
23
22
  return false;
24
23
  if (showLowValueBonds)
25
24
  return false;
26
- const thresholdToHide = new BigNumber(100).div(payoutTokenPrice ?? 0);
25
+ const thresholdToHide = 100 / Number(payoutTokenPrice ?? 0);
27
26
  if ((findHighestTrueBondPrice('0', bill?.trueBondPrices)?.bonusWithFee ?? 0) > 50) {
28
27
  if (bill.earnToken.symbol === 'sGOO')
29
28
  return false;
30
29
  //if bonus is higher than 50% for regular bonds, hide them
31
30
  return true;
32
31
  }
33
- if (new BigNumber(tokensRemaining)?.lte(thresholdToHide)) {
32
+ if (Number(tokensRemaining) <= thresholdToHide) {
34
33
  // If there's less than 100 usd bond will be hidden
35
34
  return true;
36
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/views/Bonds/utils.ts"],"sourcesContent":["import { BondsData } from '../../types/bonds'\nimport BigNumber from 'bignumber.js'\nimport { SortOptions } from './Bonds'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { BillsConfig, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport { remainingPercentage } from '../../utils/displayHelpers'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\n\nexport const isBondSoldOut = (bill: BondsData, showLowValueBonds?: boolean): boolean => {\n if (bill.soldOut) return true\n if (bill.hide) return true\n if (bill.billType === 'fcfs') {\n const now = new Date().getTime()\n const saleFinishTime = (bill?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bill.finalized\n if (saleHasFinished) return true\n return false\n }\n const { tokensRemaining, payoutTokenPrice } = bill\n if (!tokensRemaining) return false\n if (showLowValueBonds) return false\n const thresholdToHide = new BigNumber(100).div(payoutTokenPrice ?? 0)\n\n if ((findHighestTrueBondPrice('0', bill?.trueBondPrices)?.bonusWithFee ?? 0) > 50) {\n if (bill.earnToken.symbol === 'sGOO') return false\n //if bonus is higher than 50% for regular bonds, hide them\n return true\n }\n if (new BigNumber(tokensRemaining)?.lte(thresholdToHide)) {\n // If there's less than 100 usd bond will be hidden\n return true\n } else return false\n}\n\nexport const sortBonds = (sortConfig?: SortOptions, bonds?: BondsData[]) => {\n const bondsToSort = bonds ?? []\n\n if (!sortConfig) {\n return bondsToSort\n }\n\n return [...bondsToSort].sort((a, b) => {\n let aValue: number\n let bValue: number\n\n if (sortConfig?.key === 'arr') {\n aValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], a?.trueBondPrices)?.bonusWithFee ?? 0\n bValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], b?.trueBondPrices)?.bonusWithFee ?? 0\n } else if (sortConfig.key === 'tokensRemaining') {\n aValue = remainingPercentage(a)\n bValue = remainingPercentage(b)\n } else if (sortConfig.key === 'terms') {\n aValue = getTimePeriods(a.vestingTerm, true).days\n bValue = getTimePeriods(b.vestingTerm, true).days\n } else {\n aValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], a?.trueBondPrices)?.bonusWithFee ?? 0\n bValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], b?.trueBondPrices)?.bonusWithFee ?? 0\n }\n\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'asc' ? 1 : -1\n }\n return 0\n })\n}\n\nexport const getDiscountColor = (discount?: number): string => {\n if (!discount) return ''\n return discount < 0 ? 'discount-negative' : 'discount-positive'\n}\nexport const calculateARR = (bond: BondsData | BillsConfig, useTiers: boolean): string => {\n if (!('trueBondPrices' in bond)) return '-'\n const bonus = findHighestTrueBondPrice(\n useTiers ? TIERS_WEIGHT[LaunchBondTiers.Legend] : '0',\n bond?.trueBondPrices,\n )?.bonusWithFee\n const vestingTerm = 'vestingTerm' in bond ? bond?.vestingTerm : undefined\n if (!bonus) return '-'\n const discount = bonus ?? 0\n if (discount < 0) return '-'\n const vestingDays = getTimePeriods(vestingTerm, true).days\n return `${((discount * 365) / vestingDays).toFixed(2)}%`\n}\n\nexport const isBondSupported = (SDKVersion: string, bondVersion: string) => {\n // Split the versions into major, minor, and patch parts\n const [major1, minor1, patch1] = SDKVersion.split('.').map(Number) ?? []\n const [major2, minor2, patch2] = bondVersion?.split('.').map(Number) ?? []\n\n // Compare major versions\n if (major1 > major2) return true\n if (major1 < major2) return false\n\n // Compare minor versions\n if (minor1 > minor2) return true\n if (minor1 < minor2) return false\n\n // Compare patch versions\n if (patch1 >= patch2) return true\n\n // If none of the above conditions are met, version1 is less\n return false\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/views/Bonds/utils.ts"],"sourcesContent":["import { BondsData } from '../../types/bonds'\nimport { SortOptions } from './Bonds'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport { remainingPercentage } from '../../utils/displayHelpers'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\n\nexport const isBondSoldOut = (bill: BondsData, showLowValueBonds?: boolean): boolean => {\n if (bill.soldOut) return true\n if (bill.hide) return true\n if (bill.billType === 'fcfs') {\n const now = new Date().getTime()\n const saleFinishTime = (bill?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bill.finalized\n if (saleHasFinished) return true\n return false\n }\n const { tokensRemaining, payoutTokenPrice } = bill\n if (!tokensRemaining) return false\n if (showLowValueBonds) return false\n const thresholdToHide = 100 / Number(payoutTokenPrice ?? 0)\n\n if ((findHighestTrueBondPrice('0', bill?.trueBondPrices)?.bonusWithFee ?? 0) > 50) {\n if (bill.earnToken.symbol === 'sGOO') return false\n //if bonus is higher than 50% for regular bonds, hide them\n return true\n }\n if (Number(tokensRemaining) <= thresholdToHide) {\n // If there's less than 100 usd bond will be hidden\n return true\n } else return false\n}\n\nexport const sortBonds = (sortConfig?: SortOptions, bonds?: BondsData[]) => {\n const bondsToSort = bonds ?? []\n\n if (!sortConfig) {\n return bondsToSort\n }\n\n return [...bondsToSort].sort((a, b) => {\n let aValue: number\n let bValue: number\n\n if (sortConfig?.key === 'arr') {\n aValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], a?.trueBondPrices)?.bonusWithFee ?? 0\n bValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], b?.trueBondPrices)?.bonusWithFee ?? 0\n } else if (sortConfig.key === 'tokensRemaining') {\n aValue = remainingPercentage(a)\n bValue = remainingPercentage(b)\n } else if (sortConfig.key === 'terms') {\n aValue = getTimePeriods(a.vestingTerm, true).days\n bValue = getTimePeriods(b.vestingTerm, true).days\n } else {\n aValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], a?.trueBondPrices)?.bonusWithFee ?? 0\n bValue = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], b?.trueBondPrices)?.bonusWithFee ?? 0\n }\n\n if (aValue < bValue) {\n return sortConfig.direction === 'asc' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'asc' ? 1 : -1\n }\n return 0\n })\n}\n\nexport const getDiscountColor = (discount?: number): string => {\n if (!discount) return ''\n return discount < 0 ? 'discount-negative' : 'discount-positive'\n}\n\nexport const isBondSupported = (SDKVersion: string, bondVersion: string) => {\n // Split the versions into major, minor, and patch parts\n const [major1, minor1, patch1] = SDKVersion.split('.').map(Number) ?? []\n const [major2, minor2, patch2] = bondVersion?.split('.').map(Number) ?? []\n\n // Compare major versions\n if (major1 > major2) return true\n if (major1 < major2) return false\n\n // Compare minor versions\n if (minor1 > minor2) return true\n if (minor1 < minor2) return false\n\n // Compare patch versions\n if (patch1 >= patch2) return true\n\n // If none of the above conditions are met, version1 is less\n return false\n}\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export interface PurchasedBondData {
3
3
  buyTxHash: string;
4
4
  lostProfit?: string;
5
5
  }
6
- export interface BuyBondProps {
6
+ interface BuyBondProps {
7
7
  onDismiss?: () => void;
8
8
  bondAddress?: string;
9
9
  bondChain?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"BuyBondModal.js","sources":["../../../src/views/BuyBond/BuyBondModal.tsx"],"sourcesContent":["import React from 'react'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport BuyBond from './BuyComponent'\nimport BuyComponentSolana from './BuyComponentSolana'\nimport BuyComponentAptos from './BuyComponentAptos'\nimport BuyComponentSui from './BuyComponentSui'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport interface PurchasedBondData {\n buyTxHash: string\n lostProfit?: string\n}\n\nexport interface BuyBondProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (data: PurchasedBondData) => void\n setBillId?: (id: string) => void\n isProjectView?: boolean\n}\n\nconst BuyBondModal: React.FC<BuyBondProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n handlePurchasedBond,\n setBillId,\n}) => {\n return (\n <Modal className=\"modal\" onDismiss={onDismiss} sx={{ width: '400px', maxWidth: '700px', mt: '-10px', p: '0px' }}>\n {bondChain === ChainId.SOL ? (\n <BuyComponentSolana\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n setBillId={setBillId}\n />\n ) : bondChain === ChainId.APTOS ? (\n <BuyComponentAptos\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n setBillId={setBillId}\n />\n ) : bondChain === ChainId.SUI ? (\n <BuyComponentSui onDismiss={onDismiss} bondAddress={bondAddress} bondChain={bondChain} setBillId={setBillId} />\n ) : (\n <BuyBond //evm\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n handlePurchasedBond={handlePurchasedBond}\n />\n )}\n </Modal>\n )\n}\n\nexport default React.memo(BuyBondModal)\n"],"names":["_jsx"],"mappings":";;;;;;;;;AAsBA,MAAM,YAAY,GAA2B,CAAC,EAC5C,SAAS,EACT,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,SAAS,GACV,KAAI;AACH,IAAA,QACEA,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAA,QAAA,EAC5G,SAAS,KAAK,OAAO,CAAC,GAAG,IACxBA,GAAA,CAAC,kBAAkB,EAAA,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EAAA,CACpB,IACA,SAAS,KAAK,OAAO,CAAC,KAAK,IAC7BA,GAAA,CAAC,iBAAiB,EAAA,EAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EAAA,CACpB,IACA,SAAS,KAAK,OAAO,CAAC,GAAG,IAC3BA,GAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAA,CAAI,KAE/GA,GAAA,CAAC,OAAO;AACN,UAAA,EAAA,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,GACxC,CACH,EAAA,CACK;AAEZ,CAAC;AAED,qBAAe,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;;;;"}
1
+ {"version":3,"file":"BuyBondModal.js","sources":["../../../src/views/BuyBond/BuyBondModal.tsx"],"sourcesContent":["import React from 'react'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport BuyBond from './BuyComponent'\nimport BuyComponentSolana from './BuyComponentSolana'\nimport BuyComponentAptos from './BuyComponentAptos'\nimport BuyComponentSui from './BuyComponentSui'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport interface PurchasedBondData {\n buyTxHash: string\n lostProfit?: string\n}\n\ninterface BuyBondProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (data: PurchasedBondData) => void\n setBillId?: (id: string) => void\n isProjectView?: boolean\n}\n\nconst BuyBondModal: React.FC<BuyBondProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n handlePurchasedBond,\n setBillId,\n}) => {\n return (\n <Modal className=\"modal\" onDismiss={onDismiss} sx={{ width: '400px', maxWidth: '700px', mt: '-10px', p: '0px' }}>\n {bondChain === ChainId.SOL ? (\n <BuyComponentSolana\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n setBillId={setBillId}\n />\n ) : bondChain === ChainId.APTOS ? (\n <BuyComponentAptos\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n setBillId={setBillId}\n />\n ) : bondChain === ChainId.SUI ? (\n <BuyComponentSui onDismiss={onDismiss} bondAddress={bondAddress} bondChain={bondChain} setBillId={setBillId} />\n ) : (\n <BuyBond //evm\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n handlePurchasedBond={handlePurchasedBond}\n />\n )}\n </Modal>\n )\n}\n\nexport default React.memo(BuyBondModal)\n"],"names":["_jsx"],"mappings":";;;;;;;;;AAsBA,MAAM,YAAY,GAA2B,CAAC,EAC5C,SAAS,EACT,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,SAAS,GACV,KAAI;AACH,IAAA,QACEA,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAA,QAAA,EAC5G,SAAS,KAAK,OAAO,CAAC,GAAG,IACxBA,GAAA,CAAC,kBAAkB,EAAA,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EAAA,CACpB,IACA,SAAS,KAAK,OAAO,CAAC,KAAK,IAC7BA,GAAA,CAAC,iBAAiB,EAAA,EAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EAAA,CACpB,IACA,SAAS,KAAK,OAAO,CAAC,GAAG,IAC3BA,GAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAA,CAAI,KAE/GA,GAAA,CAAC,OAAO;AACN,UAAA,EAAA,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,GACxC,CACH,EAAA,CACK;AAEZ,CAAC;AAED,qBAAe,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'theme-ui/jsx-runtime';
2
2
  import React, { useMemo, useState, useCallback, useEffect } from 'react';
3
- import { BigNumber } from 'bignumber.js';
4
3
  import { convertToBigish } from '../../utils/convertToBigish.js';
4
+ import { toFixedString, mulDivRound } from '../../utils/fixedPoint.js';
5
5
  import ABI_DEPOSIT from '../../config/abi/deposit.json.js';
6
6
  import ABI_DEPOSIT_SIG from '../../config/abi/depositSig.json.js';
7
7
  import { useChainId, useWriteContract, useSendTransaction } from 'wagmi';
@@ -108,11 +108,10 @@ const BuyComponent = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond,
108
108
  const youSpendString = `${formatNumberSI(inputValue)} ${getSymbol(inputToken, bondData?.chainId)} =
109
109
  $${formatUSDNumber((parseFloat(inputValue) * (inputTokenPrice ?? 0)).toString())}`;
110
110
  // Validations
111
- const exceedsRealMaxBuy = getMaxBuy(bondData, true).lte(getPayoutAmount(bondData, depositAmount, pointsToBeUsed));
112
- const exceedsSafeMaxBuy = getMaxBuy(bondData, false)
113
- .times(isZapSupported ? 0.995 : 0.9995)
114
- .lte(getPayoutAmount(bondData, depositAmount, pointsToBeUsed));
115
- const exceedsBalance = new BigNumber(inputCurrencyBalance ?? '0').lt(inputValue);
111
+ const exceedsRealMaxBuy = getMaxBuy(bondData, true) <= getPayoutAmount(bondData, depositAmount, pointsToBeUsed);
112
+ const exceedsSafeMaxBuy = getMaxBuy(bondData, false) * (isZapSupported ? 0.995 : 0.9995) <=
113
+ getPayoutAmount(bondData, depositAmount, pointsToBeUsed);
114
+ const exceedsBalance = Number(inputCurrencyBalance ?? '0') < Number(inputValue);
116
115
  const isPrincipalTokenLP = bondData?.lpToken?.symbol?.includes('-');
117
116
  // Loading State
118
117
  const [loadingTx, setLoadingTx] = useState(false);
@@ -125,29 +124,29 @@ const BuyComponent = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond,
125
124
  setInputTokenString(newInputToken);
126
125
  }, []);
127
126
  const handleMaxButton = useCallback(() => {
128
- const balance = new BigNumber(inputCurrencyBalance ?? '0');
127
+ const balance = Number(inputCurrencyBalance ?? '0');
129
128
  const maxBuyAmount = getMaxBuy(bondData, SDKConfig.showLowValueBonds);
130
129
  if (!isZapSupported) {
131
130
  const maxPossibleUserPurchase = getPayoutAmount(bondData, balance.toString(), pointsToBeUsed);
132
131
  const principalDecimals = bondData?.lpToken?.decimals?.[bondData?.chainId] ?? 18;
133
- if (maxPossibleUserPurchase > maxBuyAmount.toNumber()) {
132
+ if (maxPossibleUserPurchase > maxBuyAmount) {
134
133
  const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed);
135
- setInputValue(principalForMaxBuy.toFixed(principalDecimals));
134
+ setInputValue(toFixedString(principalForMaxBuy, principalDecimals));
136
135
  }
137
136
  else {
138
- setInputValue(balance.toFixed(principalDecimals));
137
+ setInputValue(toFixedString(balance, principalDecimals));
139
138
  }
140
139
  }
141
140
  else {
142
141
  const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed);
143
- const principalForMaxBuyUSD = principalForMaxBuy.times(bondData?.principalTokenPrice ?? 0);
144
- const maxBuyAmountInSelectedToken = principalForMaxBuyUSD.div(inputTokenPrice ?? 0);
142
+ const principalForMaxBuyUSD = principalForMaxBuy * Number(bondData?.principalTokenPrice ?? 0);
143
+ const maxBuyAmountInSelectedToken = principalForMaxBuyUSD / (inputTokenPrice ?? 0);
145
144
  const decimals = enrichedTokenData?.token === 'NATIVE' ? 18 : (enrichedTokenData?.token.decimals[bondData?.chainId] ?? 18);
146
- if (balance.gte(maxBuyAmountInSelectedToken)) {
147
- setInputValue(maxBuyAmountInSelectedToken.toFixed(decimals));
145
+ if (balance >= maxBuyAmountInSelectedToken) {
146
+ setInputValue(toFixedString(maxBuyAmountInSelectedToken, decimals));
148
147
  }
149
148
  else {
150
- setInputValue(balance.toFixed(decimals));
149
+ setInputValue(toFixedString(balance, decimals));
151
150
  }
152
151
  }
153
152
  }, [
@@ -188,7 +187,7 @@ const BuyComponent = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond,
188
187
  },
189
188
  });
190
189
  try {
191
- const maxPrice = new BigNumber(trueBondPrice ?? '0').times(102).div(100).toFixed(0); // multiply it by 1.02
190
+ const maxPrice = mulDivRound(BigInt(trueBondPrice ?? '0'), 102n, 100n, 'halfUp').toString(); // multiply it by 1.02
192
191
  const amount = convertToBigish(inputValue, decimals);
193
192
  const shouldUseSig = bondData?.billVersion === BillVersion.V4 && SDKConfig.useTiers;
194
193
  const args = shouldUseSig ? [amount, maxPrice, account, tierProofSig] : [amount, maxPrice, account];
@@ -264,7 +263,7 @@ const BuyComponent = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond,
264
263
  });
265
264
  try {
266
265
  console.log(zapData);
267
- const validated18DecimalAmount = new BigNumber(inputValue ?? '0').toFixed(18, 5);
266
+ const validated18DecimalAmount = toFixedString(inputValue ?? '0', 18, 'trunc');
268
267
  const parsedValue = parseEther(validated18DecimalAmount);
269
268
  const hash = await sendTransactionAsync({
270
269
  to: zapData.txData.to,
@@ -1 +1 @@
1
- {"version":3,"file":"BuyComponent.js","sources":["../../../src/views/BuyBond/BuyComponent.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { BigNumber } from 'bignumber.js'\nimport { convertToBigish } from '../../utils/convertToBigish'\nimport ABI_DEPOSIT from '../../config/abi/deposit.json'\nimport ABI_DEPOSIT_SIG from '../../config/abi/depositSig.json'\nimport { PurchasedBondData } from './BuyBondModal'\nimport {\n useChainId,\n useSendTransaction,\n useWriteContract,\n // useConfig\n} from 'wagmi'\nimport useModal from '../../hooks/useModal'\n// import ZapModal from '../ZapModal'\nimport { BillVersion, ChainId, LaunchBondTiers, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport TokenSelectorPanel from '../../components/TokenSelectorPanel'\nimport { useApproval } from '../../state/allowance/useAllowance'\nimport { SoulZapTokenManager } from '../../config/constants/addresses'\nimport useSoulZapBondQuote from '../../state/zap/useSoulZapBondQuote'\nimport { parseEther } from 'viem'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport useTokenFromZapList from '../../hooks/useTokenFromZapList'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { usePopups } from '../../state/popups/usePopups'\nimport {\n formatUSDNumber,\n getMaxBuy,\n getPayoutAmount,\n getPrincipalAmount,\n getRawBonus,\n} from '../../utils/displayHelpers'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport {\n LifiSupported,\n tierOptimizerUIEnabled,\n zapSupported,\n ZapSupportedChainId,\n} from '../../config/constants/variables'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport { useSendReferenceId } from '../../hooks/useSendReferenceId'\nimport ConnectButton from '../../components/ConnectButton'\nimport BondModalHeader from './components/BondModalHeader'\nimport BondCards from './components/BondCards/BondCards'\nimport Estimations from './components/Estimations'\nimport ProjectDescription from './components/ProjectDescription'\nimport track from '../../utils/track'\nimport { remove0xPrefix } from '../../utils/remove0xPrefix'\nimport useTierPoints, { getUserTier, Promotions, TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport NewRateModal from './components/NewRateModal/NewRateModal'\nimport NoBonusModal from './components/NoBonusModal/NoBonusModal'\nimport useTierProofSignature from '../../state/bonds/useTierProofSignature'\nimport PointsLeftForNextTier from './components/PointsLeftForNextTier/PointsLeftForNextTier'\nimport SafeHTMLComponent from '../../components/SafeHTMLComponent'\nimport useSortedZapList from '../../hooks/useSortedZapList'\nimport TransactionModal from '../TransactionModal/TransactionModal'\nimport { reportError } from '../../utils/reportError'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport { MCBuyComponentStyles } from '../../utils/campaignStyles'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport LifiModal from '../LifiModal/LifiModal'\n// import useTierOptimizationPreview from '../../state/zap/useTierOptimizationPreview'\nimport { SHORT_NETWORK_LABEL } from '../../config/constants/chains'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Text from '../../components/uikit-sdk/Text'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport GetUpToComponent from './components/GetUpToComponent/GetUpToComponent'\nimport QuestionCircle from '../../components/uikit-sdk/Svg/Icons/QuestionCircle'\n// import { simulateContract } from 'wagmi/actions'\n\nexport interface BuyComponentProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (data: PurchasedBondData) => void\n isProjectView?: boolean\n}\n\nconst PROMOTION_TRACKING_SUFFIXES: Partial<Record<Promotions, string>> = {\n [Promotions.WelcomeBonus]: 'welcome-bonus',\n [Promotions.BonusWeek]: 'bonus-week',\n}\n\nconst getPromotionTrackingSuffix = (promotion?: Promotions | null): string => {\n if (!promotion) return ''\n return PROMOTION_TRACKING_SUFFIXES[promotion] ?? ''\n}\n\nconst BuyComponent: React.FC<BuyComponentProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n handlePurchasedBond,\n isProjectView,\n}) => {\n // Hooks\n // const config = useConfig()\n const SDKConfig = useSDKConfig()\n const userChainId = useChainId()\n const { address: account } = useEVMAccount()\n const { writeContractAsync } = useWriteContract()\n const { sendTransactionAsync } = useSendTransaction()\n const { data: bonds, refetch: refetchBondState } = useBondsData()\n const sendReferenceId = useSendReferenceId()\n const { data: tierPointsState } = useTierPoints()\n const { promotionalPoints, promotion, eligibleChains, onChainPoints } = tierPointsState || {}\n // if promotion comes with eligibleChains undefined means it should be used for every chain\n const isBondEligibleForPromotion = eligibleChains === undefined || eligibleChains?.includes(bondChain as ChainId)\n const pointsToBeUsed = isBondEligibleForPromotion ? promotionalPoints : onChainPoints\n // Bond To be used\n const bondData = useMemo(() => {\n return bonds?.find((bond) => bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase())!\n }, [bonds, bondAddress])\n\n // Tier Gating\n const userTier = getUserTier(pointsToBeUsed ?? '0')\n const minTier = bondData?.minTier !== undefined ? bondData.minTier : null\n const isUserRestricted = minTier !== null && (userTier === null || userTier < minTier)\n const trueBondPriceData = findHighestTrueBondPrice(pointsToBeUsed, bondData?.trueBondPrices)\n const trueBondPrice = trueBondPriceData?.trueBondPrice\n const { data: tierProofSig } = useTierProofSignature(bondAddress, bondChain, isUserRestricted)\n\n // State\n const [buyTxHash, setBuyTxHash] = useState<string | undefined>()\n const [inputValue, setInputValue] = useState('')\n const [inputTokenString, setInputTokenString] = useState(bondData?.lpToken?.address?.[bondData.chainId])\n\n // On-chain Data\n const inputToken = useTokenFromZapList(inputTokenString, bondData?.chainId, bondData?.lpToken)\n const isZapSupported = zapSupported.includes(bondData?.chainId as ZapSupportedChainId)\n\n const [fetchingZapQuote, zapData, zapDepositAmount, zapError, zapTrueBondPrice] = useSoulZapBondQuote(\n inputValue,\n inputToken,\n bondData,\n account,\n tierProofSig ?? undefined,\n )\n\n const { sortedZapList, isFetched: zapListFetched } = useSortedZapList(bondChain, bondData?.lpToken)\n const enrichedTokenData = sortedZapList.find((item) =>\n item.token === 'NATIVE' || inputToken === 'NATIVE'\n ? item.token === inputToken\n : item?.token?.address?.[bondChain as ChainId]?.toLowerCase() ===\n inputToken?.address?.[bondChain as ChainId]?.toLowerCase(),\n )\n const inputCurrencyBalance = enrichedTokenData?.balance\n const inputTokenPrice = enrichedTokenData?.price\n const rateChanged = parseFloat(zapTrueBondPrice ?? '0') > parseFloat(trueBondPrice ?? '0') * 1.01 && isZapSupported\n const promotionTrackingSuffix = getPromotionTrackingSuffix(promotion)\n const getTrackingCategory = useCallback(\n (baseCategory: string) => (promotionTrackingSuffix ? `${baseCategory}-${promotionTrackingSuffix}` : baseCategory),\n [promotionTrackingSuffix],\n )\n\n // Estimations\n const depositAmount = isZapSupported ? zapDepositAmount : inputValue\n const youSpendString = `${formatNumberSI(inputValue)} ${getSymbol(inputToken, bondData?.chainId)} = \n $${formatUSDNumber((parseFloat(inputValue) * (inputTokenPrice ?? 0)).toString())}`\n\n // Validations\n const exceedsRealMaxBuy = getMaxBuy(bondData, true).lte(getPayoutAmount(bondData, depositAmount, pointsToBeUsed))\n const exceedsSafeMaxBuy = getMaxBuy(bondData, false)\n .times(isZapSupported ? 0.995 : 0.9995)\n .lte(getPayoutAmount(bondData, depositAmount, pointsToBeUsed))\n const exceedsBalance = new BigNumber(inputCurrencyBalance ?? '0').lt(inputValue)\n const isPrincipalTokenLP = bondData?.lpToken?.symbol?.includes('-')\n\n // Loading State\n const [loadingTx, setLoadingTx] = useState(false)\n const { addToastError } = usePopups()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(buyTxHash, userChainId)\n const load = loadingTx || (isConfirming && !isConfirmed)\n\n // State Handlers\n const handleCurrencySelect = useCallback((newInputToken: string) => {\n setInputValue('')\n setInputTokenString(newInputToken)\n }, [])\n\n const handleMaxButton = useCallback(() => {\n const balance = new BigNumber(inputCurrencyBalance ?? '0')\n const maxBuyAmount = getMaxBuy(bondData, SDKConfig.showLowValueBonds)\n\n if (!isZapSupported) {\n const maxPossibleUserPurchase = getPayoutAmount(bondData, balance.toString(), pointsToBeUsed)\n const principalDecimals = bondData?.lpToken?.decimals?.[bondData?.chainId] ?? 18\n if (maxPossibleUserPurchase > maxBuyAmount.toNumber()) {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed)\n setInputValue(principalForMaxBuy.toFixed(principalDecimals))\n } else {\n setInputValue(balance.toFixed(principalDecimals))\n }\n } else {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed)\n const principalForMaxBuyUSD = principalForMaxBuy.times(bondData?.principalTokenPrice ?? 0)\n const maxBuyAmountInSelectedToken = principalForMaxBuyUSD.div(inputTokenPrice ?? 0)\n const decimals =\n enrichedTokenData?.token === 'NATIVE' ? 18 : (enrichedTokenData?.token.decimals[bondData?.chainId] ?? 18)\n\n if (balance.gte(maxBuyAmountInSelectedToken)) {\n setInputValue(maxBuyAmountInSelectedToken.toFixed(decimals))\n } else {\n setInputValue(balance.toFixed(decimals))\n }\n }\n }, [\n bondData,\n isZapSupported,\n pointsToBeUsed,\n SDKConfig.showLowValueBonds,\n inputTokenPrice,\n enrichedTokenData?.token,\n inputCurrencyBalance,\n ])\n\n // Approve & Purchase Functions\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n inputToken ?? null,\n (isZapSupported\n ? SoulZapTokenManager?.[bondData?.chainId as ZapSupportedChainId]\n : bondData?.contractAddress?.[bondData.chainId]) ?? null,\n account ?? null,\n bondData?.chainId ?? null,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: userChainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n },\n })\n })\n }\n\n const handleBuyCallback = async () => {\n const billAddress: `0x${string}` = bondData?.contractAddress?.[bondData.chainId] as `0x${string}`\n const decimals = bondData?.lpToken.decimals?.[bondData?.chainId] ?? 18\n track({\n event: 'buyBondClick',\n chain: bondChain,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n value: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n try {\n const maxPrice = new BigNumber(trueBondPrice ?? '0').times(102).div(100).toFixed(0) // multiply it by 1.02\n const amount = convertToBigish(inputValue, decimals)\n\n const shouldUseSig = bondData?.billVersion === BillVersion.V4 && SDKConfig.useTiers\n const args = shouldUseSig ? [amount, maxPrice, account, tierProofSig] : [amount, maxPrice, account]\n\n // const simulationResult = await simulateContract(config, {\n // address: billAddress,\n // abi: ABI_DEPOSIT_SIG,\n // functionName: 'deposit',\n // args: args,\n // chainId: bondData?.chainId as any,\n // account,\n // })\n // .then((e) => console.log('success!', e))\n // .catch((e) => {\n // console.error(e)\n // })\n\n const hash = await writeContractAsync({\n address: billAddress,\n abi: shouldUseSig ? ABI_DEPOSIT_SIG : ABI_DEPOSIT,\n functionName: 'deposit',\n args: args,\n chain: bondData?.chainId as any,\n account,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(billAddress, userChainId, hash)\n\n // lostProfit\n const bonusString = getRawBonus(bondData, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const lostProfit = parseFloat(bonusString) - parseFloat(noTierAmount)\n\n handlePurchasedBond?.({\n buyTxHash: hash,\n lostProfit: SDKConfig.useTiers && !userTier && lostProfit > 0.01 ? lostProfit.toFixed(2) : undefined,\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: getTrackingCategory('lp-buy'),\n type: bondData?.billType ?? '',\n typedValue: inputValue,\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (error: any) {\n console.error('Buy error', error)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'buyBond', bondData, error },\n chainId: bondChain,\n account,\n })\n addToastError(error.shortMessage)\n }\n }\n\n const handleZapCallback = async () => {\n if (zapData && zapData?.txData?.to && zapData?.txData?.data) {\n console.log('Attempting zap tx')\n track({\n event: 'buyBondClick',\n chain: bondData?.chainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol ?? '',\n value: zapData.lpQuote.fromAmountUSD,\n },\n })\n try {\n console.log(zapData)\n const validated18DecimalAmount = new BigNumber(inputValue ?? '0').toFixed(18, 5)\n const parsedValue = parseEther(validated18DecimalAmount)\n\n const hash = await sendTransactionAsync({\n to: zapData.txData.to,\n data: zapData.txData.data,\n value: inputToken === 'NATIVE' ? parsedValue : undefined,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(bondData?.contractAddress?.[bondData.chainId] ?? '', userChainId, hash)\n\n // lostProfit\n const bonusString = getRawBonus(bondData, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const lostProfit = parseFloat(bonusString) - parseFloat(noTierAmount)\n\n handlePurchasedBond?.({\n buyTxHash: hash,\n lostProfit: SDKConfig.useTiers && !userTier && lostProfit > 0.01 ? lostProfit.toFixed(2) : undefined,\n })\n track({\n event: 'zap',\n chain: bondChain,\n data: {\n cat: 'bill',\n token1: getSymbol(inputToken),\n token2: `${bondData?.lpToken.symbol ?? ''}`,\n amount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: getTrackingCategory('zap-buy'),\n type: bondData?.billType ?? '',\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n amount: inputValue,\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (e: any) {\n console.log(e)\n addToastError(e.shortMessage)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e,\n extraInfo: { type: 'zapBuyBond', bondData, zapData, e },\n chainId: bondChain,\n account,\n })\n }\n }\n }\n\n const handleBothPurchases = () => {\n setLoadingTx(true)\n if (isZapSupported) {\n handleZapCallback().finally(() => setLoadingTx(false))\n } else {\n handleBuyCallback().finally(() => setLoadingTx(false))\n }\n }\n\n const handleOpenModal = () => {\n const bonus = trueBondPriceData?.bonusWithFee ?? 0\n if (bonus <= 0) {\n openNoBonusModal()\n } else {\n openTxModal()\n }\n }\n\n const openExternal = () => {\n if (bondData?.lpToken?.getLpUrl?.[bondData?.chainId]) {\n window.open(bondData.lpToken.getLpUrl?.[bondData?.chainId], '_blank')\n } else {\n window.open(\n `https://ape.bond/swap?outputcurrency=${bondData?.lpToken.address[bondData?.chainId]}&outputChain=${bondData?.chainId}`,\n '_blank',\n )\n }\n }\n\n // Modals\n const [onOpenLifiModal] = useModal(\n <LifiModal\n bondChain={bondChain}\n principalToken={isPrincipalTokenLP ? 'ETH' : bondData?.lpToken?.address?.[bondData?.chainId]}\n />,\n )\n\n const [openNewRateModal] = useModal(\n <NewRateModal\n bond={bondData}\n zapTrueBondPrice={zapTrueBondPrice}\n depositAmount={depositAmount}\n youSpendString={youSpendString}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />,\n true,\n false,\n 'newRateModal',\n )\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loadingTx}\n txCallback={handleBothPurchases}\n bondData={bondData!}\n inputToken={inputToken}\n inputValue={inputValue}\n depositAmount={depositAmount}\n buyTxHash={buyTxHash}\n rateChanged={rateChanged}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n // const [onOpenZapModal] = useModal(\n // <ZapModal outputToken={bondData?.lpToken as Token} account={account} chainId={bondData?.chainId as ChainId} />,\n // true,\n // true,\n // 'zapModal',\n // )\n\n const [openNoBonusModal] = useModal(\n <NoBonusModal onAcknowledge={openTxModal} showcaseTokenName={bondData?.showcaseTokenName} />,\n true,\n true,\n 'NoBonusModal',\n )\n\n // Effects\n const [hasChecked, setHasChecked] = useState(false)\n useEffect(() => {\n if (zapListFetched && !hasChecked) {\n if (parseFloat(inputCurrencyBalance ?? '0') < 0.0001) {\n setInputTokenString(\n sortedZapList[0].token === 'NATIVE' ? 'NATIVE' : sortedZapList[0].token.address[bondChain as ChainId],\n )\n }\n setHasChecked(true)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [inputCurrencyBalance, zapListFetched])\n\n // If rateChanged meaning the zap quote has a >1% difference from the true bond price, we let the user know and we update state\n useEffect(() => {\n if (rateChanged) {\n console.log('rate changed, refetch state and let user know')\n openNewRateModal()\n refetchBondState()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [rateChanged])\n\n return bondData ? (\n <Flex className=\"modal-content\" sx={{ ...MCBuyComponentStyles[bondData?.marketingCampaign as MarketingCampaign] }}>\n <Flex className=\"modaltable-container\">\n <BondModalHeader\n bondData={bondData}\n onDismiss={onDismiss}\n showProjectInfoButton={SDKConfig?.referenceId === 'apebond'}\n />\n <ProjectDescription description={bondData.shortDescription} isProjectView />\n <Flex sx={{ width: '100%', display: isProjectView ? ['flex', 'flex', 'flex', 'none'] : 'flex' }}>\n <BondCards bondData={bondData} isDoingMaxBuy={exceedsSafeMaxBuy && !exceedsRealMaxBuy} />\n </Flex>\n <Estimations\n depositAmount={depositAmount}\n inputValue={inputValue}\n inputTokenPrice={inputTokenPrice}\n bondData={bondData}\n youSpendString={youSpendString}\n isZap={isZapSupported}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={inputToken}\n handleValueBtn={handleMaxButton}\n handleCurrencySelect={handleCurrencySelect}\n bondChainId={bondData?.chainId}\n enableZap={isZapSupported}\n bondPrincipalToken={bondData?.lpToken}\n tokenBalance={inputCurrencyBalance}\n selectedTokenPrice={inputTokenPrice}\n inputDisabled={isUserRestricted}\n marketingCampaign={bondData?.marketingCampaign}\n isConnected={!!account}\n />\n {SDKConfig.useTiers && (\n <>\n {(bondData?.trueBondPrices?.length ?? 0) > 1 &&\n bondData.earnToken.symbol.toLowerCase() !== 'ireet' &&\n tierOptimizerUIEnabled ? (\n <PointsLeftForNextTier\n bond={bondData}\n inputAmount={inputValue}\n setInputValue={setInputValue}\n inputTokenPrice={inputTokenPrice}\n inputTokenDecimals={inputToken === 'NATIVE' ? 18 : (inputToken?.decimals?.[bondData?.chainId] ?? 18)}\n />\n ) : (\n <GetUpToComponent bond={bondData} depositAmount={depositAmount} />\n )}\n </>\n )}\n {bondData.earnToken.symbol.toLowerCase() === 'ireet' && (\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n mt: '10px',\n borderRadius: 'normal',\n p: '2px 10px',\n minHeight: '28px',\n alignItems: 'center',\n }}\n >\n <span sx={{ flex: 1, fontSize: '12px', fontWeight: 400 }}>\n Extra rewards to be distributed in pmUSD by RAAC at bond maturity.{' '}\n <span\n sx={{\n display: ['inline-flex', 'inline-flex', 'inline-flex', 'none'],\n alignItems: 'center',\n verticalAlign: 'middle',\n }}\n >\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>{`If the bond gets filled before April 21st, all buyers get a 2% $pmUSD bonus (5% total bonus). Under the same condition, RAAC Bot NFT holders get an extra 2% on top (7% total bonus).`}</Flex>\n }\n width={'200px'}\n placement=\"topRight\"\n transformTip=\"translate(12%, -8%)\"\n >\n <Flex sx={{ opacity: 0.6 }}>\n <QuestionCircle width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </span>\n <span\n sx={{\n display: ['none', 'none', 'none', 'inline-flex'],\n alignItems: 'center',\n verticalAlign: 'middle',\n }}\n >\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>{`If the bond gets filled before April 21st, all buyers get a 2% $pmUSD bonus (5% total bonus). Under the same condition, RAAC Bot NFT holders get an extra 2% on top (7% total bonus).`}</Flex>\n }\n width={'280px'}\n placement=\"topRight\"\n transformTip=\"translate(10%, -11%)\"\n >\n <Flex sx={{ opacity: 0.6 }}>\n <QuestionCircle width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </span>\n </span>\n </Flex>\n )}\n {bondData?.warningCard && (\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n mt: '10px',\n borderRadius: 'normal',\n p: '2px 10px',\n }}\n >\n <Text sx={{ fontSize: '12px', fontWeight: 400, display: 'flex', alignItems: 'center', gap: '10px' }}>\n <SafeHTMLComponent html={bondData?.warningCard} />\n </Text>\n </Flex>\n )}\n <Flex className=\"modaltable-container button-container\">\n <Flex className=\"button-container buy\">\n {!account ? (\n <ConnectButton />\n ) : (\n <Flex sx={{ width: '100%', gap: '10px', flexDirection: ['column', 'column', 'column', 'row'] }}>\n <Button\n variant=\"secondary\"\n onClick={() => (LifiSupported.includes(bondChain!) ? onOpenLifiModal() : openExternal())}\n sx={{ width: ['100%', '100%', '100%', '35%'], fontSize: ['14px', '14px', '14px', '16px'] }}\n >\n {LifiSupported.includes(bondChain!)\n ? `Bridge to ${SHORT_NETWORK_LABEL[bondData?.chainId as ChainId]}`\n : `Get ${getSymbol(bondData?.lpToken, bondData?.chainId)}`}\n </Button>\n {isUserRestricted ? (\n <Button className=\"action-button\" disabled>\n INSUFFICIENT TIER\n </Button>\n ) : (\n <Button\n className=\"action-button\"\n load={load || fetchingZapQuote}\n disabled={\n load ||\n bondData?.soldOut ||\n !account ||\n !inputValue ||\n parseFloat(inputValue) === 0 ||\n fetchingZapQuote ||\n zapError ||\n exceedsRealMaxBuy ||\n exceedsBalance ||\n (isZapSupported && !zapData) ||\n SDKConfig.blockSales\n }\n onClick={handleOpenModal}\n sx={{ fontSize: ['14px', '14px', '14px', '16px'] }}\n >\n {SDKConfig.blockSales\n ? 'Complete KYC to Buy'\n : exceedsRealMaxBuy\n ? 'Exceeds Max Buy. Reduce amount'\n : exceedsBalance\n ? 'Exceeds balance'\n : zapError\n ? 'something went wrong'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : `buy`}\n </Button>\n )}{' '}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <></>\n )\n}\nexport default React.memo(BuyComponent)\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"BuyComponent.js","sources":["../../../src/views/BuyBond/BuyComponent.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { convertToBigish } from '../../utils/convertToBigish'\nimport { mulDivRound, toFixedString } from '../../utils/fixedPoint'\nimport ABI_DEPOSIT from '../../config/abi/deposit.json'\nimport ABI_DEPOSIT_SIG from '../../config/abi/depositSig.json'\nimport { PurchasedBondData } from './BuyBondModal'\nimport {\n useChainId,\n useSendTransaction,\n useWriteContract,\n // useConfig\n} from 'wagmi'\nimport useModal from '../../hooks/useModal'\n// import ZapModal from '../ZapModal'\nimport { BillVersion, ChainId, LaunchBondTiers, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport TokenSelectorPanel from '../../components/TokenSelectorPanel'\nimport { useApproval } from '../../state/allowance/useAllowance'\nimport { SoulZapTokenManager } from '../../config/constants/addresses'\nimport useSoulZapBondQuote from '../../state/zap/useSoulZapBondQuote'\nimport { parseEther } from 'viem'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport useTokenFromZapList from '../../hooks/useTokenFromZapList'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { usePopups } from '../../state/popups/usePopups'\nimport {\n formatUSDNumber,\n getMaxBuy,\n getPayoutAmount,\n getPrincipalAmount,\n getRawBonus,\n} from '../../utils/displayHelpers'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport {\n LifiSupported,\n tierOptimizerUIEnabled,\n zapSupported,\n ZapSupportedChainId,\n} from '../../config/constants/variables'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport { useSendReferenceId } from '../../hooks/useSendReferenceId'\nimport ConnectButton from '../../components/ConnectButton'\nimport BondModalHeader from './components/BondModalHeader'\nimport BondCards from './components/BondCards/BondCards'\nimport Estimations from './components/Estimations'\nimport ProjectDescription from './components/ProjectDescription'\nimport track from '../../utils/track'\nimport { remove0xPrefix } from '../../utils/remove0xPrefix'\nimport useTierPoints, { getUserTier, Promotions, TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport NewRateModal from './components/NewRateModal/NewRateModal'\nimport NoBonusModal from './components/NoBonusModal/NoBonusModal'\nimport useTierProofSignature from '../../state/bonds/useTierProofSignature'\nimport PointsLeftForNextTier from './components/PointsLeftForNextTier/PointsLeftForNextTier'\nimport SafeHTMLComponent from '../../components/SafeHTMLComponent'\nimport useSortedZapList from '../../hooks/useSortedZapList'\nimport TransactionModal from '../TransactionModal/TransactionModal'\nimport { reportError } from '../../utils/reportError'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport { MCBuyComponentStyles } from '../../utils/campaignStyles'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport LifiModal from '../LifiModal/LifiModal'\n// import useTierOptimizationPreview from '../../state/zap/useTierOptimizationPreview'\nimport { SHORT_NETWORK_LABEL } from '../../config/constants/chains'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Text from '../../components/uikit-sdk/Text'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport GetUpToComponent from './components/GetUpToComponent/GetUpToComponent'\nimport QuestionCircle from '../../components/uikit-sdk/Svg/Icons/QuestionCircle'\n// import { simulateContract } from 'wagmi/actions'\n\nexport interface BuyComponentProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (data: PurchasedBondData) => void\n isProjectView?: boolean\n}\n\nconst PROMOTION_TRACKING_SUFFIXES: Partial<Record<Promotions, string>> = {\n [Promotions.WelcomeBonus]: 'welcome-bonus',\n [Promotions.BonusWeek]: 'bonus-week',\n}\n\nconst getPromotionTrackingSuffix = (promotion?: Promotions | null): string => {\n if (!promotion) return ''\n return PROMOTION_TRACKING_SUFFIXES[promotion] ?? ''\n}\n\nconst BuyComponent: React.FC<BuyComponentProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n handlePurchasedBond,\n isProjectView,\n}) => {\n // Hooks\n // const config = useConfig()\n const SDKConfig = useSDKConfig()\n const userChainId = useChainId()\n const { address: account } = useEVMAccount()\n const { writeContractAsync } = useWriteContract()\n const { sendTransactionAsync } = useSendTransaction()\n const { data: bonds, refetch: refetchBondState } = useBondsData()\n const sendReferenceId = useSendReferenceId()\n const { data: tierPointsState } = useTierPoints()\n const { promotionalPoints, promotion, eligibleChains, onChainPoints } = tierPointsState || {}\n // if promotion comes with eligibleChains undefined means it should be used for every chain\n const isBondEligibleForPromotion = eligibleChains === undefined || eligibleChains?.includes(bondChain as ChainId)\n const pointsToBeUsed = isBondEligibleForPromotion ? promotionalPoints : onChainPoints\n // Bond To be used\n const bondData = useMemo(() => {\n return bonds?.find((bond) => bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase())!\n }, [bonds, bondAddress])\n\n // Tier Gating\n const userTier = getUserTier(pointsToBeUsed ?? '0')\n const minTier = bondData?.minTier !== undefined ? bondData.minTier : null\n const isUserRestricted = minTier !== null && (userTier === null || userTier < minTier)\n const trueBondPriceData = findHighestTrueBondPrice(pointsToBeUsed, bondData?.trueBondPrices)\n const trueBondPrice = trueBondPriceData?.trueBondPrice\n const { data: tierProofSig } = useTierProofSignature(bondAddress, bondChain, isUserRestricted)\n\n // State\n const [buyTxHash, setBuyTxHash] = useState<string | undefined>()\n const [inputValue, setInputValue] = useState('')\n const [inputTokenString, setInputTokenString] = useState(bondData?.lpToken?.address?.[bondData.chainId])\n\n // On-chain Data\n const inputToken = useTokenFromZapList(inputTokenString, bondData?.chainId, bondData?.lpToken)\n const isZapSupported = zapSupported.includes(bondData?.chainId as ZapSupportedChainId)\n\n const [fetchingZapQuote, zapData, zapDepositAmount, zapError, zapTrueBondPrice] = useSoulZapBondQuote(\n inputValue,\n inputToken,\n bondData,\n account,\n tierProofSig ?? undefined,\n )\n\n const { sortedZapList, isFetched: zapListFetched } = useSortedZapList(bondChain, bondData?.lpToken)\n const enrichedTokenData = sortedZapList.find((item) =>\n item.token === 'NATIVE' || inputToken === 'NATIVE'\n ? item.token === inputToken\n : item?.token?.address?.[bondChain as ChainId]?.toLowerCase() ===\n inputToken?.address?.[bondChain as ChainId]?.toLowerCase(),\n )\n const inputCurrencyBalance = enrichedTokenData?.balance\n const inputTokenPrice = enrichedTokenData?.price\n const rateChanged = parseFloat(zapTrueBondPrice ?? '0') > parseFloat(trueBondPrice ?? '0') * 1.01 && isZapSupported\n const promotionTrackingSuffix = getPromotionTrackingSuffix(promotion)\n const getTrackingCategory = useCallback(\n (baseCategory: string) => (promotionTrackingSuffix ? `${baseCategory}-${promotionTrackingSuffix}` : baseCategory),\n [promotionTrackingSuffix],\n )\n\n // Estimations\n const depositAmount = isZapSupported ? zapDepositAmount : inputValue\n const youSpendString = `${formatNumberSI(inputValue)} ${getSymbol(inputToken, bondData?.chainId)} = \n $${formatUSDNumber((parseFloat(inputValue) * (inputTokenPrice ?? 0)).toString())}`\n\n // Validations\n const exceedsRealMaxBuy = getMaxBuy(bondData, true) <= getPayoutAmount(bondData, depositAmount, pointsToBeUsed)\n const exceedsSafeMaxBuy =\n getMaxBuy(bondData, false) * (isZapSupported ? 0.995 : 0.9995) <=\n getPayoutAmount(bondData, depositAmount, pointsToBeUsed)\n const exceedsBalance = Number(inputCurrencyBalance ?? '0') < Number(inputValue)\n const isPrincipalTokenLP = bondData?.lpToken?.symbol?.includes('-')\n\n // Loading State\n const [loadingTx, setLoadingTx] = useState(false)\n const { addToastError } = usePopups()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(buyTxHash, userChainId)\n const load = loadingTx || (isConfirming && !isConfirmed)\n\n // State Handlers\n const handleCurrencySelect = useCallback((newInputToken: string) => {\n setInputValue('')\n setInputTokenString(newInputToken)\n }, [])\n\n const handleMaxButton = useCallback(() => {\n const balance = Number(inputCurrencyBalance ?? '0')\n const maxBuyAmount = getMaxBuy(bondData, SDKConfig.showLowValueBonds)\n\n if (!isZapSupported) {\n const maxPossibleUserPurchase = getPayoutAmount(bondData, balance.toString(), pointsToBeUsed)\n const principalDecimals = bondData?.lpToken?.decimals?.[bondData?.chainId] ?? 18\n if (maxPossibleUserPurchase > maxBuyAmount) {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed)\n setInputValue(toFixedString(principalForMaxBuy, principalDecimals))\n } else {\n setInputValue(toFixedString(balance, principalDecimals))\n }\n } else {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed)\n const principalForMaxBuyUSD = principalForMaxBuy * Number(bondData?.principalTokenPrice ?? 0)\n const maxBuyAmountInSelectedToken = principalForMaxBuyUSD / (inputTokenPrice ?? 0)\n const decimals =\n enrichedTokenData?.token === 'NATIVE' ? 18 : (enrichedTokenData?.token.decimals[bondData?.chainId] ?? 18)\n\n if (balance >= maxBuyAmountInSelectedToken) {\n setInputValue(toFixedString(maxBuyAmountInSelectedToken, decimals))\n } else {\n setInputValue(toFixedString(balance, decimals))\n }\n }\n }, [\n bondData,\n isZapSupported,\n pointsToBeUsed,\n SDKConfig.showLowValueBonds,\n inputTokenPrice,\n enrichedTokenData?.token,\n inputCurrencyBalance,\n ])\n\n // Approve & Purchase Functions\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n inputToken ?? null,\n (isZapSupported\n ? SoulZapTokenManager?.[bondData?.chainId as ZapSupportedChainId]\n : bondData?.contractAddress?.[bondData.chainId]) ?? null,\n account ?? null,\n bondData?.chainId ?? null,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: userChainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n },\n })\n })\n }\n\n const handleBuyCallback = async () => {\n const billAddress: `0x${string}` = bondData?.contractAddress?.[bondData.chainId] as `0x${string}`\n const decimals = bondData?.lpToken.decimals?.[bondData?.chainId] ?? 18\n track({\n event: 'buyBondClick',\n chain: bondChain,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n value: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n try {\n const maxPrice = mulDivRound(BigInt(trueBondPrice ?? '0'), 102n, 100n, 'halfUp').toString() // multiply it by 1.02\n const amount = convertToBigish(inputValue, decimals)\n\n const shouldUseSig = bondData?.billVersion === BillVersion.V4 && SDKConfig.useTiers\n const args = shouldUseSig ? [amount, maxPrice, account, tierProofSig] : [amount, maxPrice, account]\n\n // const simulationResult = await simulateContract(config, {\n // address: billAddress,\n // abi: ABI_DEPOSIT_SIG,\n // functionName: 'deposit',\n // args: args,\n // chainId: bondData?.chainId as any,\n // account,\n // })\n // .then((e) => console.log('success!', e))\n // .catch((e) => {\n // console.error(e)\n // })\n\n const hash = await writeContractAsync({\n address: billAddress,\n abi: shouldUseSig ? ABI_DEPOSIT_SIG : ABI_DEPOSIT,\n functionName: 'deposit',\n args: args,\n chain: bondData?.chainId as any,\n account,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(billAddress, userChainId, hash)\n\n // lostProfit\n const bonusString = getRawBonus(bondData, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const lostProfit = parseFloat(bonusString) - parseFloat(noTierAmount)\n\n handlePurchasedBond?.({\n buyTxHash: hash,\n lostProfit: SDKConfig.useTiers && !userTier && lostProfit > 0.01 ? lostProfit.toFixed(2) : undefined,\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: getTrackingCategory('lp-buy'),\n type: bondData?.billType ?? '',\n typedValue: inputValue,\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (error: any) {\n console.error('Buy error', error)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'buyBond', bondData, error },\n chainId: bondChain,\n account,\n })\n addToastError(error.shortMessage)\n }\n }\n\n const handleZapCallback = async () => {\n if (zapData && zapData?.txData?.to && zapData?.txData?.data) {\n console.log('Attempting zap tx')\n track({\n event: 'buyBondClick',\n chain: bondData?.chainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol ?? '',\n value: zapData.lpQuote.fromAmountUSD,\n },\n })\n try {\n console.log(zapData)\n const validated18DecimalAmount = toFixedString(inputValue ?? '0', 18, 'trunc')\n const parsedValue = parseEther(validated18DecimalAmount)\n\n const hash = await sendTransactionAsync({\n to: zapData.txData.to,\n data: zapData.txData.data,\n value: inputToken === 'NATIVE' ? parsedValue : undefined,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(bondData?.contractAddress?.[bondData.chainId] ?? '', userChainId, hash)\n\n // lostProfit\n const bonusString = getRawBonus(bondData, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const lostProfit = parseFloat(bonusString) - parseFloat(noTierAmount)\n\n handlePurchasedBond?.({\n buyTxHash: hash,\n lostProfit: SDKConfig.useTiers && !userTier && lostProfit > 0.01 ? lostProfit.toFixed(2) : undefined,\n })\n track({\n event: 'zap',\n chain: bondChain,\n data: {\n cat: 'bill',\n token1: getSymbol(inputToken),\n token2: `${bondData?.lpToken.symbol ?? ''}`,\n amount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: getTrackingCategory('zap-buy'),\n type: bondData?.billType ?? '',\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n amount: inputValue,\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (e: any) {\n console.log(e)\n addToastError(e.shortMessage)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e,\n extraInfo: { type: 'zapBuyBond', bondData, zapData, e },\n chainId: bondChain,\n account,\n })\n }\n }\n }\n\n const handleBothPurchases = () => {\n setLoadingTx(true)\n if (isZapSupported) {\n handleZapCallback().finally(() => setLoadingTx(false))\n } else {\n handleBuyCallback().finally(() => setLoadingTx(false))\n }\n }\n\n const handleOpenModal = () => {\n const bonus = trueBondPriceData?.bonusWithFee ?? 0\n if (bonus <= 0) {\n openNoBonusModal()\n } else {\n openTxModal()\n }\n }\n\n const openExternal = () => {\n if (bondData?.lpToken?.getLpUrl?.[bondData?.chainId]) {\n window.open(bondData.lpToken.getLpUrl?.[bondData?.chainId], '_blank')\n } else {\n window.open(\n `https://ape.bond/swap?outputcurrency=${bondData?.lpToken.address[bondData?.chainId]}&outputChain=${bondData?.chainId}`,\n '_blank',\n )\n }\n }\n\n // Modals\n const [onOpenLifiModal] = useModal(\n <LifiModal\n bondChain={bondChain}\n principalToken={isPrincipalTokenLP ? 'ETH' : bondData?.lpToken?.address?.[bondData?.chainId]}\n />,\n )\n\n const [openNewRateModal] = useModal(\n <NewRateModal\n bond={bondData}\n zapTrueBondPrice={zapTrueBondPrice}\n depositAmount={depositAmount}\n youSpendString={youSpendString}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />,\n true,\n false,\n 'newRateModal',\n )\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loadingTx}\n txCallback={handleBothPurchases}\n bondData={bondData!}\n inputToken={inputToken}\n inputValue={inputValue}\n depositAmount={depositAmount}\n buyTxHash={buyTxHash}\n rateChanged={rateChanged}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n // const [onOpenZapModal] = useModal(\n // <ZapModal outputToken={bondData?.lpToken as Token} account={account} chainId={bondData?.chainId as ChainId} />,\n // true,\n // true,\n // 'zapModal',\n // )\n\n const [openNoBonusModal] = useModal(\n <NoBonusModal onAcknowledge={openTxModal} showcaseTokenName={bondData?.showcaseTokenName} />,\n true,\n true,\n 'NoBonusModal',\n )\n\n // Effects\n const [hasChecked, setHasChecked] = useState(false)\n useEffect(() => {\n if (zapListFetched && !hasChecked) {\n if (parseFloat(inputCurrencyBalance ?? '0') < 0.0001) {\n setInputTokenString(\n sortedZapList[0].token === 'NATIVE' ? 'NATIVE' : sortedZapList[0].token.address[bondChain as ChainId],\n )\n }\n setHasChecked(true)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [inputCurrencyBalance, zapListFetched])\n\n // If rateChanged meaning the zap quote has a >1% difference from the true bond price, we let the user know and we update state\n useEffect(() => {\n if (rateChanged) {\n console.log('rate changed, refetch state and let user know')\n openNewRateModal()\n refetchBondState()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [rateChanged])\n\n return bondData ? (\n <Flex className=\"modal-content\" sx={{ ...MCBuyComponentStyles[bondData?.marketingCampaign as MarketingCampaign] }}>\n <Flex className=\"modaltable-container\">\n <BondModalHeader\n bondData={bondData}\n onDismiss={onDismiss}\n showProjectInfoButton={SDKConfig?.referenceId === 'apebond'}\n />\n <ProjectDescription description={bondData.shortDescription} isProjectView />\n <Flex sx={{ width: '100%', display: isProjectView ? ['flex', 'flex', 'flex', 'none'] : 'flex' }}>\n <BondCards bondData={bondData} isDoingMaxBuy={exceedsSafeMaxBuy && !exceedsRealMaxBuy} />\n </Flex>\n <Estimations\n depositAmount={depositAmount}\n inputValue={inputValue}\n inputTokenPrice={inputTokenPrice}\n bondData={bondData}\n youSpendString={youSpendString}\n isZap={isZapSupported}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={inputToken}\n handleValueBtn={handleMaxButton}\n handleCurrencySelect={handleCurrencySelect}\n bondChainId={bondData?.chainId}\n enableZap={isZapSupported}\n bondPrincipalToken={bondData?.lpToken}\n tokenBalance={inputCurrencyBalance}\n selectedTokenPrice={inputTokenPrice}\n inputDisabled={isUserRestricted}\n marketingCampaign={bondData?.marketingCampaign}\n isConnected={!!account}\n />\n {SDKConfig.useTiers && (\n <>\n {(bondData?.trueBondPrices?.length ?? 0) > 1 &&\n bondData.earnToken.symbol.toLowerCase() !== 'ireet' &&\n tierOptimizerUIEnabled ? (\n <PointsLeftForNextTier\n bond={bondData}\n inputAmount={inputValue}\n setInputValue={setInputValue}\n inputTokenPrice={inputTokenPrice}\n inputTokenDecimals={inputToken === 'NATIVE' ? 18 : (inputToken?.decimals?.[bondData?.chainId] ?? 18)}\n />\n ) : (\n <GetUpToComponent bond={bondData} depositAmount={depositAmount} />\n )}\n </>\n )}\n {bondData.earnToken.symbol.toLowerCase() === 'ireet' && (\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n mt: '10px',\n borderRadius: 'normal',\n p: '2px 10px',\n minHeight: '28px',\n alignItems: 'center',\n }}\n >\n <span sx={{ flex: 1, fontSize: '12px', fontWeight: 400 }}>\n Extra rewards to be distributed in pmUSD by RAAC at bond maturity.{' '}\n <span\n sx={{\n display: ['inline-flex', 'inline-flex', 'inline-flex', 'none'],\n alignItems: 'center',\n verticalAlign: 'middle',\n }}\n >\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>{`If the bond gets filled before April 21st, all buyers get a 2% $pmUSD bonus (5% total bonus). Under the same condition, RAAC Bot NFT holders get an extra 2% on top (7% total bonus).`}</Flex>\n }\n width={'200px'}\n placement=\"topRight\"\n transformTip=\"translate(12%, -8%)\"\n >\n <Flex sx={{ opacity: 0.6 }}>\n <QuestionCircle width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </span>\n <span\n sx={{\n display: ['none', 'none', 'none', 'inline-flex'],\n alignItems: 'center',\n verticalAlign: 'middle',\n }}\n >\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>{`If the bond gets filled before April 21st, all buyers get a 2% $pmUSD bonus (5% total bonus). Under the same condition, RAAC Bot NFT holders get an extra 2% on top (7% total bonus).`}</Flex>\n }\n width={'280px'}\n placement=\"topRight\"\n transformTip=\"translate(10%, -11%)\"\n >\n <Flex sx={{ opacity: 0.6 }}>\n <QuestionCircle width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </span>\n </span>\n </Flex>\n )}\n {bondData?.warningCard && (\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n mt: '10px',\n borderRadius: 'normal',\n p: '2px 10px',\n }}\n >\n <Text sx={{ fontSize: '12px', fontWeight: 400, display: 'flex', alignItems: 'center', gap: '10px' }}>\n <SafeHTMLComponent html={bondData?.warningCard} />\n </Text>\n </Flex>\n )}\n <Flex className=\"modaltable-container button-container\">\n <Flex className=\"button-container buy\">\n {!account ? (\n <ConnectButton />\n ) : (\n <Flex sx={{ width: '100%', gap: '10px', flexDirection: ['column', 'column', 'column', 'row'] }}>\n <Button\n variant=\"secondary\"\n onClick={() => (LifiSupported.includes(bondChain!) ? onOpenLifiModal() : openExternal())}\n sx={{ width: ['100%', '100%', '100%', '35%'], fontSize: ['14px', '14px', '14px', '16px'] }}\n >\n {LifiSupported.includes(bondChain!)\n ? `Bridge to ${SHORT_NETWORK_LABEL[bondData?.chainId as ChainId]}`\n : `Get ${getSymbol(bondData?.lpToken, bondData?.chainId)}`}\n </Button>\n {isUserRestricted ? (\n <Button className=\"action-button\" disabled>\n INSUFFICIENT TIER\n </Button>\n ) : (\n <Button\n className=\"action-button\"\n load={load || fetchingZapQuote}\n disabled={\n load ||\n bondData?.soldOut ||\n !account ||\n !inputValue ||\n parseFloat(inputValue) === 0 ||\n fetchingZapQuote ||\n zapError ||\n exceedsRealMaxBuy ||\n exceedsBalance ||\n (isZapSupported && !zapData) ||\n SDKConfig.blockSales\n }\n onClick={handleOpenModal}\n sx={{ fontSize: ['14px', '14px', '14px', '16px'] }}\n >\n {SDKConfig.blockSales\n ? 'Complete KYC to Buy'\n : exceedsRealMaxBuy\n ? 'Exceeds Max Buy. Reduce amount'\n : exceedsBalance\n ? 'Exceeds balance'\n : zapError\n ? 'something went wrong'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : `buy`}\n </Button>\n )}{' '}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <></>\n )\n}\nexport default React.memo(BuyComponent)\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export interface BuyComponentAptosProps {
2
+ interface BuyComponentAptosProps {
3
3
  onDismiss?: () => void;
4
4
  bondAddress?: string;
5
5
  bondChain?: number;