@ape.swap/bonds-sdk 5.1.48 → 5.1.49-test.1

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 (183) hide show
  1. package/README.md +14 -7
  2. package/dist/components/ConnectAptosWalletButton/ConnectAptosWalletButton.d.ts +4 -0
  3. package/dist/components/ConnectAptosWalletButton/ConnectAptosWalletButton.js +39 -0
  4. package/dist/components/ConnectAptosWalletButton/ConnectAptosWalletButton.js.map +1 -0
  5. package/dist/components/ConnectSuiWalletButton/ConnectSuiWalletButton.d.ts +5 -0
  6. package/dist/components/ConnectoToVmBanners/ConnectToAptosBanner.d.ts +1 -0
  7. package/dist/components/ConnectoToVmBanners/ConnectToAptosBanner.js +49 -0
  8. package/dist/components/ConnectoToVmBanners/ConnectToAptosBanner.js.map +1 -0
  9. package/dist/components/ConnectoToVmBanners/ConnectToEvmBanner.js +11 -15
  10. package/dist/components/ConnectoToVmBanners/ConnectToEvmBanner.js.map +1 -1
  11. package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js +13 -17
  12. package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js.map +1 -1
  13. package/dist/components/ConnectoToVmBanners/ConnectToSuiBanner.d.ts +1 -0
  14. package/dist/components/ConnectoToVmBanners/ConnectToSuiBanner.js +44 -0
  15. package/dist/components/ConnectoToVmBanners/ConnectToSuiBanner.js.map +1 -0
  16. package/dist/components/TokenInfoAndName/index.js +2 -0
  17. package/dist/components/TokenInfoAndName/index.js.map +1 -1
  18. package/dist/components/TokenSelectorPanel/index.js +11 -1
  19. package/dist/components/TokenSelectorPanel/index.js.map +1 -1
  20. package/dist/components/Tooltip/Tooltip.js +11 -3
  21. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  22. package/dist/components/uikit-sdk/Svg/index.js +6 -0
  23. package/dist/components/uikit-sdk/Svg/index.js.map +1 -1
  24. package/dist/components/uikit-sdk/Svg/tokens/APTOS.d.ts +4 -0
  25. package/dist/components/uikit-sdk/Svg/tokens/APTOS.js +8 -0
  26. package/dist/components/uikit-sdk/Svg/tokens/APTOS.js.map +1 -0
  27. package/dist/components/uikit-sdk/Svg/tokens/SUI.d.ts +4 -0
  28. package/dist/components/uikit-sdk/Svg/tokens/SUI.js +8 -0
  29. package/dist/components/uikit-sdk/Svg/tokens/SUI.js.map +1 -0
  30. package/dist/components/uikit-sdk/Svg/types.d.ts +2 -0
  31. package/dist/components/uikit-sdk/Svg/types.js +2 -0
  32. package/dist/components/uikit-sdk/Svg/types.js.map +1 -1
  33. package/dist/components/uikit-sdk/TokenImage/index.js +15 -3
  34. package/dist/components/uikit-sdk/TokenImage/index.js.map +1 -1
  35. package/dist/config/constants/addresses.d.ts +1 -1
  36. package/dist/config/constants/addresses.js +2 -0
  37. package/dist/config/constants/addresses.js.map +1 -1
  38. package/dist/config/constants/aptosZapTokens.d.ts +23 -0
  39. package/dist/config/constants/aptosZapTokens.js +66 -0
  40. package/dist/config/constants/aptosZapTokens.js.map +1 -0
  41. package/dist/config/constants/chains.d.ts +2 -0
  42. package/dist/config/constants/chains.js +12 -0
  43. package/dist/config/constants/chains.js.map +1 -1
  44. package/dist/config/constants/networks.js +9 -0
  45. package/dist/config/constants/networks.js.map +1 -1
  46. package/dist/config/constants/queryKeys.js +23 -1
  47. package/dist/config/constants/queryKeys.js.map +1 -1
  48. package/dist/config/constants/suiZapTokens.d.ts +14 -0
  49. package/dist/config/constants/suiZapTokens.js +41 -0
  50. package/dist/config/constants/suiZapTokens.js.map +1 -0
  51. package/dist/config/constants/tokens.js +48 -0
  52. package/dist/config/constants/tokens.js.map +1 -0
  53. package/dist/config/constants/variables.d.ts +1 -1
  54. package/dist/config/constants/variables.js +2 -0
  55. package/dist/config/constants/variables.js.map +1 -1
  56. package/dist/constants/aptosConstants.d.ts +20 -0
  57. package/dist/constants/aptosConstants.js +78 -0
  58. package/dist/constants/aptosConstants.js.map +1 -0
  59. package/dist/constants/suiConstants.d.ts +18 -0
  60. package/dist/constants/suiConstants.js +61 -0
  61. package/dist/constants/suiConstants.js.map +1 -0
  62. package/dist/hooks/accounts/useAPTAccount.d.ts +30 -0
  63. package/dist/hooks/accounts/useAPTAccount.js +39 -0
  64. package/dist/hooks/accounts/useAPTAccount.js.map +1 -0
  65. package/dist/hooks/accounts/useSUIAccount.d.ts +7 -0
  66. package/dist/hooks/accounts/useSUIAccount.js +46 -0
  67. package/dist/hooks/accounts/useSUIAccount.js.map +1 -0
  68. package/dist/hooks/useMonitorTx.d.ts +2 -21
  69. package/dist/hooks/useMonitorTx.js.map +1 -1
  70. package/dist/hooks/useSortedZapList.js +7 -2
  71. package/dist/hooks/useSortedZapList.js.map +1 -1
  72. package/dist/hooks/useTokenFromZapList.js +1 -0
  73. package/dist/hooks/useTokenFromZapList.js.map +1 -1
  74. package/dist/providers/AptosWalletProvider.d.ts +5 -0
  75. package/dist/providers/SuiWalletProvider.d.ts +5 -0
  76. package/dist/state/balance/useCurrencyBalance.js +9 -0
  77. package/dist/state/balance/useCurrencyBalance.js.map +1 -1
  78. package/dist/state/balance/useCurrencyBalanceAptos.d.ts +14 -0
  79. package/dist/state/balance/useCurrencyBalanceAptos.js +75 -0
  80. package/dist/state/balance/useCurrencyBalanceAptos.js.map +1 -0
  81. package/dist/state/balance/useCurrencyBalanceSui.d.ts +14 -0
  82. package/dist/state/balance/useCurrencyBalanceSui.js +42 -0
  83. package/dist/state/balance/useCurrencyBalanceSui.js.map +1 -0
  84. package/dist/state/balance/useUserTokensBalance.js +19 -1
  85. package/dist/state/balance/useUserTokensBalance.js.map +1 -1
  86. package/dist/state/bonds/aptosBondsConfig.d.ts +4 -0
  87. package/dist/state/bonds/aptosBondsConfig.js +114 -0
  88. package/dist/state/bonds/aptosBondsConfig.js.map +1 -0
  89. package/dist/state/bonds/fetchBillsUserAptos.d.ts +4 -0
  90. package/dist/state/bonds/fetchBillsUserAptos.js +187 -0
  91. package/dist/state/bonds/fetchBillsUserAptos.js.map +1 -0
  92. package/dist/state/bonds/fetchBillsUserSui.d.ts +4 -0
  93. package/dist/state/bonds/fetchBillsUserSui.js +287 -0
  94. package/dist/state/bonds/fetchBillsUserSui.js.map +1 -0
  95. package/dist/state/bonds/fetchBondsDataAptos.d.ts +12 -0
  96. package/dist/state/bonds/fetchBondsDataAptos.js +114 -0
  97. package/dist/state/bonds/fetchBondsDataAptos.js.map +1 -0
  98. package/dist/state/bonds/fetchBondsDataSui.d.ts +13 -0
  99. package/dist/state/bonds/fetchBondsDataSui.js +205 -0
  100. package/dist/state/bonds/fetchBondsDataSui.js.map +1 -0
  101. package/dist/state/bonds/suiBondsConfig.d.ts +4 -0
  102. package/dist/state/bonds/suiBondsConfig.js +113 -0
  103. package/dist/state/bonds/suiBondsConfig.js.map +1 -0
  104. package/dist/state/bonds/useBondsData.js +32 -8
  105. package/dist/state/bonds/useBondsData.js.map +1 -1
  106. package/dist/state/bonds/useBondsList.js +15 -2
  107. package/dist/state/bonds/useBondsList.js.map +1 -1
  108. package/dist/state/bonds/useUserBonds.d.ts +1 -1
  109. package/dist/state/bonds/useUserBonds.js +34 -12
  110. package/dist/state/bonds/useUserBonds.js.map +1 -1
  111. package/dist/state/bonds/utils.js +8 -0
  112. package/dist/state/bonds/utils.js.map +1 -1
  113. package/dist/state/price/useCurrencyPrice.js +2 -1
  114. package/dist/state/price/useCurrencyPrice.js.map +1 -1
  115. package/dist/state/tiers/useTierPoints.js +1 -4
  116. package/dist/state/tiers/useTierPoints.js.map +1 -1
  117. package/dist/state/tokenPrices/useTokenPrices.js +16 -1
  118. package/dist/state/tokenPrices/useTokenPrices.js.map +1 -1
  119. package/dist/state/useSDKConfig.d.ts +4 -0
  120. package/dist/state/useSDKConfig.js.map +1 -1
  121. package/dist/state/zap/useAptosZapQuote.d.ts +28 -0
  122. package/dist/state/zap/useAptosZapQuote.js +83 -0
  123. package/dist/state/zap/useAptosZapQuote.js.map +1 -0
  124. package/dist/state/zap/useSoulZapBondQuote.js +1 -0
  125. package/dist/state/zap/useSoulZapBondQuote.js.map +1 -1
  126. package/dist/state/zap/useSuiZapQuote.d.ts +24 -0
  127. package/dist/state/zap/useSuiZapQuote.js +119 -0
  128. package/dist/state/zap/useSuiZapQuote.js.map +1 -0
  129. package/dist/types/aptosBonds.d.ts +152 -0
  130. package/dist/types/yourbonds.d.ts +3 -9
  131. package/dist/utils/aptosHelpers.d.ts +80 -0
  132. package/dist/utils/aptosHelpers.js +202 -0
  133. package/dist/utils/aptosHelpers.js.map +1 -0
  134. package/dist/utils/getNativeTicker.js +1 -0
  135. package/dist/utils/getNativeTicker.js.map +1 -1
  136. package/dist/utils/suiHelpers.d.ts +6 -0
  137. package/dist/utils/suiHelpers.js +106 -0
  138. package/dist/utils/suiHelpers.js.map +1 -0
  139. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js +8 -2
  140. package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
  141. package/dist/views/Bonds/components/BondRows/ModalHandler.js +18 -1
  142. package/dist/views/Bonds/components/BondRows/ModalHandler.js.map +1 -1
  143. package/dist/views/Bonds/components/ChainBanner/ChainBanner.js +29 -0
  144. package/dist/views/Bonds/components/ChainBanner/ChainBanner.js.map +1 -1
  145. package/dist/views/BuyBond/BuyBondModal.js +4 -1
  146. package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
  147. package/dist/views/BuyBond/BuyComponentAptos.d.ts +10 -0
  148. package/dist/views/BuyBond/BuyComponentAptos.js +349 -0
  149. package/dist/views/BuyBond/BuyComponentAptos.js.map +1 -0
  150. package/dist/views/BuyBond/BuyComponentSui.d.ts +10 -0
  151. package/dist/views/BuyBond/BuyComponentSui.js +459 -0
  152. package/dist/views/BuyBond/BuyComponentSui.js.map +1 -0
  153. package/dist/views/BuyBond/components/Estimations.js +2 -1
  154. package/dist/views/BuyBond/components/Estimations.js.map +1 -1
  155. package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js +8 -23
  156. package/dist/views/BuyBond/components/PointsLeftForNextTier/PointsLeftForNextTier.js.map +1 -1
  157. package/dist/views/YourBonds/YourBonds.js +19 -2
  158. package/dist/views/YourBonds/YourBonds.js.map +1 -1
  159. package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js +139 -5
  160. package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js.map +1 -1
  161. package/dist/views/YourBonds/components/ClaimAll/index.js +6 -2
  162. package/dist/views/YourBonds/components/ClaimAll/index.js.map +1 -1
  163. package/dist/views/YourBonds/components/UserBondRow/UserBondRowAptos.d.ts +6 -0
  164. package/dist/views/YourBonds/components/UserBondRow/UserBondRowAptos.js +109 -0
  165. package/dist/views/YourBonds/components/UserBondRow/UserBondRowAptos.js.map +1 -0
  166. package/dist/views/YourBonds/components/UserBondRow/UserBondRowSui.d.ts +6 -0
  167. package/dist/views/YourBonds/components/UserBondRow/UserBondRowSui.js +126 -0
  168. package/dist/views/YourBonds/components/UserBondRow/UserBondRowSui.js.map +1 -0
  169. package/dist/views/YourBonds/components/UserBondRow/index.d.ts +2 -0
  170. package/dist/views/YourBondsModal/YourBondsModal.js +3 -1
  171. package/dist/views/YourBondsModal/YourBondsModal.js.map +1 -1
  172. package/dist/views/YourBondsModal/components/Actions/ActionsAptos.d.ts +6 -0
  173. package/dist/views/YourBondsModal/components/Actions/ActionsAptos.js +96 -0
  174. package/dist/views/YourBondsModal/components/Actions/ActionsAptos.js.map +1 -0
  175. package/dist/views/YourBondsModal/components/Actions/ActionsSui.d.ts +6 -0
  176. package/dist/views/YourBondsModal/components/Actions/ActionsSui.js +115 -0
  177. package/dist/views/YourBondsModal/components/Actions/ActionsSui.js.map +1 -0
  178. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionAptos.d.ts +8 -0
  179. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionAptos.js +18 -0
  180. package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionAptos.js.map +1 -0
  181. package/dist/views/YourBondsModal/components/TransferBondModal/index.js +2 -1
  182. package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
  183. package/package.json +7 -4
