@ape.swap/bonds-sdk 5.1.5 → 5.1.7-test.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +4 -4
  2. package/dist/components/BondFilters/BondFilters.js +2 -15
  3. package/dist/components/BondFilters/BondFilters.js.map +1 -1
  4. package/dist/components/ChainOptionList/ChainOptionsButtons.js +3 -16
  5. package/dist/components/ChainOptionList/ChainOptionsButtons.js.map +1 -1
  6. package/dist/components/ChainOptionList/ChainOptionsList.js +4 -16
  7. package/dist/components/ChainOptionList/ChainOptionsList.js.map +1 -1
  8. package/dist/components/CircularProgress/index.js +0 -14
  9. package/dist/components/CircularProgress/index.js.map +1 -1
  10. package/dist/components/ConnectButton/AppKitButton.js +0 -14
  11. package/dist/components/ConnectButton/AppKitButton.js.map +1 -1
  12. package/dist/components/ConnectButton/RainbowKitButton.js +0 -14
  13. package/dist/components/ConnectButton/RainbowKitButton.js.map +1 -1
  14. package/dist/components/ConnectButton/index.js +0 -14
  15. package/dist/components/ConnectButton/index.js.map +1 -1
  16. package/dist/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.js +3 -16
  17. package/dist/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.js.map +1 -1
  18. package/dist/components/ConnectoToVmBanners/ConnectToEvmBanner.js +1 -14
  19. package/dist/components/ConnectoToVmBanners/ConnectToEvmBanner.js.map +1 -1
  20. package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js +2 -15
  21. package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js.map +1 -1
  22. package/dist/components/CustomClaimModals/AbondModal.js +1 -13
  23. package/dist/components/CustomClaimModals/AbondModal.js.map +1 -1
  24. package/dist/components/CustomClaimModals/OabondModal.js +1 -13
  25. package/dist/components/CustomClaimModals/OabondModal.js.map +1 -1
  26. package/dist/components/CustomClaimModals/PmusdModal.js +1 -14
  27. package/dist/components/CustomClaimModals/PmusdModal.js.map +1 -1
  28. package/dist/components/FavIcons/AddFavToken.js +0 -12
  29. package/dist/components/FavIcons/AddFavToken.js.map +1 -1
  30. package/dist/components/FavIcons/FavFilter.js +1 -15
  31. package/dist/components/FavIcons/FavFilter.js.map +1 -1
  32. package/dist/components/LoadingSpinner/index.js +0 -14
  33. package/dist/components/LoadingSpinner/index.js.map +1 -1
  34. package/dist/components/MenuSelect/MenuSelect.js +1 -13
  35. package/dist/components/MenuSelect/MenuSelect.js.map +1 -1
  36. package/dist/components/MenuSelect/RecommendationSelector.js +0 -14
  37. package/dist/components/MenuSelect/RecommendationSelector.js.map +1 -1
  38. package/dist/components/NetworkFilter/index.js +4 -15
  39. package/dist/components/NetworkFilter/index.js.map +1 -1
  40. package/dist/components/PlaceholderMonkey/index.js +1 -14
  41. package/dist/components/PlaceholderMonkey/index.js.map +1 -1
  42. package/dist/components/ProgressBar/ProgressBarWrapper.js +2 -11
  43. package/dist/components/ProgressBar/ProgressBarWrapper.js.map +1 -1
  44. package/dist/components/ProgressiveImage/index.js +0 -12
  45. package/dist/components/ProgressiveImage/index.js.map +1 -1
  46. package/dist/components/SlippageModal/index.js +3 -15
  47. package/dist/components/SlippageModal/index.js.map +1 -1
  48. package/dist/components/StepBubble/index.js +2 -14
  49. package/dist/components/StepBubble/index.js.map +1 -1
  50. package/dist/components/Toast/index.js +4 -13
  51. package/dist/components/Toast/index.js.map +1 -1
  52. package/dist/components/TokenInfoAndName/index.js +4 -16
  53. package/dist/components/TokenInfoAndName/index.js.map +1 -1
  54. package/dist/components/TokenSelectorModal/TokenRow.js +1 -14
  55. package/dist/components/TokenSelectorModal/TokenRow.js.map +1 -1
  56. package/dist/components/TokenSelectorModal/index.d.ts +1 -2
  57. package/dist/components/TokenSelectorModal/index.js +3 -15
  58. package/dist/components/TokenSelectorModal/index.js.map +1 -1
  59. package/dist/components/TokenSelectorPanel/index.js +5 -17
  60. package/dist/components/TokenSelectorPanel/index.js.map +1 -1
  61. package/dist/components/Tooltip/ButtonsRow.js +2 -15
  62. package/dist/components/Tooltip/ButtonsRow.js.map +1 -1
  63. package/dist/components/Tooltip/Tooltip.js +0 -13
  64. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  65. package/dist/components/YouTooltip/YouTooltip.js +0 -14
  66. package/dist/components/YouTooltip/YouTooltip.js.map +1 -1
  67. package/dist/components/uikit-sdk/LoadingDots/index.js +0 -14
  68. package/dist/components/uikit-sdk/LoadingDots/index.js.map +1 -1
  69. package/dist/components/uikit-sdk/Modal/ModalHeader.js +0 -2
  70. package/dist/components/uikit-sdk/Modal/ModalHeader.js.map +1 -1
  71. package/dist/components/uikit-sdk/Toggle/index.js +1 -1
  72. package/dist/components/uikit-sdk/Toggle/index.js.map +1 -1
  73. package/dist/components/uikit-sdk/TokenImage/index.js +2 -13
  74. package/dist/components/uikit-sdk/TokenImage/index.js.map +1 -1
  75. package/dist/config/abi/launchBond_v2_4_1.json.js +2 -2
  76. package/dist/constants/solanaConstants.js +5 -5
  77. package/dist/constants/solanaConstants.js.map +1 -1
  78. package/dist/contexts/ModalContext.js +0 -12
  79. package/dist/contexts/ModalContext.js.map +1 -1
  80. package/dist/contexts/Popups.js +0 -14
  81. package/dist/contexts/Popups.js.map +1 -1
  82. package/dist/state/bonds/useUserBondsPreTGE.js +3 -3
  83. package/dist/state/bonds/utils.js +2 -2
  84. package/dist/utils/bondPriceHelpers.d.ts +14 -0
  85. package/dist/utils/bondPriceHelpers.js +36 -0
  86. package/dist/utils/bondPriceHelpers.js.map +1 -0
  87. package/dist/utils/displayHelpers.js +1 -1
  88. package/dist/utils/displayHelpers.js.map +1 -1
  89. package/dist/views/Bonds/Bonds.js +2 -15
  90. package/dist/views/Bonds/Bonds.js.map +1 -1
  91. package/dist/views/Bonds/components/BondRows/BondRow.js +4 -16
  92. package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -1
  93. package/dist/views/Bonds/components/BondRows/ChainTitle.js +3 -15
  94. package/dist/views/Bonds/components/BondRows/ChainTitle.js.map +1 -1
  95. package/dist/views/Bonds/components/BondRows/SoldOutRows.js +1 -13
  96. package/dist/views/Bonds/components/BondRows/SoldOutRows.js.map +1 -1
  97. package/dist/views/Bonds/components/BondsMenu/BondsMenu.js +1 -14
  98. package/dist/views/Bonds/components/BondsMenu/BondsMenu.js.map +1 -1
  99. package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +5 -17
  100. package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -1
  101. package/dist/views/Bonds/components/BonusComponents/BonusTable.js +1 -15
  102. package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -1
  103. package/dist/views/Bonds/components/BuyAgainRow/index.js +0 -12
  104. package/dist/views/Bonds/components/BuyAgainRow/index.js.map +1 -1
  105. package/dist/views/Bonds/components/ChainBanner/ChainBanner.js +1 -14
  106. package/dist/views/Bonds/components/ChainBanner/ChainBanner.js.map +1 -1
  107. package/dist/views/Bonds/components/HotBondCards/HotBondCard.js +5 -17
  108. package/dist/views/Bonds/components/HotBondCards/HotBondCard.js.map +1 -1
  109. package/dist/views/Bonds/components/HotBondCards/index.js +3 -16
  110. package/dist/views/Bonds/components/HotBondCards/index.js.map +1 -1
  111. package/dist/views/Bonds/components/LoadingSkeleton/LoadingSkeleton.js +1 -12
  112. package/dist/views/Bonds/components/LoadingSkeleton/LoadingSkeleton.js.map +1 -1
  113. package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js +0 -14
  114. package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js.map +1 -1
  115. package/dist/views/Bonds/components/RecommendationCards/index.js +1 -14
  116. package/dist/views/Bonds/components/RecommendationCards/index.js.map +1 -1
  117. package/dist/views/Bonds/utils.d.ts +1 -14
  118. package/dist/views/Bonds/utils.js +2 -32
  119. package/dist/views/Bonds/utils.js.map +1 -1
  120. package/dist/views/BuyBond/BuyBondModal.js +0 -13
  121. package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
  122. package/dist/views/BuyBond/BuyComponent.js +5 -16
  123. package/dist/views/BuyBond/BuyComponent.js.map +1 -1
  124. package/dist/views/BuyBond/BuyComponentPreTGE.js +9 -18
  125. package/dist/views/BuyBond/BuyComponentPreTGE.js.map +1 -1
  126. package/dist/views/BuyBond/BuyComponentSolana.js +28 -32
  127. package/dist/views/BuyBond/BuyComponentSolana.js.map +1 -1
  128. package/dist/views/BuyBond/ParticipationSuccessful.js +4 -15
  129. package/dist/views/BuyBond/ParticipationSuccessful.js.map +1 -1
  130. package/dist/views/BuyBond/components/BondCards/BondCards.js +4 -16
  131. package/dist/views/BuyBond/components/BondCards/BondCards.js.map +1 -1
  132. package/dist/views/BuyBond/components/BondCards/BondCardsPreTGE.js +3 -16
  133. package/dist/views/BuyBond/components/BondCards/BondCardsPreTGE.js.map +1 -1
  134. package/dist/views/BuyBond/components/BondModalHeader.js +4 -17
  135. package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -1
  136. package/dist/views/BuyBond/components/BondModalMinTierHeader.js +2 -15
  137. package/dist/views/BuyBond/components/BondModalMinTierHeader.js.map +1 -1
  138. package/dist/views/BuyBond/components/Estimations.js +5 -18
  139. package/dist/views/BuyBond/components/Estimations.js.map +1 -1
  140. package/dist/views/BuyBond/components/ExpandedViewButton.js +1 -15
  141. package/dist/views/BuyBond/components/ExpandedViewButton.js.map +1 -1
  142. package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +4 -15
  143. package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +1 -1
  144. package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js +2 -14
  145. package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js.map +1 -1
  146. package/dist/views/BuyBond/components/NoBonusModal/NoBonusModal.js +1 -12
  147. package/dist/views/BuyBond/components/NoBonusModal/NoBonusModal.js.map +1 -1
  148. package/dist/views/BuyBond/components/ProjectDescription.js +0 -12
  149. package/dist/views/BuyBond/components/ProjectDescription.js.map +1 -1
  150. package/dist/views/FullBondsView/FullBondsView.d.ts +0 -4
  151. package/dist/views/FullBondsView/FullBondsView.js +3 -21
  152. package/dist/views/FullBondsView/FullBondsView.js.map +1 -1
  153. package/dist/views/LifiModal/LifiModal.js +1 -13
  154. package/dist/views/LifiModal/LifiModal.js.map +1 -1
  155. package/dist/views/ProjectView/ProjectView.js +0 -13
  156. package/dist/views/ProjectView/ProjectView.js.map +1 -1
  157. package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js +0 -14
  158. package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js.map +1 -1
  159. package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js +0 -14
  160. package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js.map +1 -1
  161. package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.js +0 -14
  162. package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.js.map +1 -1
  163. package/dist/views/ProjectView/components/BondLeaderboard/index.js +1 -15
  164. package/dist/views/ProjectView/components/BondLeaderboard/index.js.map +1 -1
  165. package/dist/views/ProjectView/components/BondStats/index.js +0 -12
  166. package/dist/views/ProjectView/components/BondStats/index.js.map +1 -1
  167. package/dist/views/ProjectView/components/NavPanel/index.js +1 -15
  168. package/dist/views/ProjectView/components/NavPanel/index.js.map +1 -1
  169. package/dist/views/ProjectView/components/PriceChart/index.js +2 -15
  170. package/dist/views/ProjectView/components/PriceChart/index.js.map +1 -1
  171. package/dist/views/ProjectView/components/ProjectInfo/index.js +0 -14
  172. package/dist/views/ProjectView/components/ProjectInfo/index.js.map +1 -1
  173. package/dist/views/ProjectView/components/RecommendationCards/index.js +1 -14
  174. package/dist/views/ProjectView/components/RecommendationCards/index.js.map +1 -1
  175. package/dist/views/SingleBond/SingleBond.js +1 -13
  176. package/dist/views/SingleBond/SingleBond.js.map +1 -1
  177. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +1 -14
  178. package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
  179. package/dist/views/TransactionModal/TransactionModal.js +3 -15
  180. package/dist/views/TransactionModal/TransactionModal.js.map +1 -1
  181. package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js +2 -13
  182. package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js.map +1 -1
  183. package/dist/views/YourBonds/components/ClaimAll/index.js +0 -14
  184. package/dist/views/YourBonds/components/ClaimAll/index.js.map +1 -1
  185. package/dist/views/YourBonds/components/UserBondRow/PreTGEActions.js +3 -16
  186. package/dist/views/YourBonds/components/UserBondRow/PreTGEActions.js.map +1 -1
  187. package/dist/views/YourBonds/components/UserBondRow/UserBondRow.js +1 -12
  188. package/dist/views/YourBonds/components/UserBondRow/UserBondRow.js.map +1 -1
  189. package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js +1 -13
  190. package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js.map +1 -1
  191. package/dist/views/YourBonds/components/UserBondRow/UserBondRowSolana.js +7 -17
  192. package/dist/views/YourBonds/components/UserBondRow/UserBondRowSolana.js.map +1 -1
  193. package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js +0 -13
  194. package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js.map +1 -1
  195. package/dist/views/YourBondsModal/YourBondsModal.js +6 -16
  196. package/dist/views/YourBondsModal/YourBondsModal.js.map +1 -1
  197. package/dist/views/YourBondsModal/components/Actions/Actions.js +0 -13
  198. package/dist/views/YourBondsModal/components/Actions/Actions.js.map +1 -1
  199. package/dist/views/YourBondsModal/components/Actions/ActionsSolana.js +6 -17
  200. package/dist/views/YourBondsModal/components/Actions/ActionsSolana.js.map +1 -1
  201. package/dist/views/YourBondsModal/components/LinkShare/LinkShare.js +1 -13
  202. package/dist/views/YourBondsModal/components/LinkShare/LinkShare.js.map +1 -1
  203. package/dist/views/YourBondsModal/components/NFTImage/NFTImage.js +4 -13
  204. package/dist/views/YourBondsModal/components/NFTImage/NFTImage.js.map +1 -1
  205. package/dist/views/YourBondsModal/components/Recommendations/CardRecommendation.js +3 -16
  206. package/dist/views/YourBondsModal/components/Recommendations/CardRecommendation.js.map +1 -1
  207. package/dist/views/YourBondsModal/components/Recommendations/RecSkeleton.js +0 -12
  208. package/dist/views/YourBondsModal/components/Recommendations/RecSkeleton.js.map +1 -1
  209. package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js +2 -15
  210. package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js.map +1 -1
  211. package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js +0 -13
  212. package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js.map +1 -1
  213. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSolana.js +1 -14
  214. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSolana.js.map +1 -1
  215. package/dist/views/YourBondsModal/components/TransferBondModal/index.js +2 -12
  216. package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
  217. package/dist/views/YourBondsModal/components/YourBondModalHeader/YourBondModalHeader.js +6 -16
  218. package/dist/views/YourBondsModal/components/YourBondModalHeader/YourBondModalHeader.js.map +1 -1
  219. package/package.json +1 -1
  220. package/dist/components/uikit-sdk/Button/index.d.ts +0 -2
  221. package/dist/components/uikit-sdk/Input/index.d.ts +0 -2
  222. package/dist/components/uikit-sdk/Select/index.d.ts +0 -2
  223. package/dist/components/uikit-sdk/Tag/index.d.ts +0 -1
  224. package/dist/components/uikit-sdk/index.d.ts +0 -15
