@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
@@ -1,5 +1,4 @@
1
1
  import { useMemo } from 'react';
2
- import BigNumber from 'bignumber.js';
3
2
  import { dexFactories, Wrappers, BillVersion, zapInputTokens, WNATIVE } from '@ape.swap/apeswap-lists';
4
3
  import { getChainParam, getLpType } from './getChainParam.js';
5
4
  import axios from 'axios';
@@ -8,9 +7,9 @@ import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
8
7
  import useCurrencyPrice from '../price/useCurrencyPrice.js';
9
8
  import { useSlippage } from '../slippage/useSlippage.js';
10
9
  import useDebounce from '../../hooks/useDebounce.js';
11
- import '../../config/constants/tokens.js';
12
10
  import { zapSupported, SOUL_ZAP_API } from '../../config/constants/variables.js';
13
11
  import { useSDKConfig } from '../useSDKConfig.js';
12
+ import { parseUnits, formatUnits } from '../../utils/fixedPoint.js';
14
13
 
15
14
  const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProofSig) => {
16
15
  const isZapSupported = zapSupported.includes(bond?.chainId);
@@ -32,11 +31,7 @@ const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProof
32
31
  const ichiUnderlyingDex = principalToken?.ichiUnderlyingDex;
33
32
  const vault = principalToken?.address?.[chainId];
34
33
  const router = dexFactories[chainId]?.[liquidityDex]?.router;
35
- // Validates that the user did not pass an amount with 19 decimals or more
36
- const validated18DecimalAmount = new BigNumber(debouncedInput ?? '0').toFixed(18, 5);
37
- const bigishInputAmount = new BigNumber(validated18DecimalAmount ?? '0')
38
- .times(new BigNumber(10).pow(inputCurrencyDecimals ?? 18))
39
- .toString();
34
+ const bigishInputAmount = parseUnits(debouncedInput ?? '0', inputCurrencyDecimals ?? 18).toString();
40
35
  const zapInputData = useMemo(() => {
41
36
  if (inputCurrencyString &&
42
37
  inputCurrencyDecimals &&
@@ -172,34 +167,30 @@ const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProof
172
167
  const toToken1Estimate = response?.lpQuote?.token1?.fromAmountEstimate;
173
168
  const toToken1 = zapInputTokens[chainId]?.find((token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase());
174
169
  const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId);
175
- let toToken0USD = new BigNumber(toToken0Estimate ?? '0')
176
- ?.div(new BigNumber(10).pow(toToken0?.decimals[chainId] ?? 18)) // this is amount of swap output
177
- ?.times(new BigNumber(toToken0Price?.price ?? 0)); // convert it to usd price
170
+ let toToken0USD = Number(formatUnits(toToken0Estimate ?? '0', toToken0?.decimals[chainId] ?? 18)) * (toToken0Price?.price ?? 0); // this is amount of swap output, converted to usd price
178
171
  if (response?.lpQuote?.token0?.fromAmountUSD) {
179
- toToken0USD = new BigNumber(response?.lpQuote?.token0?.fromAmountUSD);
172
+ toToken0USD = Number(response?.lpQuote?.token0?.fromAmountUSD);
180
173
  }
181
- let toToken1USD = new BigNumber(toToken1Estimate ?? '0')
182
- ?.div(new BigNumber(10).pow(toToken1?.decimals[chainId] ?? 18)) // this is amount of swap output
183
- ?.times(new BigNumber(toToken1Price?.price ?? 0)); // convert it to usd price
174
+ let toToken1USD = Number(formatUnits(toToken1Estimate ?? '0', toToken1?.decimals[chainId] ?? 18)) * (toToken1Price?.price ?? 0); // this is amount of swap output, converted to usd price
184
175
  if (response?.lpQuote?.token1?.fromAmountUSD) {
185
- toToken1USD = new BigNumber(response?.lpQuote?.token1?.fromAmountUSD);
176
+ toToken1USD = Number(response?.lpQuote?.token1?.fromAmountUSD);
186
177
  }
187
- const youSpendUSD = toToken0USD.plus(toToken1USD); // youSpendUSD
188
- const estimatedDepositAmount = youSpendUSD.div(bond?.principalTokenPrice ?? '0');
178
+ const youSpendUSD = toToken0USD + toToken1USD; // youSpendUSD
179
+ const estimatedDepositAmount = youSpendUSD / Number(bond?.principalTokenPrice ?? '0');
189
180
  const isWrap = inputCurrency === 'NATIVE' &&
190
181
  bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase();
191
182
  const isPrincipalToken = inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId];
192
183
  const estimatedDepositAmountToReturn = isWrap || isPrincipalToken
193
- ? new BigNumber(typedValue || '0').times((100 - bond?.tierBoostRate) / 100).toString()
184
+ ? (Number(typedValue || '0') * ((100 - bond?.tierBoostRate) / 100)).toString()
194
185
  : estimatedDepositAmount.toString();
195
186
  const trueBondPrice = response?.protocolQuote?.trueBondPrice;
196
187
  // DEBUG: log tierOptimization when present
197
188
  if (response?.protocolQuote?.tierOptimization) {
198
189
  const tier = response.protocolQuote.tierOptimization;
199
190
  const decimals = principalToken?.decimals?.[chainId] ?? 18;
200
- const cost = new BigNumber(tier.tierCost).div(new BigNumber(10).pow(decimals));
201
- const input = new BigNumber(tier.bondInput).div(new BigNumber(10).pow(decimals));
202
- const profit = new BigNumber(tier.profit).div(new BigNumber(10).pow(decimals));
191
+ const cost = Number(formatUnits(tier.tierCost, decimals));
192
+ const input = Number(formatUnits(tier.bondInput, decimals));
193
+ const profit = Number(formatUnits(tier.profit, decimals));
203
194
  console.log('[ZAP] tierOptimization:', {
204
195
  tier: `${tier.previousTier} → ${tier.newTier}`,
205
196
  cost: cost.toFixed(6),
@@ -1 +1 @@
1
- {"version":3,"file":"useSoulZapBondQuote.js","sources":["../../../src/state/zap/useSoulZapBondQuote.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport BigNumber from 'bignumber.js'\nimport { BillVersion, ChainId, dexFactories, LiquidityDex, Token, Wrappers } from '@ape.swap/apeswap-lists'\nimport { getChainParam, getLpType } from './getChainParam'\nimport axios from 'axios'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { BondsData } from '../../types/bonds'\nimport { useSlippage } from '../slippage/useSlippage'\nimport useDebounce from '../../hooks/useDebounce'\nimport { WNATIVE, zapInputTokens } from '../../config/constants/tokens'\nimport { SOUL_ZAP_API, zapSupported, ZapSupportedChainId } from '../../config/constants/variables'\nimport { useSDKConfig } from '../useSDKConfig'\n\nconst useSoulZapBondQuote = (\n typedValue: string,\n inputCurrency: 'NATIVE' | Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n tierProofSig?: string,\n): [loading: boolean, response: any, depositAmount: string, error: boolean, trueBondPrice: string | undefined] => {\n const isZapSupported = zapSupported.includes(bond?.chainId as ZapSupportedChainId)\n const debouncedInput = useDebounce(typedValue, 500)\n const isDebouncing = typedValue !== debouncedInput\n const { evmSlippage: slippage } = useSlippage()\n const SDKConfig = useSDKConfig()\n\n const principalToken = bond?.lpToken as Token\n const bondContractAddress = bond?.contractAddress[bond?.chainId as ChainId]\n const chainId = bond?.chainId as ChainId\n const inputCurrencyString =\n inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId]\n const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals![chainId]\n const principalContractAddress = principalToken?.address[chainId]\n const chainName = getChainParam(chainId)\n\n const isReserveBond = bond?.billType === 'reserve' || bond?.billType === 'staking'\n const liquidityDex: LiquidityDex | undefined =\n principalToken?.liquiditySource?.[chainId] ?? principalToken?.liquidityDex?.[chainId]\n const protocol = dexFactories[chainId]?.[liquidityDex!]?.protocol\n const lpType = isReserveBond ? 'single' : getLpType(protocol)\n const ichiUnderlyingDex = principalToken?.ichiUnderlyingDex\n const vault = principalToken?.address?.[chainId]\n const router = dexFactories[chainId]?.[liquidityDex!]?.router\n\n // Validates that the user did not pass an amount with 19 decimals or more\n const validated18DecimalAmount = new BigNumber(debouncedInput ?? '0').toFixed(18, 5)\n const bigishInputAmount = new BigNumber(validated18DecimalAmount ?? '0')\n .times(new BigNumber(10).pow(inputCurrencyDecimals ?? 18))\n .toString()\n\n const zapInputData = useMemo(() => {\n if (\n inputCurrencyString &&\n inputCurrencyDecimals &&\n bigishInputAmount !== 'NaN' &&\n bigishInputAmount !== '0' &&\n principalContractAddress &&\n chainName &&\n bondContractAddress &&\n isZapSupported\n ) {\n if (principalToken.liquidityWrapper && principalToken.liquidityWrapper === Wrappers.Steer) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType: 'steer',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n lpAddress: vault,\n periphery: '0xCEBF1A54A9Ce703FC80967760b5A6cbDb4111099',\n slippage,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n }\n // a.k.a if it is principal token\n if (inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType: 'none',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType:\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n ? 'none'\n : lpType,\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n underlyingDex: ichiUnderlyingDex,\n vault: isReserveBond ? undefined : vault,\n slippage: slippage,\n lpAddress: lpType === 'solidly' || lpType === 'univ2' || lpType === 'curve' ? vault : undefined,\n router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,\n toToken: isReserveBond ? vault : undefined,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else {\n return null\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [\n bigishInputAmount,\n principalContractAddress,\n chainName,\n account,\n ichiUnderlyingDex,\n vault,\n lpType,\n router,\n slippage,\n ])\n\n const queryKey = useMemo(() => {\n if (!zapInputData) return null\n return [\n 'zapBondDetails',\n zapInputData.chain,\n zapInputData.user,\n zapInputData.lpData.lpType,\n zapInputData.lpData.fromToken,\n zapInputData.lpData.fromAmount,\n zapInputData.lpData.underlyingDex ?? '',\n zapInputData.lpData.vault,\n zapInputData.lpData.slippage,\n zapInputData.lpData.lpAddress,\n zapInputData.lpData.router ?? '',\n ]\n }, [zapInputData])\n\n const fetchZapDetails = async () => {\n const response = await axios.post(SOUL_ZAP_API, zapInputData)\n return response.data?.result?.data\n }\n\n const {\n data: response,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],\n queryFn: fetchZapDetails,\n refetchInterval: 60000, // i.e. 60 sec\n staleTime: 60000,\n enabled: !!queryKey,\n retry: 1,\n })\n const zapError = !!error\n\n const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : []\n\n // toToken0 data\n const toToken0Estimate: string | undefined = response?.lpQuote?.token0?.fromAmountEstimate\n const toToken0 = [...tokenList, principalToken]?.find(\n (token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase(),\n )\n const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId)\n\n // toToken1 data\n const toToken1Estimate: string | undefined = response?.lpQuote?.token1?.fromAmountEstimate\n const toToken1 = zapInputTokens[chainId]?.find(\n (token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase(),\n )\n const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId)\n\n let toToken0USD = new BigNumber(toToken0Estimate ?? '0')\n ?.div(new BigNumber(10).pow(toToken0?.decimals![chainId] ?? 18)) // this is amount of swap output\n ?.times(new BigNumber(toToken0Price?.price ?? 0)) // convert it to usd price\n\n if (response?.lpQuote?.token0?.fromAmountUSD) {\n toToken0USD = new BigNumber(response?.lpQuote?.token0?.fromAmountUSD)\n }\n\n let toToken1USD = new BigNumber(toToken1Estimate ?? '0')\n ?.div(new BigNumber(10).pow(toToken1?.decimals![chainId] ?? 18)) // this is amount of swap output\n ?.times(new BigNumber(toToken1Price?.price ?? 0)) // convert it to usd price\n\n if (response?.lpQuote?.token1?.fromAmountUSD) {\n toToken1USD = new BigNumber(response?.lpQuote?.token1?.fromAmountUSD)\n }\n\n const youSpendUSD = toToken0USD.plus(toToken1USD) // youSpendUSD\n const estimatedDepositAmount = youSpendUSD.div(bond?.principalTokenPrice ?? '0')\n\n const isWrap =\n inputCurrency === 'NATIVE' &&\n bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase()\n\n const isPrincipalToken =\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n\n const estimatedDepositAmountToReturn =\n isWrap || isPrincipalToken\n ? new BigNumber(typedValue || '0').times((100 - bond?.tierBoostRate!) / 100).toString()\n : estimatedDepositAmount.toString()\n\n const trueBondPrice: string | undefined = response?.protocolQuote?.trueBondPrice\n\n // DEBUG: log tierOptimization when present\n if (response?.protocolQuote?.tierOptimization) {\n const tier = response.protocolQuote.tierOptimization\n const decimals = principalToken?.decimals?.[chainId] ?? 18\n const cost = new BigNumber(tier.tierCost).div(new BigNumber(10).pow(decimals))\n const input = new BigNumber(tier.bondInput).div(new BigNumber(10).pow(decimals))\n const profit = new BigNumber(tier.profit).div(new BigNumber(10).pow(decimals))\n console.log('[ZAP] tierOptimization:', {\n tier: `${tier.previousTier} → ${tier.newTier}`,\n cost: cost.toFixed(6),\n bondInput: input.toFixed(6),\n profit: profit.toFixed(6),\n })\n }\n\n const zapLoading = isDebouncing || isLoading || isFetching\n if (zapLoading) return [true, undefined, '', false, undefined]\n\n return [zapLoading, response, estimatedDepositAmountToReturn, zapError, trueBondPrice]\n}\n\nexport default useSoulZapBondQuote\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAeA,MAAM,mBAAmB,GAAG,CAC1B,UAAkB,EAClB,aAA2C,EAC3C,IAA2B,EAC3B,OAAgB,EAChB,YAAqB,KAC0F;IAC/G,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,OAA8B,CAAC;IAClF,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC;AACnD,IAAA,MAAM,YAAY,GAAG,UAAU,KAAK,cAAc;IAClD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE;AAC/C,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAEhC,IAAA,MAAM,cAAc,GAAG,IAAI,EAAE,OAAgB;IAC7C,MAAM,mBAAmB,GAAG,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAkB,CAAC;AAC3E,IAAA,MAAM,OAAO,GAAG,IAAI,EAAE,OAAkB;AACxC,IAAA,MAAM,mBAAmB,GACvB,aAAa,KAAK,QAAQ,GAAG,4CAA4C,GAAG,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC;AAC7G,IAAA,MAAM,qBAAqB,GAAG,aAAa,KAAK,QAAQ,GAAG,EAAE,GAAG,aAAa,EAAE,QAAS,CAAC,OAAO,CAAC;IACjG,MAAM,wBAAwB,GAAG,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC;AACjE,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC;AAExC,IAAA,MAAM,aAAa,GAAG,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS;AAClF,IAAA,MAAM,YAAY,GAChB,cAAc,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,cAAc,EAAE,YAAY,GAAG,OAAO,CAAC;AACvF,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,YAAa,CAAC,EAAE,QAAQ;AACjE,IAAA,MAAM,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC7D,IAAA,MAAM,iBAAiB,GAAG,cAAc,EAAE,iBAAiB;IAC3D,MAAM,KAAK,GAAG,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC;AAChD,IAAA,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,YAAa,CAAC,EAAE,MAAM;;AAG7D,IAAA,MAAM,wBAAwB,GAAG,IAAI,SAAS,CAAC,cAAc,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,MAAM,iBAAiB,GAAG,IAAI,SAAS,CAAC,wBAAwB,IAAI,GAAG;AACpE,SAAA,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;AACxD,SAAA,QAAQ,EAAE;AAEb,IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,MAAK;AAChC,QAAA,IACE,mBAAmB;YACnB,qBAAqB;AACrB,YAAA,iBAAiB,KAAK,KAAK;AAC3B,YAAA,iBAAiB,KAAK,GAAG;YACzB,wBAAwB;YACxB,SAAS;YACT,mBAAmB;AACnB,YAAA,cAAc,EACd;AACA,YAAA,IAAI,cAAc,CAAC,gBAAgB,IAAI,cAAc,CAAC,gBAAgB,KAAK,QAAQ,CAAC,KAAK,EAAE;gBACzF,OAAO;AACL,oBAAA,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,OAAO,IAAI,4CAA4C;oBAClE,IAAI,EAAE,OAAO,IAAI,4CAA4C;AAC7D,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EAAE,OAAO;AACf,wBAAA,SAAS,EAAE,mBAAmB;AAC9B,wBAAA,UAAU,EAAE,iBAAiB;AAC7B,wBAAA,SAAS,EAAE,KAAK;AAChB,wBAAA,SAAS,EAAE,4CAA4C;wBACvD,QAAQ;AACT,qBAAA;AACD,oBAAA,YAAY,EAAE;AACZ,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,IAAI,EAAE,mBAAmB;wBACzB,SAAS,EAAE,OAAO,IAAI,4CAA4C;AAClE,wBAAA,kBAAkB,EAAE,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,EAAE,IAAI,YAAY,GAAG,YAAY,GAAG,SAAS;wBAClG,mBAAmB,EAAE,SAAS,CAAC,QAAQ;wBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,qBAAA;iBACF;YACH;;AAEA,YAAA,IAAI,aAAa,KAAK,QAAQ,IAAI,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACrG,OAAO;AACL,oBAAA,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,OAAO,IAAI,4CAA4C;oBAClE,IAAI,EAAE,OAAO,IAAI,4CAA4C;AAC7D,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,SAAS,EAAE,mBAAmB;AAC9B,wBAAA,UAAU,EAAE,iBAAiB;AAC9B,qBAAA;AACD,oBAAA,YAAY,EAAE;AACZ,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,IAAI,EAAE,mBAAmB;wBACzB,SAAS,EAAE,OAAO,IAAI,4CAA4C;AAClE,wBAAA,kBAAkB,EAAE,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,EAAE,IAAI,YAAY,GAAG,YAAY,GAAG,SAAS;wBAClG,mBAAmB,EAAE,SAAS,CAAC,QAAQ;wBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,qBAAA;iBACF;YACH;;gBACE,OAAO;AACL,oBAAA,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,OAAO,IAAI,4CAA4C;oBAClE,IAAI,EAAE,OAAO,IAAI,4CAA4C;AAC7D,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EACJ,aAAa,KAAK,QAAQ,IAAI,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,OAAO;AAC9F,8BAAE;AACF,8BAAE,MAAM;AACZ,wBAAA,SAAS,EAAE,mBAAmB;AAC9B,wBAAA,UAAU,EAAE,iBAAiB;AAC7B,wBAAA,aAAa,EAAE,iBAAiB;wBAChC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,KAAK;AACxC,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,GAAG,KAAK,GAAG,SAAS;AAC/F,wBAAA,MAAM,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS;wBACvE,OAAO,EAAE,aAAa,GAAG,KAAK,GAAG,SAAS;AAC3C,qBAAA;AACD,oBAAA,YAAY,EAAE;AACZ,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,IAAI,EAAE,mBAAmB;wBACzB,SAAS,EAAE,OAAO,IAAI,4CAA4C;AAClE,wBAAA,kBAAkB,EAAE,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,EAAE,IAAI,YAAY,GAAG,YAAY,GAAG,SAAS;wBAClG,mBAAmB,EAAE,SAAS,CAAC,QAAQ;wBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,qBAAA;iBACF;QACL;aAAO;AACL,YAAA,OAAO,IAAI;QACb;;AAEF,IAAA,CAAC,EAAE;QACD,iBAAiB;QACjB,wBAAwB;QACxB,SAAS;QACT,OAAO;QACP,iBAAiB;QACjB,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAK;AAC5B,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,IAAI;QAC9B,OAAO;YACL,gBAAgB;AAChB,YAAA,YAAY,CAAC,KAAK;AAClB,YAAA,YAAY,CAAC,IAAI;YACjB,YAAY,CAAC,MAAM,CAAC,MAAM;YAC1B,YAAY,CAAC,MAAM,CAAC,SAAS;YAC7B,YAAY,CAAC,MAAM,CAAC,UAAU;AAC9B,YAAA,YAAY,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE;YACvC,YAAY,CAAC,MAAM,CAAC,KAAK;YACzB,YAAY,CAAC,MAAM,CAAC,QAAQ;YAC5B,YAAY,CAAC,MAAM,CAAC,SAAS;AAC7B,YAAA,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;SACjC;AACH,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAElB,IAAA,MAAM,eAAe,GAAG,YAAW;QACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;AAC7D,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI;AACpC,IAAA,CAAC;AAED,IAAA,MAAM,EACJ,IAAI,EAAE,QAAQ,EACd,SAAS,EACT,UAAU,EACV,KAAK,GACN,GAAG,QAAQ,CAAC;AACX,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CAAC;AAChD,QAAA,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE,KAAK;AACtB,QAAA,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,CAAC,CAAC,QAAQ;AACnB,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACF,IAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AAExB,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE;;IAGxE,MAAM,gBAAgB,GAAuB,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB;AAC1F,IAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CACnD,CAAC,KAAK,KAAK,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAC1G;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,IAAI,IAAI,EAAE,OAAO,CAAC;;IAGjE,MAAM,gBAAgB,GAAuB,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB;AAC1F,IAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,CAC5C,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CACvG;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,IAAI,IAAI,EAAE,OAAO,CAAC;IAEjE,IAAI,WAAW,GAAG,IAAI,SAAS,CAAC,gBAAgB,IAAI,GAAG;UACnD,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAChE,UAAE,KAAK,CAAC,IAAI,SAAS,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAA;IAEnD,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;AAC5C,QAAA,WAAW,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;IACvE;IAEA,IAAI,WAAW,GAAG,IAAI,SAAS,CAAC,gBAAgB,IAAI,GAAG;UACnD,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAChE,UAAE,KAAK,CAAC,IAAI,SAAS,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAA;IAEnD,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE;AAC5C,QAAA,WAAW,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;IACvE;IAEA,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACjD,IAAA,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,mBAAmB,IAAI,GAAG,CAAC;AAEhF,IAAA,MAAM,MAAM,GACV,aAAa,KAAK,QAAQ;QAC1B,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,WAAW,EAAE;AAE1G,IAAA,MAAM,gBAAgB,GACpB,aAAa,KAAK,QAAQ,IAAI,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AAEnG,IAAA,MAAM,8BAA8B,GAClC,MAAM,IAAI;UACN,IAAI,SAAS,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,aAAc,IAAI,GAAG,CAAC,CAAC,QAAQ;AACrF,UAAE,sBAAsB,CAAC,QAAQ,EAAE;AAEvC,IAAA,MAAM,aAAa,GAAuB,QAAQ,EAAE,aAAa,EAAE,aAAa;;AAGhF,IAAA,IAAI,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE;AAC7C,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB;QACpD,MAAM,QAAQ,GAAG,cAAc,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE;QAC1D,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9E,QAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE;YACrC,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAA,GAAA,EAAM,IAAI,CAAC,OAAO,CAAA,CAAE;AAC9C,YAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrB,YAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3B,YAAA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1B,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,UAAU,GAAG,YAAY,IAAI,SAAS,IAAI,UAAU;AAC1D,IAAA,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC;IAE9D,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,8BAA8B,EAAE,QAAQ,EAAE,aAAa,CAAC;AACxF;;;;"}
1
+ {"version":3,"file":"useSoulZapBondQuote.js","sources":["../../../src/state/zap/useSoulZapBondQuote.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { BillVersion, ChainId, dexFactories, LiquidityDex, Token, Wrappers } from '@ape.swap/apeswap-lists'\nimport { getChainParam, getLpType } from './getChainParam'\nimport axios from 'axios'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { BondsData } from '../../types/bonds'\nimport { useSlippage } from '../slippage/useSlippage'\nimport useDebounce from '../../hooks/useDebounce'\nimport { WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists'\nimport { SOUL_ZAP_API, zapSupported, ZapSupportedChainId } from '../../config/constants/variables'\nimport { useSDKConfig } from '../useSDKConfig'\nimport { formatUnits, parseUnits } from '../../utils/fixedPoint'\n\nconst useSoulZapBondQuote = (\n typedValue: string,\n inputCurrency: 'NATIVE' | Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n tierProofSig?: string,\n): [loading: boolean, response: any, depositAmount: string, error: boolean, trueBondPrice: string | undefined] => {\n const isZapSupported = zapSupported.includes(bond?.chainId as ZapSupportedChainId)\n const debouncedInput = useDebounce(typedValue, 500)\n const isDebouncing = typedValue !== debouncedInput\n const { evmSlippage: slippage } = useSlippage()\n const SDKConfig = useSDKConfig()\n\n const principalToken = bond?.lpToken as Token\n const bondContractAddress = bond?.contractAddress[bond?.chainId as ChainId]\n const chainId = bond?.chainId as ChainId\n const inputCurrencyString =\n inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId]\n const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals![chainId]\n const principalContractAddress = principalToken?.address[chainId]\n const chainName = getChainParam(chainId)\n\n const isReserveBond = bond?.billType === 'reserve' || bond?.billType === 'staking'\n const liquidityDex: LiquidityDex | undefined =\n principalToken?.liquiditySource?.[chainId] ?? principalToken?.liquidityDex?.[chainId]\n const protocol = dexFactories[chainId]?.[liquidityDex!]?.protocol\n const lpType = isReserveBond ? 'single' : getLpType(protocol)\n const ichiUnderlyingDex = principalToken?.ichiUnderlyingDex\n const vault = principalToken?.address?.[chainId]\n const router = dexFactories[chainId]?.[liquidityDex!]?.router\n\n const bigishInputAmount = parseUnits(debouncedInput ?? '0', inputCurrencyDecimals ?? 18).toString()\n\n const zapInputData = useMemo(() => {\n if (\n inputCurrencyString &&\n inputCurrencyDecimals &&\n bigishInputAmount !== 'NaN' &&\n bigishInputAmount !== '0' &&\n principalContractAddress &&\n chainName &&\n bondContractAddress &&\n isZapSupported\n ) {\n if (principalToken.liquidityWrapper && principalToken.liquidityWrapper === Wrappers.Steer) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType: 'steer',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n lpAddress: vault,\n periphery: '0xCEBF1A54A9Ce703FC80967760b5A6cbDb4111099',\n slippage,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n }\n // a.k.a if it is principal token\n if (inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType: 'none',\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType:\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n ? 'none'\n : lpType,\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n underlyingDex: ichiUnderlyingDex,\n vault: isReserveBond ? undefined : vault,\n slippage: slippage,\n lpAddress: lpType === 'solidly' || lpType === 'univ2' || lpType === 'curve' ? vault : undefined,\n router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,\n toToken: isReserveBond ? vault : undefined,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n enableTierOptimizer: SDKConfig.useTiers,\n tierBoostRate: bond.tierBoostRate,\n },\n }\n } else {\n return null\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [\n bigishInputAmount,\n principalContractAddress,\n chainName,\n account,\n ichiUnderlyingDex,\n vault,\n lpType,\n router,\n slippage,\n ])\n\n const queryKey = useMemo(() => {\n if (!zapInputData) return null\n return [\n 'zapBondDetails',\n zapInputData.chain,\n zapInputData.user,\n zapInputData.lpData.lpType,\n zapInputData.lpData.fromToken,\n zapInputData.lpData.fromAmount,\n zapInputData.lpData.underlyingDex ?? '',\n zapInputData.lpData.vault,\n zapInputData.lpData.slippage,\n zapInputData.lpData.lpAddress,\n zapInputData.lpData.router ?? '',\n ]\n }, [zapInputData])\n\n const fetchZapDetails = async () => {\n const response = await axios.post(SOUL_ZAP_API, zapInputData)\n return response.data?.result?.data\n }\n\n const {\n data: response,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],\n queryFn: fetchZapDetails,\n refetchInterval: 60000, // i.e. 60 sec\n staleTime: 60000,\n enabled: !!queryKey,\n retry: 1,\n })\n const zapError = !!error\n\n const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : []\n\n // toToken0 data\n const toToken0Estimate: string | undefined = response?.lpQuote?.token0?.fromAmountEstimate\n const toToken0 = [...tokenList, principalToken]?.find(\n (token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase(),\n )\n const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId)\n\n // toToken1 data\n const toToken1Estimate: string | undefined = response?.lpQuote?.token1?.fromAmountEstimate\n const toToken1 = zapInputTokens[chainId]?.find(\n (token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase(),\n )\n const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId)\n\n let toToken0USD = Number(formatUnits(toToken0Estimate ?? '0', toToken0?.decimals![chainId] ?? 18)) * (toToken0Price?.price ?? 0) // this is amount of swap output, converted to usd price\n\n if (response?.lpQuote?.token0?.fromAmountUSD) {\n toToken0USD = Number(response?.lpQuote?.token0?.fromAmountUSD)\n }\n\n let toToken1USD = Number(formatUnits(toToken1Estimate ?? '0', toToken1?.decimals![chainId] ?? 18)) * (toToken1Price?.price ?? 0) // this is amount of swap output, converted to usd price\n\n if (response?.lpQuote?.token1?.fromAmountUSD) {\n toToken1USD = Number(response?.lpQuote?.token1?.fromAmountUSD)\n }\n\n const youSpendUSD = toToken0USD + toToken1USD // youSpendUSD\n const estimatedDepositAmount = youSpendUSD / Number(bond?.principalTokenPrice ?? '0')\n\n const isWrap =\n inputCurrency === 'NATIVE' &&\n bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase()\n\n const isPrincipalToken =\n inputCurrency !== 'NATIVE' && inputCurrency?.address[chainId] === principalToken.address[chainId]\n\n const estimatedDepositAmountToReturn =\n isWrap || isPrincipalToken\n ? (Number(typedValue || '0') * ((100 - bond?.tierBoostRate!) / 100)).toString()\n : estimatedDepositAmount.toString()\n\n const trueBondPrice: string | undefined = response?.protocolQuote?.trueBondPrice\n\n // DEBUG: log tierOptimization when present\n if (response?.protocolQuote?.tierOptimization) {\n const tier = response.protocolQuote.tierOptimization\n const decimals = principalToken?.decimals?.[chainId] ?? 18\n const cost = Number(formatUnits(tier.tierCost, decimals))\n const input = Number(formatUnits(tier.bondInput, decimals))\n const profit = Number(formatUnits(tier.profit, decimals))\n console.log('[ZAP] tierOptimization:', {\n tier: `${tier.previousTier} → ${tier.newTier}`,\n cost: cost.toFixed(6),\n bondInput: input.toFixed(6),\n profit: profit.toFixed(6),\n })\n }\n\n const zapLoading = isDebouncing || isLoading || isFetching\n if (zapLoading) return [true, undefined, '', false, undefined]\n\n return [zapLoading, response, estimatedDepositAmountToReturn, zapError, trueBondPrice]\n}\n\nexport default useSoulZapBondQuote\n"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ interface AftermathCoinInfo {
6
6
  amount: string;
7
7
  tradeFee: string;
8
8
  }
9
- export interface AftermathTradeRoute {
9
+ interface AftermathTradeRoute {
10
10
  routes: Array<{
11
11
  paths: Array<Record<string, unknown>>;
12
12
  portion: string;
@@ -1,11 +1,11 @@
1
1
  import { useMemo } from 'react';
2
- import BigNumber from 'bignumber.js';
3
2
  import { ChainId } from '@ape.swap/apeswap-lists';
4
3
  import { useQuery } from '@tanstack/react-query';
5
4
  import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
6
5
  import useDebounce from '../../hooks/useDebounce.js';
7
6
  import axios from 'axios';
8
7
  import '../../constants/suiConstants.js';
8
+ import { parseUnits, formatUnits, toFixedString } from '../../utils/fixedPoint.js';
9
9
 
10
10
  // =============================================================================
11
11
  // useSuiZapQuote — Aftermath Finance DEX aggregator quote for Sui zap
@@ -32,10 +32,9 @@ const useSuiZapQuote = (typedValue, inputToken, bond, account, slippage = 0.5) =
32
32
  // Aftermath uses atomic units — convert from human-readable
33
33
  const inputDecimals = inputToken?.decimals?.[ChainId.SUI] ?? 9;
34
34
  const inputAmountAtomic = useMemo(() => {
35
- const val = new BigNumber(debouncedInput ?? '0');
36
- if (val.isNaN() || val.lte(0))
35
+ if (!debouncedInput || Number(debouncedInput) <= 0)
37
36
  return '0';
38
- return val.times(new BigNumber(10).pow(inputDecimals)).integerValue(BigNumber.ROUND_FLOOR).toFixed(0);
37
+ return parseUnits(debouncedInput, inputDecimals, 'floor').toString();
39
38
  }, [debouncedInput, inputDecimals]);
40
39
  const principalDecimals = bond?.lpToken?.decimals?.[ChainId.SUI] ?? 6;
41
40
  const queryParams = useMemo(() => {
@@ -76,17 +75,13 @@ const useSuiZapQuote = (typedValue, inputToken, bond, account, slippage = 0.5) =
76
75
  const activeQuote = quoteData ?? null;
77
76
  const zapError = !!error;
78
77
  // Convert amounts to human-readable
79
- const estimatedDepositAmount = activeQuote?.coinOut?.amount
80
- ? new BigNumber(parseAftermathAmount(activeQuote.coinOut.amount))
81
- .div(new BigNumber(10).pow(principalDecimals))
82
- .toFixed(principalDecimals)
83
- : '0';
78
+ const outputAmountDecimal = activeQuote?.coinOut?.amount
79
+ ? formatUnits(parseAftermathAmount(activeQuote.coinOut.amount), principalDecimals)
80
+ : undefined;
81
+ const estimatedDepositAmount = outputAmountDecimal ? toFixedString(outputAmountDecimal, principalDecimals) : '0';
84
82
  // Apply slippage for minimum deposit amount
85
- const minimumDepositAmount = activeQuote?.coinOut?.amount
86
- ? new BigNumber(parseAftermathAmount(activeQuote.coinOut.amount))
87
- .div(new BigNumber(10).pow(principalDecimals))
88
- .times(1 - slippage / 100)
89
- .toFixed(principalDecimals)
83
+ const minimumDepositAmount = outputAmountDecimal
84
+ ? toFixedString(Number(outputAmountDecimal) * (1 - slippage / 100), principalDecimals)
90
85
  : '0';
91
86
  const zapLoading = isLoading || isFetching ;
92
87
  return [zapLoading, activeQuote, estimatedDepositAmount, zapError, minimumDepositAmount];
@@ -1 +1 @@
1
- {"version":3,"file":"useSuiZapQuote.js","sources":["../../../src/state/zap/useSuiZapQuote.ts"],"sourcesContent":["// =============================================================================\n// useSuiZapQuote — Aftermath Finance DEX aggregator quote for Sui zap\n// =============================================================================\n//\n// Mainnet: fetches a swap quote from Aftermath Finance (Sui DEX aggregator)\n// when the user selects an input token different from the bond's principal token.\n//\n// Testnet: no DEX aggregator supports Sui testnet or our custom test tokens.\n// Returns a mock quote calculated from fallback prices so the full zap UI and\n// two-TX flow (mint → deposit) can be tested end-to-end.\n//\n// Aftermath API: POST https://aftermath.finance/api/router/trade-route\n\nimport { useMemo } from 'react'\nimport BigNumber from 'bignumber.js'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BondsData } from '../../types/bonds'\nimport useDebounce from '../../hooks/useDebounce'\nimport axios from 'axios'\nimport { IS_SUI_MAINNET } from '../../constants/suiConstants'\n\nconst AFTERMATH_API_URL = 'https://aftermath.finance/api/router/trade-route'\nconst AFTERMATH_TX_API_URL = 'https://aftermath.finance/api/router/transactions/trade'\n\ninterface AftermathCoinInfo {\n type: string\n amount: string // atomic units with BigInt \"n\" suffix, e.g. \"963906n\"\n tradeFee: string\n}\n\nexport interface AftermathTradeRoute {\n routes: Array<{\n paths: Array<Record<string, unknown>>\n portion: string\n coinIn: AftermathCoinInfo\n coinOut: AftermathCoinInfo\n spotPrice: number\n }>\n coinIn: AftermathCoinInfo\n coinOut: AftermathCoinInfo\n spotPrice: number\n netTradeFeePercentage: number\n}\n\n/** Parse Aftermath amount strings — they may have a trailing \"n\" (BigInt notation) */\nconst parseAftermathAmount = (amount: string): string => {\n return amount.replace(/n$/, '')\n}\n\nconst useSuiZapQuote = (\n typedValue: string,\n inputToken: Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n slippage = 0.5,\n): [\n loading: boolean,\n response: AftermathTradeRoute | null,\n depositAmount: string,\n error: boolean,\n minimumDepositAmount: string,\n] => {\n const debouncedInput = useDebounce(typedValue, 400)\n\n const principalTokenAddress = bond?.lpToken?.address?.[ChainId.SUI]\n const inputTokenAddress = inputToken?.address?.[ChainId.SUI]\n\n // Aftermath uses atomic units — convert from human-readable\n const inputDecimals = inputToken?.decimals?.[ChainId.SUI] ?? 9\n const inputAmountAtomic = useMemo(() => {\n const val = new BigNumber(debouncedInput ?? '0')\n if (val.isNaN() || val.lte(0)) return '0'\n return val.times(new BigNumber(10).pow(inputDecimals)).integerValue(BigNumber.ROUND_FLOOR).toFixed(0)\n }, [debouncedInput, inputDecimals])\n\n const principalDecimals = bond?.lpToken?.decimals?.[ChainId.SUI] ?? 6\n\n const queryParams = useMemo(() => {\n if (\n !inputTokenAddress ||\n !principalTokenAddress ||\n inputAmountAtomic === '0' ||\n !account ||\n inputTokenAddress.toLowerCase() === principalTokenAddress.toLowerCase()\n ) {\n return null\n }\n\n return {\n coinInType: inputTokenAddress,\n coinOutType: principalTokenAddress,\n coinInAmount: inputAmountAtomic,\n }\n }, [inputTokenAddress, principalTokenAddress, inputAmountAtomic, account])\n\n // -------------------------------------------------------------------------\n // Mainnet: fetch real quote from Aftermath\n // -------------------------------------------------------------------------\n const fetchAftermathQuote = async (): Promise<AftermathTradeRoute | null> => {\n if (!queryParams) return null\n\n const response = await axios.post<AftermathTradeRoute>(AFTERMATH_API_URL, queryParams)\n const data = response.data\n if (!data?.coinOut?.amount) return null\n return data\n }\n\n const {\n data: quoteData,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, 'aftermath-sui', queryParams],\n queryFn: fetchAftermathQuote,\n refetchInterval: 60000,\n enabled: IS_SUI_MAINNET && !!queryParams,\n retry: 1,\n staleTime: 30000,\n })\n\n // Use testnet mock on testnet, real quote on mainnet\n const activeQuote = quoteData ?? null\n const zapError = !!error\n\n // Convert amounts to human-readable\n const estimatedDepositAmount = activeQuote?.coinOut?.amount\n ? new BigNumber(parseAftermathAmount(activeQuote.coinOut.amount))\n .div(new BigNumber(10).pow(principalDecimals))\n .toFixed(principalDecimals)\n : '0'\n\n // Apply slippage for minimum deposit amount\n const minimumDepositAmount = activeQuote?.coinOut?.amount\n ? new BigNumber(parseAftermathAmount(activeQuote.coinOut.amount))\n .div(new BigNumber(10).pow(principalDecimals))\n .times(1 - slippage / 100)\n .toFixed(principalDecimals)\n : '0'\n\n const zapLoading = IS_SUI_MAINNET ? isLoading || isFetching : false\n\n return [zapLoading, activeQuote, estimatedDepositAmount, zapError, minimumDepositAmount]\n}\n\nexport { AFTERMATH_TX_API_URL }\n\nexport default useSuiZapQuote\n"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA,MAAM,iBAAiB,GAAG,kDAAkD;AAC5E,MAAM,oBAAoB,GAAG;AAsB7B;AACA,MAAM,oBAAoB,GAAG,CAAC,MAAc,KAAY;IACtD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,UAAkB,EAClB,UAA6B,EAC7B,IAA2B,EAC3B,OAAgB,EAChB,QAAQ,GAAG,GAAG,KAOZ;IACF,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC;AAEnD,IAAA,MAAM,qBAAqB,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IACnE,MAAM,iBAAiB,GAAG,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;;AAG5D,IAAA,MAAM,aAAa,GAAG,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9D,IAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAK;QACrC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,cAAc,IAAI,GAAG,CAAC;QAChD,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,GAAG;QACzC,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACvG,IAAA,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAEnC,IAAA,MAAM,iBAAiB,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAErE,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,MAAK;AAC/B,QAAA,IACE,CAAC,iBAAiB;AAClB,YAAA,CAAC,qBAAqB;AACtB,YAAA,iBAAiB,KAAK,GAAG;AACzB,YAAA,CAAC,OAAO;YACR,iBAAiB,CAAC,WAAW,EAAE,KAAK,qBAAqB,CAAC,WAAW,EAAE,EACvE;AACA,YAAA,OAAO,IAAI;QACb;QAEA,OAAO;AACL,YAAA,UAAU,EAAE,iBAAiB;AAC7B,YAAA,WAAW,EAAE,qBAAqB;AAClC,YAAA,YAAY,EAAE,iBAAiB;SAChC;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;;;;AAK1E,IAAA,MAAM,mBAAmB,GAAG,YAAgD;AAC1E,QAAA,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,IAAI;QAE7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAsB,iBAAiB,EAAE,WAAW,CAAC;AACtF,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;AAC1B,QAAA,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM;AAAE,YAAA,OAAO,IAAI;AACvC,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AAED,IAAA,MAAM,EACJ,IAAI,EAAE,SAAS,EACf,SAAS,EACT,UAAU,EACV,KAAK,GACN,GAAG,QAAQ,CAAC;QACX,QAAQ,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC;AACpE,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,OAAO,EAAoB,CAAC,CAAC,WAAW;AACxC,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA,CAAC;;AAGF,IAAA,MAAM,WAAW,GAAG,SAAS,IAAI,IAAI;AACrC,IAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;;AAGxB,IAAA,MAAM,sBAAsB,GAAG,WAAW,EAAE,OAAO,EAAE;AACnD,UAAE,IAAI,SAAS,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aAC3D,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;aAC5C,OAAO,CAAC,iBAAiB;UAC5B,GAAG;;AAGP,IAAA,MAAM,oBAAoB,GAAG,WAAW,EAAE,OAAO,EAAE;AACjD,UAAE,IAAI,SAAS,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aAC3D,GAAG,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC5C,aAAA,KAAK,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG;aACxB,OAAO,CAAC,iBAAiB;UAC5B,GAAG;AAEP,IAAA,MAAM,UAAU,GAAoB,SAAS,IAAI,UAAU,CAAQ;IAEnE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,QAAQ,EAAE,oBAAoB,CAAC;AAC1F;;;;"}
1
+ {"version":3,"file":"useSuiZapQuote.js","sources":["../../../src/state/zap/useSuiZapQuote.ts"],"sourcesContent":["// =============================================================================\n// useSuiZapQuote — Aftermath Finance DEX aggregator quote for Sui zap\n// =============================================================================\n//\n// Mainnet: fetches a swap quote from Aftermath Finance (Sui DEX aggregator)\n// when the user selects an input token different from the bond's principal token.\n//\n// Testnet: no DEX aggregator supports Sui testnet or our custom test tokens.\n// Returns a mock quote calculated from fallback prices so the full zap UI and\n// two-TX flow (mint → deposit) can be tested end-to-end.\n//\n// Aftermath API: POST https://aftermath.finance/api/router/trade-route\n\nimport { useMemo } from 'react'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BondsData } from '../../types/bonds'\nimport useDebounce from '../../hooks/useDebounce'\nimport axios from 'axios'\nimport { IS_SUI_MAINNET } from '../../constants/suiConstants'\nimport { formatUnits, parseUnits, toFixedString } from '../../utils/fixedPoint'\n\nconst AFTERMATH_API_URL = 'https://aftermath.finance/api/router/trade-route'\nconst AFTERMATH_TX_API_URL = 'https://aftermath.finance/api/router/transactions/trade'\n\ninterface AftermathCoinInfo {\n type: string\n amount: string // atomic units with BigInt \"n\" suffix, e.g. \"963906n\"\n tradeFee: string\n}\n\ninterface AftermathTradeRoute {\n routes: Array<{\n paths: Array<Record<string, unknown>>\n portion: string\n coinIn: AftermathCoinInfo\n coinOut: AftermathCoinInfo\n spotPrice: number\n }>\n coinIn: AftermathCoinInfo\n coinOut: AftermathCoinInfo\n spotPrice: number\n netTradeFeePercentage: number\n}\n\n/** Parse Aftermath amount strings — they may have a trailing \"n\" (BigInt notation) */\nconst parseAftermathAmount = (amount: string): string => {\n return amount.replace(/n$/, '')\n}\n\nconst useSuiZapQuote = (\n typedValue: string,\n inputToken: Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n slippage = 0.5,\n): [\n loading: boolean,\n response: AftermathTradeRoute | null,\n depositAmount: string,\n error: boolean,\n minimumDepositAmount: string,\n] => {\n const debouncedInput = useDebounce(typedValue, 400)\n\n const principalTokenAddress = bond?.lpToken?.address?.[ChainId.SUI]\n const inputTokenAddress = inputToken?.address?.[ChainId.SUI]\n\n // Aftermath uses atomic units — convert from human-readable\n const inputDecimals = inputToken?.decimals?.[ChainId.SUI] ?? 9\n const inputAmountAtomic = useMemo(() => {\n if (!debouncedInput || Number(debouncedInput) <= 0) return '0'\n return parseUnits(debouncedInput, inputDecimals, 'floor').toString()\n }, [debouncedInput, inputDecimals])\n\n const principalDecimals = bond?.lpToken?.decimals?.[ChainId.SUI] ?? 6\n\n const queryParams = useMemo(() => {\n if (\n !inputTokenAddress ||\n !principalTokenAddress ||\n inputAmountAtomic === '0' ||\n !account ||\n inputTokenAddress.toLowerCase() === principalTokenAddress.toLowerCase()\n ) {\n return null\n }\n\n return {\n coinInType: inputTokenAddress,\n coinOutType: principalTokenAddress,\n coinInAmount: inputAmountAtomic,\n }\n }, [inputTokenAddress, principalTokenAddress, inputAmountAtomic, account])\n\n // -------------------------------------------------------------------------\n // Mainnet: fetch real quote from Aftermath\n // -------------------------------------------------------------------------\n const fetchAftermathQuote = async (): Promise<AftermathTradeRoute | null> => {\n if (!queryParams) return null\n\n const response = await axios.post<AftermathTradeRoute>(AFTERMATH_API_URL, queryParams)\n const data = response.data\n if (!data?.coinOut?.amount) return null\n return data\n }\n\n const {\n data: quoteData,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, 'aftermath-sui', queryParams],\n queryFn: fetchAftermathQuote,\n refetchInterval: 60000,\n enabled: IS_SUI_MAINNET && !!queryParams,\n retry: 1,\n staleTime: 30000,\n })\n\n // Use testnet mock on testnet, real quote on mainnet\n const activeQuote = quoteData ?? null\n const zapError = !!error\n\n // Convert amounts to human-readable\n const outputAmountDecimal = activeQuote?.coinOut?.amount\n ? formatUnits(parseAftermathAmount(activeQuote.coinOut.amount), principalDecimals)\n : undefined\n\n const estimatedDepositAmount = outputAmountDecimal ? toFixedString(outputAmountDecimal, principalDecimals) : '0'\n\n // Apply slippage for minimum deposit amount\n const minimumDepositAmount = outputAmountDecimal\n ? toFixedString(Number(outputAmountDecimal) * (1 - slippage / 100), principalDecimals)\n : '0'\n\n const zapLoading = IS_SUI_MAINNET ? isLoading || isFetching : false\n\n return [zapLoading, activeQuote, estimatedDepositAmount, zapError, minimumDepositAmount]\n}\n\nexport { AFTERMATH_TX_API_URL }\n\nexport default useSuiZapQuote\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type MediaQueries = {
1
+ type MediaQueries = {
2
2
  xs: string;
3
3
  sm: string;
4
4
  md: string;
@@ -8,9 +8,6 @@ export type MediaQueries = {
8
8
  xxxl: string;
9
9
  nav: string;
10
10
  };
11
- export declare const breakpointMap: {
12
- [key: string]: number;
13
- };
14
11
  declare const baseTheme: {
15
12
  breakpoints: string[];
16
13
  space: number[];
@@ -121,5 +121,5 @@ const baseTheme = {
121
121
  },
122
122
  };
123
123
 
124
- export { breakpointMap, baseTheme as default };
124
+ export { baseTheme as default };
125
125
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sources":["../../src/theme/base.ts"],"sourcesContent":["export type MediaQueries = {\n xs: string\n sm: string\n md: string\n lg: string\n xl: string\n xxl: string\n xxxl: string\n nav: string\n}\n\nexport const breakpointMap: { [key: string]: number } = {\n xs: 370,\n sm: 576,\n md: 852,\n lg: 968,\n xl: 1080,\n xxl: 1200,\n xxxl: 1550,\n}\n\nconst mediaQueries: MediaQueries = {\n xs: `@media screen and (min-width: ${breakpointMap.xs}px)`,\n sm: `@media screen and (min-width: ${breakpointMap.sm}px)`,\n md: `@media screen and (min-width: ${breakpointMap.md}px)`,\n lg: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n xl: `@media screen and (min-width: ${breakpointMap.xl}px)`,\n xxl: `@media screen and (min-width: ${breakpointMap.xxl}px)`,\n xxxl: `@media screen and (min-width: ${breakpointMap.xxxl}px)`,\n nav: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n}\n\nconst baseTheme = {\n breakpoints: [\n `${breakpointMap.xs}px`,\n `${breakpointMap.sm}px`,\n `${breakpointMap.md}px`,\n `${breakpointMap.lg}px`,\n `${breakpointMap.xl}px`,\n `${breakpointMap.xxl}px`,\n `${breakpointMap.xxxl}px`,\n ],\n space: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n fontSizes: [12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n borderWidths: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n mediaQueries,\n fontWeights: {\n light: 400,\n normal: 600,\n bold: 700,\n },\n fonts: {\n body: 'Poppins, sans-serif',\n poppins: 'Poppins',\n },\n radii: {\n small: '6px',\n default: '16px',\n normal: '10px',\n card: '32px',\n circle: '50%',\n },\n zIndices: { dropdown: 10, modal: 102 },\n styles: {\n root: {\n fontFamily: 'body',\n webkitFontSmoothing: 'antialiasing',\n fontWeight: 600,\n color: 'text',\n bg: 'white1',\n textDecoration: 'none',\n },\n a: {\n color: 'text',\n textDecoration: 'none',\n ':hover': {\n color: 'secondary',\n textDecoration: 'underline',\n },\n },\n nav: {\n textDecoration: 'none',\n breakpoints: [`@media screen and (min-width: ${breakpointMap.lg}px)`],\n a: {\n textDecoration: 'none',\n },\n },\n progress: {\n primary: 'primary',\n color: 'green',\n background: '#DAA628',\n height: '20px',\n },\n hr: {\n background: 'dividerColor',\n height: '1px',\n border: 'none',\n },\n h1: {\n variant: 'text.heading',\n fontSize: '30px',\n lineHeight: '45px',\n },\n h2: {\n variant: 'text.heading',\n fontSize: '25px',\n lineHeight: '37px',\n },\n h3: {\n variant: 'text.heading',\n fontSize: '22px',\n lineHeight: '33px',\n },\n h4: {\n variant: 'text.heading',\n fontSize: '20px',\n lineHeight: '30px',\n },\n h5: {\n variant: 'text.heading',\n fontSize: '16px',\n lineHeight: '24px',\n },\n banner: {\n variant: 'text.heading',\n fontWeight: '800',\n fontSize: '60px',\n lineHeight: '66px',\n },\n input: {\n fontFamily: 'base',\n fontWeight: 'base',\n },\n },\n}\n\nexport default baseTheme\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sources":["../../src/theme/base.ts"],"sourcesContent":["type MediaQueries = {\n xs: string\n sm: string\n md: string\n lg: string\n xl: string\n xxl: string\n xxxl: string\n nav: string\n}\n\nconst breakpointMap: { [key: string]: number } = {\n xs: 370,\n sm: 576,\n md: 852,\n lg: 968,\n xl: 1080,\n xxl: 1200,\n xxxl: 1550,\n}\n\nconst mediaQueries: MediaQueries = {\n xs: `@media screen and (min-width: ${breakpointMap.xs}px)`,\n sm: `@media screen and (min-width: ${breakpointMap.sm}px)`,\n md: `@media screen and (min-width: ${breakpointMap.md}px)`,\n lg: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n xl: `@media screen and (min-width: ${breakpointMap.xl}px)`,\n xxl: `@media screen and (min-width: ${breakpointMap.xxl}px)`,\n xxxl: `@media screen and (min-width: ${breakpointMap.xxxl}px)`,\n nav: `@media screen and (min-width: ${breakpointMap.lg}px)`,\n}\n\nconst baseTheme = {\n breakpoints: [\n `${breakpointMap.xs}px`,\n `${breakpointMap.sm}px`,\n `${breakpointMap.md}px`,\n `${breakpointMap.lg}px`,\n `${breakpointMap.xl}px`,\n `${breakpointMap.xxl}px`,\n `${breakpointMap.xxxl}px`,\n ],\n space: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n fontSizes: [12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n borderWidths: [0, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 48, 64],\n mediaQueries,\n fontWeights: {\n light: 400,\n normal: 600,\n bold: 700,\n },\n fonts: {\n body: 'Poppins, sans-serif',\n poppins: 'Poppins',\n },\n radii: {\n small: '6px',\n default: '16px',\n normal: '10px',\n card: '32px',\n circle: '50%',\n },\n zIndices: { dropdown: 10, modal: 102 },\n styles: {\n root: {\n fontFamily: 'body',\n webkitFontSmoothing: 'antialiasing',\n fontWeight: 600,\n color: 'text',\n bg: 'white1',\n textDecoration: 'none',\n },\n a: {\n color: 'text',\n textDecoration: 'none',\n ':hover': {\n color: 'secondary',\n textDecoration: 'underline',\n },\n },\n nav: {\n textDecoration: 'none',\n breakpoints: [`@media screen and (min-width: ${breakpointMap.lg}px)`],\n a: {\n textDecoration: 'none',\n },\n },\n progress: {\n primary: 'primary',\n color: 'green',\n background: '#DAA628',\n height: '20px',\n },\n hr: {\n background: 'dividerColor',\n height: '1px',\n border: 'none',\n },\n h1: {\n variant: 'text.heading',\n fontSize: '30px',\n lineHeight: '45px',\n },\n h2: {\n variant: 'text.heading',\n fontSize: '25px',\n lineHeight: '37px',\n },\n h3: {\n variant: 'text.heading',\n fontSize: '22px',\n lineHeight: '33px',\n },\n h4: {\n variant: 'text.heading',\n fontSize: '20px',\n lineHeight: '30px',\n },\n h5: {\n variant: 'text.heading',\n fontSize: '16px',\n lineHeight: '24px',\n },\n banner: {\n variant: 'text.heading',\n fontWeight: '800',\n fontSize: '60px',\n lineHeight: '66px',\n },\n input: {\n fontFamily: 'base',\n fontWeight: 'base',\n },\n },\n}\n\nexport default baseTheme\n"],"names":[],"mappings":"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"}
@@ -1,23 +1,3 @@
1
- export declare const textUnderlineHover: {
2
- '::after': {
3
- content: string;
4
- position: string;
5
- background: string;
6
- left: string;
7
- bottom: string;
8
- height: string;
9
- width: string;
10
- borderRadius: string;
11
- transform: string;
12
- transformOrigin: string;
13
- transition: string;
14
- backfaceVisibility: string;
15
- };
16
- ':hover::after': {
17
- transform: string;
18
- transformOrigin: string;
19
- };
20
- };
21
1
  declare const components: {
22
2
  text: {
23
3
  heading: {
@@ -361,5 +361,5 @@ const components = {
361
361
  },
362
362
  };
363
363
 
364
- export { components as default, textUnderlineHover };
364
+ export { components as default };
365
365
  //# sourceMappingURL=components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../../src/theme/components.ts"],"sourcesContent":["export const textUnderlineHover = {\n '::after': {\n content: \"''\",\n position: 'absolute',\n background: 'text',\n left: '0px',\n bottom: '0px',\n height: '1.5px',\n width: '100%',\n borderRadius: 'normal',\n transform: 'scaleX(0)',\n transformOrigin: 'bottom right',\n transition: 'transform 0.25s ease-out',\n backfaceVisibility: 'hidden',\n },\n ':hover::after': {\n transform: 'scaleX(1)',\n transformOrigin: 'bottom left',\n },\n}\n\nconst buttonBaseStyles = {\n padding: '10px 20px 10px 19px',\n fontSize: '16px',\n fontFamily: 'body',\n cursor: 'pointer',\n fontWeight: 700,\n display: 'flex',\n alignItems: 'center',\n '&&': {\n borderRadius: 'normal',\n },\n}\n\nconst components = {\n text: {\n heading: {\n fontFamily: 'body',\n fontWeight: 'bold',\n },\n lg: { fontSize: 6, lineHeight: '33px' },\n md: { fontSize: 3, lineHeight: '24px' },\n sm: { fontSize: 1, lineHeight: '18px' },\n },\n input: {\n fontFamily: 'body',\n fontWeight: 700,\n sm: {\n background: 'white3',\n borderRadius: 'normal',\n height: '32px',\n width: '200px',\n },\n md: {\n background: 'white3',\n borderRadius: 'normal',\n height: '36px',\n width: '200px',\n },\n lg: {\n background: 'white3',\n borderRadius: 'normal',\n height: '48px',\n width: '200px',\n },\n },\n textarea: {\n padding: '10px 13px 10px 10px',\n borderRadius: 'normal',\n border: 'none',\n fontWeight: 'normal',\n background: 'lvl1',\n resize: 'none',\n color: 'textareaColor',\n '&:focus': {\n outline: 'none !important',\n },\n },\n checkbox: {\n background: 'white2',\n borderRadius: 'normal',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'white3',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + svg': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-primaryButton)',\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n '& + svg': {\n display: 'block',\n },\n },\n '&:focus:not(:checked)': {\n outline: 'none',\n boxShadow: 'none',\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n },\n radio: {\n background: 'lvl1',\n borderRadius: '50px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'lvl2',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + span': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n backgroundColor: 'radioChecked',\n borderRadius: '50px',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-yellow)',\n borderColor: 'var(--theme-ui-colors-yellow)',\n '& + span': {\n display: 'block',\n },\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-yellow), 0px 0px 0px 4px rgb(255, 179, 0, .2)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n label: {\n inline: {\n display: 'inline-flex',\n alignItems: 'center',\n columnGap: 2,\n },\n },\n borders: {\n primaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n primaryBtnDisable: '3px solid transparent',\n secondaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n secondaryButtonDisable: '3px solid #FDFBF5',\n mode: {\n dark: {\n secondaryButtonDisable: '3px solid #F9F4E7',\n },\n },\n },\n buttons: {\n primary: {\n ...buttonBaseStyles,\n background: 'primaryButton',\n border: 'primaryButton',\n color: 'primaryBright',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'textDisabledButton',\n border: 'primaryBtnDisable',\n opacity: 0.9,\n },\n '&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n background: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n secondary: {\n ...buttonBaseStyles,\n background: 'transparent',\n border: 'secondaryButton',\n color: 'var(--theme-ui-colors-primaryButton)',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n border: 'primaryBtnDisable',\n },\n '&&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n tertiary: {\n ...buttonBaseStyles,\n background: 'white3',\n border: 'none',\n color: 'text',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'white4',\n },\n '&:disabled': {},\n },\n },\n text: {\n ...buttonBaseStyles,\n background: 'transparent',\n color: 'text',\n\n '&:hover': {\n '&:not([disabled])': {\n color: 'var(--theme-ui-colors-yellow)',\n },\n '&:disabled': {},\n },\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n },\n success: {\n ...buttonBaseStyles,\n background: 'success',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredSuccess',\n },\n '&:disabled': {},\n },\n },\n danger: {\n ...buttonBaseStyles,\n background: 'error',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredDanger',\n },\n '&:disabled': {},\n },\n },\n circular: {\n width: '40px',\n height: '40px',\n background: 'white3',\n borderRadius: '50%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n cursor: 'pointer',\n padding: '1px',\n transition: 'all .3s linear',\n\n '&:hover': {\n filter: 'brightness(85%)',\n },\n\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n },\n cards: {\n primary: {\n background: 'navbar',\n borderRadius: 'normal',\n },\n },\n flex: {\n dexContainer: {\n width: '100%',\n maxWidth: '420px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n flexDirection: 'column',\n },\n v3SubDexContainer: {\n width: '100%',\n maxWidth: '600px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n margin: '0px 10px',\n flexDirection: 'column',\n },\n navContainer: {\n height: '35px',\n padding: '0px 15px',\n background: 'white3',\n borderRadius: 'normal',\n alignItems: 'center',\n cursor: 'pointer',\n transition: 'all .3s linear',\n '&:hover': {\n filter: 'brightness(95%)',\n },\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n link: {\n ...textUnderlineHover,\n cursor: 'pointer',\n textDecoration: 'none',\n display: 'inline-block',\n },\n tag: {\n padding: '5px',\n borderRadius: 'normal',\n alignItems: 'center',\n justifyContent: 'center',\n },\n },\n switch: {\n backgroundColor: 'white4',\n 'input:checked ~ &': {\n backgroundColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n}\n\nexport default components\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sources":["../../src/theme/components.ts"],"sourcesContent":["const textUnderlineHover = {\n '::after': {\n content: \"''\",\n position: 'absolute',\n background: 'text',\n left: '0px',\n bottom: '0px',\n height: '1.5px',\n width: '100%',\n borderRadius: 'normal',\n transform: 'scaleX(0)',\n transformOrigin: 'bottom right',\n transition: 'transform 0.25s ease-out',\n backfaceVisibility: 'hidden',\n },\n ':hover::after': {\n transform: 'scaleX(1)',\n transformOrigin: 'bottom left',\n },\n}\n\nconst buttonBaseStyles = {\n padding: '10px 20px 10px 19px',\n fontSize: '16px',\n fontFamily: 'body',\n cursor: 'pointer',\n fontWeight: 700,\n display: 'flex',\n alignItems: 'center',\n '&&': {\n borderRadius: 'normal',\n },\n}\n\nconst components = {\n text: {\n heading: {\n fontFamily: 'body',\n fontWeight: 'bold',\n },\n lg: { fontSize: 6, lineHeight: '33px' },\n md: { fontSize: 3, lineHeight: '24px' },\n sm: { fontSize: 1, lineHeight: '18px' },\n },\n input: {\n fontFamily: 'body',\n fontWeight: 700,\n sm: {\n background: 'white3',\n borderRadius: 'normal',\n height: '32px',\n width: '200px',\n },\n md: {\n background: 'white3',\n borderRadius: 'normal',\n height: '36px',\n width: '200px',\n },\n lg: {\n background: 'white3',\n borderRadius: 'normal',\n height: '48px',\n width: '200px',\n },\n },\n textarea: {\n padding: '10px 13px 10px 10px',\n borderRadius: 'normal',\n border: 'none',\n fontWeight: 'normal',\n background: 'lvl1',\n resize: 'none',\n color: 'textareaColor',\n '&:focus': {\n outline: 'none !important',\n },\n },\n checkbox: {\n background: 'white2',\n borderRadius: 'normal',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'white3',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + svg': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-primaryButton)',\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n '& + svg': {\n display: 'block',\n },\n },\n '&:focus:not(:checked)': {\n outline: 'none',\n boxShadow: 'none',\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-primaryButton)',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-primaryButton), 0px 0px 0px 4px var(--theme-ui-colors-white3)',\n },\n },\n radio: {\n background: 'lvl1',\n borderRadius: '50px',\n borderWidth: '2px',\n borderStyle: 'solid',\n borderColor: 'lvl2',\n boxShadow: 'none',\n outline: 'none',\n appearance: 'none',\n width: 'inherit',\n height: 'inherit',\n margin: '0px',\n cursor: 'pointer',\n '& + span': {\n display: 'none',\n position: 'absolute',\n pointerEvents: 'none',\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n margin: 'auto',\n backgroundColor: 'radioChecked',\n borderRadius: '50px',\n },\n '&:checked ': {\n background: 'var(--theme-ui-colors-yellow)',\n borderColor: 'var(--theme-ui-colors-yellow)',\n '& + span': {\n display: 'block',\n },\n },\n '&:focus': {\n outline: 'none',\n boxShadow: '0px 0px 0px 1px var(--theme-ui-colors-yellow), 0px 0px 0px 4px rgb(255, 179, 0, .2)',\n },\n '&:hover:not(:disabled):not(:checked)': {\n borderColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n label: {\n inline: {\n display: 'inline-flex',\n alignItems: 'center',\n columnGap: 2,\n },\n },\n borders: {\n primaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n primaryBtnDisable: '3px solid transparent',\n secondaryButton: '3px solid var(--theme-ui-colors-primaryButton)',\n secondaryButtonDisable: '3px solid #FDFBF5',\n mode: {\n dark: {\n secondaryButtonDisable: '3px solid #F9F4E7',\n },\n },\n },\n buttons: {\n primary: {\n ...buttonBaseStyles,\n background: 'primaryButton',\n border: 'primaryButton',\n color: 'primaryBright',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'textDisabledButton',\n border: 'primaryBtnDisable',\n opacity: 0.9,\n },\n '&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n background: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n secondary: {\n ...buttonBaseStyles,\n background: 'transparent',\n border: 'secondaryButton',\n color: 'var(--theme-ui-colors-primaryButton)',\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n border: 'primaryBtnDisable',\n },\n '&&:hover': {\n '&:not([disabled])': {\n borderColor: 'rgba(var(--theme-ui-colors-primaryButton), 0.7)',\n },\n '&:disabled': {},\n },\n },\n tertiary: {\n ...buttonBaseStyles,\n background: 'white3',\n border: 'none',\n color: 'text',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'white4',\n },\n '&:disabled': {},\n },\n },\n text: {\n ...buttonBaseStyles,\n background: 'transparent',\n color: 'text',\n\n '&:hover': {\n '&:not([disabled])': {\n color: 'var(--theme-ui-colors-yellow)',\n },\n '&:disabled': {},\n },\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n },\n success: {\n ...buttonBaseStyles,\n background: 'success',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredSuccess',\n },\n '&:disabled': {},\n },\n },\n danger: {\n ...buttonBaseStyles,\n background: 'error',\n color: 'primaryBright',\n\n '&:disabled': {\n cursor: 'not-allowed',\n background: 'white3',\n color: 'primaryButtonDisable',\n },\n\n '&:hover': {\n '&:not([disabled])': {\n background: 'hoveredDanger',\n },\n '&:disabled': {},\n },\n },\n circular: {\n width: '40px',\n height: '40px',\n background: 'white3',\n borderRadius: '50%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n cursor: 'pointer',\n padding: '1px',\n transition: 'all .3s linear',\n\n '&:hover': {\n filter: 'brightness(85%)',\n },\n\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n },\n cards: {\n primary: {\n background: 'navbar',\n borderRadius: 'normal',\n },\n },\n flex: {\n dexContainer: {\n width: '100%',\n maxWidth: '420px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n flexDirection: 'column',\n },\n v3SubDexContainer: {\n width: '100%',\n maxWidth: '600px',\n height: 'fit-content',\n background: 'white2',\n padding: ['15px 5px', '15px 10px', '15px'],\n borderRadius: 'normal',\n margin: '0px 10px',\n flexDirection: 'column',\n },\n navContainer: {\n height: '35px',\n padding: '0px 15px',\n background: 'white3',\n borderRadius: 'normal',\n alignItems: 'center',\n cursor: 'pointer',\n transition: 'all .3s linear',\n '&:hover': {\n filter: 'brightness(95%)',\n },\n '&:active': {\n transform: 'scale(0.9)',\n },\n },\n link: {\n ...textUnderlineHover,\n cursor: 'pointer',\n textDecoration: 'none',\n display: 'inline-block',\n },\n tag: {\n padding: '5px',\n borderRadius: 'normal',\n alignItems: 'center',\n justifyContent: 'center',\n },\n },\n switch: {\n backgroundColor: 'white4',\n 'input:checked ~ &': {\n backgroundColor: 'var(--theme-ui-colors-yellow)',\n },\n },\n}\n\nexport default components\n"],"names":[],"mappings":"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"}
@@ -3,88 +3,28 @@
3
3
  * `control_variable` is the BCV scaled by `bond::PERCENTAGE_BASE` (1e6).
4
4
  * `vesting_term` and timestamps are in seconds.
5
5
  */
6
- export interface AptosBondTerms {
7
- control_variable: string;
8
- vesting_term: string;
9
- minimum_price: string;
10
- max_payout: string;
11
- max_debt: string;
12
- max_total_payout: string;
13
- initial_debt: string;
14
- }
15
6
  /**
16
7
  * AptosBondMarket — subset of `apebond::bond::BondMarket` that we actually
17
8
  * read from the SDK. `extend_ref`, `operators`, `redeemer_approved` and the
18
9
  * full `bills` map are intentionally omitted to keep the TS shape lean.
19
10
  */
20
- export interface AptosBondMarket {
21
- payout_token: {
22
- inner: string;
23
- };
24
- principal_token: {
25
- inner: string;
26
- };
27
- treasury: {
28
- inner: string;
29
- };
30
- fee_in_principal_recipient: string;
31
- fee_in_payout_recipient: string;
32
- terms: AptosBondTerms;
33
- fee_in_principal: string;
34
- fee_in_payout: string;
35
- total_principal_billed: string;
36
- total_payout_given: string;
37
- payout_token_initial_supply: string;
38
- total_debt: string;
39
- last_decay: string;
40
- last_bcv_update_timestamp: string;
41
- min_bcv_update_interval: string;
42
- paused: boolean;
43
- emergency_paused: boolean;
44
- name: string;
45
- }
46
11
  /**
47
12
  * Derived pricing view — the values that the `bond_pricing` view function
48
13
  * returns in a single shot. Kept as a separate interface because some
49
14
  * consumers only care about pricing and we do not want to force them to read
50
15
  * the whole market resource.
51
16
  */
52
- export interface AptosBondPricing {
53
- bond_price: string;
54
- true_bond_price: string;
55
- debt_ratio: string;
56
- debt_decay: string;
57
- current_debt: string;
58
- }
59
17
  /**
60
18
  * Bill — mirror of `apebond::bond::Bill`. One per user position.
61
19
  */
62
- export interface AptosBill {
63
- payout: string;
64
- payout_claimed: string;
65
- vesting_term: string;
66
- vesting_start_timestamp: string;
67
- last_claim_timestamp: string;
68
- true_price_paid: string;
69
- }
70
20
  /**
71
21
  * Arguments forwarded to `apebond::bond::deposit`. Numeric values are always
72
22
  * stringified BigInts to keep compatibility with the Aptos TS SDK which
73
23
  * serialises BCS arguments from strings.
74
24
  */
75
- export interface AptosDepositPayload {
76
- market: string;
77
- amount: string;
78
- max_price: string;
79
- depositor: string;
80
- }
81
25
  /**
82
26
  * Arguments forwarded to `apebond::bond::claim(market, bill_id: u64)`.
83
27
  */
84
- export interface AptosClaimPayload {
85
- market: string;
86
- bill_id: string;
87
- }
88
28
  /**
89
29
  * Tuple shape returned by `apebond::bond::market_info(market)` — 27 elements.
90
30
  *
@@ -20,4 +20,3 @@ export interface BondIssuanceAccount {
20
20
  }
21
21
  export declare const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount>;
22
22
  export declare function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean;
23
- export declare function getBondStatusString(status: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"bondIssuanceCodec.js","sources":["../../src/types/bondIssuanceCodec.ts"],"sourcesContent":["import { Address, getAddressDecoder } from '@solana/addresses'\nimport {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU32Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_ISSUANCE_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondIssuance account interface based on IDL\nexport interface BondIssuanceAccount {\n anchorDiscriminator: ReadonlyUint8Array\n issuanceCounter: number\n bondCounter: number\n payoutMint: Address\n principalMint: Address\n principalMintDecimals: number\n payoutMintDecimals: number\n treasuryAta: Address\n status: number // 0 = Paused, 1 = Active, 2 = Closed\n feeInPrincipal: bigint\n feePrincipalRecipient: Address\n feeInPayout: bigint\n feePayoutRecipient: Address\n partnerPrincipalRecipient: Address\n collection: Address\n bump: number\n}\n\n// BondIssuance discriminator from IDL\n\n// Create the BondIssuance account decoder using Solana Kit's codec utilities\nexport const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['issuanceCounter', getU32Decoder()],\n ['bondCounter', getU32Decoder()],\n ['payoutMint', getAddressDecoder()],\n ['principalMint', getAddressDecoder()],\n ['principalMintDecimals', getU8Decoder()],\n ['payoutMintDecimals', getU8Decoder()],\n ['treasuryAta', getAddressDecoder()],\n ['status', getU8Decoder()],\n ['feeInPrincipal', getU64Decoder()],\n ['feePrincipalRecipient', getAddressDecoder()],\n ['feeInPayout', getU64Decoder()],\n ['feePayoutRecipient', getAddressDecoder()],\n ['partnerPrincipalRecipient', getAddressDecoder()],\n ['collection', getAddressDecoder()],\n ['bump', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_ISSUANCE_DISCRIMINATOR[index])\n}\n\n// Helper function to get status string\nexport function getBondStatusString(status: number): string {\n switch (status) {\n case 0:\n return 'Paused'\n case 1:\n return 'Active'\n case 2:\n return 'Closed'\n default:\n return 'Unknown'\n }\n}\n"],"names":[],"mappings":";;;;AAiCA;AAEA;AACO,MAAM,mBAAmB,GAA0C,gBAAgB,CAAC;IACzF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;AACtC,IAAA,CAAC,uBAAuB,EAAE,YAAY,EAAE,CAAC;AACzC,IAAA,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;AACtC,IAAA,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC;AACpC,IAAA,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;AAC1B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;AAC9C,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AAC3C,IAAA,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,CAAC;AAClD,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;AACzB,CAAA;AAED;AACM,SAAU,+BAA+B,CAAC,IAAwB,EAAA;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,2BAA2B,CAAC,KAAK,CAAC,CAAC;AACtG;;;;"}
1
+ {"version":3,"file":"bondIssuanceCodec.js","sources":["../../src/types/bondIssuanceCodec.ts"],"sourcesContent":["import { Address, getAddressDecoder } from '@solana/addresses'\nimport {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU32Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_ISSUANCE_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondIssuance account interface based on IDL\nexport interface BondIssuanceAccount {\n anchorDiscriminator: ReadonlyUint8Array\n issuanceCounter: number\n bondCounter: number\n payoutMint: Address\n principalMint: Address\n principalMintDecimals: number\n payoutMintDecimals: number\n treasuryAta: Address\n status: number // 0 = Paused, 1 = Active, 2 = Closed\n feeInPrincipal: bigint\n feePrincipalRecipient: Address\n feeInPayout: bigint\n feePayoutRecipient: Address\n partnerPrincipalRecipient: Address\n collection: Address\n bump: number\n}\n\n// BondIssuance discriminator from IDL\n\n// Create the BondIssuance account decoder using Solana Kit's codec utilities\nexport const bondIssuanceDecoder: FixedSizeDecoder<BondIssuanceAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['issuanceCounter', getU32Decoder()],\n ['bondCounter', getU32Decoder()],\n ['payoutMint', getAddressDecoder()],\n ['principalMint', getAddressDecoder()],\n ['principalMintDecimals', getU8Decoder()],\n ['payoutMintDecimals', getU8Decoder()],\n ['treasuryAta', getAddressDecoder()],\n ['status', getU8Decoder()],\n ['feeInPrincipal', getU64Decoder()],\n ['feePrincipalRecipient', getAddressDecoder()],\n ['feeInPayout', getU64Decoder()],\n ['feePayoutRecipient', getAddressDecoder()],\n ['partnerPrincipalRecipient', getAddressDecoder()],\n ['collection', getAddressDecoder()],\n ['bump', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondIssuanceDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_ISSUANCE_DISCRIMINATOR[index])\n}\n"],"names":[],"mappings":";;;;AAiCA;AAEA;AACO,MAAM,mBAAmB,GAA0C,gBAAgB,CAAC;IACzF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;AACtC,IAAA,CAAC,uBAAuB,EAAE,YAAY,EAAE,CAAC;AACzC,IAAA,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC;AACtC,IAAA,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC;AACpC,IAAA,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;AAC1B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;AAC9C,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AAC3C,IAAA,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,CAAC;AAClD,IAAA,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AACnC,IAAA,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;AACzB,CAAA;AAED;AACM,SAAU,+BAA+B,CAAC,IAAwB,EAAA;IACtE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,2BAA2B,CAAC,KAAK,CAAC,CAAC;AACtG;;;;"}
@@ -13,4 +13,3 @@ export interface BondTermAccount {
13
13
  }
14
14
  export declare const bondTermDecoder: FixedSizeDecoder<BondTermAccount>;
15
15
  export declare function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean;
16
- export declare function getVestingStrategyString(strategy: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"bondTermCodec.js","sources":["../../src/types/bondTermCodec.ts"],"sourcesContent":["import {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_TERM_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondTerm account interface based on IDL\nexport interface BondTermAccount {\n anchorDiscriminator: ReadonlyUint8Array\n controlVariable: bigint\n vestingEnd: bigint\n minimumDebt: bigint\n maxPayout: bigint\n maxDebt: bigint\n maxTotalPayout: bigint\n initialDebt: bigint\n payoutTokenInitialSupply: bigint\n vestingStrategy: number\n}\n\n// Create the BondTerm account decoder\nexport const bondTermDecoder: FixedSizeDecoder<BondTermAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['controlVariable', getU64Decoder()],\n ['vestingEnd', getU64Decoder()],\n ['minimumDebt', getU64Decoder()],\n ['maxPayout', getU64Decoder()],\n ['maxDebt', getU64Decoder()],\n ['maxTotalPayout', getU64Decoder()],\n ['initialDebt', getU64Decoder()],\n ['payoutTokenInitialSupply', getU64Decoder()],\n ['vestingStrategy', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_TERM_DISCRIMINATOR[index])\n}\n\n// Helper function to get vesting strategy string\nexport function getVestingStrategyString(strategy: number): string {\n // Add your vesting strategy mapping based on your program\n switch (strategy) {\n case 0:\n return 'Linear'\n case 1:\n return 'Cliff'\n default:\n return 'Unknown'\n }\n}\n"],"names":[],"mappings":";;;AAyBA;AACO,MAAM,eAAe,GAAsC,gBAAgB,CAAC;IACjF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;AAC/B,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;AAC9B,IAAA,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;AAC5B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,0BAA0B,EAAE,aAAa,EAAE,CAAC;AAC7C,IAAA,CAAC,iBAAiB,EAAE,YAAY,EAAE,CAAC;AACpC,CAAA;AAED;AACM,SAAU,2BAA2B,CAAC,IAAwB,EAAA;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAClG;;;;"}
1
+ {"version":3,"file":"bondTermCodec.js","sources":["../../src/types/bondTermCodec.ts"],"sourcesContent":["import {\n FixedSizeDecoder,\n fixDecoderSize,\n getBytesDecoder,\n getStructDecoder,\n getU8Decoder,\n getU64Decoder,\n ReadonlyUint8Array,\n} from '@solana/codecs'\nimport { BOND_TERM_DISCRIMINATOR } from '../constants/solanaConstants'\n\n// BondTerm account interface based on IDL\nexport interface BondTermAccount {\n anchorDiscriminator: ReadonlyUint8Array\n controlVariable: bigint\n vestingEnd: bigint\n minimumDebt: bigint\n maxPayout: bigint\n maxDebt: bigint\n maxTotalPayout: bigint\n initialDebt: bigint\n payoutTokenInitialSupply: bigint\n vestingStrategy: number\n}\n\n// Create the BondTerm account decoder\nexport const bondTermDecoder: FixedSizeDecoder<BondTermAccount> = getStructDecoder([\n ['anchorDiscriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['controlVariable', getU64Decoder()],\n ['vestingEnd', getU64Decoder()],\n ['minimumDebt', getU64Decoder()],\n ['maxPayout', getU64Decoder()],\n ['maxDebt', getU64Decoder()],\n ['maxTotalPayout', getU64Decoder()],\n ['initialDebt', getU64Decoder()],\n ['payoutTokenInitialSupply', getU64Decoder()],\n ['vestingStrategy', getU8Decoder()],\n])\n\n// Helper function to verify discriminator\nexport function verifyBondTermDiscriminator(data: ReadonlyUint8Array): boolean {\n const discriminator = data.slice(0, 8)\n return Array.from(discriminator).every((byte, index) => byte === BOND_TERM_DISCRIMINATOR[index])\n}\n"],"names":[],"mappings":";;;AAyBA;AACO,MAAM,eAAe,GAAsC,gBAAgB,CAAC;IACjF,CAAC,qBAAqB,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpC,IAAA,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC;AAC/B,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;AAC9B,IAAA,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;AAC5B,IAAA,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;AACnC,IAAA,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;AAChC,IAAA,CAAC,0BAA0B,EAAE,aAAa,EAAE,CAAC;AAC7C,IAAA,CAAC,iBAAiB,EAAE,YAAY,EAAE,CAAC;AACpC,CAAA;AAED;AACM,SAAU,2BAA2B,CAAC,IAAwB,EAAA;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAClG;;;;"}