@ape.swap/bonds-sdk 3.1.8 → 3.1.9-test.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/BondFilters/BondFilters.js +41 -0
- package/dist/components/BondFilters/BondFilters.js.map +1 -0
- package/dist/components/ChainOptionList/ChainOptionsButtons.js +35 -0
- package/dist/components/ChainOptionList/ChainOptionsButtons.js.map +1 -0
- package/dist/components/ChainOptionList/ChainOptionsList.js +41 -0
- package/dist/components/ChainOptionList/ChainOptionsList.js.map +1 -0
- package/dist/components/ChainOptionList/constants.js +11 -0
- package/dist/components/ChainOptionList/constants.js.map +1 -0
- package/dist/components/ChainOptionList/styles.js +54 -0
- package/dist/components/ChainOptionList/styles.js.map +1 -0
- package/dist/components/ConnectButton/AppKitButton.js +22 -0
- package/dist/components/ConnectButton/AppKitButton.js.map +1 -0
- package/dist/components/ConnectButton/RainbowKitButton.js +35 -0
- package/dist/components/ConnectButton/RainbowKitButton.js.map +1 -0
- package/dist/components/ConnectButton/index.js +26 -0
- package/dist/components/ConnectButton/index.js.map +1 -0
- package/dist/components/FavIcons/AddFavToken.js +34 -0
- package/dist/components/FavIcons/AddFavToken.js.map +1 -0
- package/dist/components/FavIcons/FavFilter.js +29 -0
- package/dist/components/FavIcons/FavFilter.js.map +1 -0
- package/dist/components/LoadingSpinner/index.js +50 -0
- package/dist/components/LoadingSpinner/index.js.map +1 -0
- package/dist/components/MenuSelect/MenuSelect.js +30 -0
- package/dist/components/MenuSelect/MenuSelect.js.map +1 -0
- package/dist/components/MenuSelect/RecommendationSelector.js +57 -0
- package/dist/components/MenuSelect/RecommendationSelector.js.map +1 -0
- package/dist/components/NetworkFilter/index.js +112 -0
- package/dist/components/NetworkFilter/index.js.map +1 -0
- package/dist/components/PlaceholderMonkey/index.js +31 -0
- package/dist/components/PlaceholderMonkey/index.js.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.js +11 -0
- package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/components/ProgressBar/ProgressBarWrapper.js +23 -0
- package/dist/components/ProgressBar/ProgressBarWrapper.js.map +1 -0
- package/dist/components/ProgressBar/styles.js +15 -0
- package/dist/components/ProgressBar/styles.js.map +1 -0
- package/dist/components/SafeHTMLComponent/index.js +30 -0
- package/dist/components/SafeHTMLComponent/index.js.map +1 -0
- package/dist/components/SlippageModal/index.js +70 -0
- package/dist/components/SlippageModal/index.js.map +1 -0
- package/dist/components/StepBubble/index.js +61 -0
- package/dist/components/StepBubble/index.js.map +1 -0
- package/dist/components/Toast/index.js +55 -0
- package/dist/components/Toast/index.js.map +1 -0
- package/dist/components/Toast/styles.js +30 -0
- package/dist/components/Toast/styles.js.map +1 -0
- package/dist/components/TokenInfoAndName/index.js +66 -0
- package/dist/components/TokenInfoAndName/index.js.map +1 -0
- package/dist/components/TokenSelectorModal/TokenRow.js +31 -0
- package/dist/components/TokenSelectorModal/TokenRow.js.map +1 -0
- package/dist/components/TokenSelectorModal/index.js +62 -0
- package/dist/components/TokenSelectorModal/index.js.map +1 -0
- package/dist/components/TokenSelectorPanel/index.js +55 -0
- package/dist/components/TokenSelectorPanel/index.js.map +1 -0
- package/dist/components/Tooltip/ButtonsRow.js +36 -0
- package/dist/components/Tooltip/ButtonsRow.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +46 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/Tooltip/styles.js +32 -0
- package/dist/components/Tooltip/styles.js.map +1 -0
- package/dist/components/YouTooltip/YouTooltip.js +44 -0
- package/dist/components/YouTooltip/YouTooltip.js.map +1 -0
- package/dist/components/uikit-sdk/Button/Button.js +84 -0
- package/dist/components/uikit-sdk/Button/Button.js.map +1 -0
- package/dist/components/uikit-sdk/Button/IconButton.js +23 -0
- package/dist/components/uikit-sdk/Button/IconButton.js.map +1 -0
- package/dist/components/uikit-sdk/Button/styles.js +31 -0
- package/dist/components/uikit-sdk/Button/styles.js.map +1 -0
- package/dist/components/uikit-sdk/Button/types.js +39 -0
- package/dist/components/uikit-sdk/Button/types.js.map +1 -0
- package/dist/components/uikit-sdk/Checkbox/index.js +25 -0
- package/dist/components/uikit-sdk/Checkbox/index.js.map +1 -0
- package/dist/components/uikit-sdk/Checkbox/types.js +8 -0
- package/dist/components/uikit-sdk/Checkbox/types.js.map +1 -0
- package/dist/components/uikit-sdk/Flex/index.js +9 -0
- package/dist/components/uikit-sdk/Flex/index.js.map +1 -0
- package/dist/components/uikit-sdk/Input/Input.js +53 -0
- package/dist/components/uikit-sdk/Input/Input.js.map +1 -0
- package/dist/components/uikit-sdk/LoadingDots/index.js +41 -0
- package/dist/components/uikit-sdk/LoadingDots/index.js.map +1 -0
- package/dist/components/uikit-sdk/Modal/ModalHeader.js +13 -0
- package/dist/components/uikit-sdk/Modal/ModalHeader.js.map +1 -0
- package/dist/components/uikit-sdk/Modal/index.js +26 -0
- package/dist/components/uikit-sdk/Modal/index.js.map +1 -0
- package/dist/components/uikit-sdk/Modal/styles.js +47 -0
- package/dist/components/uikit-sdk/Modal/styles.js.map +1 -0
- package/dist/components/uikit-sdk/Select/Select.js +51 -0
- package/dist/components/uikit-sdk/Select/Select.js.map +1 -0
- package/dist/components/uikit-sdk/Select/SelectItem.js +20 -0
- package/dist/components/uikit-sdk/Select/SelectItem.js.map +1 -0
- package/dist/components/uikit-sdk/Select/styles.js +50 -0
- package/dist/components/uikit-sdk/Select/styles.js.map +1 -0
- package/dist/components/uikit-sdk/Select/types.d.ts +1 -1
- package/dist/components/uikit-sdk/Select/types.js +39 -0
- package/dist/components/uikit-sdk/Select/types.js.map +1 -0
- package/dist/components/uikit-sdk/Skeleton/index.js +16 -0
- package/dist/components/uikit-sdk/Skeleton/index.js.map +1 -0
- package/dist/components/uikit-sdk/Skeleton/styles.js +43 -0
- package/dist/components/uikit-sdk/Skeleton/styles.js.map +1 -0
- package/dist/components/uikit-sdk/Skeleton/types.js +13 -0
- package/dist/components/uikit-sdk/Skeleton/types.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/AbondFullLogo.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/AbondFullLogo.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/AbondSmallLogo.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/AbondSmallLogo.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/AccountMonkey.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/AccountMonkey.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/AllChains.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/AllChains.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/ApebondLogo.js +19 -0
- package/dist/components/uikit-sdk/Svg/Icons/ApebondLogo.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/ApeswapSmallLogo.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/ApeswapSmallLogo.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Arrow.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Arrow.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Audit.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Audit.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/BananaIcon.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/BananaIcon.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/BillsM1.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/BillsM1.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/BillsM2.js +19 -0
- package/dist/components/uikit-sdk/Svg/Icons/BillsM2.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/BillsM3.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/BillsM3.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Bridge.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Bridge.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Bubble.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Bubble.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Calculator.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Calculator.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Calendar.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Calendar.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Cancelled.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Cancelled.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Card.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Card.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Caret.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Caret.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Chain.js +10 -0
- package/dist/components/uikit-sdk/Svg/Icons/Chain.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Chart.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Chart.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Chat.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Chat.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Close.js +11 -0
- package/dist/components/uikit-sdk/Svg/Icons/Close.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Cog.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Cog.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Collapse.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Collapse.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Copy.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Copy.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Discord.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Discord.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/DiscordNew.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/DiscordNew.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Docs.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Docs.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/DocsV2.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/DocsV2.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Ellipse.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Ellipse.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Error.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Error.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Expand.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Expand.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Explorer.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Explorer.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/External.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/External.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Farcaster.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Farcaster.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Farm.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Farm.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Fav.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Fav.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/FilledURL.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/FilledURL.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Fire.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Fire.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/FirePink.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/FirePink.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Frame.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Frame.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/FullLogo.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/FullLogo.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Gnana.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Gnana.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/GreenShield.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/GreenShield.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Hamburger.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Hamburger.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/HamburgerClosed.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/HamburgerClosed.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Home.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Home.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Hot.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Hot.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Info.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Info.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/InfoSolid.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/InfoSolid.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Insight.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Insight.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Instagram.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Instagram.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Island.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Island.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/LanguageIcon.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/LanguageIcon.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/LineChart.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/LineChart.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/LiquidityIcon.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/LiquidityIcon.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Logout.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Logout.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Medium.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Medium.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/MenuSettings.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/MenuSettings.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Message.js +11 -0
- package/dist/components/uikit-sdk/Svg/Icons/Message.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Migrate.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Migrate.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Moon.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Moon.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/More.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/More.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/NFA.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/NFA.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/NavCaret.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/NavCaret.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/PlaceholderMonkey.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/PlaceholderMonkey.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/PlaceholderMonkeyAlt.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/PlaceholderMonkeyAlt.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Play.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Play.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Pool.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Pool.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Positions.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Positions.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/ProfileDark.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/ProfileDark.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/ProfileIcon.js +15 -0
- package/dist/components/uikit-sdk/Svg/Icons/ProfileIcon.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/ProfileLight.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/ProfileLight.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Question.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Question.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/QuestionCircle.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/QuestionCircle.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/QuestionFill.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/QuestionFill.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Quiz.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Quiz.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Receipt.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Receipt.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Reddit.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Reddit.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Rocket.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Rocket.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/ScrollTop.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/ScrollTop.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Search.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Search.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Send.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Send.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Settings.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Settings.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Share.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Share.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Sort.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Sort.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Star.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Star.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/StarFilled.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/StarFilled.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Success.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Success.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/SuccessOutline.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/SuccessOutline.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/SwapArrows.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/SwapArrows.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/SwitchArrows.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/SwitchArrows.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Tag.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Tag.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Telegram.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Telegram.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/TelegramNew.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/TelegramNew.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/TextLogo.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/TextLogo.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Tick.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Tick.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/TickShield.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/TickShield.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Timer.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Timer.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Trade.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Trade.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Trash.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Trash.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Twitter.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Twitter.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/URL.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/URL.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Vaults.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Vaults.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Verified.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/Verified.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Wallet.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Wallet.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Warning.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Warning.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Watch.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Watch.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/Website.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/Website.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/WebsiteNew.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/WebsiteNew.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/WhitepaperNew.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/WhitepaperNew.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/XNew.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/XNew.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/YellowQuestionMark.js +8 -0
- package/dist/components/uikit-sdk/Svg/Icons/YellowQuestionMark.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/ZapArrow.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/ZapArrow.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/ZapIcon.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/ZapIcon.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/Icons/polygonNew.js +18 -0
- package/dist/components/uikit-sdk/Svg/Icons/polygonNew.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/index.js +515 -0
- package/dist/components/uikit-sdk/Svg/index.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/styles.js +14 -0
- package/dist/components/uikit-sdk/Svg/styles.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/ABOND.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/ABOND.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/ARBITRUM.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/ARBITRUM.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/AVAX.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/AVAX.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/BANANA.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/BANANA.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/BASE.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/BASE.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/BERA.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/BERA.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/BLAST.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/BLAST.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/BNB.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/BNB.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/BSC.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/BSC.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/CELO.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/CELO.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/CRONOS.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/CRONOS.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/CROSSFI.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/CROSSFI.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/ETH.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/ETH.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/FANTOM.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/FANTOM.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/GNANA.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/GNANA.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/GNOSIS.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/GNOSIS.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/GraphLinq.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/GraphLinq.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/INEVM.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/INEVM.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/IOTA.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/IOTA.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/KATANA.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/KATANA.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/LIGHTLINK.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/LIGHTLINK.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/LINEA.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/LINEA.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/MONAD.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/MONAD.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/OKX.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/OKX.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/OPTIMISM.js +10 -0
- package/dist/components/uikit-sdk/Svg/tokens/OPTIMISM.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/POLYGON.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/POLYGON.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/POLYGONZK.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/POLYGONZK.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/SONIC.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/SONIC.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/TLOS.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/TLOS.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/tokens/UNICHAIN.js +8 -0
- package/dist/components/uikit-sdk/Svg/tokens/UNICHAIN.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/types.js +183 -0
- package/dist/components/uikit-sdk/Svg/types.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/BinanceChain.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/BinanceChain.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Bitkeep.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Bitkeep.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Brave.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Brave.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Coinbase.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Coinbase.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/MadWallet.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/MadWallet.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/MathWallet.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/MathWallet.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Metamask.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Metamask.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Nabox.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Nabox.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/OKX.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/OKX.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/OntoWallet.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/OntoWallet.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/SafePalWallet.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/SafePalWallet.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/SocialLogin.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/SocialLogin.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/TokenPocket.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/TokenPocket.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/TorusWallet.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/TorusWallet.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/TrustWallet.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/TrustWallet.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Unstoppable.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/Unstoppable.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/WalletConnect.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/WalletConnect.js.map +1 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/WalletImage.js +8 -0
- package/dist/components/uikit-sdk/Svg/walletIcons/WalletImage.js.map +1 -0
- package/dist/components/uikit-sdk/SwiperDots/index.js +16 -0
- package/dist/components/uikit-sdk/SwiperDots/index.js.map +1 -0
- package/dist/components/uikit-sdk/Tag/ListTag.js +18 -0
- package/dist/components/uikit-sdk/Tag/ListTag.js.map +1 -0
- package/dist/components/uikit-sdk/Text/index.js +15 -0
- package/dist/components/uikit-sdk/Text/index.js.map +1 -0
- package/dist/components/uikit-sdk/Text/types.js +16 -0
- package/dist/components/uikit-sdk/Text/types.js.map +1 -0
- package/dist/components/uikit-sdk/Toggle/index.js +18 -0
- package/dist/components/uikit-sdk/Toggle/index.js.map +1 -0
- package/dist/components/uikit-sdk/Toggle/styles.js +22 -0
- package/dist/components/uikit-sdk/Toggle/styles.js.map +1 -0
- package/dist/components/uikit-sdk/TokenImage/index.js +57 -0
- package/dist/components/uikit-sdk/TokenImage/index.js.map +1 -0
- package/dist/components/uikit-sdk/TooltipBubble/index.js +65 -0
- package/dist/components/uikit-sdk/TooltipBubble/index.js.map +1 -0
- package/dist/components/uikit-sdk/TooltipBubble/styles.js +108 -0
- package/dist/components/uikit-sdk/TooltipBubble/styles.js.map +1 -0
- package/dist/components/uikit-sdk/TooltipBubble/types.js +12 -0
- package/dist/components/uikit-sdk/TooltipBubble/types.js.map +1 -0
- package/dist/config/abi/BOND_2_0_0.json.js +1065 -0
- package/dist/config/abi/BOND_2_0_0.json.js.map +1 -0
- package/dist/config/abi/BOND_2_4_0.json.js +2409 -0
- package/dist/config/abi/BOND_2_4_0.json.js.map +1 -0
- package/dist/config/abi/bondNft.json.js +959 -0
- package/dist/config/abi/bondNft.json.js.map +1 -0
- package/dist/config/abi/deposit.json.js +29 -0
- package/dist/config/abi/deposit.json.js.map +1 -0
- package/dist/config/abi/depositSig.json.js +39 -0
- package/dist/config/abi/depositSig.json.js.map +1 -0
- package/dist/config/abi/erc20.json.js +229 -0
- package/dist/config/abi/erc20.json.js.map +1 -0
- package/dist/config/abi/launchBond_v2_4_1.json.js +2358 -0
- package/dist/config/abi/launchBond_v2_4_1.json.js.map +1 -0
- package/dist/config/abi/lensContract.json.js +338 -0
- package/dist/config/abi/lensContract.json.js.map +1 -0
- package/dist/config/abi/multicallv2.json.js +151 -0
- package/dist/config/abi/multicallv2.json.js.map +1 -0
- package/dist/config/abi/price-getter-v3.json.js +853 -0
- package/dist/config/abi/price-getter-v3.json.js.map +1 -0
- package/dist/config/abi/usdtETH.json.js +704 -0
- package/dist/config/abi/usdtETH.json.js.map +1 -0
- package/dist/config/constants/addresses.js +61 -0
- package/dist/config/constants/addresses.js.map +1 -0
- package/dist/config/constants/chains.js +101 -0
- package/dist/config/constants/chains.js.map +1 -0
- package/dist/config/constants/networks.js +50 -0
- package/dist/config/constants/networks.js.map +1 -0
- package/dist/config/constants/queryKeys.js +28 -0
- package/dist/config/constants/queryKeys.js.map +1 -0
- package/dist/config/constants/tokens.js +669 -0
- package/dist/config/constants/tokens.js.map +1 -0
- package/dist/config/constants/tooltips.js +21 -0
- package/dist/config/constants/tooltips.js.map +1 -0
- package/dist/config/constants/variables.js +21 -0
- package/dist/config/constants/variables.js.map +1 -0
- package/dist/contexts/ModalContext.js +70 -0
- package/dist/contexts/ModalContext.js.map +1 -0
- package/dist/contexts/Popups.js +28 -0
- package/dist/contexts/Popups.js.map +1 -0
- package/dist/contexts/SwiperProvider.js +21 -0
- package/dist/contexts/SwiperProvider.js.map +1 -0
- package/dist/hooks/useDebounce.js +21 -0
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/hooks/useIsMobile.js +22 -0
- package/dist/hooks/useIsMobile.js.map +1 -0
- package/dist/hooks/useModal.js +34 -0
- package/dist/hooks/useModal.js.map +1 -0
- package/dist/hooks/useMonitorTxHash.d.ts +1 -0
- package/dist/hooks/useMonitorTxHash.js +26 -0
- package/dist/hooks/useMonitorTxHash.js.map +1 -0
- package/dist/hooks/useSendReferenceId.js +22 -0
- package/dist/hooks/useSendReferenceId.js.map +1 -0
- package/dist/hooks/useSortedZapList.js +44 -0
- package/dist/hooks/useSortedZapList.js.map +1 -0
- package/dist/hooks/useSwiper.js +13 -0
- package/dist/hooks/useSwiper.js.map +1 -0
- package/dist/hooks/useTokenFromZapList.js +13 -0
- package/dist/hooks/useTokenFromZapList.js.map +1 -0
- package/dist/hooks/useTopTags.js +38 -0
- package/dist/hooks/useTopTags.js.map +1 -0
- package/dist/main.d.ts +1 -4
- package/dist/main.js +6 -98175
- package/dist/main.js.map +1 -0
- package/dist/providers/index.js +62 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/state/abtesting/useCookie.js +40 -0
- package/dist/state/abtesting/useCookie.js.map +1 -0
- package/dist/state/activeView/index.js +39 -0
- package/dist/state/activeView/index.js.map +1 -0
- package/dist/state/allowance/useAllowance.js +136 -0
- package/dist/state/allowance/useAllowance.js.map +1 -0
- package/dist/state/balance/useCurrencyBalance.js +39 -0
- package/dist/state/balance/useCurrencyBalance.js.map +1 -0
- package/dist/state/balance/useUserTokensBalance.js +79 -0
- package/dist/state/balance/useUserTokensBalance.js.map +1 -0
- package/dist/state/bondApiStats/useUserApiStats.js +25 -0
- package/dist/state/bondApiStats/useUserApiStats.js.map +1 -0
- package/dist/state/bonds/useBondNFTData.js +35 -0
- package/dist/state/bonds/useBondNFTData.js.map +1 -0
- package/dist/state/bonds/useBondsData.js +204 -0
- package/dist/state/bonds/useBondsData.js.map +1 -0
- package/dist/state/bonds/useBondsList.js +34 -0
- package/dist/state/bonds/useBondsList.js.map +1 -0
- package/dist/state/bonds/useGetBondRecommendations.js +23 -0
- package/dist/state/bonds/useGetBondRecommendations.js.map +1 -0
- package/dist/state/bonds/useHotBonds.js +51 -0
- package/dist/state/bonds/useHotBonds.js.map +1 -0
- package/dist/state/bonds/useTierProofSignature.js +45 -0
- package/dist/state/bonds/useTierProofSignature.js.map +1 -0
- package/dist/state/bonds/useUserBonds.js +70 -0
- package/dist/state/bonds/useUserBonds.js.map +1 -0
- package/dist/state/bonds/utils.js +105 -0
- package/dist/state/bonds/utils.js.map +1 -0
- package/dist/state/chainFilterOption/useChainFilterOption.js +34 -0
- package/dist/state/chainFilterOption/useChainFilterOption.js.map +1 -0
- package/dist/state/favoriteTokens/useFavoriteTokens.js +49 -0
- package/dist/state/favoriteTokens/useFavoriteTokens.js.map +1 -0
- package/dist/state/popups/usePopups.js +57 -0
- package/dist/state/popups/usePopups.js.map +1 -0
- package/dist/state/preTGEBonds/usePreTGEList.js +35 -0
- package/dist/state/preTGEBonds/usePreTGEList.js.map +1 -0
- package/dist/state/preTGEBonds/usePreTGEUserBonds.js +140 -0
- package/dist/state/preTGEBonds/usePreTGEUserBonds.js.map +1 -0
- package/dist/state/price/useCurrencyPrice.js +17 -0
- package/dist/state/price/useCurrencyPrice.js.map +1 -0
- package/dist/state/slippage/useSlippage.js +22 -0
- package/dist/state/slippage/useSlippage.js.map +1 -0
- package/dist/state/tiers/useTierPoints.js +110 -0
- package/dist/state/tiers/useTierPoints.js.map +1 -0
- package/dist/state/tokenPrices/useTokenPrices.js +183 -0
- package/dist/state/tokenPrices/useTokenPrices.js.map +1 -0
- package/dist/state/useSDKConfig.js +49 -0
- package/dist/state/useSDKConfig.js.map +1 -0
- package/dist/state/zap/getChainParam.js +54 -0
- package/dist/state/zap/getChainParam.js.map +1 -0
- package/dist/state/zap/useSoulZapBondQuote.js +148 -0
- package/dist/state/zap/useSoulZapBondQuote.js.map +1 -0
- package/dist/state/zap/useSoulZapTokenQuote.js +124 -0
- package/dist/state/zap/useSoulZapTokenQuote.js.map +1 -0
- package/dist/theme/base.js +125 -0
- package/dist/theme/base.js.map +1 -0
- package/dist/theme/colors.js +25 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/theme/components.js +365 -0
- package/dist/theme/components.js.map +1 -0
- package/dist/theme/index.js +12 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/utils/convertToTokenValue.js +27 -0
- package/dist/utils/convertToTokenValue.js.map +1 -0
- package/dist/utils/displayHelpers.js +168 -0
- package/dist/utils/displayHelpers.js.map +1 -0
- package/dist/utils/formatNumber.js +53 -0
- package/dist/utils/formatNumber.js.map +1 -0
- package/dist/utils/formatNumbers.js +66 -0
- package/dist/utils/formatNumbers.js.map +1 -0
- package/dist/utils/getBalanceNumber.js +11 -0
- package/dist/utils/getBalanceNumber.js.map +1 -0
- package/dist/utils/getDotPos.js +12 -0
- package/dist/utils/getDotPos.js.map +1 -0
- package/dist/utils/getNativeTicker.js +19 -0
- package/dist/utils/getNativeTicker.js.map +1 -0
- package/dist/utils/getTimePeriods.js +46 -0
- package/dist/utils/getTimePeriods.js.map +1 -0
- package/dist/utils/index.js +16 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/multicall.js +41 -0
- package/dist/utils/multicall.js.map +1 -0
- package/dist/utils/numbers.js +9 -0
- package/dist/utils/numbers.js.map +1 -0
- package/dist/utils/remove0xPrefix.js +9 -0
- package/dist/utils/remove0xPrefix.js.map +1 -0
- package/dist/utils/reportError.js +31 -0
- package/dist/utils/reportError.js.map +1 -0
- package/dist/utils/roundNumber.js +16 -0
- package/dist/utils/roundNumber.js.map +1 -0
- package/dist/utils/track.js +6 -0
- package/dist/utils/track.js.map +1 -0
- package/dist/views/Bonds/Bonds.js +145 -0
- package/dist/views/Bonds/Bonds.js.map +1 -0
- package/dist/views/Bonds/components/BannerTestnet/BannerTestnet.js +48 -0
- package/dist/views/Bonds/components/BannerTestnet/BannerTestnet.js.map +1 -0
- package/dist/views/Bonds/components/BondRows/BondRow.js +65 -0
- package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -0
- package/dist/views/Bonds/components/BondRows/BondRowsByChain.js +24 -0
- package/dist/views/Bonds/components/BondRows/BondRowsByChain.js.map +1 -0
- package/dist/views/Bonds/components/BondRows/BondRowsWithTitle.js +57 -0
- package/dist/views/Bonds/components/BondRows/BondRowsWithTitle.js.map +1 -0
- package/dist/views/Bonds/components/BondRows/ChainTitle.js +37 -0
- package/dist/views/Bonds/components/BondRows/ChainTitle.js.map +1 -0
- package/dist/views/Bonds/components/BondRows/ModalHandler.js +57 -0
- package/dist/views/Bonds/components/BondRows/ModalHandler.js.map +1 -0
- package/dist/views/Bonds/components/BondsMenu/BondsMenu.js +35 -0
- package/dist/views/Bonds/components/BondsMenu/BondsMenu.js.map +1 -0
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +58 -0
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -0
- package/dist/views/Bonds/components/BonusComponents/BonusContainer.js +11 -0
- package/dist/views/Bonds/components/BonusComponents/BonusContainer.js.map +1 -0
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js +53 -0
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -0
- package/dist/views/Bonds/components/BuyAgainRow/index.js +93 -0
- package/dist/views/Bonds/components/BuyAgainRow/index.js.map +1 -0
- package/dist/views/Bonds/components/CheckURL/index.js +43 -0
- package/dist/views/Bonds/components/CheckURL/index.js.map +1 -0
- package/dist/views/Bonds/components/HotBondCards/HotBondCard.js +49 -0
- package/dist/views/Bonds/components/HotBondCards/HotBondCard.js.map +1 -0
- package/dist/views/Bonds/components/HotBondCards/index.d.ts +1 -1
- package/dist/views/Bonds/components/HotBondCards/index.js +72 -0
- package/dist/views/Bonds/components/HotBondCards/index.js.map +1 -0
- package/dist/views/Bonds/components/HotBondCards/styles.js +47 -0
- package/dist/views/Bonds/components/HotBondCards/styles.js.map +1 -0
- package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js +26 -0
- package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js.map +1 -0
- package/dist/views/Bonds/components/RecommendationCards/index.js +79 -0
- package/dist/views/Bonds/components/RecommendationCards/index.js.map +1 -0
- package/dist/views/Bonds/components/RecommendationCards/styles.js +24 -0
- package/dist/views/Bonds/components/RecommendationCards/styles.js.map +1 -0
- package/dist/views/Bonds/index.js +12 -0
- package/dist/views/Bonds/index.js.map +1 -0
- package/dist/views/Bonds/utils.js +124 -0
- package/dist/views/Bonds/utils.js.map +1 -0
- package/dist/views/BuyBond/BuyBond.js +352 -0
- package/dist/views/BuyBond/BuyBond.js.map +1 -0
- package/dist/views/BuyBond/BuyBondModal.js +23 -0
- package/dist/views/BuyBond/BuyBondModal.js.map +1 -0
- package/dist/views/BuyBond/components/BondCards.js +80 -0
- package/dist/views/BuyBond/components/BondCards.js.map +1 -0
- package/dist/views/BuyBond/components/BondModalHeader.js +80 -0
- package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -0
- package/dist/views/BuyBond/components/BondModalMinTierHeader.js +32 -0
- package/dist/views/BuyBond/components/BondModalMinTierHeader.js.map +1 -0
- package/dist/views/BuyBond/components/Estimations.js +59 -0
- package/dist/views/BuyBond/components/Estimations.js.map +1 -0
- package/dist/views/BuyBond/components/ExpandedViewButton.js +36 -0
- package/dist/views/BuyBond/components/ExpandedViewButton.js.map +1 -0
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +63 -0
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +1 -0
- package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js +53 -0
- package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js.map +1 -0
- package/dist/views/BuyBond/components/NoBonusModal/NoBonusModal.js +35 -0
- package/dist/views/BuyBond/components/NoBonusModal/NoBonusModal.js.map +1 -0
- package/dist/views/BuyBond/components/ProjectDescription.js +37 -0
- package/dist/views/BuyBond/components/ProjectDescription.js.map +1 -0
- package/dist/views/BuyBond/findHighestTrueBondPrice.js +51 -0
- package/dist/views/BuyBond/findHighestTrueBondPrice.js.map +1 -0
- package/dist/views/BuyBond/index.js +12 -0
- package/dist/views/BuyBond/index.js.map +1 -0
- package/dist/views/FullBondsView/FullBondsView.js +31 -0
- package/dist/views/FullBondsView/FullBondsView.js.map +1 -0
- package/dist/views/FullBondsView/index.js +12 -0
- package/dist/views/FullBondsView/index.js.map +1 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/BondCards.js +71 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/BondCards.js.map +1 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/ParticipationSuccessful.js +76 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/ParticipationSuccessful.js.map +1 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/PreTGEBuyComponent.js +144 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/PreTGEBuyComponent.js.map +1 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/PreTGEModalHandler.js +36 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/PreTGEModalHandler.js.map +1 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/styles.js +42 -0
- package/dist/views/PreTGEBonds/components/BuyComponent/styles.js.map +1 -0
- package/dist/views/PreTGEBonds/components/PreTGEUserRows/PreTGEActions.js +115 -0
- package/dist/views/PreTGEBonds/components/PreTGEUserRows/PreTGEActions.js.map +1 -0
- package/dist/views/PreTGEBonds/components/PreTGEUserRows/PreTGEUserRow.js +50 -0
- package/dist/views/PreTGEBonds/components/PreTGEUserRows/PreTGEUserRow.js.map +1 -0
- package/dist/views/TransactionModal/TransactionModal.js +187 -0
- package/dist/views/TransactionModal/TransactionModal.js.map +1 -0
- package/dist/views/YourBonds/YourBonds.js +128 -0
- package/dist/views/YourBonds/YourBonds.js.map +1 -0
- package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js +131 -0
- package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js.map +1 -0
- package/dist/views/YourBonds/components/ClaimAll/index.js +35 -0
- package/dist/views/YourBonds/components/ClaimAll/index.js.map +1 -0
- package/dist/views/YourBonds/components/UserBondRow/index.js +109 -0
- package/dist/views/YourBonds/components/UserBondRow/index.js.map +1 -0
- package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js +28 -0
- package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js.map +1 -0
- package/dist/views/YourBonds/fetchBillsUser.js +110 -0
- package/dist/views/YourBonds/fetchBillsUser.js.map +1 -0
- package/dist/views/YourBonds/getBillNftData.js +55 -0
- package/dist/views/YourBonds/getBillNftData.js.map +1 -0
- package/dist/views/YourBonds/index.js +12 -0
- package/dist/views/YourBonds/index.js.map +1 -0
- package/dist/views/YourBondsModal/YourBondsModal.js +183 -0
- package/dist/views/YourBondsModal/YourBondsModal.js.map +1 -0
- package/dist/views/YourBondsModal/components/Recommendations/CardRecommendation.js +55 -0
- package/dist/views/YourBondsModal/components/Recommendations/CardRecommendation.js.map +1 -0
- package/dist/views/YourBondsModal/components/Recommendations/CardRecommendationsMobile.js +57 -0
- package/dist/views/YourBondsModal/components/Recommendations/CardRecommendationsMobile.js.map +1 -0
- package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js +52 -0
- package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js.map +1 -0
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js +84 -0
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js.map +1 -0
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js +39 -0
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -0
- package/dist/views/ZapModal/index.js +155 -0
- package/dist/views/ZapModal/index.js.map +1 -0
- package/package.json +11 -9
- package/dist/assets/output-2LTDuc8n.css +0 -174
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
import { useSDKConfig, useURLByEnvironment } from '../useSDKConfig.js';
|
|
5
|
+
import useTokenPrices from '../tokenPrices/useTokenPrices.js';
|
|
6
|
+
import useBondsList from './useBondsList.js';
|
|
7
|
+
import { BillVersion } from '@ape.swap/apeswap-lists';
|
|
8
|
+
import { ACF_TO_ABOND } from '../../config/constants/addresses.js';
|
|
9
|
+
import multicall from '../../utils/multicall.js';
|
|
10
|
+
import BOND_2_4_0 from '../../config/abi/BOND_2_4_0.json.js';
|
|
11
|
+
import ERC_20_ABI from '../../config/abi/erc20.json.js';
|
|
12
|
+
import { chunk } from 'lodash';
|
|
13
|
+
import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
|
|
14
|
+
import BigNumber from 'bignumber.js';
|
|
15
|
+
import { reportError } from '../../utils/reportError.js';
|
|
16
|
+
import usePreTGEList from '../preTGEBonds/usePreTGEList.js';
|
|
17
|
+
import { getPreTGEBondsData } from './utils.js';
|
|
18
|
+
|
|
19
|
+
function useBondsData() {
|
|
20
|
+
const { data: tokenPrices } = useTokenPrices();
|
|
21
|
+
const { data: bondList } = useBondsList();
|
|
22
|
+
const { data: preTGEList } = usePreTGEList();
|
|
23
|
+
const { chains } = useSDKConfig();
|
|
24
|
+
const apiUrl = useURLByEnvironment('apiV2');
|
|
25
|
+
const realTimeApiURL = useURLByEnvironment('realTimeApi');
|
|
26
|
+
return useQuery({
|
|
27
|
+
queryKey: [QUERY_KEYS.BONDS_DATA],
|
|
28
|
+
queryFn: () => getBondsData(chains, tokenPrices, bondList, preTGEList, realTimeApiURL, apiUrl),
|
|
29
|
+
refetchInterval: 20000, // i.e. 20 sec
|
|
30
|
+
refetchOnWindowFocus: false,
|
|
31
|
+
retry: 0,
|
|
32
|
+
initialData: [],
|
|
33
|
+
enabled: !!chains && chains.length > 0,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//TODO: move this function to utils once SOLANA code is merged
|
|
37
|
+
const getBondsData = async (chains, tokenPrices, bondList, preTGEList, realTimeApiURL, apiUrl) => {
|
|
38
|
+
try {
|
|
39
|
+
const response = await axios.get(`${realTimeApiURL}/bonds`);
|
|
40
|
+
return response.data.bonds;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
console.time('Fallback'); // Start debug timer
|
|
44
|
+
const billData = [];
|
|
45
|
+
if (tokenPrices && bondList) {
|
|
46
|
+
await Promise.all([
|
|
47
|
+
...chains.map(async (chainId) => {
|
|
48
|
+
const filteredBonds = bondList?.filter((bill) => bill?.contractAddress?.[chainId]?.toLowerCase() !== ACF_TO_ABOND.toLowerCase() &&
|
|
49
|
+
!bill.soldOut &&
|
|
50
|
+
bill.chainId === chainId) ?? [];
|
|
51
|
+
const returnedBills = await fetchBills(chainId, tokenPrices, filteredBonds, apiUrl);
|
|
52
|
+
billData.push(returnedBills);
|
|
53
|
+
}),
|
|
54
|
+
...chains.map(async (chainId) => {
|
|
55
|
+
const filteredBonds = preTGEList?.filter((bond) => bond.chainId === chainId) ?? [];
|
|
56
|
+
const preTGEBondsData = await getPreTGEBondsData(chainId, tokenPrices, filteredBonds, apiUrl);
|
|
57
|
+
billData.push(preTGEBondsData);
|
|
58
|
+
}),
|
|
59
|
+
]);
|
|
60
|
+
}
|
|
61
|
+
console.timeEnd(`Fallback`);
|
|
62
|
+
return billData?.flat();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const fetchBills = async (chainId, tokenPrices, bills, apiUrl) => {
|
|
66
|
+
try {
|
|
67
|
+
const billIds = [];
|
|
68
|
+
const billCalls = bills.flatMap((bill) => {
|
|
69
|
+
billIds.push(bill.index);
|
|
70
|
+
return [
|
|
71
|
+
{
|
|
72
|
+
address: bill.contractAddress[bill.chainId] ?? '',
|
|
73
|
+
name: bill.billVersion === BillVersion.V4 ? 'trueBondPrices' : 'trueBillPrice()',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
address: bill.contractAddress[bill.chainId] ?? '',
|
|
77
|
+
name: 'totalPayoutGiven',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
address: bill.contractAddress[bill.chainId] ?? '',
|
|
81
|
+
name: 'terms',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
address: bill.contractAddress[bill.chainId] ?? '',
|
|
85
|
+
name: bill.billVersion !== BillVersion.V1 ? 'getMaxTotalPayout' : 'maxTotalPayout',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
address: bill.contractAddress[bill.chainId] ?? '',
|
|
89
|
+
name: 'feeInPayout',
|
|
90
|
+
},
|
|
91
|
+
// keep custom treasury at the very last position
|
|
92
|
+
{
|
|
93
|
+
address: bill.contractAddress[bill.chainId] ?? '',
|
|
94
|
+
name: 'customTreasury',
|
|
95
|
+
},
|
|
96
|
+
];
|
|
97
|
+
});
|
|
98
|
+
const vals = await multicall(chainId, BOND_2_4_0, billCalls);
|
|
99
|
+
// The following lines basically grab the values from customTreasury returned from bills contract and then,
|
|
100
|
+
// appends the treasury contract's balance to the chunk that will be passed to cleanBillsData
|
|
101
|
+
// appendIndex value assumes customTreasury will be at the end of the billCalls array
|
|
102
|
+
const appendIndex = billCalls.length / bills.length;
|
|
103
|
+
const treasuryAddresses = vals
|
|
104
|
+
.filter((_, i) => (i % appendIndex) + 1 === appendIndex)
|
|
105
|
+
.map((customTreasury) => customTreasury[0]);
|
|
106
|
+
const treasuryBalanceCalls = treasuryAddresses.map((treasuryAddress, i) => ({
|
|
107
|
+
address: bills?.[i]?.earnToken?.address?.[chainId] ?? '',
|
|
108
|
+
name: 'balanceOf',
|
|
109
|
+
params: [treasuryAddress],
|
|
110
|
+
}));
|
|
111
|
+
const treasuryBalances = await multicall(chainId, ERC_20_ABI, treasuryBalanceCalls);
|
|
112
|
+
const updatedVals = vals.reduce((acc, val, index) => {
|
|
113
|
+
acc.push(val);
|
|
114
|
+
if ((index + 1) % appendIndex === 0) {
|
|
115
|
+
const pos = (index + 1) / appendIndex;
|
|
116
|
+
acc.push(treasuryBalances[pos - 1]);
|
|
117
|
+
}
|
|
118
|
+
return acc;
|
|
119
|
+
}, []);
|
|
120
|
+
//
|
|
121
|
+
const chunkSize = updatedVals?.length / bills?.length;
|
|
122
|
+
const chunkedBills = chunk(updatedVals, chunkSize);
|
|
123
|
+
return cleanBillsData(billIds, chunkedBills, tokenPrices, chainId, bills);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
console.error(e);
|
|
127
|
+
reportError({
|
|
128
|
+
apiUrl,
|
|
129
|
+
error: e,
|
|
130
|
+
extraInfo: { type: 'getBondsData', e },
|
|
131
|
+
});
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
const cleanBillsData = (billIds, chunkedBills, tokenPrices, chainId, bills) => {
|
|
136
|
+
const data = chunkedBills?.map((chunk, index) => {
|
|
137
|
+
const bill = bills?.find((bill) => bill?.index === billIds[index]);
|
|
138
|
+
const lpPrice = tokenPrices?.find((tokenPrice) => tokenPrice?.address?.toLowerCase() === bill?.lpToken?.address?.[bill?.chainId]?.toLowerCase() &&
|
|
139
|
+
tokenPrice?.chainId === chainId)?.price ?? 0;
|
|
140
|
+
const earnTokenPrice = tokenPrices?.find((tokenPrice) => tokenPrice?.address?.toLowerCase() === bill?.earnToken?.address?.[bill?.chainId]?.toLowerCase() &&
|
|
141
|
+
tokenPrice?.chainId === chainId)?.price ?? 0;
|
|
142
|
+
const [trueBillPrice, totalPayoutGiven, terms, maxTotalPayout, fee, , customTreasuryBalance] = chunk;
|
|
143
|
+
const feeInPayout = Number(fee / 10000);
|
|
144
|
+
const [, vestingTerm, , maxPayout] = terms;
|
|
145
|
+
const tokensRemaining = new BigNumber(maxTotalPayout ?? '0')
|
|
146
|
+
.minus(new BigNumber(totalPayoutGiven))
|
|
147
|
+
.div(new BigNumber(10).pow(bill?.earnToken.decimals[bill?.chainId] ?? 18))
|
|
148
|
+
.toNumber();
|
|
149
|
+
const treasuryBalance = getBalanceNumber(customTreasuryBalance);
|
|
150
|
+
const bonus = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice);
|
|
151
|
+
const bonusWithFee = getBonusWithFee(feeInPayout, trueBillPrice, lpPrice, earnTokenPrice);
|
|
152
|
+
let trueBondPrices = [];
|
|
153
|
+
if (bill?.billVersion === BillVersion.V4) {
|
|
154
|
+
trueBondPrices = trueBillPrice[0].map((data) => {
|
|
155
|
+
return {
|
|
156
|
+
points: data[2].toString(),
|
|
157
|
+
trueBondPrice: data[0].toString(),
|
|
158
|
+
bonus: getRawBonus(data[0].toString(), lpPrice, earnTokenPrice),
|
|
159
|
+
bonusWithFee: getBonusWithFee(feeInPayout, data[0].toString(), lpPrice, earnTokenPrice),
|
|
160
|
+
};
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
trueBondPrices = [
|
|
165
|
+
{
|
|
166
|
+
points: '0',
|
|
167
|
+
trueBondPrice: trueBillPrice.toString(),
|
|
168
|
+
bonus,
|
|
169
|
+
bonusWithFee,
|
|
170
|
+
},
|
|
171
|
+
];
|
|
172
|
+
}
|
|
173
|
+
const cleanedData = {
|
|
174
|
+
...bill,
|
|
175
|
+
feeInPayout,
|
|
176
|
+
showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',
|
|
177
|
+
trueBondPrices,
|
|
178
|
+
principalTokenPrice: lpPrice?.toString() ?? '0',
|
|
179
|
+
payoutTokenPrice: earnTokenPrice?.toString() ?? '0',
|
|
180
|
+
tokensRemaining: Math.min(treasuryBalance, tokensRemaining).toString(),
|
|
181
|
+
maxTotalPayout: maxTotalPayout?.toString(),
|
|
182
|
+
maxPayout: maxPayout?.toString(),
|
|
183
|
+
totalPayoutGiven: totalPayoutGiven?.toString(),
|
|
184
|
+
vestingTerm: vestingTerm.toNumber(),
|
|
185
|
+
};
|
|
186
|
+
return cleanedData;
|
|
187
|
+
});
|
|
188
|
+
return data;
|
|
189
|
+
};
|
|
190
|
+
const getBonusWithFee = (feeInPayout, trueBillPrice, lpPrice, earnTokenPrice) => {
|
|
191
|
+
const fee = feeInPayout ?? 0;
|
|
192
|
+
const trueBillPriceMinusFee = new BigNumber(trueBillPrice ?? 0).times((100 + fee) / 100);
|
|
193
|
+
const priceUSDMinusFee = getBalanceNumber(trueBillPriceMinusFee) * lpPrice;
|
|
194
|
+
const discountWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100;
|
|
195
|
+
return discountWithoutFee > 0 ? (discountWithoutFee / (100 - discountWithoutFee)) * 100 : 0;
|
|
196
|
+
};
|
|
197
|
+
const getRawBonus = (trueBillPrice, lpPrice, earnTokenPrice) => {
|
|
198
|
+
const priceUsd = getBalanceNumber(trueBillPrice.toString()) * lpPrice;
|
|
199
|
+
const discount = ((earnTokenPrice - priceUsd) / earnTokenPrice) * 100;
|
|
200
|
+
return discount > 0 ? (discount / (100 - discount)) * 100 : 0;
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
export { useBondsData as default, getBondsData, getBonusWithFee, getRawBonus };
|
|
204
|
+
//# sourceMappingURL=useBondsData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBondsData.js","sources":["../../../src/state/bonds/useBondsData.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BondsData, TrueBondPrices } from '../../types/bonds'\nimport axios from 'axios'\nimport { useSDKConfig, useURLByEnvironment } from '../useSDKConfig'\nimport useTokenPrices, { TokenPrices } from '../tokenPrices/useTokenPrices'\nimport useBondsList from './useBondsList'\nimport { BillsConfig, BillVersion, ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport { ACF_TO_ABOND } from '../../config/constants/addresses'\nimport multicall from '../../utils/multicall'\nimport BOND_2_4_0 from '../../config/abi/BOND_2_4_0.json'\nimport ERC20ABI from '../../config/abi/erc20.json'\nimport { chunk } from 'lodash'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport BigNumber from 'bignumber.js'\nimport { reportError } from '../../utils/reportError'\nimport usePreTGEList from '../preTGEBonds/usePreTGEList'\nimport { getPreTGEBondsData } from './utils'\n\nexport default function useBondsData(): UseQueryResult<BondsData[]> {\n const { data: tokenPrices } = useTokenPrices()\n const { data: bondList } = useBondsList()\n const { data: preTGEList } = usePreTGEList()\n const { chains } = useSDKConfig()\n const apiUrl = useURLByEnvironment('apiV2')\n\n const realTimeApiURL = useURLByEnvironment('realTimeApi')\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_DATA],\n queryFn: () => getBondsData(chains!, tokenPrices, bondList, preTGEList, realTimeApiURL, apiUrl),\n refetchInterval: 20000, // i.e. 20 sec\n refetchOnWindowFocus: false,\n retry: 0,\n initialData: [],\n enabled: !!chains && chains.length > 0,\n })\n}\n\n//TODO: move this function to utils once SOLANA code is merged\nexport const getBondsData = async (\n chains: number[],\n tokenPrices?: TokenPrices[],\n bondList?: BillsConfig[],\n preTGEList?: PreTGEConfig[],\n realTimeApiURL?: string,\n apiUrl?: string,\n): Promise<BondsData[]> => {\n try {\n const response = await axios.get(`${realTimeApiURL}/bonds`)\n return response.data.bonds\n } catch {\n console.time('Fallback') // Start debug timer\n const billData: BondsData[][] = []\n if (tokenPrices && bondList) {\n await Promise.all([\n ...chains.map(async (chainId: ChainId) => {\n const filteredBonds: BillsConfig[] =\n bondList?.filter(\n (bill: BillsConfig) =>\n bill?.contractAddress?.[chainId]?.toLowerCase() !== ACF_TO_ABOND.toLowerCase() &&\n !bill.soldOut &&\n bill.chainId === chainId,\n ) ?? []\n\n const returnedBills: BondsData[] = await fetchBills(chainId, tokenPrices, filteredBonds, apiUrl)\n billData.push(returnedBills)\n }),\n ...chains.map(async (chainId: ChainId) => {\n const filteredBonds = preTGEList?.filter((bond) => bond.chainId === chainId) ?? []\n const preTGEBondsData = await getPreTGEBondsData(chainId, tokenPrices, filteredBonds, apiUrl)\n billData.push(preTGEBondsData)\n }),\n ])\n }\n console.timeEnd(`Fallback`)\n return billData?.flat()\n }\n}\n\nconst fetchBills = async (chainId: number, tokenPrices: TokenPrices[], bills: BillsConfig[], apiUrl?: string) => {\n try {\n const billIds: number[] = []\n const billCalls = bills.flatMap((bill) => {\n billIds.push(bill.index)\n return [\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion === BillVersion.V4 ? 'trueBondPrices' : 'trueBillPrice()',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'totalPayoutGiven',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'terms',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: bill.billVersion !== BillVersion.V1 ? 'getMaxTotalPayout' : 'maxTotalPayout',\n },\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'feeInPayout',\n },\n // keep custom treasury at the very last position\n {\n address: bill.contractAddress[bill.chainId] ?? '',\n name: 'customTreasury',\n },\n ]\n })\n const vals = await multicall(chainId, BOND_2_4_0, billCalls)\n\n // The following lines basically grab the values from customTreasury returned from bills contract and then,\n // appends the treasury contract's balance to the chunk that will be passed to cleanBillsData\n\n // appendIndex value assumes customTreasury will be at the end of the billCalls array\n const appendIndex = billCalls.length / bills.length\n const treasuryAddresses = vals\n .filter((_: any, i: number) => (i % appendIndex) + 1 === appendIndex)\n .map((customTreasury: string[]) => customTreasury[0])\n const treasuryBalanceCalls = treasuryAddresses.map((treasuryAddress: string, i: number) => ({\n address: bills?.[i]?.earnToken?.address?.[chainId as ChainId] ?? '',\n name: 'balanceOf',\n params: [treasuryAddress],\n }))\n const treasuryBalances = await multicall(chainId, ERC20ABI, treasuryBalanceCalls)\n const updatedVals = vals.reduce((acc: any, val: any, index: number) => {\n acc.push(val)\n if ((index + 1) % appendIndex === 0) {\n const pos = (index + 1) / appendIndex\n acc.push(treasuryBalances[pos - 1])\n }\n return acc\n }, [])\n\n //\n const chunkSize = updatedVals?.length / bills?.length\n const chunkedBills = chunk(updatedVals, chunkSize)\n\n return cleanBillsData(billIds, chunkedBills, tokenPrices, chainId, bills)\n } catch (e) {\n console.error(e)\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getBondsData', e },\n })\n return []\n }\n}\n\nconst cleanBillsData = (\n billIds: number[],\n chunkedBills: any[],\n tokenPrices: TokenPrices[],\n chainId: ChainId,\n bills: BillsConfig[],\n): BondsData[] => {\n const data: BondsData[] = chunkedBills?.map((chunk, index) => {\n const bill = bills?.find((bill) => bill?.index === billIds[index]) as BillsConfig\n\n const lpPrice =\n tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.address?.toLowerCase() === bill?.lpToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )?.price ?? 0\n\n const earnTokenPrice =\n tokenPrices?.find(\n (tokenPrice) =>\n tokenPrice?.address?.toLowerCase() === bill?.earnToken?.address?.[bill?.chainId]?.toLowerCase() &&\n tokenPrice?.chainId === chainId,\n )?.price ?? 0\n\n const [trueBillPrice, totalPayoutGiven, terms, maxTotalPayout, fee, , customTreasuryBalance] = chunk\n const feeInPayout = Number(fee / 10000)\n const [, vestingTerm, , maxPayout] = terms\n const tokensRemaining = new BigNumber(maxTotalPayout ?? '0')\n .minus(new BigNumber(totalPayoutGiven))\n .div(new BigNumber(10).pow(bill?.earnToken.decimals[bill?.chainId] ?? 18))\n .toNumber()\n const treasuryBalance = getBalanceNumber(customTreasuryBalance)\n\n const bonus: number = getRawBonus(trueBillPrice, lpPrice, earnTokenPrice)\n const bonusWithFee = getBonusWithFee(feeInPayout, trueBillPrice, lpPrice, earnTokenPrice)\n let trueBondPrices: TrueBondPrices[] = []\n if (bill?.billVersion === BillVersion.V4) {\n trueBondPrices = trueBillPrice[0].map((data: any) => {\n return {\n points: data[2].toString(),\n trueBondPrice: data[0].toString(),\n bonus: getRawBonus(data[0].toString(), lpPrice, earnTokenPrice),\n bonusWithFee: getBonusWithFee(feeInPayout, data[0].toString(), lpPrice, earnTokenPrice),\n }\n })\n } else {\n trueBondPrices = [\n {\n points: '0',\n trueBondPrice: trueBillPrice.toString(),\n bonus,\n bonusWithFee,\n },\n ]\n }\n\n const cleanedData: BondsData = {\n ...bill,\n feeInPayout,\n showcaseTokenName: bill?.showcaseToken?.symbol ?? bill?.earnToken.symbol ?? '',\n trueBondPrices,\n principalTokenPrice: lpPrice?.toString() ?? '0',\n payoutTokenPrice: earnTokenPrice?.toString() ?? '0',\n tokensRemaining: Math.min(treasuryBalance, tokensRemaining).toString(),\n maxTotalPayout: maxTotalPayout?.toString(),\n maxPayout: maxPayout?.toString(),\n totalPayoutGiven: totalPayoutGiven?.toString(),\n vestingTerm: vestingTerm.toNumber(),\n }\n return cleanedData\n })\n return data\n}\n\nexport const getBonusWithFee = (\n feeInPayout: number,\n trueBillPrice: BigNumber,\n lpPrice: number,\n earnTokenPrice: number,\n) => {\n const fee = feeInPayout ?? 0\n const trueBillPriceMinusFee = new BigNumber(trueBillPrice ?? 0).times((100 + fee) / 100)\n const priceUSDMinusFee = getBalanceNumber(trueBillPriceMinusFee) * lpPrice\n const discountWithoutFee = ((earnTokenPrice - priceUSDMinusFee) / earnTokenPrice) * 100\n return discountWithoutFee > 0 ? (discountWithoutFee / (100 - discountWithoutFee)) * 100 : 0\n}\n\nexport const getRawBonus = (trueBillPrice: any, lpPrice: number, earnTokenPrice: number) => {\n const priceUsd = getBalanceNumber(trueBillPrice.toString()) * lpPrice\n const discount: number = ((earnTokenPrice - priceUsd) / earnTokenPrice) * 100\n return discount > 0 ? (discount / (100 - discount)) * 100 : 0\n}\n"],"names":["ERC20ABI"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
import { useURLByEnvironment } from '../useSDKConfig.js';
|
|
5
|
+
import { reportError } from '../../utils/reportError.js';
|
|
6
|
+
|
|
7
|
+
function useBondsList() {
|
|
8
|
+
const realTime = useURLByEnvironment('realTimeApi');
|
|
9
|
+
const apiUrl = useURLByEnvironment('apiV2');
|
|
10
|
+
return useQuery({
|
|
11
|
+
queryKey: [QUERY_KEYS.BONDS_LIST],
|
|
12
|
+
queryFn: () => getBondsList(realTime, apiUrl),
|
|
13
|
+
staleTime: Infinity,
|
|
14
|
+
refetchInterval: 300000, // 5 min
|
|
15
|
+
refetchOnWindowFocus: false,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const getBondsList = async (realTimeapiURL, apiUrl) => {
|
|
19
|
+
try {
|
|
20
|
+
const response = await axios.get(`${realTimeapiURL}/utils/bonds`);
|
|
21
|
+
return response.data;
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
reportError({
|
|
25
|
+
apiUrl,
|
|
26
|
+
error: e,
|
|
27
|
+
extraInfo: { type: 'getBondsList', e },
|
|
28
|
+
});
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { useBondsList as default, getBondsList };
|
|
34
|
+
//# sourceMappingURL=useBondsList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBondsList.js","sources":["../../../src/state/bonds/useBondsList.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { BillsConfig } from '@ape.swap/apeswap-lists'\nimport { useURLByEnvironment } from '../useSDKConfig'\nimport { reportError } from '../../utils/reportError'\n\nexport default function useBondsList(): UseQueryResult<BillsConfig[]> {\n const realTime = useURLByEnvironment('realTimeApi')\n const apiUrl = useURLByEnvironment('apiV2')\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_LIST],\n queryFn: () => getBondsList(realTime, apiUrl),\n staleTime: Infinity,\n refetchInterval: 300000, // 5 min\n refetchOnWindowFocus: false,\n })\n}\n\nexport const getBondsList = async (realTimeapiURL: string, apiUrl: string): Promise<BillsConfig[]> => {\n try {\n const response = await axios.get(`${realTimeapiURL}/utils/bonds`)\n return response.data\n } catch (e) {\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getBondsList', e },\n })\n return []\n }\n}\n"],"names":[],"mappings":";;;;;;AAOc,SAAU,YAAY,GAAA;AAClC,IAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC;AACnD,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAC3C,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QACjC,OAAO,EAAE,MAAM,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC7C,QAAA,SAAS,EAAE,QAAQ;QACnB,eAAe,EAAE,MAAM;AACvB,QAAA,oBAAoB,EAAE,KAAK;AAC5B,KAAA,CAAC;AACJ;AAEO,MAAM,YAAY,GAAG,OAAO,cAAsB,EAAE,MAAc,KAA4B;AACnG,IAAA,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,EAAG,cAAc,CAAA,YAAA,CAAc,CAAC;QACjE,OAAO,QAAQ,CAAC,IAAI;IACtB;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;YACV,MAAM;AACN,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE;AACvC,SAAA,CAAC;AACF,QAAA,OAAO,EAAE;IACX;AACF;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import axios from 'axios';
|
|
3
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
4
|
+
import { useURLByEnvironment, useSDKConfig } from '../useSDKConfig.js';
|
|
5
|
+
|
|
6
|
+
const getBondRecommendations = async (apiV2URL, user, contract, limit, chains) => {
|
|
7
|
+
const { data } = await axios.get(`${apiV2URL}/recommendations/bonds?user=${user}&contract=${contract}&limit=${limit}&chains=${chains}`);
|
|
8
|
+
return data?.bonds;
|
|
9
|
+
};
|
|
10
|
+
function useGetBondRecommendations(user, contract, limit = '3') {
|
|
11
|
+
const apiV2URL = useURLByEnvironment('apiV2');
|
|
12
|
+
const SDKConfig = useSDKConfig();
|
|
13
|
+
return useQuery({
|
|
14
|
+
queryKey: [`${QUERY_KEYS.BOND_RECOMMENDATIONS}-${contract}-${limit}-${SDKConfig.chains}`],
|
|
15
|
+
queryFn: () => getBondRecommendations(apiV2URL, user, contract, limit, SDKConfig.chains),
|
|
16
|
+
staleTime: Infinity,
|
|
17
|
+
refetchOnWindowFocus: false,
|
|
18
|
+
refetchOnMount: false,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { useGetBondRecommendations as default, getBondRecommendations };
|
|
23
|
+
//# sourceMappingURL=useGetBondRecommendations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGetBondRecommendations.js","sources":["../../../src/state/bonds/useGetBondRecommendations.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport axios from 'axios'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { useSDKConfig, useURLByEnvironment } from '../useSDKConfig'\n\nexport interface BondRecommendation {\n chainId: number\n type: string\n principalToken: string\n principalTokenName: string\n payoutToken: string\n payoutTokenName: string\n billAddress: string\n discount: number\n bonus: number\n link: string\n billNftAddress: string\n initTime: number\n soldOut: boolean\n inactive: boolean\n maxTotalPayout: number\n totalPayoutGiven: number\n tokensRemaining: number\n showcaseToken: string\n showcaseTokenName: string\n vestingTerm: number\n earnTokenPrice: number\n priceUsd: number\n tags: string[]\n arr: number\n}\n\nexport const getBondRecommendations = async (\n apiV2URL: string,\n user?: string,\n contract?: string,\n limit?: string,\n chains?: number[],\n): Promise<BondRecommendation[]> => {\n const { data } = await axios.get(\n `${apiV2URL}/recommendations/bonds?user=${user}&contract=${contract}&limit=${limit}&chains=${chains}`,\n )\n return data?.bonds\n}\n\nexport default function useGetBondRecommendations(user?: string, contract?: string, limit: string = '3') {\n const apiV2URL = useURLByEnvironment('apiV2')\n const SDKConfig = useSDKConfig()\n return useQuery({\n queryKey: [`${QUERY_KEYS.BOND_RECOMMENDATIONS}-${contract}-${limit}-${SDKConfig.chains}`],\n queryFn: () => getBondRecommendations(apiV2URL, user, contract, limit, SDKConfig.chains),\n staleTime: Infinity,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n })\n}\n"],"names":[],"mappings":";;;;;AAgCO,MAAM,sBAAsB,GAAG,OACpC,QAAgB,EAChB,IAAa,EACb,QAAiB,EACjB,KAAc,EACd,MAAiB,KACgB;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,CAAA,EAAG,QAAQ,CAAA,4BAAA,EAA+B,IAAI,aAAa,QAAQ,CAAA,OAAA,EAAU,KAAK,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE,CACtG;IACD,OAAO,IAAI,EAAE,KAAK;AACpB;AAEc,SAAU,yBAAyB,CAAC,IAAa,EAAE,QAAiB,EAAE,KAAA,GAAgB,GAAG,EAAA;AACrG,IAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAC7C,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,CAAA,EAAG,UAAU,CAAC,oBAAoB,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,SAAS,CAAC,MAAM,EAAE,CAAC;AACzF,QAAA,OAAO,EAAE,MAAM,sBAAsB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;AACxF,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,cAAc,EAAE,KAAK;AACtB,KAAA,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
import useBondsData from './useBondsData.js';
|
|
5
|
+
import { STRAPI_URL } from '../../config/constants/variables.js';
|
|
6
|
+
import { reportError } from '../../utils/reportError.js';
|
|
7
|
+
import { useURLByEnvironment } from '../useSDKConfig.js';
|
|
8
|
+
|
|
9
|
+
function useHotBondContracts() {
|
|
10
|
+
const apiUrl = useURLByEnvironment('apiV2');
|
|
11
|
+
return useQuery({
|
|
12
|
+
queryKey: [QUERY_KEYS.HOT_BONDS_CONTRACTS],
|
|
13
|
+
queryFn: () => getHotBondsContracts(apiUrl),
|
|
14
|
+
staleTime: Infinity,
|
|
15
|
+
refetchOnWindowFocus: false,
|
|
16
|
+
refetchOnMount: false,
|
|
17
|
+
retry: 1,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function useHotBonds() {
|
|
21
|
+
const { data: bondsData } = useBondsData();
|
|
22
|
+
const { data: hotBondContracts } = useHotBondContracts();
|
|
23
|
+
return useQuery({
|
|
24
|
+
queryKey: [QUERY_KEYS.HOT_BONDS, bondsData?.length, hotBondContracts?.length],
|
|
25
|
+
queryFn: () => getHotBonds(bondsData, hotBondContracts),
|
|
26
|
+
refetchOnWindowFocus: false,
|
|
27
|
+
refetchInterval: 30000,
|
|
28
|
+
enabled: !!bondsData && bondsData.length > 0 && !!hotBondContracts && hotBondContracts.length > 0,
|
|
29
|
+
retry: 0,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const getHotBondsContracts = async (apiUrl) => {
|
|
33
|
+
try {
|
|
34
|
+
const response = await axios.get(`${STRAPI_URL}/hot-bonds`);
|
|
35
|
+
return response.data.map((bond) => bond.BondAddress.toLowerCase());
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
reportError({
|
|
39
|
+
apiUrl,
|
|
40
|
+
error: e,
|
|
41
|
+
extraInfo: { type: 'getHotBondsContracts', e },
|
|
42
|
+
});
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const getHotBonds = async (bondData, hotBondContracts) => {
|
|
47
|
+
return bondData.filter((bond) => hotBondContracts.includes(bond?.contractAddress?.[bond?.chainId]?.toLowerCase() ?? ''));
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export { useHotBonds as default, getHotBonds, getHotBondsContracts, useHotBondContracts };
|
|
51
|
+
//# sourceMappingURL=useHotBonds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHotBonds.js","sources":["../../../src/state/bonds/useHotBonds.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport useBondsData from './useBondsData'\nimport { BondsData } from '../../types/bonds'\nimport { STRAPI_URL } from '../../config/constants/variables'\nimport { reportError } from '../../utils/reportError'\nimport { useURLByEnvironment } from '../useSDKConfig'\n\nexport function useHotBondContracts() {\n const apiUrl = useURLByEnvironment('apiV2')\n return useQuery({\n queryKey: [QUERY_KEYS.HOT_BONDS_CONTRACTS],\n queryFn: () => getHotBondsContracts(apiUrl),\n staleTime: Infinity,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n retry: 1,\n })\n}\n\nexport default function useHotBonds(): UseQueryResult<BondsData[]> {\n const { data: bondsData } = useBondsData()\n const { data: hotBondContracts } = useHotBondContracts()\n return useQuery({\n queryKey: [QUERY_KEYS.HOT_BONDS, bondsData?.length, hotBondContracts?.length],\n queryFn: () => getHotBonds(bondsData!, hotBondContracts!),\n refetchOnWindowFocus: false,\n refetchInterval: 30000,\n enabled: !!bondsData && bondsData.length > 0 && !!hotBondContracts && hotBondContracts.length > 0,\n retry: 0,\n })\n}\n\nexport const getHotBondsContracts = async (apiUrl: string): Promise<string[]> => {\n try {\n const response = await axios.get(`${STRAPI_URL}/hot-bonds`)\n return response.data.map((bond: { BondAddress: string }) => bond.BondAddress.toLowerCase())\n } catch (e) {\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getHotBondsContracts', e },\n })\n return []\n }\n}\n\nexport const getHotBonds = async (bondData: BondsData[], hotBondContracts: string[]): Promise<BondsData[]> => {\n return bondData.filter((bond) =>\n hotBondContracts.includes(bond?.contractAddress?.[bond?.chainId]?.toLowerCase() ?? ''),\n )\n}\n"],"names":[],"mappings":";;;;;;;;SASgB,mBAAmB,GAAA;AACjC,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAC3C,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;AAC1C,QAAA,OAAO,EAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC;AAC3C,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACJ;AAEc,SAAU,WAAW,GAAA;IACjC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE;IAC1C,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,EAAE;AACxD,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC;QAC7E,OAAO,EAAE,MAAM,WAAW,CAAC,SAAU,EAAE,gBAAiB,CAAC;AACzD,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;AACjG,QAAA,KAAK,EAAE,CAAC;AACT,KAAA,CAAC;AACJ;MAEa,oBAAoB,GAAG,OAAO,MAAc,KAAuB;AAC9E,IAAA,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,EAAG,UAAU,CAAA,UAAA,CAAY,CAAC;AAC3D,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAA6B,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAC7F;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;YACV,MAAM;AACN,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,SAAS,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,EAAE;AAC/C,SAAA,CAAC;AACF,QAAA,OAAO,EAAE;IACX;AACF;AAEO,MAAM,WAAW,GAAG,OAAO,QAAqB,EAAE,gBAA0B,KAA0B;AAC3G,IAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAC1B,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CACvF;AACH;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
import { useAccount } from 'wagmi';
|
|
5
|
+
import { useSDKConfig } from '../useSDKConfig.js';
|
|
6
|
+
import { reportError } from '../../utils/reportError.js';
|
|
7
|
+
|
|
8
|
+
function useTierProofSignature(bondAddress, chainId, isUserRestricted) {
|
|
9
|
+
const { address: account } = useAccount();
|
|
10
|
+
const SDKConfig = useSDKConfig();
|
|
11
|
+
const apiAddress = SDKConfig?.urls?.apiV2;
|
|
12
|
+
return useQuery({
|
|
13
|
+
queryKey: [QUERY_KEYS.TIER_PROOF_SIG, account, bondAddress, chainId, isUserRestricted],
|
|
14
|
+
queryFn: () => getTierProofSig(apiAddress, account, bondAddress, chainId),
|
|
15
|
+
refetchOnWindowFocus: false,
|
|
16
|
+
retry: 1,
|
|
17
|
+
refetchInterval: 1800000, // 30 mins
|
|
18
|
+
initialData: null,
|
|
19
|
+
enabled: !!bondAddress && !!account && !!apiAddress && !!chainId && SDKConfig.useTiers && !isUserRestricted,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const getTierProofSig = async (apiAddress, account, bondAddress, chainId) => {
|
|
23
|
+
try {
|
|
24
|
+
const requestBody = {
|
|
25
|
+
user: account, // Use the account as the "user" parameter
|
|
26
|
+
bond: bondAddress, // Use the bondAddress
|
|
27
|
+
chainId: chainId, // Use the specified chainId (Polygon)
|
|
28
|
+
};
|
|
29
|
+
const response = await axios.post(`${apiAddress}/tier-signature`, requestBody);
|
|
30
|
+
return response.data.tierProofSignature;
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
reportError({
|
|
34
|
+
apiUrl: apiAddress,
|
|
35
|
+
error: e,
|
|
36
|
+
extraInfo: { type: 'getTierProofSig', bondAddress, e },
|
|
37
|
+
chainId,
|
|
38
|
+
account,
|
|
39
|
+
});
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export { useTierProofSignature as default, getTierProofSig };
|
|
45
|
+
//# sourceMappingURL=useTierProofSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTierProofSignature.js","sources":["../../../src/state/bonds/useTierProofSignature.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport axios from 'axios'\nimport { useAccount } from 'wagmi'\nimport { useSDKConfig } from '../useSDKConfig'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { reportError } from '../../utils/reportError'\n\nexport default function useTierProofSignature(\n bondAddress?: string,\n chainId?: ChainId,\n isUserRestricted?: boolean,\n): UseQueryResult<string | null> {\n const { address: account } = useAccount()\n const SDKConfig = useSDKConfig()\n const apiAddress = SDKConfig?.urls?.apiV2\n\n return useQuery({\n queryKey: [QUERY_KEYS.TIER_PROOF_SIG, account, bondAddress, chainId, isUserRestricted],\n queryFn: () => getTierProofSig(apiAddress, account!, bondAddress!, chainId!),\n refetchOnWindowFocus: false,\n retry: 1,\n refetchInterval: 1800000, // 30 mins\n initialData: null,\n enabled: !!bondAddress && !!account && !!apiAddress && !!chainId && SDKConfig.useTiers && !isUserRestricted,\n })\n}\n\nexport const getTierProofSig = async (\n apiAddress: string,\n account: string,\n bondAddress: string,\n chainId: ChainId,\n): Promise<string | null> => {\n try {\n const requestBody = {\n user: account, // Use the account as the \"user\" parameter\n bond: bondAddress, // Use the bondAddress\n chainId: chainId, // Use the specified chainId (Polygon)\n }\n\n const response = await axios.post(`${apiAddress}/tier-signature`, requestBody)\n return response.data.tierProofSignature\n } catch (e) {\n reportError({\n apiUrl: apiAddress,\n error: e,\n extraInfo: { type: 'getTierProofSig', bondAddress, e },\n chainId,\n account,\n })\n return null\n }\n}\n"],"names":[],"mappings":";;;;;;;AAQc,SAAU,qBAAqB,CAC3C,WAAoB,EACpB,OAAiB,EACjB,gBAA0B,EAAA;IAE1B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE;AACzC,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,IAAA,MAAM,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;AAEzC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACtF,QAAA,OAAO,EAAE,MAAM,eAAe,CAAC,UAAU,EAAE,OAAQ,EAAE,WAAY,EAAE,OAAQ,CAAC;AAC5E,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,KAAK,EAAE,CAAC;QACR,eAAe,EAAE,OAAO;AACxB,QAAA,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,gBAAgB;AAC5G,KAAA,CAAC;AACJ;AAEO,MAAM,eAAe,GAAG,OAC7B,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,OAAgB,KACU;AAC1B,IAAA,IAAI;AACF,QAAA,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO;SACjB;AAED,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA,EAAG,UAAU,CAAA,eAAA,CAAiB,EAAE,WAAW,CAAC;AAC9E,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,kBAAkB;IACzC;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;AACV,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,EAAE;YACtD,OAAO;YACP,OAAO;AACR,SAAA,CAAC;AACF,QAAA,OAAO,IAAI;IACb;AACF;;;;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
3
|
+
import { BillVersion } from '@ape.swap/apeswap-lists';
|
|
4
|
+
import useBondsList from './useBondsList.js';
|
|
5
|
+
import { fetchUserOwnedBillsDataAsync } from '../../views/YourBonds/fetchBillsUser.js';
|
|
6
|
+
import { useAccount } from 'wagmi';
|
|
7
|
+
import { useSDKConfig } from '../useSDKConfig.js';
|
|
8
|
+
import useTokenPrices from '../tokenPrices/useTokenPrices.js';
|
|
9
|
+
import { ACF_TO_ABOND } from '../../config/constants/addresses.js';
|
|
10
|
+
import { reportError } from '../../utils/reportError.js';
|
|
11
|
+
|
|
12
|
+
function useUserBonds() {
|
|
13
|
+
// First fetch the full list of bonds
|
|
14
|
+
const { data: bondList } = useBondsList();
|
|
15
|
+
const { address } = useAccount();
|
|
16
|
+
const SDKConfig = useSDKConfig();
|
|
17
|
+
const { data: tokenPrices } = useTokenPrices();
|
|
18
|
+
const chains = SDKConfig?.chains;
|
|
19
|
+
const apiUrl = SDKConfig?.urls?.apiV2;
|
|
20
|
+
// Once the full list is fetched, fetch user's purchased bonds
|
|
21
|
+
return useQuery({
|
|
22
|
+
queryKey: [QUERY_KEYS.USER_BONDS, address],
|
|
23
|
+
queryFn: () => getUserBonds(address, bondList, chains, tokenPrices, apiUrl),
|
|
24
|
+
refetchOnWindowFocus: false,
|
|
25
|
+
refetchInterval: 60000,
|
|
26
|
+
enabled: !!bondList && !!address && !!tokenPrices,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const getUserBonds = async (account, bondList, chains, tokenPrices, apiUrl) => {
|
|
30
|
+
try {
|
|
31
|
+
const bondsByChain = bondList.reduce((acc, bond) => {
|
|
32
|
+
// Exclude ACF to ABOND bonds, fixed price bonds, and migration bonds
|
|
33
|
+
if (bond.contractAddress[bond.chainId]?.toLowerCase() === ACF_TO_ABOND.toLowerCase() ||
|
|
34
|
+
bond.billVersion === BillVersion.FixedPrice ||
|
|
35
|
+
bond.billType === 'migration') {
|
|
36
|
+
return acc; // Skip this bond
|
|
37
|
+
}
|
|
38
|
+
// Only process bonds that belong to the specified chains
|
|
39
|
+
if (chains.includes(bond.chainId)) {
|
|
40
|
+
// Initialize acc[bond.chainId] if it doesn't exist yet
|
|
41
|
+
if (!acc[bond.chainId]) {
|
|
42
|
+
acc[bond.chainId] = [];
|
|
43
|
+
}
|
|
44
|
+
// Safely push the bond to the array
|
|
45
|
+
acc[bond.chainId].push(bond);
|
|
46
|
+
}
|
|
47
|
+
return acc;
|
|
48
|
+
}, {});
|
|
49
|
+
const results = await Promise.allSettled(chains
|
|
50
|
+
.filter((chain) => bondsByChain[chain])
|
|
51
|
+
.map((chain) => fetchUserOwnedBillsDataAsync(chain, account, bondsByChain[chain], tokenPrices)));
|
|
52
|
+
// Filter out only fulfilled promises
|
|
53
|
+
const fulfilledResults = results
|
|
54
|
+
.filter((result) => result.status === 'fulfilled')
|
|
55
|
+
.map((result) => result.value);
|
|
56
|
+
return fulfilledResults.flat().flatMap((result) => result.userOwnedBills);
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
reportError({
|
|
60
|
+
apiUrl,
|
|
61
|
+
error: e,
|
|
62
|
+
extraInfo: { type: 'getUserBonds', bondList, chains, e },
|
|
63
|
+
account,
|
|
64
|
+
});
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { useUserBonds as default, getUserBonds };
|
|
70
|
+
//# sourceMappingURL=useUserBonds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUserBonds.js","sources":["../../../src/state/bonds/useUserBonds.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BillsConfig, BillVersion } from '@ape.swap/apeswap-lists'\nimport useBondsList from './useBondsList'\nimport { fetchUserOwnedBillsDataAsync } from '../../views/YourBonds/fetchBillsUser'\nimport { UserBill } from '../../types/yourbonds'\nimport { useAccount } from 'wagmi'\nimport { useSDKConfig } from '../useSDKConfig'\nimport useTokenPrices, { TokenPrices } from '../tokenPrices/useTokenPrices'\n\nimport { ACF_TO_ABOND } from '../../config/constants/addresses'\nimport { reportError } from '../../utils/reportError'\n\nexport default function useUserBonds(): UseQueryResult<UserBill[]> {\n // First fetch the full list of bonds\n const { data: bondList } = useBondsList()\n const { address } = useAccount()\n const SDKConfig = useSDKConfig()\n const { data: tokenPrices } = useTokenPrices()\n const chains = SDKConfig?.chains as number[]\n const apiUrl = SDKConfig?.urls?.apiV2\n // Once the full list is fetched, fetch user's purchased bonds\n return useQuery({\n queryKey: [QUERY_KEYS.USER_BONDS, address],\n queryFn: () => getUserBonds(address!, bondList!, chains, tokenPrices!, apiUrl),\n refetchOnWindowFocus: false,\n refetchInterval: 60000,\n enabled: !!bondList && !!address && !!tokenPrices,\n })\n}\n\nexport const getUserBonds = async (\n account: string,\n bondList: BillsConfig[],\n chains: number[],\n tokenPrices: TokenPrices[],\n apiUrl?: string,\n): Promise<UserBill[]> => {\n try {\n const bondsByChain = bondList.reduce(\n (acc, bond) => {\n // Exclude ACF to ABOND bonds, fixed price bonds, and migration bonds\n if (\n bond.contractAddress[bond.chainId]?.toLowerCase() === ACF_TO_ABOND.toLowerCase() ||\n bond.billVersion === BillVersion.FixedPrice ||\n bond.billType === 'migration'\n ) {\n return acc // Skip this bond\n }\n\n // Only process bonds that belong to the specified chains\n if (chains.includes(bond.chainId)) {\n // Initialize acc[bond.chainId] if it doesn't exist yet\n if (!acc[bond.chainId]) {\n acc[bond.chainId] = []\n }\n\n // Safely push the bond to the array\n acc[bond.chainId].push(bond)\n }\n return acc\n },\n {} as Record<number, BillsConfig[]>,\n )\n\n const results = await Promise.allSettled(\n chains\n .filter((chain) => bondsByChain[chain])\n .map((chain) => fetchUserOwnedBillsDataAsync(chain as number, account, bondsByChain[chain], tokenPrices)),\n )\n\n // Filter out only fulfilled promises\n const fulfilledResults = results\n .filter((result): result is PromiseFulfilledResult<any> => result.status === 'fulfilled')\n .map((result) => result.value)\n\n return fulfilledResults.flat().flatMap((result) => result.userOwnedBills)\n } catch (e) {\n reportError({\n apiUrl,\n error: e,\n extraInfo: { type: 'getUserBonds', bondList, chains, e },\n account,\n })\n return []\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAac,SAAU,YAAY,GAAA;;IAElC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE;AACzC,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE;AAChC,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE;AAC9C,IAAA,MAAM,MAAM,GAAG,SAAS,EAAE,MAAkB;AAC5C,IAAA,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,KAAK;;AAErC,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;AAC1C,QAAA,OAAO,EAAE,MAAM,YAAY,CAAC,OAAQ,EAAE,QAAS,EAAE,MAAM,EAAE,WAAY,EAAE,MAAM,CAAC;AAC9E,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,eAAe,EAAE,KAAK;QACtB,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW;AAClD,KAAA,CAAC;AACJ;AAEO,MAAM,YAAY,GAAG,OAC1B,OAAe,EACf,QAAuB,EACvB,MAAgB,EAChB,WAA0B,EAC1B,MAAe,KACQ;AACvB,IAAA,IAAI;QACF,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC,GAAG,EAAE,IAAI,KAAI;;AAEZ,YAAA,IACE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE;AAChF,gBAAA,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,UAAU;AAC3C,gBAAA,IAAI,CAAC,QAAQ,KAAK,WAAW,EAC7B;gBACA,OAAO,GAAG,CAAA;YACZ;;YAGA,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;;gBAEjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtB,oBAAA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBACxB;;gBAGA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B;AACA,YAAA,OAAO,GAAG;QACZ,CAAC,EACD,EAAmC,CACpC;AAED,QAAA,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC;aACG,MAAM,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,CAAC;aACrC,GAAG,CAAC,CAAC,KAAK,KAAK,4BAA4B,CAAC,KAAe,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAC5G;;QAGD,MAAM,gBAAgB,GAAG;aACtB,MAAM,CAAC,CAAC,MAAM,KAA4C,MAAM,CAAC,MAAM,KAAK,WAAW;aACvF,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC;AAEhC,QAAA,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,cAAc,CAAC;IAC3E;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,WAAW,CAAC;YACV,MAAM;AACN,YAAA,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE;YACxD,OAAO;AACR,SAAA,CAAC;AACF,QAAA,OAAO,EAAE;IACX;AACF;;;;"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
|
|
2
|
+
import multicall from '../../utils/multicall.js';
|
|
3
|
+
import { chunk } from 'lodash';
|
|
4
|
+
import launchBondsABI_V2_2_0 from '../../config/abi/launchBond_v2_4_1.json.js';
|
|
5
|
+
|
|
6
|
+
const getPreTGEBondsData = async (chain, tokenPrices, preTGEBonds, apiUrl) => {
|
|
7
|
+
try {
|
|
8
|
+
if (!preTGEBonds?.length)
|
|
9
|
+
return [];
|
|
10
|
+
const data = [];
|
|
11
|
+
const chainId = chain;
|
|
12
|
+
const preTGEBondsIds = [];
|
|
13
|
+
const launchBondsCalls = preTGEBonds.flatMap((bond) => {
|
|
14
|
+
preTGEBondsIds.push(bond.index);
|
|
15
|
+
const bill = bond;
|
|
16
|
+
return [
|
|
17
|
+
{
|
|
18
|
+
address: bill.contractAddress[bill.chainId],
|
|
19
|
+
name: 'trueBillPrice',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
address: bill.contractAddress[bill.chainId],
|
|
23
|
+
name: 'terms',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
address: bill.contractAddress[bill.chainId],
|
|
27
|
+
name: 'totalPrincipalBilled',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
address: bill.contractAddress[bill.chainId],
|
|
31
|
+
name: 'finalized',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
address: bill.contractAddress[bill.chainId],
|
|
35
|
+
name: 'minPoints',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
address: bill.contractAddress[bill.chainId],
|
|
39
|
+
name: 'maxPoints',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
address: bill.contractAddress[bill.chainId],
|
|
43
|
+
name: 'startVestingTimestamp',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
});
|
|
47
|
+
const vals = await multicall(chainId, launchBondsABI_V2_2_0, launchBondsCalls);
|
|
48
|
+
const chunkSize = vals.length / preTGEBonds.length;
|
|
49
|
+
const chunkedBills = chunk(vals, chunkSize);
|
|
50
|
+
const returnedBills = chunkedBills?.map((chunk, index) => {
|
|
51
|
+
const bondConfig = preTGEBonds?.find((bill) => bill?.index === preTGEBondsIds[index]);
|
|
52
|
+
const [trueBillPrice, terms, totalPrincipalBilled, finalized, minPoints, maxPoints, startVestingTimestamp] = chunk;
|
|
53
|
+
const [, , vestingTerm, , , initialRelease, totalRaise, maxTotalPayout] = terms;
|
|
54
|
+
const initPrice = getBalanceNumber(trueBillPrice, bondConfig?.lpToken?.decimals?.[bondConfig?.chainId] ?? 18);
|
|
55
|
+
const lpPrice = tokenPrices?.find((tokenPrice) => tokenPrice?.address?.toLowerCase() === bondConfig?.lpToken?.address?.[bondConfig?.chainId]?.toLowerCase() &&
|
|
56
|
+
tokenPrice?.chainId === chainId)?.price ?? 0;
|
|
57
|
+
const earnTokenPrice = tokenPrices?.find((tokenPrice) => tokenPrice?.address?.toLowerCase() === bondConfig?.earnToken?.address?.[bondConfig?.chainId]?.toLowerCase() &&
|
|
58
|
+
tokenPrice?.chainId === chainId)?.price;
|
|
59
|
+
const principalTokenPrice = lpPrice?.toString() ?? '0';
|
|
60
|
+
const payoutTokenPrice = earnTokenPrice ? earnTokenPrice?.toString() : initPrice?.toString();
|
|
61
|
+
const bonus = Math.round((bondConfig.tgePrice / initPrice) * 100 - 100);
|
|
62
|
+
const data = {
|
|
63
|
+
...bondConfig,
|
|
64
|
+
initialRelease: initialRelease / 10000,
|
|
65
|
+
vestingTerm: vestingTerm?.toNumber(),
|
|
66
|
+
trueBondPrices: [
|
|
67
|
+
{
|
|
68
|
+
points: '0',
|
|
69
|
+
trueBondPrice: trueBillPrice?.toString(),
|
|
70
|
+
bonus,
|
|
71
|
+
bonusWithFee: bonus, // placeholder, wont be used
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
maxTotalPayout: maxTotalPayout?.toString(),
|
|
75
|
+
totalPrincipalBilled: totalPrincipalBilled?.toString(),
|
|
76
|
+
payoutTokenPrice,
|
|
77
|
+
principalTokenPrice,
|
|
78
|
+
totalRaise: totalRaise?.toString(),
|
|
79
|
+
finalized: finalized[0],
|
|
80
|
+
minPoints: minPoints.toString(),
|
|
81
|
+
maxPoints: maxPoints.toString(),
|
|
82
|
+
startVestingTimestamp: startVestingTimestamp?.toString(),
|
|
83
|
+
initTime: { [bondConfig.chainId]: terms.startTime.toNumber() },
|
|
84
|
+
finishTime: terms.endTime.toNumber(),
|
|
85
|
+
initPrice,
|
|
86
|
+
soldOut: finalized[0] || (terms.endTime.toNumber() ?? 0) < Date.now() / 1000 || bondConfig.soldOut,
|
|
87
|
+
};
|
|
88
|
+
return data;
|
|
89
|
+
});
|
|
90
|
+
data.push(returnedBills);
|
|
91
|
+
return data.flat();
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
console.error(e);
|
|
95
|
+
reportError({
|
|
96
|
+
apiUrl,
|
|
97
|
+
error: e,
|
|
98
|
+
extraInfo: { type: 'getLaunchBondsPublicData', preTGEBonds, chain, e },
|
|
99
|
+
});
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export { getPreTGEBondsData };
|
|
105
|
+
//# sourceMappingURL=utils.js.map
|