@@ -3,22 +3,6 @@ import { useState } from 'react';
3
3
  import BigNumber from 'bignumber.js';
4
4
  import { styles } from './styles.js';
5
5
  import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
6
- import Svg from '../../components/uikit-sdk/Svg/index.js';
7
- import Flex from '../../components/uikit-sdk/Flex/index.js';
8
- import Text from '../../components/uikit-sdk/Text/index.js';
9
- import '../../components/uikit-sdk/Checkbox/types.js';
10
- import 'theme-ui';
11
- import '../../components/uikit-sdk/Skeleton/types.js';
12
- import '../../components/uikit-sdk/Skeleton/styles.js';
13
- import TooltipBubble from '../../components/uikit-sdk/TooltipBubble/index.js';
14
- import Modal from '../../components/uikit-sdk/Modal/index.js';
15
- import 'framer-motion';
16
- import '../FullBondsView/FullBondsView.js';
17
- import Button from '../../components/uikit-sdk/Button/Button.js';
18
- import '../../components/uikit-sdk/Svg/types.js';
19
- import '../../components/uikit-sdk/Button/types.js';
20
- import '../../components/uikit-sdk/Select/types.js';
21
- import ListTag from '../../components/uikit-sdk/Tag/ListTag.js';
22
6
  import TokenSelectorPanel from '../../components/TokenSelectorPanel/index.js';
