@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,17 +1,18 @@
1
- import domtoimage from 'dom-to-image';
2
1
  import axios from 'axios';
2
+ import { APEBOND } from '../../../../config/constants/variables.js';
3
3
  import { getTemplateHTML } from './templateImageShare.js';
4
+ import { imageUrlToDataUri, renderHtmlToJpeg } from './htmlToJpeg.js';
4
5
 
6
+ function getTokenImageUrl(symbol) {
7
+ return `${APEBOND}/tokenImages/${symbol.toUpperCase()}.png`;
8
+ }
9
+ function getPrincipalTokenSymbol(bondNFTData) {
10
+ if (bondNFTData.data?.payoutTokenData.address.toLowerCase() !== bondNFTData.data?.token0.address.toLowerCase())
11
+ return bondNFTData.data?.token0.symbol;
12
+ return bondNFTData.data?.token1.symbol;
13
+ }
5
14
  async function generateImageFromTemplate(bondNFTData, link, apiUrl) {
6
15
  if (bondNFTData && bondNFTData.data) {
7
- const container = document.createElement('div');
8
- container.style.position = 'absolute';
9
- container.style.top = '-9999px';
10
- container.innerHTML = getTemplateHTML(bondNFTData);
11
- document.body.appendChild(container);
12
- const templateElement = container.querySelector('#template-card');
13
- if (!templateElement)
14
- return;
15
16
  const fileName = `bond_share_${bondNFTData?.data.billNftAddress?.toLowerCase()}_${bondNFTData?.chainId}_${bondNFTData?.tokenId}`;
16
17
  const existingImage = await checkImageExists(fileName);
17
18
  if (existingImage) {
@@ -19,7 +20,15 @@ async function generateImageFromTemplate(bondNFTData, link, apiUrl) {
19
20
  }
20
21
  else {
21
22
  try {
22
- const dataImage = await domtoimage.toJpeg(templateElement, { quality: 0.85 });
23
+ const [title, background, nft, payoutToken, principalToken] = await Promise.all([
24
+ imageUrlToDataUri('/images/bills/title.png'),
25
+ imageUrlToDataUri('/images/bills/bg.png'),
26
+ imageUrlToDataUri(bondNFTData.image),
27
+ imageUrlToDataUri(getTokenImageUrl(bondNFTData.data.payoutTokenData.symbol)),
28
+ imageUrlToDataUri(getTokenImageUrl(getPrincipalTokenSymbol(bondNFTData) ?? '')),
29
+ ]);
30
+ const html = getTemplateHTML(bondNFTData, { title, background, nft, payoutToken, principalToken });
31
+ const dataImage = await renderHtmlToJpeg(html, 768, 768, 0.85);
23
32
  const response = await fetch(dataImage);
24
33
  const blob = await response.blob();
25
34
  const formData = new FormData();
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/views/YourBondsModal/components/LinkShare/utils.ts"],"sourcesContent":["import domtoimage from 'dom-to-image'\nimport axios from 'axios'\nimport { UserBillNftData } from '../../../../types/yourbonds'\nimport { getTemplateHTML } from './templateImageShare'\n\nexport async function generateImageFromTemplate(\n bondNFTData: UserBillNftData | undefined,\n link: string,\n apiUrl: string,\n) {\n if (bondNFTData && bondNFTData.data) {\n const container = document.createElement('div')\n container.style.position = 'absolute'\n container.style.top = '-9999px'\n container.innerHTML = getTemplateHTML(bondNFTData)\n\n document.body.appendChild(container)\n\n const templateElement = container.querySelector('#template-card')\n\n if (!templateElement) return\n const fileName = `bond_share_${bondNFTData?.data.billNftAddress?.toLowerCase()}_${bondNFTData?.chainId}_${bondNFTData?.tokenId}`\n const existingImage = await checkImageExists(fileName)\n if (existingImage) {\n share(link)\n } else {\n try {\n const dataImage = await domtoimage.toJpeg(templateElement, { quality: 0.85 })\n const response = await fetch(dataImage)\n const blob = await response.blob()\n const formData = new FormData()\n formData.append('file', blob, fileName)\n await axios.post(`${apiUrl}/cloudinary/uploadFile`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n } catch (error) {\n console.error('Error upload file to cloudinary', error)\n }\n share(link)\n }\n }\n}\n\nfunction share(link: string) {\n const linkElement = document.createElement('a')\n linkElement.href = link\n linkElement.target = '_blank'\n linkElement.click()\n}\n\nasync function checkImageExists(fileName: string) {\n let existImg = true\n try {\n await axios.get(`https://res.cloudinary.com/dswmrqgwy/image/upload/v1/bond_share/${fileName}.jpg`)\n } catch {\n existImg = false\n }\n\n return existImg\n}\n"],"names":[],"mappings":";;;;AAKO,eAAe,yBAAyB,CAC7C,WAAwC,EACxC,IAAY,EACZ,MAAc,EAAA;AAEd,IAAA,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;QACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/C,QAAA,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACrC,QAAA,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS;AAC/B,QAAA,SAAS,CAAC,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC;AAElD,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QAEpC,MAAM,eAAe,GAAG,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC;AAEjE,QAAA,IAAI,CAAC,eAAe;YAAE;QACtB,MAAM,QAAQ,GAAG,CAAA,WAAA,EAAc,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAA,CAAA,EAAI,WAAW,EAAE,OAAO,CAAA,CAAA,EAAI,WAAW,EAAE,OAAO,EAAE;AAChI,QAAA,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC;QACtD,IAAI,aAAa,EAAE;YACjB,KAAK,CAAC,IAAI,CAAC;QACb;aAAO;AACL,YAAA,IAAI;AACF,gBAAA,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7E,gBAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;AACvC,gBAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAClC,gBAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;gBAC/B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;gBACvC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA,sBAAA,CAAwB,EAAE,QAAQ,EAAE;AAC5D,oBAAA,OAAO,EAAE,EAAE,cAAc,EAAE,qBAAqB,EAAE;AACnD,iBAAA,CAAC;YACJ;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;YACzD;YACA,KAAK,CAAC,IAAI,CAAC;QACb;IACF;AACF;AAEA,SAAS,KAAK,CAAC,IAAY,EAAA;IACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AAC/C,IAAA,WAAW,CAAC,IAAI,GAAG,IAAI;AACvB,IAAA,WAAW,CAAC,MAAM,GAAG,QAAQ;IAC7B,WAAW,CAAC,KAAK,EAAE;AACrB;AAEA,eAAe,gBAAgB,CAAC,QAAgB,EAAA;IAC9C,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAA,IAAI;QACF,MAAM,KAAK,CAAC,GAAG,CAAC,mEAAmE,QAAQ,CAAA,IAAA,CAAM,CAAC;IACpG;AAAE,IAAA,MAAM;QACN,QAAQ,GAAG,KAAK;IAClB;AAEA,IAAA,OAAO,QAAQ;AACjB;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/views/YourBondsModal/components/LinkShare/utils.ts"],"sourcesContent":["import axios from 'axios'\nimport { APEBOND } from '../../../../config/constants/variables'\nimport { UserBillNftData } from '../../../../types/yourbonds'\nimport { getTemplateHTML } from './templateImageShare'\nimport { imageUrlToDataUri, renderHtmlToJpeg } from './htmlToJpeg'\n\nfunction getTokenImageUrl(symbol: string) {\n return `${APEBOND}/tokenImages/${symbol.toUpperCase()}.png`\n}\n\nfunction getPrincipalTokenSymbol(bondNFTData: UserBillNftData) {\n if (bondNFTData.data?.payoutTokenData.address.toLowerCase() !== bondNFTData.data?.token0.address.toLowerCase())\n return bondNFTData.data?.token0.symbol\n return bondNFTData.data?.token1.symbol\n}\n\nexport async function generateImageFromTemplate(\n bondNFTData: UserBillNftData | undefined,\n link: string,\n apiUrl: string,\n) {\n if (bondNFTData && bondNFTData.data) {\n const fileName = `bond_share_${bondNFTData?.data.billNftAddress?.toLowerCase()}_${bondNFTData?.chainId}_${bondNFTData?.tokenId}`\n const existingImage = await checkImageExists(fileName)\n if (existingImage) {\n share(link)\n } else {\n try {\n const [title, background, nft, payoutToken, principalToken] = await Promise.all([\n imageUrlToDataUri('/images/bills/title.png'),\n imageUrlToDataUri('/images/bills/bg.png'),\n imageUrlToDataUri(bondNFTData.image),\n imageUrlToDataUri(getTokenImageUrl(bondNFTData.data.payoutTokenData.symbol)),\n imageUrlToDataUri(getTokenImageUrl(getPrincipalTokenSymbol(bondNFTData) ?? '')),\n ])\n\n const html = getTemplateHTML(bondNFTData, { title, background, nft, payoutToken, principalToken })\n const dataImage = await renderHtmlToJpeg(html, 768, 768, 0.85)\n const response = await fetch(dataImage)\n const blob = await response.blob()\n const formData = new FormData()\n formData.append('file', blob, fileName)\n await axios.post(`${apiUrl}/cloudinary/uploadFile`, formData, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n } catch (error) {\n console.error('Error upload file to cloudinary', error)\n }\n share(link)\n }\n }\n}\n\nfunction share(link: string) {\n const linkElement = document.createElement('a')\n linkElement.href = link\n linkElement.target = '_blank'\n linkElement.click()\n}\n\nasync function checkImageExists(fileName: string) {\n let existImg = true\n try {\n await axios.get(`https://res.cloudinary.com/dswmrqgwy/image/upload/v1/bond_share/${fileName}.jpg`)\n } catch {\n existImg = false\n }\n\n return existImg\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { jsxs, jsx } from 'theme-ui/jsx-runtime';
2
2
  import React, { useState } from 'react';
3
- import BigNumber from 'bignumber.js';
4
3
  import Flex from '../../../../components/uikit-sdk/Flex/index.js';
5
4
  import Modal from '../../../../components/uikit-sdk/Modal/index.js';
6
5
  import Text from '../../../../components/uikit-sdk/Text/index.js';
@@ -23,7 +22,7 @@ const TransferModal = ({ onDismiss, userBill }) => {
23
22
  const bond = userBill?.bond;
24
23
  const chainId = bond?.chainId;
25
24
  const pending = chainId &&
26
- getBalanceNumber(new BigNumber(userBill?.payout ?? 0), bond?.earnToken?.decimals?.[chainId] ?? 18)?.toFixed(4);
25
+ getBalanceNumber(userBill?.payout ?? 0, bond?.earnToken?.decimals?.[chainId] ?? 18)?.toFixed(4);
27
26
  return (jsxs(Modal, { onDismiss: onDismiss, title: "Transfer Bond", children: [jsx(Flex, { sx: { mt: '20px' }, children: jsx(Text, { sx: { fontWeight: 700 }, children: " Transferring: " }) }), jsxs(Flex, { sx: { flexDirection: 'column', alignItems: 'center', mt: '30px', mr: '10px' }, children: [jsxs(Text, { sx: { fontWeight: 700, fontSize: '25px' }, children: [bond?.earnToken?.symbol, " Bond - ID # ", userBill?.id] }), jsxs(Flex, { sx: { mt: '5px' }, children: [jsxs(Flex, { sx: { flexDirection: 'column', mr: '20px' }, children: [jsx(Text, { sx: { textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }, children: "Vesting time" }), getTimeLeftForFullyVested(userBill) > 0 ? `Ends in ${getPendingVestingString(userBill)}` : `Fully Vested`] }), jsxs(Flex, { sx: { flexDirection: 'column', ml: '20px' }, children: [jsx(Text, { sx: { textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }, children: "Pending" }), jsxs(Flex, { children: [jsx(TokenImage, { symbol: userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken?.symbol, size: 20, chain: userBill?.bond?.chainId }), jsx(Text, { sx: { fontWeight: 700, ml: '5px' }, children: pending })] })] })] })] }), jsxs(Flex, { sx: { flexDirection: 'column', mt: '30px' }, children: [jsx(Text, { sx: { fontWeight: 700 }, children: "Receiving Address:" }), jsx(Input, { mt: "10px", size: "lg", placeholder: 'Paste the address here', value: toAddress, onChange: (e) => setToAddress(e.target.value), style: { width: '345px', border: 'none' } })] }), jsx(Flex, { sx: { mt: '15px' }, children: jsxs(Text, { sx: { lineHeight: '18px', fontSize: '12px', color: 'rgba(223, 65, 65, 1)' }, children: [jsx(Text, { sx: { display: 'block', width: '100%', fontWeight: 700, fontSize: '13px', color: 'rgba(223, 65, 65, 1)' }, children: "WARNING" }), "When transfering the NFT all pending rewards will also be transfered to the receiver address."] }) }), jsxs(Flex, { onClick: () => setConfirmSend(!confirmSend), sx: { mt: '20px', cursor: 'pointer', alignItems: 'center' }, children: [jsx(Checkbox, { checked: confirmSend, onChange: (event) => {
28
27
  setConfirmSend(!confirmSend);
29
28
  event.stopPropagation();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/YourBondsModal/components/TransferBondModal/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport Checkbox from '../../../../components/uikit-sdk/Checkbox'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport Input from '../../../../components/uikit-sdk/Input/Input'\nimport TransferAction from './TransferAction'\nimport { getPendingVestingString, getTimeLeftForFullyVested } from '../../../../utils/displayHelpers'\nimport TransferActionSolana from './TransferActionSolana'\nimport TransferActionAptos from './TransferActionAptos'\nimport TransferActionSui from './TransferActionSui'\n\ninterface TransferBillModalProps {\n onDismiss?: () => void\n userBill?: UserBill\n}\n\nconst TransferModal: React.FC<TransferBillModalProps> = ({ onDismiss, userBill }) => {\n // State\n const [confirmSend, setConfirmSend] = useState(false)\n const [toAddress, setToAddress] = useState('')\n\n // Data\n const bond = userBill?.bond\n const chainId = bond?.chainId\n const pending =\n chainId &&\n getBalanceNumber(\n new BigNumber(userBill?.payout ?? 0),\n bond?.earnToken?.decimals?.[chainId as ChainId] ?? 18,\n )?.toFixed(4)\n\n return (\n <Modal onDismiss={onDismiss} title=\"Transfer Bond\">\n <Flex sx={{ mt: '20px' }}>\n <Text sx={{ fontWeight: 700 }}> Transferring: </Text>\n </Flex>\n <Flex sx={{ flexDirection: 'column', alignItems: 'center', mt: '30px', mr: '10px' }}>\n <Text sx={{ fontWeight: 700, fontSize: '25px' }}>\n {bond?.earnToken?.symbol} Bond - ID # {userBill?.id}\n </Text>\n <Flex sx={{ mt: '5px' }}>\n <Flex sx={{ flexDirection: 'column', mr: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Vesting time</Text>\n {getTimeLeftForFullyVested(userBill) > 0 ? `Ends in ${getPendingVestingString(userBill)}` : `Fully Vested`}\n </Flex>\n <Flex sx={{ flexDirection: 'column', ml: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Pending</Text>\n <Flex>\n <TokenImage\n symbol={userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken?.symbol}\n size={20}\n chain={userBill?.bond?.chainId}\n />\n <Text sx={{ fontWeight: 700, ml: '5px' }}>{pending}</Text>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', mt: '30px' }}>\n <Text sx={{ fontWeight: 700 }}>Receiving Address:</Text>\n <Input\n mt=\"10px\"\n size=\"lg\"\n placeholder={'Paste the address here'}\n value={toAddress}\n onChange={(e: any) => setToAddress(e.target.value)}\n style={{ width: '345px', border: 'none' }}\n />\n </Flex>\n <Flex sx={{ mt: '15px' }}>\n <Text sx={{ lineHeight: '18px', fontSize: '12px', color: 'rgba(223, 65, 65, 1)' }}>\n <Text\n sx={{ display: 'block', width: '100%', fontWeight: 700, fontSize: '13px', color: 'rgba(223, 65, 65, 1)' }}\n >\n WARNING\n </Text>\n When transfering the NFT all pending rewards will also be transfered to the receiver address.\n </Text>\n </Flex>\n <Flex onClick={() => setConfirmSend(!confirmSend)} sx={{ mt: '20px', cursor: 'pointer', alignItems: 'center' }}>\n <Checkbox\n checked={confirmSend}\n onChange={(event: React.MouseEvent) => {\n setConfirmSend(!confirmSend)\n event.stopPropagation()\n }}\n />\n <Text sx={{ ml: '10px', fontSize: '12px', fontWeight: 500, lineHeight: '18px' }}>\n I understand the new wallet gains ownership of all unclaimed assets.\n </Text>\n </Flex>\n <Flex sx={{ justifyContent: 'center', mt: '15px' }}>\n {chainId === ChainId.SOL ? (\n <TransferActionSolana userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n ) : chainId === ChainId.APTOS ? (\n <TransferActionAptos userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n ) : chainId === ChainId.SUI ? (\n <TransferActionSui\n userBill={userBill}\n toAddress={toAddress}\n disabled={!confirmSend || !toAddress}\n onDismiss={onDismiss}\n />\n ) : (\n <TransferAction userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n )}\n </Flex>\n </Modal>\n )\n}\n\nexport default React.memo(TransferModal)\n"],"names":["_jsxs","_jsx","TransferActionSolana","TransferAction"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/YourBondsModal/components/TransferBondModal/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport Checkbox from '../../../../components/uikit-sdk/Checkbox'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport Input from '../../../../components/uikit-sdk/Input/Input'\nimport TransferAction from './TransferAction'\nimport { getPendingVestingString, getTimeLeftForFullyVested } from '../../../../utils/displayHelpers'\nimport TransferActionSolana from './TransferActionSolana'\nimport TransferActionAptos from './TransferActionAptos'\nimport TransferActionSui from './TransferActionSui'\n\ninterface TransferBillModalProps {\n onDismiss?: () => void\n userBill?: UserBill\n}\n\nconst TransferModal: React.FC<TransferBillModalProps> = ({ onDismiss, userBill }) => {\n // State\n const [confirmSend, setConfirmSend] = useState(false)\n const [toAddress, setToAddress] = useState('')\n\n // Data\n const bond = userBill?.bond\n const chainId = bond?.chainId\n const pending =\n chainId &&\n getBalanceNumber(userBill?.payout ?? 0, bond?.earnToken?.decimals?.[chainId as ChainId] ?? 18)?.toFixed(4)\n\n return (\n <Modal onDismiss={onDismiss} title=\"Transfer Bond\">\n <Flex sx={{ mt: '20px' }}>\n <Text sx={{ fontWeight: 700 }}> Transferring: </Text>\n </Flex>\n <Flex sx={{ flexDirection: 'column', alignItems: 'center', mt: '30px', mr: '10px' }}>\n <Text sx={{ fontWeight: 700, fontSize: '25px' }}>\n {bond?.earnToken?.symbol} Bond - ID # {userBill?.id}\n </Text>\n <Flex sx={{ mt: '5px' }}>\n <Flex sx={{ flexDirection: 'column', mr: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Vesting time</Text>\n {getTimeLeftForFullyVested(userBill) > 0 ? `Ends in ${getPendingVestingString(userBill)}` : `Fully Vested`}\n </Flex>\n <Flex sx={{ flexDirection: 'column', ml: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Pending</Text>\n <Flex>\n <TokenImage\n symbol={userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken?.symbol}\n size={20}\n chain={userBill?.bond?.chainId}\n />\n <Text sx={{ fontWeight: 700, ml: '5px' }}>{pending}</Text>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', mt: '30px' }}>\n <Text sx={{ fontWeight: 700 }}>Receiving Address:</Text>\n <Input\n mt=\"10px\"\n size=\"lg\"\n placeholder={'Paste the address here'}\n value={toAddress}\n onChange={(e: any) => setToAddress(e.target.value)}\n style={{ width: '345px', border: 'none' }}\n />\n </Flex>\n <Flex sx={{ mt: '15px' }}>\n <Text sx={{ lineHeight: '18px', fontSize: '12px', color: 'rgba(223, 65, 65, 1)' }}>\n <Text\n sx={{ display: 'block', width: '100%', fontWeight: 700, fontSize: '13px', color: 'rgba(223, 65, 65, 1)' }}\n >\n WARNING\n </Text>\n When transfering the NFT all pending rewards will also be transfered to the receiver address.\n </Text>\n </Flex>\n <Flex onClick={() => setConfirmSend(!confirmSend)} sx={{ mt: '20px', cursor: 'pointer', alignItems: 'center' }}>\n <Checkbox\n checked={confirmSend}\n onChange={(event: React.MouseEvent) => {\n setConfirmSend(!confirmSend)\n event.stopPropagation()\n }}\n />\n <Text sx={{ ml: '10px', fontSize: '12px', fontWeight: 500, lineHeight: '18px' }}>\n I understand the new wallet gains ownership of all unclaimed assets.\n </Text>\n </Flex>\n <Flex sx={{ justifyContent: 'center', mt: '15px' }}>\n {chainId === ChainId.SOL ? (\n <TransferActionSolana userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n ) : chainId === ChainId.APTOS ? (\n <TransferActionAptos userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n ) : chainId === ChainId.SUI ? (\n <TransferActionSui\n userBill={userBill}\n toAddress={toAddress}\n disabled={!confirmSend || !toAddress}\n onDismiss={onDismiss}\n />\n ) : (\n <TransferAction userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n )}\n </Flex>\n </Modal>\n )\n}\n\nexport default React.memo(TransferModal)\n"],"names":["_jsxs","_jsx","TransferActionSolana","TransferAction"],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Ape Bond SDK",
4
4
  "author": "Ape Bond",
5
5
  "license": "MIT",
6
- "version": "6.2.1",
6
+ "version": "6.2.3",
7
7
  "module": "dist/main.js",
8
8
  "type": "module",
9
9
  "types": "dist/main.d.ts",
@@ -89,6 +89,7 @@
89
89
  "format:write": "prettier --write \"**/*.{js,jsx,ts,tsx,json}\" --config .prettierrc",
90
90
  "format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json}\" --config .prettierrc",
91
91
  "lint": "eslint && tsc --noEmit --skipLibCheck",
92
+ "find-unused": "knip",
92
93
  "prepare": "husky"
93
94
  },
94
95
  "lint-staged": {
@@ -120,10 +121,8 @@
120
121
  "@ape.swap/apeswap-lists": "4.8.4",
121
122
  "@emotion/react": "11.14.0",
122
123
  "@jup-ag/api": "6.0.45",
123
- "bignumber.js": "9.3.1",
124
124
  "buffer": "6.0.3",
125
125
  "chart.js": "4.5.0",
126
- "dom-to-image": "2.6.0",
127
126
  "framer-motion": "11.18.2",
128
127
  "lightweight-charts": "4.2.3",
129
128
  "lodash-es": "4.17.23",
@@ -132,20 +131,16 @@
132
131
  "theme-ui": "0.17.2"
133
132
  },
134
133
  "devDependencies": {
135
- "react": "19.2.8",
136
- "react-dom": "19.2.8",
137
134
  "@eslint/js": "9.39.4",
138
135
  "@rainbow-me/rainbowkit": "2.2.10",
139
136
  "@rollup/plugin-commonjs": "25.0.8",
140
137
  "@rollup/plugin-json": "6.1.0",
141
138
  "@rollup/plugin-node-resolve": "15.3.1",
142
139
  "@rollup/plugin-typescript": "11.1.6",
143
- "@solana/wallet-adapter-base": "0.9.24",
144
- "@solana/wallet-adapter-wallets": "0.19.33",
145
140
  "@solana/wallet-adapter-react-ui": "^0.9.39",
141
+ "@solana/wallet-adapter-wallets": "0.19.33",
146
142
  "@tanstack/react-query": "5.90.2",
147
143
  "@tanstack/react-query-devtools": "5.90.2",
148
- "@types/dom-to-image": "2.6.7",
149
144
  "@types/lodash": "4.17.24",
150
145
  "@types/lodash-es": "4.17.12",
151
146
  "@types/node": "24.12.0",
@@ -157,8 +152,11 @@
157
152
  "eslint-plugin-react": "7.37.5",
158
153
  "eslint-plugin-react-hooks": "5.2.0",
159
154
  "husky": "9.1.7",
155
+ "knip": "^6.29.0",
160
156
  "lint-staged": "16.4.0",
161
157
  "prettier": "3.8.1",
158
+ "react": "19.2.8",
159
+ "react-dom": "19.2.8",
162
160
  "rimraf": "5.0.10",
163
161
  "rollup": "4.60.0",
164
162
  "rollup-plugin-scss": "4.0.1",
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- interface AccordionTextProps {
3
- isVisible?: boolean;
4
- }
5
- declare const AccordionText: React.FC<AccordionTextProps>;
6
- export default AccordionText;
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- declare const RestrictedRegionModal: ({ onDismiss }: {
3
- onDismiss?: () => void;
4
- }) => React.JSX.Element;
5
- export default RestrictedRegionModal;
@@ -1,8 +0,0 @@
1
- interface TabNavigationProps<T> {
2
- tabs: T[];
3
- activeTab: T;
4
- setActiveTab: (value: T) => void;
5
- lineColor?: string;
6
- }
7
- declare const TabNavigation: <T extends string>({ tabs, activeTab, setActiveTab, lineColor }: TabNavigationProps<T>) => import("react").JSX.Element;
8
- export default TabNavigation;
@@ -1,9 +0,0 @@
1
- import { ThemeUIStyleObject } from 'theme-ui';
2
- declare const NumericInput: ({ onUserInput, value, disabled, style, placeholder, }: {
3
- onUserInput?: (input: string) => void;
4
- value: string;
5
- disabled?: boolean;
6
- style?: ThemeUIStyleObject;
7
- placeholder?: string;
8
- }) => import("react").JSX.Element;
9
- export default NumericInput;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { InternalProps } from './types';
3
- declare const ModalFooter: ({ children, onDismiss, t }: InternalProps) => React.JSX.Element;
4
- export default ModalFooter;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const Audit: React.FC<SvgProps>;
4
- export default Audit;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const Success: React.FC<SvgProps>;
4
- export default Success;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const FullLogo: React.FC<SvgProps>;
4
- export default FullLogo;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const Instagram: React.FC<SvgProps>;
4
- export default Instagram;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const Icon: React.FC<SvgProps>;
4
- export default Icon;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const Medium: React.FC<SvgProps>;
4
- export default Medium;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const Pool: React.FC<SvgProps>;
4
- export default Pool;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const Reddit: React.FC<SvgProps>;
4
- export default Reddit;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const Telegram: React.FC<SvgProps>;
4
- export default Telegram;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from './types';
3
- declare const Website: React.FC<SvgProps>;
4
- export default Website;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const BSC: React.FC<SvgProps>;
4
- export default BSC;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const CELO: React.FC<SvgProps>;
4
- export default CELO;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const CRONOS: React.FC<SvgProps>;
4
- export default CRONOS;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const FANTOM: React.FC<SvgProps>;
4
- export default FANTOM;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const GNOSIS: React.FC<SvgProps>;
4
- export default GNOSIS;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const OKEX: React.FC<SvgProps>;
4
- export default OKEX;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const ARBITRUM: React.FC<SvgProps>;
4
- export default ARBITRUM;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SvgProps } from '../types';
3
- declare const POLYGONZK: React.FC<SvgProps>;
4
- export default POLYGONZK;
@@ -1,36 +0,0 @@
1
- import { zapInputTokens, ChainId, WNATIVE } from '@ape.swap/apeswap-lists';
2
- export { WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists';
3
- import { APTOS_ZAP_TOKENS } from './aptosZapTokens.js';
4
-
5
- // Inject Aptos zap tokens into the shared zapInputTokens map so the existing
6
- // TokenSelectorModal / useSortedZapList infrastructure picks them up.
7
- // TODO(aptos): Remove these runtime patches once @ape.swap/apeswap-lists ships Aptos natively.
8
- if (!zapInputTokens[ChainId.APTOS]) {
9
- zapInputTokens[ChainId.APTOS] = APTOS_ZAP_TOKENS.map((t) => ({
10
- symbol: t.symbol,
11
- address: { [ChainId.APTOS]: t.faAddress },
12
- active: true,
13
- decimals: { [ChainId.APTOS]: t.decimals },
14
- }));
15
- }
16
- // Inject WNATIVE for Aptos so useSortedZapList / getNativeTicker resolve APT.
17
- // APT is not a wrapped token, but the infrastructure expects a WNATIVE entry.
18
- if (!WNATIVE[ChainId.APTOS]) {
19
- WNATIVE[ChainId.APTOS] = {
20
- symbol: 'WAPT',
21
- address: { [ChainId.APTOS]: '0xa' },
22
- active: true,
23
- decimals: { [ChainId.APTOS]: 8 },
24
- };
25
- }
26
- // Inject WNATIVE for Sui so useSortedZapList / getNativeTicker resolve SUI.
27
- // SUI is not a wrapped token, but the infrastructure expects a WNATIVE entry.
28
- if (!WNATIVE[ChainId.SUI]) {
29
- WNATIVE[ChainId.SUI] = {
30
- symbol: 'WSUI',
31
- address: { [ChainId.SUI]: '0x2::sui::SUI' },
32
- active: true,
33
- decimals: { [ChainId.SUI]: 9 },
34
- };
35
- }
36
- //# sourceMappingURL=tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.js","sources":["../../../src/config/constants/tokens.ts"],"sourcesContent":["import { ChainId, Token, WNATIVE, zapInputTokens } from '@ape.swap/apeswap-lists'\nimport { APTOS_ZAP_TOKENS } from './aptosZapTokens'\n\n// Inject Aptos zap tokens into the shared zapInputTokens map so the existing\n// TokenSelectorModal / useSortedZapList infrastructure picks them up.\n// TODO(aptos): Remove these runtime patches once @ape.swap/apeswap-lists ships Aptos natively.\nif (!zapInputTokens[ChainId.APTOS]) {\n ;(zapInputTokens as Record<number, Token[]>)[ChainId.APTOS] = APTOS_ZAP_TOKENS.map((t) => ({\n symbol: t.symbol,\n address: { [ChainId.APTOS]: t.faAddress } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.APTOS]: t.decimals } as Partial<Record<ChainId, number | null>>,\n }))\n}\n\n// Inject WNATIVE for Aptos so useSortedZapList / getNativeTicker resolve APT.\n// APT is not a wrapped token, but the infrastructure expects a WNATIVE entry.\nif (!WNATIVE[ChainId.APTOS]) {\n ;(WNATIVE as Record<number, Token>)[ChainId.APTOS] = {\n symbol: 'WAPT',\n address: { [ChainId.APTOS]: '0xa' } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.APTOS]: 8 } as Partial<Record<ChainId, number | null>>,\n }\n}\n\n// Inject WNATIVE for Sui so useSortedZapList / getNativeTicker resolve SUI.\n// SUI is not a wrapped token, but the infrastructure expects a WNATIVE entry.\nif (!WNATIVE[ChainId.SUI]) {\n ;(WNATIVE as Record<number, Token>)[ChainId.SUI] = {\n symbol: 'WSUI',\n address: { [ChainId.SUI]: '0x2::sui::SUI' } as Partial<Record<ChainId, string>>,\n active: true,\n decimals: { [ChainId.SUI]: 9 } as Partial<Record<ChainId, number | null>>,\n }\n}\n\nexport { WNATIVE, zapInputTokens }\n"],"names":[],"mappings":";;;;AAGA;AACA;AACA;AACA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,IAAA,cAA0C,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;QACzF,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,EAAsC;AAC7E,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,EAA6C;AACrF,KAAA,CAAC,CAAC;AACL;AAEA;AACA;AACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,IAAA,OAAiC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;AACnD,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,EAAsC;AACvE,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAA6C;KAC5E;AACH;AAEA;AACA;AACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACvB,IAAA,OAAiC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;AACjD,QAAA,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe,EAAsC;AAC/E,QAAA,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAA6C;KAC1E;AACH"}
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- declare const RefreshContext: React.Context<{
3
- slow: number;
4
- fast: number;
5
- veryFast: number;
6
- }>;
7
- declare const RefreshContextProvider: React.FC<{
8
- children: React.ReactNode;
9
- }>;
10
- export { RefreshContext, RefreshContextProvider };
@@ -1,6 +0,0 @@
1
- declare const useRefresh: () => {
2
- veryFastRefresh: number;
3
- fastRefresh: number;
4
- slowRefresh: number;
5
- };
6
- export default useRefresh;
@@ -1,2 +0,0 @@
1
- export declare const useCurrentTime: () => number;
2
- export default useCurrentTime;
@@ -1,22 +0,0 @@
1
- export interface Sales {
2
- billNftId: number;
3
- chainId: number;
4
- contractAddress: string;
5
- createdAddressOwner: string;
6
- createdAt: number;
7
- deposit: number;
8
- dollarValue: number;
9
- lp: string;
10
- payout: number;
11
- payoutToken: string;
12
- payoutTokenPrice: number;
13
- referenceId: string;
14
- transactionHash: string;
15
- vestingTime: number;
16
- }
17
- export interface UserApiStats {
18
- totalDollarValue: number;
19
- Sales: Sales[];
20
- }
21
- export declare const getUserApiStats: (account?: string) => Promise<UserApiStats | null>;
22
- export default function useUserApiStats(): import("@tanstack/react-query").UseQueryResult<UserApiStats | null, Error>;
@@ -1,4 +0,0 @@
1
- import { BillsConfig } from '@ape.swap/apeswap-lists';
2
- import type { TokenPrices } from '../tokenPrices/useTokenPrices';
3
- export declare const getAptosBondsList: () => BillsConfig[];
4
- export declare const getAptosFallbackPrices: () => TokenPrices[];
@@ -1,9 +0,0 @@
1
- /**
2
- * Retrieves batch data for a list of bill NFT IDs from the API.
3
- * @param apiV2URL - prod or staging url to get NFT data from.
4
- * @param billNftIds - An array of bill NFT IDs to retrieve data for.
5
- * @param billNftAddress - The address of the bill NFT contract.
6
- * @param chainId - The ID of the blockchain network to retrieve data from.
7
- * @returns A Promise that resolves to the batch data for the specified bill NFT IDs, or null if an error occurs.
8
- */
9
- export declare const getBillNftBatchData: (apiV2URL: string, billNftIds: string[], billNftAddress: string, chainId: number) => Promise<any>;
@@ -1,5 +0,0 @@
1
- import { UseQueryResult } from '@tanstack/react-query';
2
- export default function useGeoFencing(): UseQueryResult<{
3
- isRestrictedRegion: boolean;
4
- countryCode: string;
5
- }>;
@@ -1,3 +0,0 @@
1
- import { ChainId, Token } from '@ape.swap/apeswap-lists';
2
- declare const useSoulZapTokenQuote: (typedValue: string, inputCurrency: "NATIVE" | Token | undefined, outputToken: Token | undefined, chainId: ChainId, account?: string) => [loading: boolean, response: any, estimateOutput: number, error: boolean];
3
- export default useSoulZapTokenQuote;
@@ -1,27 +0,0 @@
1
- import { ChainId } from '@ape.swap/apeswap-lists';
2
- export interface TierEntry {
3
- tier: number;
4
- tierName: string;
5
- bonus: number;
6
- abondRequired: string;
7
- tierCostInFromToken: string;
8
- bondInputInFromToken: string;
9
- profitInFromToken: string;
10
- isProfitable: boolean;
11
- minFromAmount: string;
12
- }
13
- export interface TierOptimizationPreview {
14
- currentTier: number;
15
- optimalTier: number;
16
- fromToken: string;
17
- fromAmount: string;
18
- abondPriceUsd: number;
19
- fromTokenPriceUsd: number;
20
- tiers: TierEntry[];
21
- }
22
- declare const useTierOptimizationPreview: (bond: string | undefined, chainId: ChainId | undefined, fromToken: string | undefined, fromAmount: string | undefined, user: string | undefined) => {
23
- data: TierOptimizationPreview | undefined;
24
- isLoading: boolean;
25
- error: Error | null;
26
- };
27
- export default useTierOptimizationPreview;
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import { ChainId, Token } from '@ape.swap/apeswap-lists';
3
- /**
4
- * @param chainId this is the chainId of the outputToken
5
- */
6
- interface ZapModalProps {
7
- onDismiss?: () => void;
8
- outputToken: Token;
9
- chainId: ChainId;
10
- account?: string;
11
- }
12
- declare const ZapModal: ({ onDismiss, outputToken, account, chainId }: ZapModalProps) => React.JSX.Element;
13
- export default ZapModal;
@@ -1,2 +0,0 @@
1
- import { ThemeUIStyleObject } from 'theme-ui';
2
- export declare const styles: Record<'toPanelContainer' | 'cont' | 'tokensContainer' | 'tokenSymbolText', ThemeUIStyleObject>;