@@ -19,12 +19,18 @@ const ActiveBondRows = ({ chain, bonds, hideTitles, showHotBonds }) => {
19
19
  const { namingPreference } = useSDKConfig();
20
20
  const [isOpen, setIsOpen] = useState(true);
21
21
  const key = chain;
22
- return (jsx(Flex, { className: "bondrowswithtitle", children: jsxs(AnimatePresence, { initial: false, children: [jsx(Flex, { onClick: () => setIsOpen(!isOpen), sx: { cursor: 'pointer' }, children: jsx(ChainTitle, { chain: chain, pt: '5px', hideTitles: bonds.length <= 0 || hideTitles, isOpen: isOpen }) }), isOpen && bonds.length > 0 && (jsxs(motion.div, { initial: { height: 0, overflow: 'hidden' }, animate: { height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }, exit: { height: 0, overflow: 'hidden' }, sx: {
22
+ return (jsx(Flex, { className: "bondrowswithtitle", children: jsxs(AnimatePresence, { initial: false, children: [jsx(Flex, { onClick: () => setIsOpen(!isOpen), sx: { cursor: 'pointer' }, children: jsx(ChainTitle, { chain: chain, pt: '5px', hideTitles: (bonds.length <= 0 && chain !== ChainId.SOL && chain !== ChainId.MONAD) || hideTitles, isOpen: isOpen }) }), isOpen && (bonds.length > 0 || chain === ChainId.SOL || chain === ChainId.MONAD) && (jsxs(motion.div, { initial: { height: 0, overflow: 'hidden' }, animate: { height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }, exit: { height: 0, overflow: 'hidden' }, sx: {
23
23
  position: 'relative',
24
24
  overflow: 'hidden',
25
25
  width: '100%',
26
26
  marginTop: '0px',
27
- }, className: "bonds-card-container", children: [[ChainId.MONAD, ChainId.SOL].includes(chain) && !hideTitles && jsx(ChainBanner, { chainId: chain }), bonds?.map((bondFromMap, index) => {
27
+ }, className: "bonds-card-container", children: [[
28
+ ChainId.SOL,
29
+ ChainId.MONAD,
30
+ // ChainId.APTOS,
31
+ // ChainId.SUI
32
+ ].includes(chain) &&
33
+ !hideTitles && jsx(ChainBanner, { chainId: chain }), bonds?.map((bondFromMap, index) => {
28
34
  // PRE TGE ROWS
29
35
  if (bondFromMap.billType === 'fcfs') {
30
36
  const bond = bondFromMap;
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveBondRows.js","sources":["../../../../../src/views/Bonds/components/BondRows/ActiveBondRows.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport ChainTitle from './ChainTitle'\nimport BondRow from './BondRow'\nimport { Flex } from 'theme-ui'\nimport { BondsData } from '../../../../types/bonds'\nimport { BaseBondConfig, ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport SwiperProvider from '../../../../contexts/SwiperProvider'\nimport HotBondCards from '../HotBondCards'\nimport ChainBanner from '../ChainBanner/ChainBanner'\nimport {\n getRemainingTokensString,\n getVestingTermsString,\n getVestingTermsTooltipString,\n remainingPercentage,\n} from '../../../../utils/displayHelpers'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport BigNumber from 'bignumber.js'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\n\n// Record<string, (BondsData | BaseBondConfig)[]>\n\nexport interface ActiveBondRowsProps {\n chain: number\n bonds: (BondsData | BaseBondConfig)[]\n hideTitles: boolean\n showHotBonds: boolean\n}\n\nconst ActiveBondRows: React.FC<ActiveBondRowsProps> = ({ chain, bonds, hideTitles, showHotBonds }) => {\n const { namingPreference } = useSDKConfig()\n const [isOpen, setIsOpen] = useState<boolean>(true)\n const key = chain\n\n return (\n <Flex className=\"bondrowswithtitle\" key={key}>\n <AnimatePresence initial={false}>\n <Flex onClick={() => setIsOpen(!isOpen)} sx={{ cursor: 'pointer' }}>\n <ChainTitle chain={chain} pt={'5px'} hideTitles={bonds.length <= 0 || hideTitles} isOpen={isOpen} />\n </Flex>\n {isOpen && bonds.length > 0 && (\n <motion.div\n initial={{ height: 0, overflow: 'hidden' }}\n animate={{ height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }}\n exit={{ height: 0, overflow: 'hidden' }}\n sx={{\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n marginTop: '0px',\n }}\n key={key}\n className=\"bonds-card-container\"\n >\n {[ChainId.MONAD, ChainId.SOL].includes(chain) && !hideTitles && <ChainBanner chainId={chain} />}\n {bonds?.map((bondFromMap, index) => {\n // PRE TGE ROWS\n\n if (bondFromMap.billType === 'fcfs') {\n const bond = bondFromMap as BondsData\n const totalPrincipalBilled =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalPrincipalBilled ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n const raiseGoal =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalRaise ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n\n const tokensRemaining = raiseGoal - totalPrincipalBilled\n const tokensRemainingUSD = tokensRemaining * (bond?.initPrice ?? 0)\n const percentageAvailable = 100 - Math.floor((totalPrincipalBilled * 100) / raiseGoal)\n const earnToken = bond?.earnToken?.symbol\n\n const baseBonus = bond?.trueBondPrices?.[0]?.bonus ?? 0\n const airdropBonus = bond?.airdropBonus ?? 0\n const bonus = baseBonus + airdropBonus\n const initialRelease = (bond?.initialRelease ?? 0) * 100\n\n const now = new Date().getTime()\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n return (\n <BondRow\n key={`${bond.contractAddress}-${bond.chainId}-${index}`}\n bondAddress={bond.contractAddress?.[bond.chainId] as string}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n bonus={saleHasFinished ? undefined : `${bonus}%`}\n airdropTooltip={bond.airdropTooltip}\n percentageAvailable={percentageAvailable}\n remainingTokensString={\n saleHasFinished\n ? `0 ${earnToken} ($0) `\n : `${formatNumberSI(tokensRemaining, 0)} ${earnToken} ($${formatNumberSI(tokensRemainingUSD, 2)})`\n }\n vestingTermString={\n saleHasFinished\n ? '-'\n : initialRelease === 100\n ? `0 D`\n : `${getTimePeriods(bond.vestingTerm).months} Mo`\n }\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bondSoldOut={saleHasFinished}\n shortDescription={bond.shortDescription}\n />\n )\n } else {\n // POST TGE BONDS AKA NORMAL BONDS\n\n const bond = bondFromMap as BondsData\n const bondAddress = bond?.contractAddress?.[bond?.chainId] as string\n const remainingTokensString = getRemainingTokensString(bond)\n return (\n <BondRow\n key={`${bondAddress}-${bond.chainId}-${index}`}\n bondAddress={bondAddress}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n trueBondPrices={namingPreference === 'Bonus' ? bond.trueBondPrices : undefined}\n minTier={bond?.minTier}\n vestingTermString={getVestingTermsString(bond)}\n vestingCliffString={getVestingTermsTooltipString(bond)}\n percentageAvailable={remainingPercentage(bond)}\n remainingTokensString={remainingTokensString}\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bonus={\n namingPreference === 'Discount'\n ? `${bond?.trueBondPrices?.[0]?.discountWithFee?.toFixed(2)}%`\n : undefined\n }\n shortDescription={bond.shortDescription}\n cgId={bond.cgId}\n dexscreener={bond?.dexscreener}\n />\n )\n }\n })}\n {showHotBonds && (\n <SwiperProvider>\n <HotBondCards />\n </SwiperProvider>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n )\n}\n\nexport default ActiveBondRows\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ActiveBondRows.js","sources":["../../../../../src/views/Bonds/components/BondRows/ActiveBondRows.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport ChainTitle from './ChainTitle'\nimport BondRow from './BondRow'\nimport { Flex } from 'theme-ui'\nimport { BondsData } from '../../../../types/bonds'\nimport { BaseBondConfig, ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport SwiperProvider from '../../../../contexts/SwiperProvider'\nimport HotBondCards from '../HotBondCards'\nimport ChainBanner from '../ChainBanner/ChainBanner'\nimport {\n getRemainingTokensString,\n getVestingTermsString,\n getVestingTermsTooltipString,\n remainingPercentage,\n} from '../../../../utils/displayHelpers'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport BigNumber from 'bignumber.js'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\n\n// Record<string, (BondsData | BaseBondConfig)[]>\n\nexport interface ActiveBondRowsProps {\n chain: number\n bonds: (BondsData | BaseBondConfig)[]\n hideTitles: boolean\n showHotBonds: boolean\n}\n\nconst ActiveBondRows: React.FC<ActiveBondRowsProps> = ({ chain, bonds, hideTitles, showHotBonds }) => {\n const { namingPreference } = useSDKConfig()\n const [isOpen, setIsOpen] = useState<boolean>(true)\n const key = chain\n\n return (\n <Flex className=\"bondrowswithtitle\" key={key}>\n <AnimatePresence initial={false}>\n <Flex onClick={() => setIsOpen(!isOpen)} sx={{ cursor: 'pointer' }}>\n <ChainTitle\n chain={chain}\n pt={'5px'}\n hideTitles={(bonds.length <= 0 && chain !== ChainId.SOL && chain !== ChainId.MONAD) || hideTitles}\n isOpen={isOpen}\n />\n </Flex>\n {isOpen && (bonds.length > 0 || chain === ChainId.SOL || chain === ChainId.MONAD) && (\n <motion.div\n initial={{ height: 0, overflow: 'hidden' }}\n animate={{ height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }}\n exit={{ height: 0, overflow: 'hidden' }}\n sx={{\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n marginTop: '0px',\n }}\n key={key}\n className=\"bonds-card-container\"\n >\n {[\n ChainId.SOL,\n ChainId.MONAD,\n // ChainId.APTOS,\n // ChainId.SUI\n ].includes(chain) &&\n !hideTitles && <ChainBanner chainId={chain} />}\n {bonds?.map((bondFromMap, index) => {\n // PRE TGE ROWS\n\n if (bondFromMap.billType === 'fcfs') {\n const bond = bondFromMap as BondsData\n const totalPrincipalBilled =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalPrincipalBilled ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n const raiseGoal =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalRaise ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n\n const tokensRemaining = raiseGoal - totalPrincipalBilled\n const tokensRemainingUSD = tokensRemaining * (bond?.initPrice ?? 0)\n const percentageAvailable = 100 - Math.floor((totalPrincipalBilled * 100) / raiseGoal)\n const earnToken = bond?.earnToken?.symbol\n\n const baseBonus = bond?.trueBondPrices?.[0]?.bonus ?? 0\n const airdropBonus = bond?.airdropBonus ?? 0\n const bonus = baseBonus + airdropBonus\n const initialRelease = (bond?.initialRelease ?? 0) * 100\n\n const now = new Date().getTime()\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n return (\n <BondRow\n key={`${bond.contractAddress}-${bond.chainId}-${index}`}\n bondAddress={bond.contractAddress?.[bond.chainId] as string}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n bonus={saleHasFinished ? undefined : `${bonus}%`}\n airdropTooltip={bond.airdropTooltip}\n percentageAvailable={percentageAvailable}\n remainingTokensString={\n saleHasFinished\n ? `0 ${earnToken} ($0) `\n : `${formatNumberSI(tokensRemaining, 0)} ${earnToken} ($${formatNumberSI(tokensRemainingUSD, 2)})`\n }\n vestingTermString={\n saleHasFinished\n ? '-'\n : initialRelease === 100\n ? `0 D`\n : `${getTimePeriods(bond.vestingTerm).months} Mo`\n }\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bondSoldOut={saleHasFinished}\n shortDescription={bond.shortDescription}\n />\n )\n } else {\n // POST TGE BONDS AKA NORMAL BONDS\n\n const bond = bondFromMap as BondsData\n const bondAddress = bond?.contractAddress?.[bond?.chainId] as string\n const remainingTokensString = getRemainingTokensString(bond)\n return (\n <BondRow\n key={`${bondAddress}-${bond.chainId}-${index}`}\n bondAddress={bondAddress}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n trueBondPrices={namingPreference === 'Bonus' ? bond.trueBondPrices : undefined}\n minTier={bond?.minTier}\n vestingTermString={getVestingTermsString(bond)}\n vestingCliffString={getVestingTermsTooltipString(bond)}\n percentageAvailable={remainingPercentage(bond)}\n remainingTokensString={remainingTokensString}\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bonus={\n namingPreference === 'Discount'\n ? `${bond?.trueBondPrices?.[0]?.discountWithFee?.toFixed(2)}%`\n : undefined\n }\n shortDescription={bond.shortDescription}\n cgId={bond.cgId}\n dexscreener={bond?.dexscreener}\n />\n )\n }\n })}\n {showHotBonds && (\n <SwiperProvider>\n <HotBondCards />\n </SwiperProvider>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n )\n}\n\nexport default ActiveBondRows\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -8,8 +8,11 @@ import useBondsData from '../../../../state/bonds/useBondsData.js';
8
8
  import { ChainId } from '@ape.swap/apeswap-lists';
9
9
  import useEVMAccount from '../../../../hooks/accounts/useEVMAccount.js';
10
10
  import useSOLAccount from '../../../../hooks/accounts/useSOLAccount.js';
11
+ import useAPTAccount from '../../../../hooks/accounts/useAPTAccount.js';
12
+ import useSUIAccount from '../../../../hooks/accounts/useSUIAccount.js';
11
13
  import useBondsList from '../../../../state/bonds/useBondsList.js';
12
14
  import { useQueryClient } from '@tanstack/react-query';
15
+ import { QUERY_KEYS } from '../../../../config/constants/queryKeys.js';
13
16
 
14
17
  /*
15
18
  * Basically this is a handler that controls which Modal is displayed to the user.
@@ -31,6 +34,8 @@ const ModalHandler = ({ onDismiss, bondAddress, bondChain, }) => {
31
34
  const { address } = useEVMAccount();
32
35
  const { publicKey } = useSOLAccount();
33
36
  const solanaAccount = publicKey?.toBase58();
37
+ const { address: aptosAccount } = useAPTAccount();
38
+ const { address: suiAccount } = useSUIAccount();
34
39
  const { data: bondList } = useBondsList();
35
40
  const queryClient = useQueryClient();
36
41
  // EVM - Look for billId on tx logs
@@ -62,12 +67,24 @@ const ModalHandler = ({ onDismiss, bondAddress, bondChain, }) => {
62
67
  if (!bondToRefetch)
63
68
  return;
64
69
  hasRefetched.current = true;
65
- getUserBonds(address, solanaAccount, [bondToRefetch], queryClient)
70
+ // Check cache first — if the bill is already in the cache (e.g. from
71
+ // a recent refetch or optimistic update), skip the network round-trip.
72
+ const cached = queryClient.getQueriesData({ queryKey: [QUERY_KEYS.USER_BONDS] });
73
+ const cachedBills = cached.flatMap(([, bills]) => bills ?? []);
74
+ const cachedBond = cachedBills.find((b) => b.id === billId);
75
+ if (cachedBond) {
76
+ setUserBill(cachedBond);
77
+ return;
78
+ }
79
+ getUserBonds(address, solanaAccount, aptosAccount, suiAccount, [bondToRefetch], queryClient)
66
80
  .then((bonds) => {
67
81
  const purchasedBond = bonds.find((bond) => {
68
82
  if (bond?.bond?.chainId === ChainId.SOL) {
69
83
  return bond.asset === billId;
70
84
  }
85
+ else if (bond?.bond?.chainId === ChainId.SUI) {
86
+ return bond.id === billId;
87
+ }
71
88
  else {
72
89
  return bond.id === billId;
73
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHandler.js","sources":["../../../../../src/views/Bonds/components/BondRows/ModalHandler.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react'\nimport { getUserBonds } from '../../../../state/bonds/useUserBonds'\nimport YourBondsModal from '../../../YourBondsModal/YourBondsModal'\nimport BuyBondModal from '../../../BuyBond/BuyBondModal'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport useSOLAccount from '../../../../hooks/accounts/useSOLAccount'\nimport useBondsList from '../../../../state/bonds/useBondsList'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { UserBill } from '../../../../types/yourbonds'\n\n/*\n * Basically this is a handler that controls which Modal is displayed to the user.\n * It will start by showing the buy modal and if a user purchases a bond, a hash will be set, this will initially trigger\n * a monitor of the txhash and the search for a bill Id. Finally, if a billId is found the YourBondModal will be shown.\n * */\n\nconst ModalHandler = ({\n onDismiss,\n bondAddress,\n bondChain,\n}: {\n onDismiss?: () => void\n bondAddress: string\n bondChain: number\n}) => {\n // State\n const [billId, setBillId] = useState('')\n const [afterFlowData, setAfterFlowData] = useState<{ buyTxHash: string; lostProfit?: string }>({\n buyTxHash: '',\n lostProfit: undefined,\n })\n const [userBill, setUserBill] = useState<UserBill>()\n\n // Hooks\n const { data: bondsData } = useBondsData()\n const locationPath = window.location.pathname\n const { data: txReceipt } = useMonitorTx(afterFlowData.buyTxHash, bondChain)\n const { address } = useEVMAccount()\n const { publicKey } = useSOLAccount()\n const solanaAccount = publicKey?.toBase58()\n const { data: bondList } = useBondsList()\n const queryClient = useQueryClient()\n\n // EVM - Look for billId on tx logs\n if (txReceipt) {\n try {\n const billNftAddress = bondsData?.find(\n (bond) =>\n bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase() &&\n bond.chainId === bondChain,\n )?.billNnftAddress?.[bondChain as ChainId]\n const { logs } = txReceipt\n const findBillNftLog = logs.find((log: any) => log.address.toLowerCase() === billNftAddress?.toLowerCase())\n const getBillNftIndex = findBillNftLog?.topics[findBillNftLog.topics.length - 1] as string\n const convertHexId = parseInt(getBillNftIndex, 16)\n if (!billId) {\n console.log('set Bill id: ' + convertHexId.toString())\n setBillId(convertHexId.toString())\n }\n } catch (e) {\n console.log(e)\n }\n }\n\n // Trigger refetch once txs are confirmed\n const hasRefetched = useRef(false)\n useEffect(() => {\n if (!hasRefetched.current) {\n if (billId) {\n console.log('Trigger user bonds refetch')\n const bondToRefetch = bondList?.find(\n (bond) =>\n bondAddress?.toLowerCase() === bond?.contractAddress?.[bond?.chainId]?.toLowerCase() &&\n bondChain === bond?.chainId,\n )\n if (!bondToRefetch) return\n hasRefetched.current = true\n getUserBonds(address!, solanaAccount, [bondToRefetch], queryClient)\n .then((bonds) => {\n const purchasedBond = bonds.find((bond) => {\n if (bond?.bond?.chainId === ChainId.SOL) {\n return bond.asset === billId\n } else {\n return bond.id === billId\n }\n })\n console.log(purchasedBond)\n if (!purchasedBond) {\n console.log(`No bond found for ${billId}`)\n }\n setUserBill(purchasedBond)\n })\n .catch((e) => {\n console.error(e)\n })\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [billId])\n\n return billId ? (\n <YourBondsModal userBill={userBill} onDismiss={onDismiss} lostProfit={afterFlowData.lostProfit} />\n ) : (\n <BuyBondModal\n bondAddress={bondAddress}\n bondChain={bondChain}\n handlePurchasedBond={(data) => setAfterFlowData(data)}\n setBillId={setBillId}\n onDismiss={() => {\n window.history.pushState({}, '', `${locationPath !== '/bonds' ? locationPath : '/bonds'}`)\n onDismiss?.()\n }}\n />\n )\n}\n\nexport default ModalHandler\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;AAaA;;;;AAIK;AAEL,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EACT,WAAW,EACX,SAAS,GAKV,KAAI;;IAEH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AACxC,IAAA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAA6C;AAC7F,QAAA,SAAS,EAAE,EAAE;AACb,QAAA,UAAU,EAAE,SAAS;AACtB,KAAA,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAY;;IAGpD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE;AAC1C,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ;AAC7C,IAAA,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;AAC5E,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE;AACnC,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE;AACrC,IAAA,MAAM,aAAa,GAAG,SAAS,EAAE,QAAQ,EAAE;IAC3C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE;AACzC,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;;IAGpC,IAAI,SAAS,EAAE;AACb,QAAA,IAAI;YACF,MAAM,cAAc,GAAG,SAAS,EAAE,IAAI,CACpC,CAAC,IAAI,KACH,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE;gBACnF,IAAI,CAAC,OAAO,KAAK,SAAS,CAC7B,EAAE,eAAe,GAAG,SAAoB,CAAC;AAC1C,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS;YAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE,WAAW,EAAE,CAAC;AAC3G,YAAA,MAAM,eAAe,GAAG,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAW;YAC1F,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AACtD,gBAAA,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YACpC;QACF;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAChB;IACF;;AAGA,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;IAClC,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACzB,IAAI,MAAM,EAAE;AACV,gBAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;gBACzC,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI,CAClC,CAAC,IAAI,KACH,WAAW,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE;AACpF,oBAAA,SAAS,KAAK,IAAI,EAAE,OAAO,CAC9B;AACD,gBAAA,IAAI,CAAC,aAAa;oBAAE;AACpB,gBAAA,YAAY,CAAC,OAAO,GAAG,IAAI;gBAC3B,YAAY,CAAC,OAAQ,EAAE,aAAa,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW;AAC/D,qBAAA,IAAI,CAAC,CAAC,KAAK,KAAI;oBACd,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;wBACxC,IAAI,IAAI,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,EAAE;AACvC,4BAAA,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM;wBAC9B;6BAAO;AACL,4BAAA,OAAO,IAAI,CAAC,EAAE,KAAK,MAAM;wBAC3B;AACF,oBAAA,CAAC,CAAC;AACF,oBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;oBAC1B,IAAI,CAAC,aAAa,EAAE;AAClB,wBAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAA,CAAE,CAAC;oBAC5C;oBACA,WAAW,CAAC,aAAa,CAAC;AAC5B,gBAAA,CAAC;AACA,qBAAA,KAAK,CAAC,CAAC,CAAC,KAAI;AACX,oBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAClB,gBAAA,CAAC,CAAC;YACN;QACF;;AAEF,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEZ,OAAO,MAAM,IACXA,GAAA,CAAC,cAAc,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,EAAA,CAAI,KAElGA,GAAA,CAAC,YAAY,EAAA,EACX,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC,EACrD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAK;YACd,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAA,EAAG,YAAY,KAAK,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAA,CAAE,CAAC;YAC1F,SAAS,IAAI;QACf,CAAC,EAAA,CACD,CACH;AACH;;;;"}
1
+ {"version":3,"file":"ModalHandler.js","sources":["../../../../../src/views/Bonds/components/BondRows/ModalHandler.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react'\nimport { getUserBonds } from '../../../../state/bonds/useUserBonds'\nimport YourBondsModal from '../../../YourBondsModal/YourBondsModal'\nimport BuyBondModal from '../../../BuyBond/BuyBondModal'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport useSOLAccount from '../../../../hooks/accounts/useSOLAccount'\nimport useAPTAccount from '../../../../hooks/accounts/useAPTAccount'\nimport useSUIAccount from '../../../../hooks/accounts/useSUIAccount'\nimport useBondsList from '../../../../state/bonds/useBondsList'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { QUERY_KEYS } from '../../../../config/constants/queryKeys'\n\n/*\n * Basically this is a handler that controls which Modal is displayed to the user.\n * It will start by showing the buy modal and if a user purchases a bond, a hash will be set, this will initially trigger\n * a monitor of the txhash and the search for a bill Id. Finally, if a billId is found the YourBondModal will be shown.\n * */\n\nconst ModalHandler = ({\n onDismiss,\n bondAddress,\n bondChain,\n}: {\n onDismiss?: () => void\n bondAddress: string\n bondChain: number\n}) => {\n // State\n const [billId, setBillId] = useState('')\n const [afterFlowData, setAfterFlowData] = useState<{ buyTxHash: string; lostProfit?: string }>({\n buyTxHash: '',\n lostProfit: undefined,\n })\n const [userBill, setUserBill] = useState<UserBill>()\n\n // Hooks\n const { data: bondsData } = useBondsData()\n const locationPath = window.location.pathname\n const { data: txReceipt } = useMonitorTx(afterFlowData.buyTxHash, bondChain)\n const { address } = useEVMAccount()\n const { publicKey } = useSOLAccount()\n const solanaAccount = publicKey?.toBase58()\n const { address: aptosAccount } = useAPTAccount()\n const { address: suiAccount } = useSUIAccount()\n const { data: bondList } = useBondsList()\n const queryClient = useQueryClient()\n\n // EVM - Look for billId on tx logs\n if (txReceipt) {\n try {\n const billNftAddress = bondsData?.find(\n (bond) =>\n bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase() &&\n bond.chainId === bondChain,\n )?.billNnftAddress?.[bondChain as ChainId]\n const { logs } = txReceipt\n const findBillNftLog = logs.find((log: any) => log.address.toLowerCase() === billNftAddress?.toLowerCase())\n const getBillNftIndex = findBillNftLog?.topics[findBillNftLog.topics.length - 1] as string\n const convertHexId = parseInt(getBillNftIndex, 16)\n if (!billId) {\n console.log('set Bill id: ' + convertHexId.toString())\n setBillId(convertHexId.toString())\n }\n } catch (e) {\n console.log(e)\n }\n }\n\n // Trigger refetch once txs are confirmed\n const hasRefetched = useRef(false)\n useEffect(() => {\n if (!hasRefetched.current) {\n if (billId) {\n console.log('Trigger user bonds refetch')\n const bondToRefetch = bondList?.find(\n (bond) =>\n bondAddress?.toLowerCase() === bond?.contractAddress?.[bond?.chainId]?.toLowerCase() &&\n bondChain === bond?.chainId,\n )\n if (!bondToRefetch) return\n hasRefetched.current = true\n\n // Check cache first — if the bill is already in the cache (e.g. from\n // a recent refetch or optimistic update), skip the network round-trip.\n const cached = queryClient.getQueriesData<UserBill[] | undefined>({ queryKey: [QUERY_KEYS.USER_BONDS] })\n const cachedBills = cached.flatMap(([, bills]) => bills ?? [])\n const cachedBond = cachedBills.find((b) => b.id === billId)\n if (cachedBond) {\n setUserBill(cachedBond)\n return\n }\n\n getUserBonds(address!, solanaAccount!, aptosAccount!, suiAccount!, [bondToRefetch], queryClient)\n .then((bonds) => {\n const purchasedBond = bonds.find((bond) => {\n if (bond?.bond?.chainId === ChainId.SOL) {\n return bond.asset === billId\n } else if (bond?.bond?.chainId === ChainId.SUI) {\n return bond.id === billId\n } else {\n return bond.id === billId\n }\n })\n console.log(purchasedBond)\n if (!purchasedBond) {\n console.log(`No bond found for ${billId}`)\n }\n setUserBill(purchasedBond)\n })\n .catch((e) => {\n console.error(e)\n })\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [billId])\n\n return billId ? (\n <YourBondsModal userBill={userBill} onDismiss={onDismiss} lostProfit={afterFlowData.lostProfit} />\n ) : (\n <BuyBondModal\n bondAddress={bondAddress}\n bondChain={bondChain}\n handlePurchasedBond={(data) => setAfterFlowData(data)}\n setBillId={setBillId}\n onDismiss={() => {\n window.history.pushState({}, '', `${locationPath !== '/bonds' ? locationPath : '/bonds'}`)\n onDismiss?.()\n }}\n />\n )\n}\n\nexport default ModalHandler\n"],"names":["_jsx"],"mappings":"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"}
@@ -24,6 +24,35 @@ const BANNER_INFO = {
24
24
  backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440198/mobileBanner_x9tii9.png',
25
25
  cta: '?modal=rakurai',
26
26
  },
27
+ // TODO(APTOS): replace placeholder images and "LEARN MORE" cta with final Aptos assets.
28
+ // Currently reuses Solana background images.
29
+ [ChainId.APTOS]: {
30
+ title: 'Bonds are now Live on Aptos',
31
+ subtitle: 'Get tokens at a discount on Aptos. Move-powered, sub-second finality.',
32
+ buttons: [
33
+ {
34
+ label: 'LEARN MORE',
35
+ cta: 'https://aptoslabs.com',
36
+ variant: variants.SECONDARY,
37
+ },
38
+ ],
39
+ background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751667949/background_ldg88q.png',
40
+ backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751668240/backgroundMobile_lht5tu.png',
41
+ },
42
+ // TODO(SUI): replace placeholder images and CTA with final Sui assets.
43
+ [ChainId.SUI]: {
44
+ title: 'Bonds are now Live on Sui',
45
+ subtitle: 'Get tokens at a discount on Sui. Move-powered, parallel execution.',
46
+ buttons: [
47
+ {
48
+ label: 'LEARN MORE',
49
+ cta: 'https://sui.io',
50
+ variant: variants.SECONDARY,
51
+ },
52
+ ],
53
+ background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751667949/background_ldg88q.png',
54
+ backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751668240/backgroundMobile_lht5tu.png',
55
+ },
27
56
  };
28
57
  const ChainBanner = ({ chainId }) => {
29
58
  const bannerCTA = BANNER_INFO[chainId]?.cta;
@@ -1 +1 @@
1
- {"version":3,"file":"ChainBanner.js","sources":["../../../../../src/views/Bonds/components/ChainBanner/ChainBanner.tsx"],"sourcesContent":["import React from 'react'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { variants } from '../../../../components/uikit-sdk/Button/types'\n\ninterface ButtonInfo {\n label: string\n cta?: string\n variant?: variants\n background?: string\n}\n\ninterface BannerInfo {\n title?: string\n subtitle?: string\n buttons?: ButtonInfo[]\n background: string\n backgroundMobile: string\n cta?: string\n}\n\nconst BANNER_INFO: Partial<Record<ChainId, BannerInfo>> = {\n // MONAD IS BROKEN, TODO fix it!\n [ChainId.MONAD]: {\n title: 'Monad Mainnet Bonds',\n subtitle: 'Launch Coming Soon.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://x.com/ApeBond/status/1995538519536578880?s=20',\n variant: variants.SECONDARY,\n },\n { label: 'Launch Yours', cta: 'https://forms.clickup.com/3080492/f/2y09c-6585/O175DYTK4PMR6P4CZA' },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1/banner_jpkg38.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1/banner-mobile_y6xveu.png',\n },\n [ChainId.SOL]: {\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440199/desktopBanner_fse6ls.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440198/mobileBanner_x9tii9.png',\n cta: '?modal=rakurai',\n },\n}\n\nconst ChainBanner = ({ chainId }: { chainId: ChainId }) => {\n const bannerCTA = BANNER_INFO[chainId]?.cta\n\n const handleClickOnBanner = () => {\n if (!bannerCTA) return\n // Next.js exposes the router singleton on window.next.router (Pages Router, dev + prod)\n const nextRouter = typeof window !== 'undefined' && (window as any).__NEXT_DATA__ && (window as any).next?.router\n if (nextRouter) {\n nextRouter.push(bannerCTA)\n return\n }\n // Fallback for non-Next.js environments\n window.history.pushState({}, '', bannerCTA)\n }\n\n return (\n <div\n key={`banner-container-${chainId}`}\n className=\"banner-container\"\n sx={{\n backgroundImage: [\n `url(${BANNER_INFO[chainId]?.backgroundMobile})`,\n `url(${BANNER_INFO[chainId]?.backgroundMobile})`,\n `url(${BANNER_INFO[chainId]?.backgroundMobile})`,\n `url(${BANNER_INFO[chainId]?.background})`,\n `url(${BANNER_INFO[chainId]?.background})`,\n ],\n cursor: bannerCTA ? 'pointer' : 'unset',\n }}\n onClick={handleClickOnBanner}\n >\n <div className=\"banner-title\">{BANNER_INFO[chainId]?.title}</div>\n <div className=\"banner-subtitle\">{BANNER_INFO[chainId]?.subtitle}</div>\n <div className=\"banner-actions\">\n {BANNER_INFO[chainId]?.buttons?.map((button, index) => (\n <Button\n key={`banner-button-${index}`}\n className=\"action-button\"\n onClick={() => window.open(button.cta, '_blank')}\n variant={button.variant || variants.PRIMARY}\n >\n {button.label}\n </Button>\n ))}\n </div>\n </div>\n )\n}\n\nexport default ChainBanner\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ChainBanner.js","sources":["../../../../../src/views/Bonds/components/ChainBanner/ChainBanner.tsx"],"sourcesContent":["import React from 'react'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { variants } from '../../../../components/uikit-sdk/Button/types'\n\ninterface ButtonInfo {\n label: string\n cta?: string\n variant?: variants\n background?: string\n}\n\ninterface BannerInfo {\n title?: string\n subtitle?: string\n buttons?: ButtonInfo[]\n background: string\n backgroundMobile: string\n cta?: string\n}\n\nconst BANNER_INFO: Partial<Record<ChainId, BannerInfo>> = {\n // MONAD IS BROKEN, TODO fix it!\n [ChainId.MONAD]: {\n title: 'Monad Mainnet Bonds',\n subtitle: 'Launch Coming Soon.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://x.com/ApeBond/status/1995538519536578880?s=20',\n variant: variants.SECONDARY,\n },\n { label: 'Launch Yours', cta: 'https://forms.clickup.com/3080492/f/2y09c-6585/O175DYTK4PMR6P4CZA' },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1/banner_jpkg38.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1/banner-mobile_y6xveu.png',\n },\n [ChainId.SOL]: {\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440199/desktopBanner_fse6ls.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440198/mobileBanner_x9tii9.png',\n cta: '?modal=rakurai',\n },\n // TODO(APTOS): replace placeholder images and \"LEARN MORE\" cta with final Aptos assets.\n // Currently reuses Solana background images.\n [ChainId.APTOS]: {\n title: 'Bonds are now Live on Aptos',\n subtitle: 'Get tokens at a discount on Aptos. Move-powered, sub-second finality.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://aptoslabs.com',\n variant: variants.SECONDARY,\n },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751667949/background_ldg88q.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751668240/backgroundMobile_lht5tu.png',\n },\n // TODO(SUI): replace placeholder images and CTA with final Sui assets.\n [ChainId.SUI]: {\n title: 'Bonds are now Live on Sui',\n subtitle: 'Get tokens at a discount on Sui. Move-powered, parallel execution.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://sui.io',\n variant: variants.SECONDARY,\n },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751667949/background_ldg88q.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751668240/backgroundMobile_lht5tu.png',\n },\n}\n\nconst ChainBanner = ({ chainId }: { chainId: ChainId }) => {\n const bannerCTA = BANNER_INFO[chainId]?.cta\n\n const handleClickOnBanner = () => {\n if (!bannerCTA) return\n // Next.js exposes the router singleton on window.next.router (Pages Router, dev + prod)\n const nextRouter = typeof window !== 'undefined' && (window as any).__NEXT_DATA__ && (window as any).next?.router\n if (nextRouter) {\n nextRouter.push(bannerCTA)\n return\n }\n // Fallback for non-Next.js environments\n window.history.pushState({}, '', bannerCTA)\n }\n\n return (\n <div\n key={`banner-container-${chainId}`}\n className=\"banner-container\"\n sx={{\n backgroundImage: [\n `url(${BANNER_INFO[chainId]?.backgroundMobile})`,\n `url(${BANNER_INFO[chainId]?.backgroundMobile})`,\n `url(${BANNER_INFO[chainId]?.backgroundMobile})`,\n `url(${BANNER_INFO[chainId]?.background})`,\n `url(${BANNER_INFO[chainId]?.background})`,\n ],\n cursor: bannerCTA ? 'pointer' : 'unset',\n }}\n onClick={handleClickOnBanner}\n >\n <div className=\"banner-title\">{BANNER_INFO[chainId]?.title}</div>\n <div className=\"banner-subtitle\">{BANNER_INFO[chainId]?.subtitle}</div>\n <div className=\"banner-actions\">\n {BANNER_INFO[chainId]?.buttons?.map((button, index) => (\n <Button\n key={`banner-button-${index}`}\n className=\"action-button\"\n onClick={() => window.open(button.cta, '_blank')}\n variant={button.variant || variants.PRIMARY}\n >\n {button.label}\n </Button>\n ))}\n </div>\n </div>\n )\n}\n\nexport default ChainBanner\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -2,10 +2,13 @@ import { jsx } from 'theme-ui/jsx-runtime';
2
2
  import Modal from '../../components/uikit-sdk/Modal/index.js';
3
3
  import BuyComponent from './BuyComponent.js';
4
4
  import BuyComponentSolana from './BuyComponentSolana.js';
5
+ import BuyComponentAptos from './BuyComponentAptos.js';
6
+ import BuyComponentSui from './BuyComponentSui.js';
5
7
  import { ChainId } from '@ape.swap/apeswap-lists';
6
8
 
7
9
  const BuyBondModal = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond, setBillId, }) => {
8
- return (jsx(Modal, { className: "modal", onDismiss: onDismiss, sx: { width: '400px', maxWidth: '700px', mt: '-10px', p: '0px' }, children: bondChain === ChainId.SOL ? (jsx(BuyComponentSolana, { onDismiss: onDismiss, bondAddress: bondAddress, bondChain: bondChain, setBillId: setBillId })) : (jsx(BuyComponent, { onDismiss: onDismiss, bondAddress: bondAddress, bondChain: bondChain, handlePurchasedBond: handlePurchasedBond })) }));
10
+ return (jsx(Modal, { className: "modal", onDismiss: onDismiss, sx: { width: '400px', maxWidth: '700px', mt: '-10px', p: '0px' }, children: bondChain === ChainId.SOL ? (jsx(BuyComponentSolana, { onDismiss: onDismiss, bondAddress: bondAddress, bondChain: bondChain, setBillId: setBillId })) : bondChain === ChainId.APTOS ? (jsx(BuyComponentAptos, { onDismiss: onDismiss, bondAddress: bondAddress, bondChain: bondChain, setBillId: setBillId })) : bondChain === ChainId.SUI ? (jsx(BuyComponentSui, { onDismiss: onDismiss, bondAddress: bondAddress, bondChain: bondChain, setBillId: setBillId })) : (jsx(BuyComponent //evm
11
+ , { onDismiss: onDismiss, bondAddress: bondAddress, bondChain: bondChain, handlePurchasedBond: handlePurchasedBond })) }));
9
12
  };
10
13
 
11
14
  export { BuyBondModal as default };
@@ -1 +1 @@
1
- {"version":3,"file":"BuyBondModal.js","sources":["../../../src/views/BuyBond/BuyBondModal.tsx"],"sourcesContent":["import React from 'react'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport BuyBond from './BuyComponent'\nimport BuyComponentSolana from './BuyComponentSolana'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport interface PurchasedBondData {\n buyTxHash: string\n lostProfit?: string\n}\n\nexport interface BuyBondProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (data: PurchasedBondData) => void\n setBillId?: (id: string) => void\n isProjectView?: boolean\n}\n\nconst BuyBondModal: React.FC<BuyBondProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n handlePurchasedBond,\n setBillId,\n}) => {\n return (\n <Modal className=\"modal\" onDismiss={onDismiss} sx={{ width: '400px', maxWidth: '700px', mt: '-10px', p: '0px' }}>\n {bondChain === ChainId.SOL ? (\n <BuyComponentSolana\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n setBillId={setBillId}\n />\n ) : (\n <BuyBond\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n handlePurchasedBond={handlePurchasedBond}\n />\n )}\n </Modal>\n )\n}\n\nexport default BuyBondModal\n"],"names":["_jsx","BuyBond"],"mappings":";;;;;;AAoBA,MAAM,YAAY,GAA2B,CAAC,EAC5C,SAAS,EACT,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,SAAS,GACV,KAAI;AACH,IAAA,QACEA,GAAA,CAAC,KAAK,IAAC,SAAS,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,YAC5G,SAAS,KAAK,OAAO,CAAC,GAAG,IACxBA,GAAA,CAAC,kBAAkB,EAAA,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EAAA,CACpB,KAEFA,GAAA,CAACC,YAAO,EAAA,EACN,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,GACxC,CACH,EAAA,CACK;AAEZ;;;;"}
1
+ {"version":3,"file":"BuyBondModal.js","sources":["../../../src/views/BuyBond/BuyBondModal.tsx"],"sourcesContent":["import React from 'react'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport BuyBond from './BuyComponent'\nimport BuyComponentSolana from './BuyComponentSolana'\nimport BuyComponentAptos from './BuyComponentAptos'\nimport BuyComponentSui from './BuyComponentSui'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport interface PurchasedBondData {\n buyTxHash: string\n lostProfit?: string\n}\n\nexport interface BuyBondProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (data: PurchasedBondData) => void\n setBillId?: (id: string) => void\n isProjectView?: boolean\n}\n\nconst BuyBondModal: React.FC<BuyBondProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n handlePurchasedBond,\n setBillId,\n}) => {\n return (\n <Modal className=\"modal\" onDismiss={onDismiss} sx={{ width: '400px', maxWidth: '700px', mt: '-10px', p: '0px' }}>\n {bondChain === ChainId.SOL ? (\n <BuyComponentSolana\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n setBillId={setBillId}\n />\n ) : bondChain === ChainId.APTOS ? (\n <BuyComponentAptos\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n setBillId={setBillId}\n />\n ) : bondChain === ChainId.SUI ? (\n <BuyComponentSui onDismiss={onDismiss} bondAddress={bondAddress} bondChain={bondChain} setBillId={setBillId} />\n ) : (\n <BuyBond //evm\n onDismiss={onDismiss}\n bondAddress={bondAddress}\n bondChain={bondChain}\n handlePurchasedBond={handlePurchasedBond}\n />\n )}\n </Modal>\n )\n}\n\nexport default BuyBondModal\n"],"names":["_jsx","BuyBond"],"mappings":";;;;;;;;AAsBA,MAAM,YAAY,GAA2B,CAAC,EAC5C,SAAS,EACT,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,SAAS,GACV,KAAI;AACH,IAAA,QACEA,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAA,QAAA,EAC5G,SAAS,KAAK,OAAO,CAAC,GAAG,IACxBA,GAAA,CAAC,kBAAkB,EAAA,EACjB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EAAA,CACpB,IACA,SAAS,KAAK,OAAO,CAAC,KAAK,IAC7BA,GAAA,CAAC,iBAAiB,EAAA,EAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EAAA,CACpB,IACA,SAAS,KAAK,OAAO,CAAC,GAAG,IAC3BA,GAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAA,CAAI,KAE/GA,GAAA,CAACC,YAAO;AACN,UAAA,EAAA,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,GACxC,CACH,EAAA,CACK;AAEZ;;;;"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export interface BuyComponentAptosProps {
3
+ onDismiss?: () => void;
4
+ bondAddress?: string;
5
+ bondChain?: number;
6
+ setBillId?: (id: string) => void;
7
+ isProjectView?: boolean;
8
+ }
9
+ declare const BuyComponentAptos: React.FC<BuyComponentAptosProps>;
10
+ export default BuyComponentAptos;