@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,183 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import axios from 'axios';
|
|
3
|
+
import { LiquidityDex, ChainId, dexFactories, Protocols, defaultDexFactories } from '@ape.swap/apeswap-lists';
|
|
4
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
5
|
+
import { PRICE_GETTER_ADDRESSES } from '../../config/constants/addresses.js';
|
|
6
|
+
import { getBalanceNumber } from '../../utils/getBalanceNumber.js';
|
|
7
|
+
import multicall from '../../utils/multicall.js';
|
|
8
|
+
import { useURLByEnvironment, useSDKConfig } from '../useSDKConfig.js';
|
|
9
|
+
import PRICE_GETTER_V3_ABI from '../../config/abi/price-getter-v3.json.js';
|
|
10
|
+
import { reportError } from '../../utils/reportError.js';
|
|
11
|
+
|
|
12
|
+
function useTokenPrices() {
|
|
13
|
+
const realTime = useURLByEnvironment('realTimeApi');
|
|
14
|
+
const SDKConfig = useSDKConfig();
|
|
15
|
+
const apiUrl = SDKConfig?.urls?.apiV2;
|
|
16
|
+
return useQuery({
|
|
17
|
+
queryKey: [QUERY_KEYS.TOKEN_PRICES],
|
|
18
|
+
queryFn: () => getTokenPrices(realTime, SDKConfig.chains, apiUrl),
|
|
19
|
+
refetchInterval: 60000, // 60 sec
|
|
20
|
+
refetchOnMount: false,
|
|
21
|
+
refetchOnWindowFocus: false,
|
|
22
|
+
enabled: !!SDKConfig.chains && SDKConfig.chains.length > 0,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const getTokenPrices = async (realTimeApiURL, chains, apiUrl) => {
|
|
26
|
+
try {
|
|
27
|
+
const response = await axios.get(`${realTimeApiURL}/utils/tokens`);
|
|
28
|
+
const tokenList = response.data;
|
|
29
|
+
const promises = chains.map(async (chain) => {
|
|
30
|
+
try {
|
|
31
|
+
// Directly return the result of fetching prices, or handle any exceptions here
|
|
32
|
+
return await getAllTokenPrices(+chain, tokenList, apiUrl);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error(`Failed to fetch prices for chain ${chain}:`, error);
|
|
36
|
+
reportError({
|
|
37
|
+
apiUrl,
|
|
38
|
+
error,
|
|
39
|
+
extraInfo: { type: 'getAllTokenPrices', chains, error },
|
|
40
|
+
});
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const responses = await Promise.allSettled(promises);
|
|
45
|
+
// Combine the filtering and mapping into a single loop, avoiding dual mapping
|
|
46
|
+
const flattenedPrices = responses.reduce((acc, result) => {
|
|
47
|
+
if (result.status === 'fulfilled' && result.value) {
|
|
48
|
+
acc.push(...result.value);
|
|
49
|
+
}
|
|
50
|
+
return acc;
|
|
51
|
+
}, []);
|
|
52
|
+
return flattenedPrices;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
reportError({
|
|
56
|
+
apiUrl,
|
|
57
|
+
error,
|
|
58
|
+
extraInfo: { type: 'getTokenPrices', chains, error },
|
|
59
|
+
});
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const getAllTokenPrices = async (chainId, tokens, apiUrl) => {
|
|
64
|
+
const { externalTokens, filterTokensToCall, arrayFilterTokens } = Object.keys(tokens).reduce((acc, key) => {
|
|
65
|
+
const token = tokens[key];
|
|
66
|
+
if (token?.liquidityDex?.[chainId] === LiquidityDex.External) {
|
|
67
|
+
acc.externalTokens.push({
|
|
68
|
+
...token,
|
|
69
|
+
address: token.address[chainId] ?? '',
|
|
70
|
+
decimals: token?.decimals?.[chainId] ?? 18,
|
|
71
|
+
lpToken: token.lpToken ?? false,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
else if (token?.active &&
|
|
75
|
+
token.address[chainId] &&
|
|
76
|
+
token.decimals?.[chainId] &&
|
|
77
|
+
//@ts-ignore
|
|
78
|
+
token?.liquidityDex?.[chainId] !== LiquidityDex.External) {
|
|
79
|
+
acc.filterTokensToCall[key] = token;
|
|
80
|
+
acc.arrayFilterTokens.push(token);
|
|
81
|
+
}
|
|
82
|
+
return acc;
|
|
83
|
+
},
|
|
84
|
+
// Accumulator
|
|
85
|
+
{
|
|
86
|
+
externalTokens: [],
|
|
87
|
+
filterTokensToCall: {},
|
|
88
|
+
arrayFilterTokens: [],
|
|
89
|
+
});
|
|
90
|
+
if (chainId === ChainId.BSC_TESTNET) {
|
|
91
|
+
return arrayFilterTokens.map((token) => {
|
|
92
|
+
return {
|
|
93
|
+
symbol: token.symbol,
|
|
94
|
+
address: token.address[chainId],
|
|
95
|
+
price: 1,
|
|
96
|
+
decimals: token.decimals?.[chainId] ?? undefined,
|
|
97
|
+
chainId,
|
|
98
|
+
};
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
const externalResults = await getBatchTokensExternal({ chainId, tokens: externalTokens, apiUrl });
|
|
102
|
+
const tokenResults = await getTokenPricesV3FromPriceGetter(filterTokensToCall, chainId);
|
|
103
|
+
const parsedTokenResults = arrayFilterTokens.map((token, i) => {
|
|
104
|
+
const price = getBalanceNumber(tokenResults?.[i]?.toString(), 18);
|
|
105
|
+
return {
|
|
106
|
+
symbol: token.symbol,
|
|
107
|
+
address: token.address[chainId],
|
|
108
|
+
price: price ?? undefined,
|
|
109
|
+
decimals: token.decimals?.[chainId] ?? undefined,
|
|
110
|
+
chainId,
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
return [...parsedTokenResults, ...externalResults];
|
|
114
|
+
};
|
|
115
|
+
const getBatchTokensExternal = async (params) => {
|
|
116
|
+
const { chainId, tokens, apiUrl } = params;
|
|
117
|
+
try {
|
|
118
|
+
const baseURL = 'https://price-api.ape.bond/prices';
|
|
119
|
+
const tokensToCall = tokens.map((token) => token.address);
|
|
120
|
+
if (tokensToCall.length === 0)
|
|
121
|
+
return [];
|
|
122
|
+
const response = await axios.post(`${baseURL}`, {
|
|
123
|
+
rpcUrl: 'string',
|
|
124
|
+
tokens: tokensToCall,
|
|
125
|
+
chain: chainId,
|
|
126
|
+
});
|
|
127
|
+
return response.data.map((token) => {
|
|
128
|
+
return {
|
|
129
|
+
symbol: token.symbol,
|
|
130
|
+
address: token.tokenAddress,
|
|
131
|
+
price: parseFloat(token.price),
|
|
132
|
+
chainId,
|
|
133
|
+
};
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
console.log(`Failed to get price from api for chain ${chainId}.`);
|
|
138
|
+
reportError({
|
|
139
|
+
apiUrl,
|
|
140
|
+
error,
|
|
141
|
+
extraInfo: { type: 'getBatchTokensExternal', tokens, error },
|
|
142
|
+
chainId,
|
|
143
|
+
});
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
async function getTokenPricesV3FromPriceGetter(tokensToCall, chain) {
|
|
148
|
+
const calls = [];
|
|
149
|
+
Object.values(tokensToCall).map((token) => {
|
|
150
|
+
const call = getPriceGetterV3Call(chain, token);
|
|
151
|
+
if (call) {
|
|
152
|
+
calls.push(call);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return await multicall(+chain, PRICE_GETTER_V3_ABI, calls);
|
|
156
|
+
}
|
|
157
|
+
const getPriceGetterV3Call = (chain, token) => {
|
|
158
|
+
const address = token.address[chain];
|
|
159
|
+
const liquidityDex = token.liquidityDex?.[chain];
|
|
160
|
+
const dexFactory = dexFactories[chain]?.[liquidityDex];
|
|
161
|
+
const protocol = dexFactory?.protocol ?? Protocols.V2;
|
|
162
|
+
const factory = dexFactory?.factory ?? defaultDexFactories?.[chain]?.[protocol];
|
|
163
|
+
const priceGetterAddress = PRICE_GETTER_ADDRESSES[chain];
|
|
164
|
+
const wrapper = token.liquidityWrapper;
|
|
165
|
+
if (!factory) {
|
|
166
|
+
console.log(`No default dex factory found for retrieving price for protocol ${protocol}. Please contact support.`);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const params = [address, protocol, factory];
|
|
170
|
+
// eslint-disable-next-line
|
|
171
|
+
const methodName = token.lpToken ? (!!wrapper ? 'getWrappedLPPrice' : 'getLPPrice') : 'getTokenPrice';
|
|
172
|
+
if (wrapper && token.lpToken) {
|
|
173
|
+
params.push(wrapper);
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
address: priceGetterAddress,
|
|
177
|
+
name: methodName,
|
|
178
|
+
params,
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
export { useTokenPrices as default, getTokenPrices, getTokenPricesV3FromPriceGetter };
|
|
183
|
+
//# sourceMappingURL=useTokenPrices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTokenPrices.js","sources":["../../../src/state/tokenPrices/useTokenPrices.ts"],"sourcesContent":["import { useQuery, UseQueryResult } from '@tanstack/react-query'\nimport axios from 'axios'\nimport {\n ChainId,\n defaultDexFactories,\n dexFactories,\n LiquidityDex,\n Protocols,\n Token,\n Wrappers,\n} from '@ape.swap/apeswap-lists'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { PRICE_GETTER_ADDRESSES } from '../../config/constants/addresses'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport multicall, { Call } from '../../utils/multicall'\nimport { useSDKConfig, useURLByEnvironment } from '../useSDKConfig'\nimport PRICE_GETTER_V3_ABI from '../../config/abi/price-getter-v3.json'\nimport { reportError } from '../../utils/reportError'\n\nexport interface TokenPrices {\n symbol: string | undefined\n address: string | undefined\n price: number | undefined\n chainId: ChainId | undefined\n}\n\nexport default function useTokenPrices(): UseQueryResult<TokenPrices[]> {\n const realTime = useURLByEnvironment('realTimeApi')\n const SDKConfig = useSDKConfig()\n const apiUrl = SDKConfig?.urls?.apiV2\n return useQuery({\n queryKey: [QUERY_KEYS.TOKEN_PRICES],\n queryFn: () => getTokenPrices(realTime, SDKConfig.chains!, apiUrl),\n refetchInterval: 60000, // 60 sec\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n enabled: !!SDKConfig.chains && SDKConfig.chains.length > 0,\n })\n}\n\nexport const getTokenPrices = async (\n realTimeApiURL: string,\n chains: number[],\n apiUrl?: string,\n): Promise<TokenPrices[]> => {\n try {\n const response = await axios.get(`${realTimeApiURL}/utils/tokens`)\n const tokenList: Record<string, Token> = response.data\n const promises = chains.map(async (chain) => {\n try {\n // Directly return the result of fetching prices, or handle any exceptions here\n return await getAllTokenPrices(+chain, tokenList, apiUrl)\n } catch (error) {\n console.error(`Failed to fetch prices for chain ${chain}:`, error)\n reportError({\n apiUrl,\n error,\n extraInfo: { type: 'getAllTokenPrices', chains, error },\n })\n return null\n }\n })\n\n const responses = await Promise.allSettled(promises)\n\n // Combine the filtering and mapping into a single loop, avoiding dual mapping\n const flattenedPrices = responses.reduce<TokenPrices[]>((acc, result) => {\n if (result.status === 'fulfilled' && result.value) {\n acc.push(...result.value)\n }\n return acc\n }, [])\n return flattenedPrices\n } catch (error) {\n reportError({\n apiUrl,\n error,\n extraInfo: { type: 'getTokenPrices', chains, error },\n })\n return []\n }\n}\n\nconst getAllTokenPrices = async (\n chainId: ChainId,\n tokens: Record<string, Token>,\n apiUrl?: string,\n): Promise<TokenPrices[]> => {\n const { externalTokens, filterTokensToCall, arrayFilterTokens } = Object.keys(tokens).reduce(\n (acc, key) => {\n const token = tokens[key]\n\n if (token?.liquidityDex?.[chainId] === LiquidityDex.External) {\n acc.externalTokens.push({\n ...token,\n address: token.address[chainId] ?? '',\n decimals: token?.decimals?.[chainId] ?? 18,\n lpToken: token.lpToken ?? false,\n })\n } else if (\n token?.active &&\n token.address[chainId] &&\n token.decimals?.[chainId] &&\n //@ts-ignore\n token?.liquidityDex?.[chainId] !== LiquidityDex.External\n ) {\n acc.filterTokensToCall[key] = token\n acc.arrayFilterTokens.push(token)\n }\n\n return acc\n },\n // Accumulator\n {\n externalTokens: [] as {\n address: string\n decimals: number\n lpToken: boolean\n symbol: string\n [key: string]: any\n }[],\n filterTokensToCall: {} as Record<string, Token>,\n arrayFilterTokens: [] as Token[],\n },\n )\n\n if (chainId === ChainId.BSC_TESTNET) {\n return arrayFilterTokens.map((token) => {\n return {\n symbol: token.symbol,\n address: token.address[chainId],\n price: 1,\n decimals: token.decimals?.[chainId] ?? undefined,\n chainId,\n }\n })\n }\n const externalResults = await getBatchTokensExternal({ chainId, tokens: externalTokens, apiUrl })\n const tokenResults = await getTokenPricesV3FromPriceGetter(filterTokensToCall, chainId)\n\n const parsedTokenResults = arrayFilterTokens.map((token, i) => {\n const price = getBalanceNumber(tokenResults?.[i]?.toString(), 18)\n\n return {\n symbol: token.symbol,\n address: token.address[chainId],\n price: price ?? undefined,\n decimals: token.decimals?.[chainId] ?? undefined,\n chainId,\n }\n })\n\n return [...parsedTokenResults, ...externalResults]\n}\n\nconst getBatchTokensExternal = async (params: {\n chainId: ChainId\n tokens: {\n address: string\n lpToken: boolean\n symbol: string\n totalSupply?: number\n }[]\n apiUrl?: string\n}): Promise<TokenPrices[]> => {\n const { chainId, tokens, apiUrl } = params\n try {\n const baseURL = 'https://price-api.ape.bond/prices'\n const tokensToCall = tokens.map((token) => token.address)\n if (tokensToCall.length === 0) return []\n const response = await axios.post(`${baseURL}`, {\n rpcUrl: 'string',\n tokens: tokensToCall,\n chain: chainId,\n })\n return response.data.map((token: any) => {\n return {\n symbol: token.symbol,\n address: token.tokenAddress,\n price: parseFloat(token.price),\n chainId,\n }\n })\n } catch (error) {\n console.log(`Failed to get price from api for chain ${chainId}.`)\n reportError({\n apiUrl,\n error,\n extraInfo: { type: 'getBatchTokensExternal', tokens, error },\n chainId,\n })\n return []\n }\n}\n\nexport async function getTokenPricesV3FromPriceGetter(tokensToCall: Record<string, Token>, chain: ChainId) {\n const calls: Call[] = []\n Object.values(tokensToCall).map((token) => {\n const call = getPriceGetterV3Call(chain, token)\n if (call) {\n calls.push(call)\n }\n })\n return await multicall(+chain, PRICE_GETTER_V3_ABI, calls)\n}\n\nconst getPriceGetterV3Call = (chain: ChainId, token: Token) => {\n const address = token.address[chain] as string\n const liquidityDex = token.liquidityDex?.[chain]\n const dexFactory = dexFactories[chain]?.[liquidityDex!]\n const protocol = dexFactory?.protocol ?? Protocols.V2\n const factory = dexFactory?.factory ?? defaultDexFactories?.[chain]?.[protocol]\n const priceGetterAddress = PRICE_GETTER_ADDRESSES[chain]\n const wrapper = token.liquidityWrapper\n\n if (!factory) {\n console.log(`No default dex factory found for retrieving price for protocol ${protocol}. Please contact support.`)\n return\n }\n\n const params: (string | Protocols | Wrappers)[] = [address, protocol, factory]\n\n // eslint-disable-next-line\n const methodName = token.lpToken ? (!!wrapper ? 'getWrappedLPPrice' : 'getLPPrice') : 'getTokenPrice'\n if (wrapper && token.lpToken) {\n params.push(wrapper)\n }\n\n return {\n address: priceGetterAddress,\n name: methodName,\n params,\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { QUERY_KEYS } from '../config/constants/queryKeys.js';
|
|
3
|
+
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
4
|
+
|
|
5
|
+
// Prod URLS. Do not make changes here
|
|
6
|
+
const defaultUrls = {
|
|
7
|
+
apiV2: 'https://api.ape.bond',
|
|
8
|
+
realTimeApi: 'https://realtime-api.ape.bond',
|
|
9
|
+
mainUrl: 'https://ape.bond',
|
|
10
|
+
};
|
|
11
|
+
// Staging URLS.
|
|
12
|
+
const stagingUrls = {
|
|
13
|
+
apiV2: 'https://staging-api.ape.bond',
|
|
14
|
+
realTimeApi: 'https://realtime-api-staging.ape.bond',
|
|
15
|
+
mainUrl: 'https://staging.ape.bond',
|
|
16
|
+
};
|
|
17
|
+
const useSDKConfig = (config) => {
|
|
18
|
+
const urls = process.env.NODE_ENV === 'production' ? defaultUrls : stagingUrls;
|
|
19
|
+
const initialData = {
|
|
20
|
+
referenceId: '',
|
|
21
|
+
chains: [],
|
|
22
|
+
hotBondChains: [ChainId.BSC, ChainId.MATIC],
|
|
23
|
+
useHotBonds: true,
|
|
24
|
+
connector: 'default',
|
|
25
|
+
useTiers: false,
|
|
26
|
+
useTGEBonds: false,
|
|
27
|
+
showLowValueBonds: false,
|
|
28
|
+
bondPartner: undefined,
|
|
29
|
+
namingPreference: 'Bonus',
|
|
30
|
+
...config,
|
|
31
|
+
urls: { ...urls, ...config?.urls },
|
|
32
|
+
highestCompatibleVersion: '2.1.3',
|
|
33
|
+
};
|
|
34
|
+
const { data } = useQuery({
|
|
35
|
+
queryKey: [QUERY_KEYS.SDK_CONFIG],
|
|
36
|
+
queryFn: () => {
|
|
37
|
+
throw new Error('Just a hotfix for latest versions of react-query that make queryFn a required prop');
|
|
38
|
+
},
|
|
39
|
+
initialData,
|
|
40
|
+
});
|
|
41
|
+
return data;
|
|
42
|
+
};
|
|
43
|
+
const useURLByEnvironment = (key) => {
|
|
44
|
+
const config = useSDKConfig();
|
|
45
|
+
return config?.urls?.[key];
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export { useSDKConfig, useURLByEnvironment };
|
|
49
|
+
//# sourceMappingURL=useSDKConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSDKConfig.js","sources":["../../src/state/useSDKConfig.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../config/constants/queryKeys'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\n// Prod URLS. Do not make changes here\nconst defaultUrls = {\n apiV2: 'https://api.ape.bond',\n realTimeApi: 'https://realtime-api.ape.bond',\n mainUrl: 'https://ape.bond',\n}\n\n// Staging URLS.\nconst stagingUrls = {\n apiV2: 'https://staging-api.ape.bond',\n realTimeApi: 'https://realtime-api-staging.ape.bond',\n mainUrl: 'https://staging.ape.bond',\n}\n\nexport interface SDKPropsDTO {\n referenceId: string\n chains: number[]\n hotBondChains?: number[]\n connector?: 'rainbowkit' | 'appkit' | 'default'\n useHotBonds?: boolean\n useTiers?: boolean\n useTGEBonds?: boolean\n showLowValueBonds?: boolean\n bondPartner?: string\n namingPreference?: 'Discount' | 'Bonus'\n urls?: Partial<Record<URLKeys, string>>\n theme?: any\n highestCompatibleVersion?: string\n}\n\nexport interface SDKProps {\n referenceId: string\n chains: number[]\n hotBondChains: number[]\n connector?: 'rainbowkit' | 'appkit' | 'default'\n useHotBonds: boolean\n useTiers: boolean\n useTGEBonds: boolean\n showLowValueBonds: boolean\n bondPartner?: string\n namingPreference: 'Discount' | 'Bonus'\n urls: Record<URLKeys, string>\n theme?: any\n highestCompatibleVersion?: string\n}\n\nexport const useSDKConfig = (config?: SDKPropsDTO): SDKProps => {\n const urls = process.env.NODE_ENV === 'production' ? defaultUrls : stagingUrls\n\n const initialData: SDKProps = {\n referenceId: '',\n chains: [],\n hotBondChains: [ChainId.BSC, ChainId.MATIC],\n useHotBonds: true,\n connector: 'default',\n useTiers: false,\n useTGEBonds: false,\n showLowValueBonds: false,\n bondPartner: undefined,\n namingPreference: 'Bonus',\n ...config,\n urls: { ...urls, ...config?.urls },\n highestCompatibleVersion: '2.1.3',\n }\n const { data } = useQuery({\n queryKey: [QUERY_KEYS.SDK_CONFIG],\n queryFn: () => {\n throw new Error('Just a hotfix for latest versions of react-query that make queryFn a required prop')\n },\n initialData,\n })\n return data as SDKProps\n}\n\nexport type URLKeys = 'apiV2' | 'realTimeApi' | 'mainUrl'\n\nexport const useURLByEnvironment = (key: URLKeys) => {\n const config = useSDKConfig()\n return config?.urls?.[key] as string\n}\n"],"names":[],"mappings":";;;;AAIA;AACA,MAAM,WAAW,GAAG;AAClB,IAAA,KAAK,EAAE,sBAAsB;AAC7B,IAAA,WAAW,EAAE,+BAA+B;AAC5C,IAAA,OAAO,EAAE,kBAAkB;CAC5B;AAED;AACA,MAAM,WAAW,GAAG;AAClB,IAAA,KAAK,EAAE,8BAA8B;AACrC,IAAA,WAAW,EAAE,uCAAuC;AACpD,IAAA,OAAO,EAAE,0BAA0B;CACpC;AAkCM,MAAM,YAAY,GAAG,CAAC,MAAoB,KAAc;AAC7D,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,GAAG,WAAW,GAAG,WAAW;AAE9E,IAAA,MAAM,WAAW,GAAa;AAC5B,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,MAAM,EAAE,EAAE;QACV,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;AAC3C,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,iBAAiB,EAAE,KAAK;AACxB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,gBAAgB,EAAE,OAAO;AACzB,QAAA,GAAG,MAAM;QACT,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE;AAClC,QAAA,wBAAwB,EAAE,OAAO;KAClC;AACD,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QACjC,OAAO,EAAE,MAAK;AACZ,YAAA,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC;QACvG,CAAC;QACD,WAAW;AACZ,KAAA,CAAC;AACF,IAAA,OAAO,IAAgB;AACzB;AAIO,MAAM,mBAAmB,GAAG,CAAC,GAAY,KAAI;AAClD,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,IAAA,OAAO,MAAM,EAAE,IAAI,GAAG,GAAG,CAAW;AACtC;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ChainId, Protocols } from '@ape.swap/apeswap-lists';
|
|
2
|
+
|
|
3
|
+
var NetworkNames;
|
|
4
|
+
(function (NetworkNames) {
|
|
5
|
+
NetworkNames["MAINNET"] = "eth";
|
|
6
|
+
NetworkNames["BNB"] = "bnb";
|
|
7
|
+
NetworkNames["POLYGON"] = "pol";
|
|
8
|
+
NetworkNames["ARBITRUM"] = "arb";
|
|
9
|
+
NetworkNames["LINEA"] = "lna";
|
|
10
|
+
NetworkNames["BASE"] = "bas";
|
|
11
|
+
NetworkNames["AVAX"] = "ava";
|
|
12
|
+
NetworkNames["BLAST"] = "bls";
|
|
13
|
+
NetworkNames["SONIC"] = "son";
|
|
14
|
+
NetworkNames["BERACHAIN"] = "ber";
|
|
15
|
+
})(NetworkNames || (NetworkNames = {}));
|
|
16
|
+
const getChainParam = (chain) => {
|
|
17
|
+
return chain === ChainId.LINEA
|
|
18
|
+
? NetworkNames.LINEA
|
|
19
|
+
: chain === ChainId.MATIC
|
|
20
|
+
? NetworkNames.POLYGON
|
|
21
|
+
: chain === ChainId.BSC
|
|
22
|
+
? NetworkNames.BNB
|
|
23
|
+
: chain === ChainId.BASE
|
|
24
|
+
? NetworkNames.BASE
|
|
25
|
+
: chain === ChainId.ARBITRUM
|
|
26
|
+
? NetworkNames.ARBITRUM
|
|
27
|
+
: chain === ChainId.MAINNET
|
|
28
|
+
? NetworkNames.MAINNET
|
|
29
|
+
: chain === ChainId.AVAX
|
|
30
|
+
? NetworkNames.AVAX
|
|
31
|
+
: chain === ChainId.BLAST
|
|
32
|
+
? NetworkNames.BLAST
|
|
33
|
+
: chain === ChainId.SONIC
|
|
34
|
+
? NetworkNames.SONIC
|
|
35
|
+
: chain === ChainId.BERACHAIN
|
|
36
|
+
? NetworkNames.BERACHAIN
|
|
37
|
+
: null;
|
|
38
|
+
};
|
|
39
|
+
const getLpType = (protocol) => {
|
|
40
|
+
return protocol === Protocols.Algebra
|
|
41
|
+
? 'ichi'
|
|
42
|
+
: protocol === Protocols.Solidly
|
|
43
|
+
? 'solidly'
|
|
44
|
+
: protocol === Protocols.V2
|
|
45
|
+
? 'univ2'
|
|
46
|
+
: protocol === Protocols.V3 // This might be a hot fix. Lets revisit this on the future
|
|
47
|
+
? 'ichi'
|
|
48
|
+
: protocol === Protocols.Curve
|
|
49
|
+
? 'curve'
|
|
50
|
+
: null;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export { getChainParam, getLpType };
|
|
54
|
+
//# sourceMappingURL=getChainParam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getChainParam.js","sources":["../../../src/state/zap/getChainParam.ts"],"sourcesContent":["import { ChainId, Protocols } from '@ape.swap/apeswap-lists'\n\nenum NetworkNames {\n MAINNET = 'eth',\n BNB = 'bnb',\n POLYGON = 'pol',\n ARBITRUM = 'arb',\n LINEA = 'lna',\n BASE = 'bas',\n AVAX = 'ava',\n BLAST = 'bls',\n SONIC = 'son',\n BERACHAIN = 'ber',\n}\n\nexport const getChainParam = (chain?: ChainId): NetworkNames | null => {\n return chain === ChainId.LINEA\n ? NetworkNames.LINEA\n : chain === ChainId.MATIC\n ? NetworkNames.POLYGON\n : chain === ChainId.BSC\n ? NetworkNames.BNB\n : chain === ChainId.BASE\n ? NetworkNames.BASE\n : chain === ChainId.ARBITRUM\n ? NetworkNames.ARBITRUM\n : chain === ChainId.MAINNET\n ? NetworkNames.MAINNET\n : chain === ChainId.AVAX\n ? NetworkNames.AVAX\n : chain === ChainId.BLAST\n ? NetworkNames.BLAST\n : chain === ChainId.SONIC\n ? NetworkNames.SONIC\n : chain === ChainId.BERACHAIN\n ? NetworkNames.BERACHAIN\n : null\n}\n\nexport const getLpType = (protocol?: Protocols): 'ichi' | 'solidly' | 'univ2' | 'curve' | null => {\n return protocol === Protocols.Algebra\n ? 'ichi'\n : protocol === Protocols.Solidly\n ? 'solidly'\n : protocol === Protocols.V2\n ? 'univ2'\n : protocol === Protocols.V3 // This might be a hot fix. Lets revisit this on the future\n ? 'ichi'\n : protocol === Protocols.Curve\n ? 'curve'\n : null\n}\n"],"names":[],"mappings":";;AAEA,IAAK,YAWJ;AAXD,CAAA,UAAK,YAAY,EAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,KAAe;AACf,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,KAAe;AACf,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,KAAgB;AAChB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,KAAa;AACb,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,KAAY;AACZ,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,KAAY;AACZ,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,KAAa;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,KAAa;AACb,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,KAAiB;AACnB,CAAC,EAXI,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AAaV,MAAM,aAAa,GAAG,CAAC,KAAe,KAAyB;AACpE,IAAA,OAAO,KAAK,KAAK,OAAO,CAAC;UACrB,YAAY,CAAC;AACf,UAAE,KAAK,KAAK,OAAO,CAAC;cAChB,YAAY,CAAC;AACf,cAAE,KAAK,KAAK,OAAO,CAAC;kBAChB,YAAY,CAAC;AACf,kBAAE,KAAK,KAAK,OAAO,CAAC;sBAChB,YAAY,CAAC;AACf,sBAAE,KAAK,KAAK,OAAO,CAAC;0BAChB,YAAY,CAAC;AACf,0BAAE,KAAK,KAAK,OAAO,CAAC;8BAChB,YAAY,CAAC;AACf,8BAAE,KAAK,KAAK,OAAO,CAAC;kCAChB,YAAY,CAAC;AACf,kCAAE,KAAK,KAAK,OAAO,CAAC;sCAChB,YAAY,CAAC;AACf,sCAAE,KAAK,KAAK,OAAO,CAAC;0CAChB,YAAY,CAAC;AACf,0CAAE,KAAK,KAAK,OAAO,CAAC;8CAChB,YAAY,CAAC;8CACb,IAAI;AAC5B;AAEO,MAAM,SAAS,GAAG,CAAC,QAAoB,KAAmD;AAC/F,IAAA,OAAO,QAAQ,KAAK,SAAS,CAAC;AAC5B,UAAE;AACF,UAAE,QAAQ,KAAK,SAAS,CAAC;AACvB,cAAE;AACF,cAAE,QAAQ,KAAK,SAAS,CAAC;AACvB,kBAAE;AACF,kBAAE,QAAQ,KAAK,SAAS,CAAC,EAAE;AACzB,sBAAE;AACF,sBAAE,QAAQ,KAAK,SAAS,CAAC;AACvB,0BAAE;0BACA,IAAI;AAClB;;;;"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import BigNumber from 'bignumber.js';
|
|
3
|
+
import { dexFactories, BillVersion } from '@ape.swap/apeswap-lists';
|
|
4
|
+
import { getChainParam, getLpType } from './getChainParam.js';
|
|
5
|
+
import axios from 'axios';
|
|
6
|
+
import { useQuery } from '@tanstack/react-query';
|
|
7
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
8
|
+
import useCurrencyPrice from '../price/useCurrencyPrice.js';
|
|
9
|
+
import { useSlippage } from '../slippage/useSlippage.js';
|
|
10
|
+
import useDebounce from '../../hooks/useDebounce.js';
|
|
11
|
+
import { zapInputTokens, WNATIVE } from '../../config/constants/tokens.js';
|
|
12
|
+
import { SOUL_ZAP_API } from '../../config/constants/variables.js';
|
|
13
|
+
|
|
14
|
+
const useSoulZapBondQuote = (typedValue, inputCurrency, bond, account, tierProofSig) => {
|
|
15
|
+
const debouncedInput = useDebounce(typedValue, 400);
|
|
16
|
+
const [slippage] = useSlippage();
|
|
17
|
+
const principalToken = bond?.lpToken;
|
|
18
|
+
const bondContractAddress = bond?.contractAddress[bond?.chainId];
|
|
19
|
+
const chainId = bond?.chainId;
|
|
20
|
+
const inputCurrencyString = inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId];
|
|
21
|
+
const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals[chainId];
|
|
22
|
+
const principalContractAddress = principalToken?.address[chainId];
|
|
23
|
+
const chainName = getChainParam(chainId);
|
|
24
|
+
const isReserveBond = bond?.billType === 'reserve' || bond?.billType === 'staking';
|
|
25
|
+
const liquidityDex = principalToken?.liquiditySource?.[chainId] ?? principalToken?.liquidityDex?.[chainId];
|
|
26
|
+
const protocol = dexFactories[chainId]?.[liquidityDex]?.protocol;
|
|
27
|
+
const lpType = isReserveBond ? 'single' : getLpType(protocol);
|
|
28
|
+
const ichiUnderlyingDex = principalToken?.ichiUnderlyingDex;
|
|
29
|
+
const vault = principalToken?.address?.[chainId];
|
|
30
|
+
const router = dexFactories[chainId]?.[liquidityDex]?.router;
|
|
31
|
+
// Validates that the user did not pass an amount with 19 decimals or more
|
|
32
|
+
const validated18DecimalAmount = new BigNumber(debouncedInput ?? '0').toFixed(18, 5);
|
|
33
|
+
const bigishInputAmount = new BigNumber(validated18DecimalAmount ?? '0')
|
|
34
|
+
.times(new BigNumber(10).pow(inputCurrencyDecimals ?? 18))
|
|
35
|
+
.toString();
|
|
36
|
+
const zapInputData = useMemo(() => {
|
|
37
|
+
if (inputCurrencyString &&
|
|
38
|
+
inputCurrencyDecimals &&
|
|
39
|
+
bigishInputAmount !== 'NaN' &&
|
|
40
|
+
bigishInputAmount !== '0' &&
|
|
41
|
+
principalContractAddress &&
|
|
42
|
+
chainName &&
|
|
43
|
+
bondContractAddress &&
|
|
44
|
+
(inputCurrency === 'NATIVE' || inputCurrency?.address[chainId] !== principalToken.address[chainId])) {
|
|
45
|
+
return {
|
|
46
|
+
chain: chainName,
|
|
47
|
+
recipient: account ?? '0x0000000000000000000000000000000000000000',
|
|
48
|
+
user: account ?? '0x0000000000000000000000000000000000000000',
|
|
49
|
+
lpData: {
|
|
50
|
+
lpType,
|
|
51
|
+
fromToken: inputCurrencyString,
|
|
52
|
+
fromAmount: bigishInputAmount,
|
|
53
|
+
underlyingDex: ichiUnderlyingDex,
|
|
54
|
+
vault: isReserveBond ? undefined : vault,
|
|
55
|
+
slippage: slippage,
|
|
56
|
+
lpAddress: lpType === 'solidly' || lpType === 'univ2' || lpType === 'curve' ? vault : undefined,
|
|
57
|
+
router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,
|
|
58
|
+
toToken: isReserveBond ? vault : undefined,
|
|
59
|
+
},
|
|
60
|
+
protocolData: {
|
|
61
|
+
protocol: 'ApeBond',
|
|
62
|
+
bond: bondContractAddress,
|
|
63
|
+
depositer: account ?? '0x0000000000000000000000000000000000000000',
|
|
64
|
+
tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
72
|
+
}, [
|
|
73
|
+
bigishInputAmount,
|
|
74
|
+
principalContractAddress,
|
|
75
|
+
chainName,
|
|
76
|
+
account,
|
|
77
|
+
ichiUnderlyingDex,
|
|
78
|
+
vault,
|
|
79
|
+
lpType,
|
|
80
|
+
router,
|
|
81
|
+
slippage,
|
|
82
|
+
]);
|
|
83
|
+
const queryKey = useMemo(() => {
|
|
84
|
+
if (!zapInputData)
|
|
85
|
+
return null;
|
|
86
|
+
return [
|
|
87
|
+
'zapBondDetails',
|
|
88
|
+
zapInputData.chain,
|
|
89
|
+
zapInputData.user,
|
|
90
|
+
zapInputData.lpData.lpType,
|
|
91
|
+
zapInputData.lpData.fromToken,
|
|
92
|
+
zapInputData.lpData.fromAmount,
|
|
93
|
+
zapInputData.lpData.underlyingDex ?? '',
|
|
94
|
+
zapInputData.lpData.vault,
|
|
95
|
+
zapInputData.lpData.slippage,
|
|
96
|
+
zapInputData.lpData.lpAddress,
|
|
97
|
+
zapInputData.lpData.router ?? '',
|
|
98
|
+
];
|
|
99
|
+
}, [zapInputData]);
|
|
100
|
+
const fetchZapDetails = async () => {
|
|
101
|
+
const response = await axios.post(SOUL_ZAP_API, {
|
|
102
|
+
'0': zapInputData,
|
|
103
|
+
});
|
|
104
|
+
return response.data?.[0]?.result?.data;
|
|
105
|
+
};
|
|
106
|
+
const { data: response, isLoading, isFetching, error, } = useQuery({
|
|
107
|
+
queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],
|
|
108
|
+
queryFn: fetchZapDetails,
|
|
109
|
+
refetchInterval: 60000, // i.e. 60 sec
|
|
110
|
+
enabled: !!queryKey,
|
|
111
|
+
retry: 1,
|
|
112
|
+
});
|
|
113
|
+
const zapError = !!error;
|
|
114
|
+
const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : [];
|
|
115
|
+
// toToken0 data
|
|
116
|
+
const toToken0Estimate = response?.lpQuote?.token0?.fromAmountEstimate;
|
|
117
|
+
const toToken0 = [...tokenList, principalToken]?.find((token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase());
|
|
118
|
+
const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId);
|
|
119
|
+
// toToken1 data
|
|
120
|
+
const toToken1Estimate = response?.lpQuote?.token1?.fromAmountEstimate;
|
|
121
|
+
const toToken1 = zapInputTokens[chainId]?.find((token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase());
|
|
122
|
+
const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId);
|
|
123
|
+
let toToken0USD = new BigNumber(toToken0Estimate ?? '0')
|
|
124
|
+
?.div(new BigNumber(10).pow(toToken0?.decimals[chainId] ?? 18)) // this is amount of swap output
|
|
125
|
+
?.times(new BigNumber(toToken0Price?.price ?? 0)); // convert it to usd price
|
|
126
|
+
if (response?.lpQuote?.token0?.fromAmountUSD) {
|
|
127
|
+
toToken0USD = new BigNumber(response?.lpQuote?.token0?.fromAmountUSD);
|
|
128
|
+
}
|
|
129
|
+
let toToken1USD = new BigNumber(toToken1Estimate ?? '0')
|
|
130
|
+
?.div(new BigNumber(10).pow(toToken1?.decimals[chainId] ?? 18)) // this is amount of swap output
|
|
131
|
+
?.times(new BigNumber(toToken1Price?.price ?? 0)); // convert it to usd price
|
|
132
|
+
if (response?.lpQuote?.token1?.fromAmountUSD) {
|
|
133
|
+
toToken1USD = new BigNumber(response?.lpQuote?.token1?.fromAmountUSD);
|
|
134
|
+
}
|
|
135
|
+
const youSpendUSD = toToken0USD.plus(toToken1USD); // youSpendUSD
|
|
136
|
+
const estimatedDepositAmount = youSpendUSD.div(bond?.principalTokenPrice ?? '0');
|
|
137
|
+
const isWrap = inputCurrency === 'NATIVE' &&
|
|
138
|
+
bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase();
|
|
139
|
+
const estimatedDepositAmountToReturn = isWrap ? typedValue : estimatedDepositAmount.toString();
|
|
140
|
+
const trueBondPrice = response?.protocolQuote?.trueBondPrice;
|
|
141
|
+
const zapLoading = isLoading || isFetching;
|
|
142
|
+
if (zapLoading)
|
|
143
|
+
return [true, undefined, '', false, undefined];
|
|
144
|
+
return [zapLoading, response, estimatedDepositAmountToReturn, zapError, trueBondPrice];
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
export { useSoulZapBondQuote as default };
|
|
148
|
+
//# sourceMappingURL=useSoulZapBondQuote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSoulZapBondQuote.js","sources":["../../../src/state/zap/useSoulZapBondQuote.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport BigNumber from 'bignumber.js'\nimport { BillVersion, ChainId, dexFactories, LiquidityDex, Token } from '@ape.swap/apeswap-lists'\nimport { getChainParam, getLpType } from './getChainParam'\nimport axios from 'axios'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { BondsData } from '../../types/bonds'\nimport { useSlippage } from '../slippage/useSlippage'\nimport useDebounce from '../../hooks/useDebounce'\nimport { WNATIVE, zapInputTokens } from '../../config/constants/tokens'\nimport { SOUL_ZAP_API } from '../../config/constants/variables'\n\nconst useSoulZapBondQuote = (\n typedValue: string,\n inputCurrency: 'NATIVE' | Token | undefined,\n bond: BondsData | undefined,\n account?: string,\n tierProofSig?: string,\n): [loading: boolean, response: any, depositAmount: string, error: boolean, trueBondPrice: string | undefined] => {\n const debouncedInput = useDebounce(typedValue, 400)\n const [slippage] = useSlippage()\n\n const principalToken = bond?.lpToken as Token\n const bondContractAddress = bond?.contractAddress[bond?.chainId as ChainId]\n const chainId = bond?.chainId as ChainId\n const inputCurrencyString =\n inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId]\n const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals![chainId]\n const principalContractAddress = principalToken?.address[chainId]\n const chainName = getChainParam(chainId)\n\n const isReserveBond = bond?.billType === 'reserve' || bond?.billType === 'staking'\n const liquidityDex: LiquidityDex | undefined =\n principalToken?.liquiditySource?.[chainId] ?? principalToken?.liquidityDex?.[chainId]\n const protocol = dexFactories[chainId]?.[liquidityDex!]?.protocol\n const lpType = isReserveBond ? 'single' : getLpType(protocol)\n const ichiUnderlyingDex = principalToken?.ichiUnderlyingDex\n const vault = principalToken?.address?.[chainId]\n const router = dexFactories[chainId]?.[liquidityDex!]?.router\n\n // Validates that the user did not pass an amount with 19 decimals or more\n const validated18DecimalAmount = new BigNumber(debouncedInput ?? '0').toFixed(18, 5)\n const bigishInputAmount = new BigNumber(validated18DecimalAmount ?? '0')\n .times(new BigNumber(10).pow(inputCurrencyDecimals ?? 18))\n .toString()\n\n const zapInputData = useMemo(() => {\n if (\n inputCurrencyString &&\n inputCurrencyDecimals &&\n bigishInputAmount !== 'NaN' &&\n bigishInputAmount !== '0' &&\n principalContractAddress &&\n chainName &&\n bondContractAddress &&\n (inputCurrency === 'NATIVE' || inputCurrency?.address[chainId] !== principalToken.address[chainId])\n ) {\n return {\n chain: chainName,\n recipient: account ?? '0x0000000000000000000000000000000000000000',\n user: account ?? '0x0000000000000000000000000000000000000000',\n lpData: {\n lpType,\n fromToken: inputCurrencyString,\n fromAmount: bigishInputAmount,\n underlyingDex: ichiUnderlyingDex,\n vault: isReserveBond ? undefined : vault,\n slippage: slippage,\n lpAddress: lpType === 'solidly' || lpType === 'univ2' || lpType === 'curve' ? vault : undefined,\n router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,\n toToken: isReserveBond ? vault : undefined,\n },\n protocolData: {\n protocol: 'ApeBond',\n bond: bondContractAddress,\n depositer: account ?? '0x0000000000000000000000000000000000000000',\n tierProofSignature: bond.billVersion === BillVersion.V4 && tierProofSig ? tierProofSig : undefined,\n },\n }\n } else {\n return null\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [\n bigishInputAmount,\n principalContractAddress,\n chainName,\n account,\n ichiUnderlyingDex,\n vault,\n lpType,\n router,\n slippage,\n ])\n\n const queryKey = useMemo(() => {\n if (!zapInputData) return null\n return [\n 'zapBondDetails',\n zapInputData.chain,\n zapInputData.user,\n zapInputData.lpData.lpType,\n zapInputData.lpData.fromToken,\n zapInputData.lpData.fromAmount,\n zapInputData.lpData.underlyingDex ?? '',\n zapInputData.lpData.vault,\n zapInputData.lpData.slippage,\n zapInputData.lpData.lpAddress,\n zapInputData.lpData.router ?? '',\n ]\n }, [zapInputData])\n\n const fetchZapDetails = async () => {\n const response = await axios.post(SOUL_ZAP_API, {\n '0': zapInputData,\n })\n return response.data?.[0]?.result?.data\n }\n\n const {\n data: response,\n isLoading,\n isFetching,\n error,\n } = useQuery({\n queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],\n queryFn: fetchZapDetails,\n refetchInterval: 60000, // i.e. 60 sec\n enabled: !!queryKey,\n retry: 1,\n })\n const zapError = !!error\n\n const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : []\n\n // toToken0 data\n const toToken0Estimate: string | undefined = response?.lpQuote?.token0?.fromAmountEstimate\n const toToken0 = [...tokenList, principalToken]?.find(\n (token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase(),\n )\n const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId)\n\n // toToken1 data\n const toToken1Estimate: string | undefined = response?.lpQuote?.token1?.fromAmountEstimate\n const toToken1 = zapInputTokens[chainId]?.find(\n (token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase(),\n )\n const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId)\n\n let toToken0USD = new BigNumber(toToken0Estimate ?? '0')\n ?.div(new BigNumber(10).pow(toToken0?.decimals![chainId] ?? 18)) // this is amount of swap output\n ?.times(new BigNumber(toToken0Price?.price ?? 0)) // convert it to usd price\n\n if (response?.lpQuote?.token0?.fromAmountUSD) {\n toToken0USD = new BigNumber(response?.lpQuote?.token0?.fromAmountUSD)\n }\n\n let toToken1USD = new BigNumber(toToken1Estimate ?? '0')\n ?.div(new BigNumber(10).pow(toToken1?.decimals![chainId] ?? 18)) // this is amount of swap output\n ?.times(new BigNumber(toToken1Price?.price ?? 0)) // convert it to usd price\n\n if (response?.lpQuote?.token1?.fromAmountUSD) {\n toToken1USD = new BigNumber(response?.lpQuote?.token1?.fromAmountUSD)\n }\n\n const youSpendUSD = toToken0USD.plus(toToken1USD) // youSpendUSD\n const estimatedDepositAmount = youSpendUSD.div(bond?.principalTokenPrice ?? '0')\n\n const isWrap =\n inputCurrency === 'NATIVE' &&\n bond?.lpToken?.address?.[chainId]?.toLowerCase() === WNATIVE[chainId]?.address?.[chainId]?.toLowerCase()\n\n const estimatedDepositAmountToReturn = isWrap ? typedValue : estimatedDepositAmount.toString()\n\n const trueBondPrice: string | undefined = response?.protocolQuote?.trueBondPrice\n\n const zapLoading = isLoading || isFetching\n if (zapLoading) return [true, undefined, '', false, undefined]\n\n return [zapLoading, response, estimatedDepositAmountToReturn, zapError, trueBondPrice]\n}\n\nexport default useSoulZapBondQuote\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import BigNumber from 'bignumber.js';
|
|
3
|
+
import { dexFactories } from '@ape.swap/apeswap-lists';
|
|
4
|
+
import { getChainParam, getLpType } from './getChainParam.js';
|
|
5
|
+
import axios from 'axios';
|
|
6
|
+
import { useQuery } from '@tanstack/react-query';
|
|
7
|
+
import { QUERY_KEYS } from '../../config/constants/queryKeys.js';
|
|
8
|
+
import useCurrencyPrice from '../price/useCurrencyPrice.js';
|
|
9
|
+
import { useSlippage } from '../slippage/useSlippage.js';
|
|
10
|
+
import useDebounce from '../../hooks/useDebounce.js';
|
|
11
|
+
import { SOUL_ZAP_API } from '../../config/constants/variables.js';
|
|
12
|
+
import { zapInputTokens } from '../../config/constants/tokens.js';
|
|
13
|
+
|
|
14
|
+
const useSoulZapTokenQuote = (typedValue, inputCurrency, outputToken, chainId, account) => {
|
|
15
|
+
const debouncedInput = useDebounce(typedValue, 400);
|
|
16
|
+
const [slippage] = useSlippage();
|
|
17
|
+
const inputCurrencyString = inputCurrency === 'NATIVE' ? '0x0000000000000000000000000000000000000000' : inputCurrency?.address[chainId];
|
|
18
|
+
const inputCurrencyDecimals = inputCurrency === 'NATIVE' ? 18 : inputCurrency?.decimals[chainId];
|
|
19
|
+
const contractAddress = outputToken?.address[chainId];
|
|
20
|
+
const chain = getChainParam(chainId);
|
|
21
|
+
const isLP = outputToken?.lpToken ?? false;
|
|
22
|
+
const liquidityDex = outputToken?.liquidityDex?.[chainId];
|
|
23
|
+
const protocol = dexFactories[chainId]?.[liquidityDex]?.protocol;
|
|
24
|
+
const lpType = outputToken?.lpToken ? getLpType(protocol) : 'single';
|
|
25
|
+
const ichiUnderlyingDex = outputToken?.ichiUnderlyingDex;
|
|
26
|
+
const vault = outputToken?.address?.[chainId];
|
|
27
|
+
const router = dexFactories[chainId]?.[liquidityDex]?.router;
|
|
28
|
+
// Validates that the user did not pass an amount with 19 decimals or more
|
|
29
|
+
const validated18DecimalAmount = new BigNumber(debouncedInput ?? '0').toFixed(18, 5);
|
|
30
|
+
const bigishInputAmount = new BigNumber(validated18DecimalAmount ?? '0')
|
|
31
|
+
.times(new BigNumber(10).pow(inputCurrencyDecimals ?? 18))
|
|
32
|
+
.toString();
|
|
33
|
+
const zapInputData = useMemo(() => {
|
|
34
|
+
if (inputCurrencyString &&
|
|
35
|
+
inputCurrencyDecimals &&
|
|
36
|
+
bigishInputAmount !== 'NaN' &&
|
|
37
|
+
bigishInputAmount !== '0' &&
|
|
38
|
+
contractAddress &&
|
|
39
|
+
chain) {
|
|
40
|
+
return {
|
|
41
|
+
chain,
|
|
42
|
+
recipient: account ?? '',
|
|
43
|
+
user: account ?? '',
|
|
44
|
+
lpData: {
|
|
45
|
+
lpType,
|
|
46
|
+
fromToken: inputCurrencyString,
|
|
47
|
+
fromAmount: bigishInputAmount,
|
|
48
|
+
underlyingDex: ichiUnderlyingDex,
|
|
49
|
+
vault: isLP ? vault : undefined,
|
|
50
|
+
slippage: slippage,
|
|
51
|
+
lpAddress: lpType === 'solidly' || lpType === 'univ2' || lpType === 'curve' ? vault : undefined,
|
|
52
|
+
router: lpType === 'solidly' || lpType === 'univ2' ? router : undefined,
|
|
53
|
+
toToken: isLP ? undefined : vault,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
61
|
+
}, [bigishInputAmount, contractAddress, chain, account, ichiUnderlyingDex, vault, lpType, router, slippage]);
|
|
62
|
+
const queryKey = useMemo(() => {
|
|
63
|
+
if (!zapInputData)
|
|
64
|
+
return null;
|
|
65
|
+
return [
|
|
66
|
+
'zapTokenDetails',
|
|
67
|
+
zapInputData.chain,
|
|
68
|
+
zapInputData.user,
|
|
69
|
+
zapInputData.lpData.lpType,
|
|
70
|
+
zapInputData.lpData.fromToken,
|
|
71
|
+
zapInputData.lpData.fromAmount,
|
|
72
|
+
zapInputData.lpData.underlyingDex ?? '',
|
|
73
|
+
zapInputData.lpData.vault,
|
|
74
|
+
zapInputData.lpData.slippage,
|
|
75
|
+
zapInputData.lpData.lpAddress,
|
|
76
|
+
zapInputData.lpData.router ?? '',
|
|
77
|
+
];
|
|
78
|
+
}, [zapInputData]);
|
|
79
|
+
const fetchZapDetails = async () => {
|
|
80
|
+
console.log('Making SoulZap Token Call');
|
|
81
|
+
const response = await axios.post(SOUL_ZAP_API, {
|
|
82
|
+
'0': zapInputData,
|
|
83
|
+
});
|
|
84
|
+
return response.data?.[0]?.result?.data;
|
|
85
|
+
};
|
|
86
|
+
const { data: response, isLoading, error, } = useQuery({
|
|
87
|
+
queryKey: [QUERY_KEYS.ZAP_TOKEN_QUOTE, queryKey],
|
|
88
|
+
queryFn: fetchZapDetails,
|
|
89
|
+
refetchInterval: 20000,
|
|
90
|
+
enabled: !!queryKey,
|
|
91
|
+
retry: 1,
|
|
92
|
+
});
|
|
93
|
+
const zapError = !!error;
|
|
94
|
+
const tokenList = zapInputTokens[chainId] ? zapInputTokens[chainId] : [];
|
|
95
|
+
// toToken0 data
|
|
96
|
+
const toToken0Estimate = response?.lpQuote?.token0?.fromAmountEstimate;
|
|
97
|
+
const toToken0 = [...tokenList, outputToken]?.find((token) => token?.address?.[chainId]?.toLowerCase() === response?.lpQuote?.token0?.address?.toLowerCase());
|
|
98
|
+
const toToken0Price = useCurrencyPrice(toToken0 ?? null, chainId);
|
|
99
|
+
// toToken1 data
|
|
100
|
+
const toToken1Estimate = response?.lpQuote?.token1?.fromAmountEstimate;
|
|
101
|
+
const toToken1 = zapInputTokens[chainId]?.find((token) => token.address[chainId]?.toLowerCase() === response?.lpQuote?.token1?.address?.toLowerCase());
|
|
102
|
+
const toToken1Price = useCurrencyPrice(toToken1 ?? null, chainId);
|
|
103
|
+
let toToken0USD = new BigNumber(toToken0Estimate ?? '0')
|
|
104
|
+
?.div(new BigNumber(10).pow(toToken0?.decimals[chainId] ?? 18)) // this is amount of swap output
|
|
105
|
+
?.times(new BigNumber(toToken0Price?.price ?? 0)); // convert it to usd price
|
|
106
|
+
if (response?.lpQuote?.token0?.fromAmountUSD) {
|
|
107
|
+
toToken0USD = new BigNumber(response?.lpQuote?.token0?.fromAmountUSD);
|
|
108
|
+
}
|
|
109
|
+
let toToken1USD = new BigNumber(toToken1Estimate ?? '0')
|
|
110
|
+
?.div(new BigNumber(10).pow(toToken1?.decimals[chainId] ?? 18)) // this is amount of swap output
|
|
111
|
+
?.times(new BigNumber(toToken1Price?.price ?? 0)); // convert it to usd price
|
|
112
|
+
if (response?.lpQuote?.token1?.fromAmountUSD) {
|
|
113
|
+
toToken1USD = new BigNumber(response?.lpQuote?.token1?.fromAmountUSD);
|
|
114
|
+
}
|
|
115
|
+
const totalUSDAmount = toToken0USD.plus(toToken1USD);
|
|
116
|
+
const ouputTokenPrice = useCurrencyPrice(outputToken ?? null, chainId);
|
|
117
|
+
const outputTokenPrice = new BigNumber(ouputTokenPrice?.price ?? 1);
|
|
118
|
+
const lpAmount = totalUSDAmount.div(outputTokenPrice); // then we divide the lp USD price to get the amount of LP tokens
|
|
119
|
+
const estimateOutput = lpAmount.toNumber();
|
|
120
|
+
return [isLoading, response, estimateOutput, zapError];
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export { useSoulZapTokenQuote as default };
|
|
124
|
+
//# sourceMappingURL=useSoulZapTokenQuote.js.map
|