23
7
  import useCurrencyBalance from '../../state/balance/useCurrencyBalance.js';
24
8
  import { useWriteContract } from 'wagmi';
@@ -32,11 +16,18 @@ import useBondsData from '../../state/bonds/useBondsData.js';
32
16
  import useModal from '../../hooks/useModal.js';
33
17
  import TransactionModal from '../TransactionModal/TransactionModal.js';
34
18
  import { useApproval } from '../../state/allowance/useAllowance.js';
35
- import launchBondsABI_V2_2_0 from '../../config/abi/launchBond_v2_4_1.json.js';
19
+ import LaunchBondABI_V_2_4_1 from '../../config/abi/launchBond_v2_4_1.json.js';
36
20
  import ConnectButton from '../../components/ConnectButton/index.js';
37
21
  import track from '../../utils/track.js';
38
22
  import useEVMAccount from '../../hooks/accounts/useEVMAccount.js';
39
23
  import { useSDKConfig } from '../../state/useSDKConfig.js';
24
+ import Modal from '../../components/uikit-sdk/Modal/index.js';
25
+ import Flex from '../../components/uikit-sdk/Flex/index.js';
26
+ import Text from '../../components/uikit-sdk/Text/index.js';
27
+ import ListTag from '../../components/uikit-sdk/Tag/ListTag.js';
28
+ import TooltipBubble from '../../components/uikit-sdk/TooltipBubble/index.js';
29
+ import Svg from '../../components/uikit-sdk/Svg/index.js';
30
+ import Button from '../../components/uikit-sdk/Button/Button.js';
40
31
 
41
32
  const BuyComponentPreTGE = ({ bondAddress, bondChain, onDismiss, handlePurchasedBond, }) => {
42
33
  const SDKConfig = useSDKConfig();
@@ -90,7 +81,7 @@ const BuyComponentPreTGE = ({ bondAddress, bondChain, onDismiss, handlePurchased
90
81
  const args = [amount, maxPrice, address];
91
82
  await writeContractAsync({
92
83
  address: bond?.contractAddress?.[bond.chainId],
93
- abi: launchBondsABI_V2_2_0,
84
+ abi: LaunchBondABI_V_2_4_1,
94
85
  functionName: 'deposit',
95
86
  args: args,
96
87
  chain: bond.chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"BuyComponentPreTGE.js","sources":["../../../src/views/BuyBond/BuyComponentPreTGE.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport { styles } from './styles'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport { Flex, Svg, Text, TooltipBubble, Button, ListTag, Modal } from '../../components/uikit-sdk'\nimport TokenSelectorPanel from '../../components/TokenSelectorPanel'\nimport useCurrencyBalance from '../../state/balance/useCurrencyBalance'\nimport { useWriteContract } from 'wagmi'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport ProjectDescription from '../BuyBond/components/ProjectDescription'\nimport { TooltipText } from '../../config/constants/tooltips'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport BondCardsPreTGE from './components/BondCards/BondCardsPreTGE'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport useModal from '../../hooks/useModal'\nimport TransactionModal from '../TransactionModal/TransactionModal'\nimport { useApproval } from '../../state/allowance/useAllowance'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport launchBondsABI_V2_2_0 from '../../config/abi/launchBond_v2_4_1.json'\nimport ConnectButton from '../../components/ConnectButton'\nimport track from '../../utils/track'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport { useSDKConfig } from '../../state/useSDKConfig'\n\nconst BuyComponentPreTGE = ({\n bondAddress,\n bondChain,\n onDismiss,\n handlePurchasedBond,\n}: {\n bondAddress: string\n bondChain: number\n onDismiss?: () => void\n handlePurchasedBond: (hash: string, inputAmount: string) => void\n}) => {\n const SDKConfig = useSDKConfig()\n const { data: preTGEBonds } = useBondsData()\n const bond = preTGEBonds?.find(\n (bond) =>\n bond.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress.toLowerCase() && bond.chainId === bondChain,\n )!\n\n // Hooks\n const { address } = useEVMAccount()\n const { data: principalTokenBalance } = useCurrencyBalance(bond.lpToken, address as string, bond.chainId)\n // Local state\n const [inputValue, setInputValue] = useState<string>('')\n\n // Display Values\n const raiseGoal = getBalanceNumber(new BigNumber(bond?.totalRaise ?? '0'), 18)\n const totalPrincipalBilled = getBalanceNumber(new BigNumber(bond?.totalPrincipalBilled ?? '0'), 18)\n const percentageSold = (totalPrincipalBilled * 100) / raiseGoal\n const tgePrice = bond?.tgePrice ?? 0\n const initPrice = bond?.initPrice ?? 0\n\n const inputValueToDisplay = parseFloat(inputValue).toFixed(2)\n const inputValueToDisplayUSD = parseFloat(inputValueToDisplay) * parseFloat(bond?.principalTokenPrice ?? '0')\n const youGet = parseFloat(inputValue) / initPrice\n const youGetUSD = youGet * tgePrice\n const bonusUSD = youGetUSD - inputValueToDisplayUSD\n\n const handleClose = () => {\n if (typeof window !== 'undefined') {\n window.history.pushState({}, '', `/bonds`)\n }\n onDismiss?.()\n }\n\n const [loading, setLoading] = useState<boolean>(false)\n const [buyTxHash, setHash] = useState<string>('')\n // Approve logic\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n bond.lpToken,\n bond?.contractAddress[bond.chainId] as `0x${string}`,\n address as string,\n bond.chainId as ChainId,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: bondChain,\n data: {\n cat: bond?.billType,\n bond: bond?.earnToken.symbol,\n },\n })\n })\n }\n const { writeContractAsync } = useWriteContract()\n const onBuyBill = async () => {\n setLoading(true)\n const amount = new BigNumber(inputValue)\n .times(new BigNumber(10).pow(bond?.lpToken?.decimals?.[bond?.chainId] ?? 18))\n .toString()\n const maxPrice = new BigNumber(bond?.trueBondPrices?.[0].trueBondPrice ?? '0').times(102).div(100).toFixed(0)\n const args = [amount, maxPrice, address]\n\n await writeContractAsync({\n address: bond?.contractAddress?.[bond.chainId] as `0x${string}`,\n abi: launchBondsABI_V2_2_0,\n functionName: 'deposit',\n args: args,\n chain: bond.chainId as any,\n account: address,\n })\n .then((hash) => {\n setHash(hash)\n handlePurchasedBond(hash, inputValue)\n })\n .finally(() => {\n setLoading(false)\n })\n }\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loading}\n txCallback={onBuyBill}\n bondData={bond!}\n inputToken={bond.lpToken}\n inputValue={inputValue}\n depositAmount={inputValue}\n buyTxHash={buyTxHash}\n rateChanged={false}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n const { data: currencyBalanceString } = useCurrencyBalance(bond.lpToken, address as string, bond.chainId)\n const exceedsBalance = parseFloat(inputValue) > parseFloat(currencyBalanceString ?? '0')\n const saleStartTime = (bond?.initTime?.[bond.chainId] ?? 0) * 1000\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const now = new Date().getTime()\n const saleHasStarted = now > saleStartTime\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n const error = SDKConfig.blockSales\n ? 'Complete KYC to Buy'\n : !saleHasStarted\n ? `Sale hasn't started`\n : saleHasFinished\n ? 'Sale Finished'\n : exceedsBalance\n ? 'Exceeds balance'\n : percentageSold > 99.9\n ? 'Soldout'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : !bond\n ? 'no bond'\n : null\n\n return (\n <Modal onDismiss={handleClose} sx={{ width: '740px' }}>\n <ModalHeader onDismiss={handleClose} hideDivider />\n <Flex sx={styles.buyContainer}>\n <Flex sx={styles.cardContainer}>\n <Flex sx={{ width: '100%', justifyContent: 'space-between' }}>\n <Flex>\n <Flex>\n <Flex className=\"title-container bondicon\">\n <TokenImage symbol={bond.earnToken.symbol} size={50} chain={bond.chainId} />\n </Flex>\n <Flex className=\"title-container bondname\">\n {bond.earnToken.symbol}\n <ListTag text={bond?.tags?.[0]} />\n </Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', ml: '15px' }}>\n <Flex className=\"price-container price\">${bond.tgePrice}</Flex>\n <Flex sx={{ fontSize: '24px', fontWeight: 700 }}>${bond.initPrice}</Flex>\n </Flex>\n </Flex>\n </Flex>\n <ProjectDescription description={bond.shortDescription} isProjectView />\n <BondCardsPreTGE bond={bond} />\n <Flex sx={{ ...styles.infoRowsContainer, mt: '10px' }}>\n <Flex sx={styles.infoRow}>\n <Text sx={styles.infoTitle}>You Spend:</Text>\n <Text sx={styles.infoData}>\n {isNaN(parseFloat(inputValueToDisplay)) ? 0 : inputValueToDisplay} {bond?.lpToken.symbol} = $\n {isNaN(inputValueToDisplayUSD) ? '0' : inputValueToDisplayUSD.toFixed(2)}\n </Text>\n </Flex>\n <Flex sx={styles.infoRow}>\n <Flex sx={{ ...styles.infoTitle, alignItems: 'center' }}>\n Bonus:\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{TooltipText.Premium}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"row-container premium-icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Text sx={{ ...styles.infoData, color: 'success' }}>${isNaN(bonusUSD) ? '0' : bonusUSD.toFixed(2)}</Text>\n </Flex>\n <Flex sx={styles.infoRow}>\n <Text sx={styles.infoTitle}>You Get:</Text>\n <Text sx={styles.infoData}>\n {isNaN(youGet) ? 0 : formatNumberSI(youGet, 0)} {bond?.earnToken.symbol} = $\n {isNaN(youGetUSD) ? '0' : youGetUSD.toFixed(2)}\n </Text>\n </Flex>\n </Flex>\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={bond?.lpToken}\n handleValueBtn={() => setInputValue(new BigNumber(principalTokenBalance ?? '0')?.toString())}\n handleCurrencySelect={() => null}\n bondChainId={bond?.chainId}\n enableZap={false}\n bondPrincipalToken={bond?.lpToken}\n tokenBalance={principalTokenBalance ?? undefined}\n selectedTokenPrice={parseFloat(bond?.principalTokenPrice ?? '0')}\n inputDisabled={false}\n />\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n justifyContent: 'center',\n mt: '10px',\n borderRadius: 'normal',\n p: '4px 10px',\n fontSize: '12px',\n fontWeight: 400,\n }}\n >\n {bond.warningCard ? (\n bond.warningCard\n ) : (\n <>\n This is a Pre-TGE Bond - Tokens will be tradeable upon listing.\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Text sx={{ textTransform: 'none' }}>\n Pre-TGE Bonds are a pre-sale for tokens before their Token Generation Event (TGE), when tokens are\n officially launched to the public.\n </Text>\n }\n width=\"315px\"\n placement=\"topRight\"\n transformTip=\"translate(9%, -10%)\"\n >\n <Flex sx={{ ml: '4px', minWidth: '14px' }}>\n <Svg icon=\"questionCircle\" width={12} />\n </Flex>\n </TooltipBubble>\n </>\n )}\n </Flex>\n <Flex\n sx={{\n width: '100%',\n mt: '10px',\n justifyContent: 'space-between',\n height: ['unset', 'unset', 'unset', '40px'],\n flexDirection: ['column-reverse', 'column-reverse', 'column-reverse', 'row'],\n }}\n >\n {!address ? (\n <ConnectButton />\n ) : (\n <>\n <Flex sx={{ width: ['100%', '100%', '100%', '45%'], justifyContent: 'center' }}>\n <Button\n variant=\"secondary\"\n onClick={() =>\n window.open(\n `/swap?outputCurrency=${bond?.lpToken?.address[bond?.chainId]}&outputChain=${bond?.chainId}`,\n '_blank',\n )\n }\n fullWidth\n >\n Get {bond?.lpToken?.symbol}\n </Button>\n </Flex>\n {error ? (\n <Button disabled fullWidth sx={{ ml: ['0', '0', '0', '10px'] }}>\n {error}\n </Button>\n ) : (\n <Button\n disabled={loading}\n load={loading}\n onClick={openTxModal}\n fullWidth\n sx={{ ml: ['0', '0', '0', '10px'] }}\n >\n Buy\n </Button>\n )}\n </>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default BuyComponentPreTGE\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,kBAAkB,GAAG,CAAC,EAC1B,WAAW,EACX,SAAS,EACT,SAAS,EACT,mBAAmB,GAMpB,KAAI;AACH,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE;AAC5C,IAAA,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,CAC5B,CAAC,IAAI,KACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CACjH;;AAGF,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE;AACnC,IAAA,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAiB,EAAE,IAAI,CAAC,OAAO,CAAC;;IAEzG,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC;;AAGxD,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,UAAU,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;AAC9E,IAAA,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,oBAAoB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;IACnG,MAAM,cAAc,GAAG,CAAC,oBAAoB,GAAG,GAAG,IAAI,SAAS;AAC/D,IAAA,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,CAAC;AACpC,IAAA,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,CAAC;IAEtC,MAAM,mBAAmB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,sBAAsB,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,GAAG,CAAC;IAC7G,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS;AACjD,IAAA,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ;AACnC,IAAA,MAAM,QAAQ,GAAG,SAAS,GAAG,sBAAsB;IAEnD,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAA,MAAA,CAAQ,CAAC;QAC5C;QACA,SAAS,IAAI;AACf,IAAA,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC;;AAEjD,IAAA,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,WAAW,CAClD,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAkB,EACpD,OAAiB,EACjB,IAAI,CAAC,OAAkB,CACxB;AACD,IAAA,MAAM,aAAa,GAAG,YAAW;AAC/B,QAAA,OAAO,eAAe,EAAE,CAAC,IAAI,CAAC,MAAK;AACjC,YAAA,KAAK,CAAC;AACJ,gBAAA,KAAK,EAAE,kBAAkB;AACzB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE;oBACJ,GAAG,EAAE,IAAI,EAAE,QAAQ;AACnB,oBAAA,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM;AAC7B,iBAAA;AACF,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AACD,IAAA,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE;AACjD,IAAA,MAAM,SAAS,GAAG,YAAW;QAC3B,UAAU,CAAC,IAAI,CAAC;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU;aACpC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AAC3E,aAAA,QAAQ,EAAE;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7G,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AAExC,QAAA,MAAM,kBAAkB,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC,OAAO,CAAkB;AAC/D,YAAA,GAAG,EAAE,qBAAqB;AAC1B,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI,CAAC,OAAc;AAC1B,YAAA,OAAO,EAAE,OAAO;SACjB;AACE,aAAA,IAAI,CAAC,CAAC,IAAI,KAAI;YACb,OAAO,CAAC,IAAI,CAAC;AACb,YAAA,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC;AACvC,QAAA,CAAC;aACA,OAAO,CAAC,MAAK;YACZ,UAAU,CAAC,KAAK,CAAC;AACnB,QAAA,CAAC,CAAC;AACN,IAAA,CAAC;AAED,IAAA,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,CAC5BA,GAAA,CAAC,gBAAgB,EAAA,EACf,OAAO,EAAE,SAAS,EAClB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,aAAa,EAC9B,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,IAAK,EACf,UAAU,EAAE,IAAI,CAAC,OAAO,EACxB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,KAAK,EAAA,CAClB,EACF,KAAK,EACL,IAAI,EACJ,kBAAkB,CACnB;AAED,IAAA,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAiB,EAAE,IAAI,CAAC,OAAO,CAAC;AACzG,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,qBAAqB,IAAI,GAAG,CAAC;AACxF,IAAA,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI;IAClE,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,IAAI,IAAI;IACrD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAChC,IAAA,MAAM,cAAc,GAAG,GAAG,GAAG,aAAa;IAC1C,MAAM,eAAe,GAAG,GAAG,GAAG,cAAc,IAAI,IAAI,CAAC,SAAS;AAE9D,IAAA,MAAM,KAAK,GAAG,SAAS,CAAC;AACtB,UAAE;UACA,CAAC;AACD,cAAE,CAAA,mBAAA;AACF,cAAE;AACA,kBAAE;AACF,kBAAE;AACA,sBAAE;sBACA,cAAc,GAAG;AACjB,0BAAE;0BACA,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK;AAC1C,8BAAE;8BACA,CAAC;AACD,kCAAE;kCACA,IAAI;AAEpB,IAAA,QACEC,IAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,QAAA,EAAA,CACnDD,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAA,IAAA,EAAA,CAAG,EACnDA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAC3BC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAC5BD,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,EAAA,QAAA,EAC1DC,IAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CACHA,IAAA,CAAC,IAAI,eACHD,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,0BAA0B,EAAA,QAAA,EACxCA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAA,CAAI,EAAA,CACvE,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAA,CACvC,IAAI,CAAC,SAAS,CAAC,MAAM,EACtBD,GAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,EAAA,CAAI,CAAA,EAAA,CAC7B,CAAA,EAAA,CACF,EACPC,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAC/CA,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAA,CAAA,GAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,EAAA,CAAQ,EAC/DA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,CAAA,GAAA,EAAI,IAAI,CAAC,SAAS,CAAA,EAAA,CAAQ,CAAA,EAAA,CACpE,CAAA,EAAA,CACF,EAAA,CACF,EACPD,GAAA,CAAC,kBAAkB,EAAA,EAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,SAAG,EACxEA,GAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAE,IAAI,EAAA,CAAI,EAC/BC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CACnDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CACtBD,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,CAAmB,EAC7CC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,aACtB,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,mBAAmB,EAAA,GAAA,EAAG,IAAI,EAAE,OAAO,CAAC,MAAM,EAAA,MAAA,EACvF,KAAK,CAAC,sBAAsB,CAAC,GAAG,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,CACnE,CAAA,EAAA,CACF,EACPA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CACtBA,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAAA,QAAA,EAErDD,GAAA,CAAC,aAAa,EAAA,EACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAE,WAAW,CAAC,OAAO,EAAA,CAAQ,EACxC,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,EAAA,QAAA,EAEjCA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAC1CA,IAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAA,CAAG,EAAA,CACrC,EAAA,CACO,CAAA,EAAA,CACX,EACPC,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,QAAA,EAAA,CAAA,GAAA,EAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,CAAQ,CAAA,EAAA,CACpG,EACPA,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CACtBD,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAA,QAAA,EAAA,UAAA,EAAA,CAAiB,EAC3CC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CACtB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,EAAA,GAAA,EAAG,IAAI,EAAE,SAAS,CAAC,MAAM,EAAA,MAAA,EACtE,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IACzC,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EACPD,GAAA,CAAC,kBAAkB,EAAA,EACjB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,IAAI,EAAE,OAAO,EAC5B,cAAc,EAAE,MAAM,aAAa,CAAC,IAAI,SAAS,CAAC,qBAAqB,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAC5F,oBAAoB,EAAE,MAAM,IAAI,EAChC,WAAW,EAAE,IAAI,EAAE,OAAO,EAC1B,SAAS,EAAE,KAAK,EAChB,kBAAkB,EAAE,IAAI,EAAE,OAAO,EACjC,YAAY,EAAE,qBAAqB,IAAI,SAAS,EAChD,kBAAkB,EAAE,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,GAAG,CAAC,EAChE,aAAa,EAAE,KAAK,EAAA,CACpB,EACFA,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,UAAU,EAAE,WAAW;AACvB,gCAAA,cAAc,EAAE,QAAQ;AACxB,gCAAA,EAAE,EAAE,MAAM;AACV,gCAAA,YAAY,EAAE,QAAQ;AACtB,gCAAA,CAAC,EAAE,UAAU;AACb,gCAAA,QAAQ,EAAE,MAAM;AAChB,gCAAA,UAAU,EAAE,GAAG;AAChB,6BAAA,EAAA,QAAA,EAEA,IAAI,CAAC,WAAW,IACf,IAAI,CAAC,WAAW,KAEhBC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iEAAA,EAEEF,GAAA,CAAC,aAAa,EAAA,EACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EACFA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,uIAAA,EAAA,CAG5B,EAET,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,UAAU,EACpB,YAAY,EAAC,qBAAqB,EAAA,QAAA,EAElCA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EACvCA,GAAA,CAAC,GAAG,IAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAE,EAAE,EAAA,CAAI,GACnC,EAAA,CACO,CAAA,EAAA,CACf,CACJ,EAAA,CACI,EACPA,IAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,EAAE,EAAE,MAAM;AACV,gCAAA,cAAc,EAAE,eAAe;gCAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;gCAC3C,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,CAAC;AAC7E,6BAAA,EAAA,QAAA,EAEA,CAAC,OAAO,IACPA,GAAA,CAAC,aAAa,EAAA,EAAA,CAAG,KAEjBC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEF,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAA,QAAA,EAC5EC,IAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,MACP,MAAM,CAAC,IAAI,CACT,CAAA,qBAAA,EAAwB,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA,aAAA,EAAgB,IAAI,EAAE,OAAO,CAAA,CAAE,EAC5F,QAAQ,CACT,EAEH,SAAS,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,MAAA,EAEJ,IAAI,EAAE,OAAO,EAAE,MAAM,CAAA,EAAA,CACnB,GACJ,EACN,KAAK,IACJD,GAAA,CAAC,MAAM,EAAA,EAAC,QAAQ,EAAA,IAAA,EAAC,SAAS,EAAA,IAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EAC3D,KAAK,EAAA,CACC,KAETA,GAAA,CAAC,MAAM,EAAA,EACL,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,WAAW,EACpB,SAAS,EAAA,IAAA,EACT,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EAAA,KAAA,EAAA,CAG5B,CACV,IACA,CACJ,EAAA,CACI,IACF,EAAA,CACF,CAAA,EAAA,CACD;AAEZ;;;;"}
1
+ {"version":3,"file":"BuyComponentPreTGE.js","sources":["../../../src/views/BuyBond/BuyComponentPreTGE.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport { styles } from './styles'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport TokenSelectorPanel from '../../components/TokenSelectorPanel'\nimport useCurrencyBalance from '../../state/balance/useCurrencyBalance'\nimport { useWriteContract } from 'wagmi'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport ProjectDescription from '../BuyBond/components/ProjectDescription'\nimport { TooltipText } from '../../config/constants/tooltips'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport BondCardsPreTGE from './components/BondCards/BondCardsPreTGE'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport useModal from '../../hooks/useModal'\nimport TransactionModal from '../TransactionModal/TransactionModal'\nimport { useApproval } from '../../state/allowance/useAllowance'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport launchBondsABI_V2_2_0 from '../../config/abi/launchBond_v2_4_1.json'\nimport ConnectButton from '../../components/ConnectButton'\nimport track from '../../utils/track'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Text from '../../components/uikit-sdk/Text'\nimport ListTag from '../../components/uikit-sdk/Tag/ListTag'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport Button from '../../components/uikit-sdk/Button/Button'\n\nconst BuyComponentPreTGE = ({\n bondAddress,\n bondChain,\n onDismiss,\n handlePurchasedBond,\n}: {\n bondAddress: string\n bondChain: number\n onDismiss?: () => void\n handlePurchasedBond: (hash: string, inputAmount: string) => void\n}) => {\n const SDKConfig = useSDKConfig()\n const { data: preTGEBonds } = useBondsData()\n const bond = preTGEBonds?.find(\n (bond) =>\n bond.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress.toLowerCase() && bond.chainId === bondChain,\n )!\n\n // Hooks\n const { address } = useEVMAccount()\n const { data: principalTokenBalance } = useCurrencyBalance(bond.lpToken, address as string, bond.chainId)\n // Local state\n const [inputValue, setInputValue] = useState<string>('')\n\n // Display Values\n const raiseGoal = getBalanceNumber(new BigNumber(bond?.totalRaise ?? '0'), 18)\n const totalPrincipalBilled = getBalanceNumber(new BigNumber(bond?.totalPrincipalBilled ?? '0'), 18)\n const percentageSold = (totalPrincipalBilled * 100) / raiseGoal\n const tgePrice = bond?.tgePrice ?? 0\n const initPrice = bond?.initPrice ?? 0\n\n const inputValueToDisplay = parseFloat(inputValue).toFixed(2)\n const inputValueToDisplayUSD = parseFloat(inputValueToDisplay) * parseFloat(bond?.principalTokenPrice ?? '0')\n const youGet = parseFloat(inputValue) / initPrice\n const youGetUSD = youGet * tgePrice\n const bonusUSD = youGetUSD - inputValueToDisplayUSD\n\n const handleClose = () => {\n if (typeof window !== 'undefined') {\n window.history.pushState({}, '', `/bonds`)\n }\n onDismiss?.()\n }\n\n const [loading, setLoading] = useState<boolean>(false)\n const [buyTxHash, setHash] = useState<string>('')\n // Approve logic\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n bond.lpToken,\n bond?.contractAddress[bond.chainId] as `0x${string}`,\n address as string,\n bond.chainId as ChainId,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: bondChain,\n data: {\n cat: bond?.billType,\n bond: bond?.earnToken.symbol,\n },\n })\n })\n }\n const { writeContractAsync } = useWriteContract()\n const onBuyBill = async () => {\n setLoading(true)\n const amount = new BigNumber(inputValue)\n .times(new BigNumber(10).pow(bond?.lpToken?.decimals?.[bond?.chainId] ?? 18))\n .toString()\n const maxPrice = new BigNumber(bond?.trueBondPrices?.[0].trueBondPrice ?? '0').times(102).div(100).toFixed(0)\n const args = [amount, maxPrice, address]\n\n await writeContractAsync({\n address: bond?.contractAddress?.[bond.chainId] as `0x${string}`,\n abi: launchBondsABI_V2_2_0,\n functionName: 'deposit',\n args: args,\n chain: bond.chainId as any,\n account: address,\n })\n .then((hash) => {\n setHash(hash)\n handlePurchasedBond(hash, inputValue)\n })\n .finally(() => {\n setLoading(false)\n })\n }\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loading}\n txCallback={onBuyBill}\n bondData={bond!}\n inputToken={bond.lpToken}\n inputValue={inputValue}\n depositAmount={inputValue}\n buyTxHash={buyTxHash}\n rateChanged={false}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n const { data: currencyBalanceString } = useCurrencyBalance(bond.lpToken, address as string, bond.chainId)\n const exceedsBalance = parseFloat(inputValue) > parseFloat(currencyBalanceString ?? '0')\n const saleStartTime = (bond?.initTime?.[bond.chainId] ?? 0) * 1000\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const now = new Date().getTime()\n const saleHasStarted = now > saleStartTime\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n const error = SDKConfig.blockSales\n ? 'Complete KYC to Buy'\n : !saleHasStarted\n ? `Sale hasn't started`\n : saleHasFinished\n ? 'Sale Finished'\n : exceedsBalance\n ? 'Exceeds balance'\n : percentageSold > 99.9\n ? 'Soldout'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : !bond\n ? 'no bond'\n : null\n\n return (\n <Modal onDismiss={handleClose} sx={{ width: '740px' }}>\n <ModalHeader onDismiss={handleClose} hideDivider />\n <Flex sx={styles.buyContainer}>\n <Flex sx={styles.cardContainer}>\n <Flex sx={{ width: '100%', justifyContent: 'space-between' }}>\n <Flex>\n <Flex>\n <Flex className=\"title-container bondicon\">\n <TokenImage symbol={bond.earnToken.symbol} size={50} chain={bond.chainId} />\n </Flex>\n <Flex className=\"title-container bondname\">\n {bond.earnToken.symbol}\n <ListTag text={bond?.tags?.[0]} />\n </Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', ml: '15px' }}>\n <Flex className=\"price-container price\">${bond.tgePrice}</Flex>\n <Flex sx={{ fontSize: '24px', fontWeight: 700 }}>${bond.initPrice}</Flex>\n </Flex>\n </Flex>\n </Flex>\n <ProjectDescription description={bond.shortDescription} isProjectView />\n <BondCardsPreTGE bond={bond} />\n <Flex sx={{ ...styles.infoRowsContainer, mt: '10px' }}>\n <Flex sx={styles.infoRow}>\n <Text sx={styles.infoTitle}>You Spend:</Text>\n <Text sx={styles.infoData}>\n {isNaN(parseFloat(inputValueToDisplay)) ? 0 : inputValueToDisplay} {bond?.lpToken.symbol} = $\n {isNaN(inputValueToDisplayUSD) ? '0' : inputValueToDisplayUSD.toFixed(2)}\n </Text>\n </Flex>\n <Flex sx={styles.infoRow}>\n <Flex sx={{ ...styles.infoTitle, alignItems: 'center' }}>\n Bonus:\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{TooltipText.Premium}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"row-container premium-icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Text sx={{ ...styles.infoData, color: 'success' }}>${isNaN(bonusUSD) ? '0' : bonusUSD.toFixed(2)}</Text>\n </Flex>\n <Flex sx={styles.infoRow}>\n <Text sx={styles.infoTitle}>You Get:</Text>\n <Text sx={styles.infoData}>\n {isNaN(youGet) ? 0 : formatNumberSI(youGet, 0)} {bond?.earnToken.symbol} = $\n {isNaN(youGetUSD) ? '0' : youGetUSD.toFixed(2)}\n </Text>\n </Flex>\n </Flex>\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={bond?.lpToken}\n handleValueBtn={() => setInputValue(new BigNumber(principalTokenBalance ?? '0')?.toString())}\n handleCurrencySelect={() => null}\n bondChainId={bond?.chainId}\n enableZap={false}\n bondPrincipalToken={bond?.lpToken}\n tokenBalance={principalTokenBalance ?? undefined}\n selectedTokenPrice={parseFloat(bond?.principalTokenPrice ?? '0')}\n inputDisabled={false}\n />\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n justifyContent: 'center',\n mt: '10px',\n borderRadius: 'normal',\n p: '4px 10px',\n fontSize: '12px',\n fontWeight: 400,\n }}\n >\n {bond.warningCard ? (\n bond.warningCard\n ) : (\n <>\n This is a Pre-TGE Bond - Tokens will be tradeable upon listing.\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Text sx={{ textTransform: 'none' }}>\n Pre-TGE Bonds are a pre-sale for tokens before their Token Generation Event (TGE), when tokens are\n officially launched to the public.\n </Text>\n }\n width=\"315px\"\n placement=\"topRight\"\n transformTip=\"translate(9%, -10%)\"\n >\n <Flex sx={{ ml: '4px', minWidth: '14px' }}>\n <Svg icon=\"questionCircle\" width={12} />\n </Flex>\n </TooltipBubble>\n </>\n )}\n </Flex>\n <Flex\n sx={{\n width: '100%',\n mt: '10px',\n justifyContent: 'space-between',\n height: ['unset', 'unset', 'unset', '40px'],\n flexDirection: ['column-reverse', 'column-reverse', 'column-reverse', 'row'],\n }}\n >\n {!address ? (\n <ConnectButton />\n ) : (\n <>\n <Flex sx={{ width: ['100%', '100%', '100%', '45%'], justifyContent: 'center' }}>\n <Button\n variant=\"secondary\"\n onClick={() =>\n window.open(\n `/swap?outputCurrency=${bond?.lpToken?.address[bond?.chainId]}&outputChain=${bond?.chainId}`,\n '_blank',\n )\n }\n fullWidth\n >\n Get {bond?.lpToken?.symbol}\n </Button>\n </Flex>\n {error ? (\n <Button disabled fullWidth sx={{ ml: ['0', '0', '0', '10px'] }}>\n {error}\n </Button>\n ) : (\n <Button\n disabled={loading}\n load={loading}\n onClick={openTxModal}\n fullWidth\n sx={{ ml: ['0', '0', '0', '10px'] }}\n >\n Buy\n </Button>\n )}\n </>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default BuyComponentPreTGE\n"],"names":["launchBondsABI_V2_2_0","_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -1,22 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'theme-ui/jsx-runtime';
2
2
  import { useState, useCallback, useEffect } from 'react';
3
3
  import { BigNumber } from 'bignumber.js';
4
- import Svg from '../../components/uikit-sdk/Svg/index.js';
5
- import Flex from '../../components/uikit-sdk/Flex/index.js';
6
- import Text from '../../components/uikit-sdk/Text/index.js';
7
- import '../../components/uikit-sdk/Checkbox/types.js';
8
- import 'theme-ui';
9
- import '../../components/uikit-sdk/Skeleton/types.js';
10
- import '../../components/uikit-sdk/Skeleton/styles.js';
11
- import TooltipBubble from '../../components/uikit-sdk/TooltipBubble/index.js';
12
- import 'framer-motion';
13
- import Button from '../../components/uikit-sdk/Button/Button.js';
14
- import '../../components/uikit-sdk/Svg/types.js';
15
- import '../../components/uikit-sdk/Button/types.js';
16
- import '../../contexts/ModalContext.js';
17
- import '../FullBondsView/FullBondsView.js';
18
- import '../../components/uikit-sdk/Select/types.js';
19
- import { MCBuyComponentStyles } from '../../utils/campaignStyles.js';
20
4
  import useModal from '../../hooks/useModal.js';
21
5
  import { ChainId } from '@ape.swap/apeswap-lists';
22
6
  import TokenSelectorPanel from '../../components/TokenSelectorPanel/index.js';
@@ -41,18 +25,24 @@ import { derivePda } from '../../utils/derivePda.js';
41
25
  import { getAssociatedTokenAddress, ASSOCIATED_TOKEN_PROGRAM_ID, getAccount, createAssociatedTokenAccountInstruction } from '@solana/spl-token';
42
26
  import { getBondIssuanceAccountSolana } from '../../utils/getSolanaAccount.js';
43
27
  import { getU64Codec } from '@solana/kit';
44
- import { PROGRAM_ID, FEE_PAYOUT_CONST_SEED, FEE_PAYOUT_PDA_PROGRAM, MPL_CORE_PROGRAM_ID, DEPOSIT_DISCRIMINATOR } from '../../constants/solanaConstants.js';
28
+ import { PROGRAM_ID, MPL_CORE_PROGRAM_ID, DEPOSIT_DISCRIMINATOR } from '../../constants/solanaConstants.js';
45
29
  import { Buffer } from 'buffer';
46
30
  import { getRPC } from '../../config/constants/networks.js';
47
31
  import { reportError } from '../../utils/reportError.js';
48
32
  import SafeHTMLComponent from '../../components/SafeHTMLComponent/index.js';
49
- import { findHighestTrueBondPrice } from '../Bonds/utils.js';
33
+ import { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers.js';
50
34
  import track from '../../utils/track.js';
51
35
  import { remove0xPrefix } from '../../utils/remove0xPrefix.js';
36
+ import { MCBuyComponentStyles } from '../../utils/campaignStyles.js';
52
37
  import useSOLAccount from '../../hooks/accounts/useSOLAccount.js';
53
38
  import { useSendReferenceId } from '../../hooks/useSendReferenceId.js';
54
39
  import LifiModal from '../LifiModal/LifiModal.js';
55
- import { getTokenProgramForMint } from '../../utils/solanaAtaHelper.js';
40
+ import { getTokenProgramForMint, getAtaWithCreateInstruction } from '../../utils/solanaAtaHelper.js';
41
+ import Flex from '../../components/uikit-sdk/Flex/index.js';
42
+ import Text from '../../components/uikit-sdk/Text/index.js';
43
+ import TooltipBubble from '../../components/uikit-sdk/TooltipBubble/index.js';
44
+ import Svg from '../../components/uikit-sdk/Svg/index.js';
45
+ import Button from '../../components/uikit-sdk/Button/Button.js';
56
46
 
57
47
  const BuyComponentSolana = ({ onDismiss, bondAddress, bondChain, isProjectView, setBillId, }) => {
58
48
  const SDKConfig = useSDKConfig();
@@ -180,7 +170,7 @@ const BuyComponentSolana = ({ onDismiss, bondAddress, bondChain, isProjectView,
180
170
  const treasuryAta = await getAssociatedTokenAddress(payoutMint, bondIssuancePda, true, payoutTokenProgram);
181
171
  const feePrincipalRecipientAta = await getAssociatedTokenAddress(principalMint, feeRecipient, true, principalTokenProgram);
182
172
  const partnerPrincipalRecipientAta = await getAssociatedTokenAddress(principalMint, partnerRecipient, true, principalTokenProgram);
183
- const [feePayoutRecipientAta] = PublicKey.findProgramAddressSync([feePayoutRecipient.toBuffer(), FEE_PAYOUT_CONST_SEED, payoutMint.toBuffer()], FEE_PAYOUT_PDA_PROGRAM);
173
+ const { address: feePayoutRecipientAta, createInstruction: createPayoutFeeRecipientAtaIx } = await getAtaWithCreateInstruction(connection, payoutMint, feePayoutRecipient, user);
184
174
  // Encode args
185
175
  const u64Codec = getU64Codec();
186
176
  const amountEncoded = Buffer.from(u64Codec.encode(amountBigInt));
@@ -214,8 +204,11 @@ const BuyComponentSolana = ({ onDismiss, bondAddress, bondChain, isProjectView,
214
204
  programId: PROGRAM_ID,
215
205
  data: instructionData,
216
206
  });
217
- // Create tx
218
- const transaction = new Transaction().add(instruction);
207
+ // Create tx (prepend payout fee recipient ATA creation if needed)
208
+ const transaction = new Transaction();
209
+ if (createPayoutFeeRecipientAtaIx)
210
+ transaction.add(createPayoutFeeRecipientAtaIx);
211
+ transaction.add(instruction);
219
212
  transaction.feePayer = user;
220
213
  const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');
221
214
  transaction.recentBlockhash = blockhash;
@@ -397,7 +390,7 @@ const BuyComponentSolana = ({ onDismiss, bondAddress, bondChain, isProjectView,
397
390
  const treasuryAta = await getAssociatedTokenAddress(payoutMint, bondIssuancePda, true, payoutTokenProgram);
398
391
  const feePrincipalRecipientAta = await getAssociatedTokenAddress(principalMint, feeRecipient, true, principalTokenProgram);
399
392
  const partnerPrincipalRecipientAta = await getAssociatedTokenAddress(principalMint, partnerRecipient, true, principalTokenProgram);
400
- const [feePayoutRecipientAta] = PublicKey.findProgramAddressSync([feePayoutRecipient.toBuffer(), FEE_PAYOUT_CONST_SEED, payoutMint.toBuffer()], FEE_PAYOUT_PDA_PROGRAM);
393
+ const { address: feePayoutRecipientAta, createInstruction: createPayoutFeeRecipientAtaIx } = await getAtaWithCreateInstruction(connection, payoutMint, feePayoutRecipient, accountSolana);
401
394
  const u64Codec = getU64Codec();
402
395
  const maxPriceEncoded = Buffer.from(u64Codec.encode(BigInt(maxPrice)));
403
396
  const bondKeys = [
@@ -456,10 +449,12 @@ const BuyComponentSolana = ({ onDismiss, bondAddress, bondChain, isProjectView,
456
449
  try {
457
450
  // Build swap instructions
458
451
  const { setupInstructions, swapInstruction } = buildSwapInstructions(swapResult);
459
- const allSetupInstructions = createPrincipalAtaIx
460
- ? [createPrincipalAtaIx, ...setupInstructions]
461
- : setupInstructions;
462
- const allInstructions = [...allSetupInstructions, swapInstruction, bondInstruction];
452
+ const setupIxs = [
453
+ ...(createPrincipalAtaIx ? [createPrincipalAtaIx] : []),
454
+ ...(createPayoutFeeRecipientAtaIx ? [createPayoutFeeRecipientAtaIx] : []),
455
+ ...setupInstructions,
456
+ ];
457
+ const allInstructions = [...setupIxs, swapInstruction, bondInstruction];
463
458
  const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');
464
459
  const combinedTx = new Transaction();
465
460
  combinedTx.add(...allInstructions);
@@ -504,10 +499,8 @@ const BuyComponentSolana = ({ onDismiss, bondAddress, bondChain, isProjectView,
504
499
  console.log('Executing TWO separate transactions...');
505
500
  // Execute swap first
506
501
  const { setupInstructions, swapInstruction } = buildSwapInstructions(swapResult);
507
- const allSetupInstructions = createPrincipalAtaIx
508
- ? [createPrincipalAtaIx, ...setupInstructions]
509
- : setupInstructions;
510
- const swapTx = new Transaction().add(...allSetupInstructions, swapInstruction);
502
+ const swapSetupIxs = [...(createPrincipalAtaIx ? [createPrincipalAtaIx] : []), ...setupInstructions];
503
+ const swapTx = new Transaction().add(...swapSetupIxs, swapInstruction);
511
504
  swapTx.feePayer = accountSolana;
512
505
  const { blockhash: swapBlockhash, lastValidBlockHeight: swapLastValid } = await connection.getLatestBlockhash('confirmed');
513
506
  swapTx.recentBlockhash = swapBlockhash;
@@ -523,7 +516,10 @@ const BuyComponentSolana = ({ onDismiss, bondAddress, bondChain, isProjectView,
523
516
  const actualAmount = BigInt(principalTokenBalance.value.amount);
524
517
  // REBUILD BOND INSTRUCTION WITH ACTUAL AMOUNT
525
518
  const actualBondInstruction = buildBondInstruction(actualAmount, maxPriceEncoded, bondKeys);
526
- const bondTx = new Transaction().add(actualBondInstruction);
519
+ const bondTx = new Transaction();
520
+ if (createPayoutFeeRecipientAtaIx)
521
+ bondTx.add(createPayoutFeeRecipientAtaIx);
522
+ bondTx.add(actualBondInstruction);
527
523
  bondTx.feePayer = accountSolana;
528
524
  const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');
529
525
  bondTx.recentBlockhash = blockhash;