@ape.swap/bonds-sdk 5.1.27-test.2 → 5.1.28

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.
@@ -3,7 +3,7 @@ import { BondsData } from '../types/bonds';
3
3
  import { BillsConfig, LaunchBondTiers } from '@ape.swap/apeswap-lists';
4
4
  export declare const claimable: (userBill?: UserBill) => number;
5
5
  export declare const claimableUSD: (userBill?: UserBill) => number;
6
- export declare const earnTokenPrice: (bond: BondsData) => string;
6
+ export declare const earnTokenPrice: (bond: BondsData) => string | undefined;
7
7
  export declare const pending: (userBill?: UserBill) => number;
8
8
  export declare const pendingUSD: (userBill?: UserBill) => number;
9
9
  export declare const claimed: (userBill?: UserBill) => number;
@@ -13,7 +13,7 @@ export declare const getTimeLeftForFullyVested: (bond?: UserBill) => number;
13
13
  export declare const getPendingVestingString: (bond?: UserBill) => string;
14
14
  export declare const getVestingTermsString: (bond?: BondsData | BillsConfig) => string;
15
15
  export declare const getVestingTermsTooltipString: (bond?: BondsData | BillsConfig) => string | undefined;
16
- export declare const discountEarnTokenPrice: (bond: BondsData, useTiers?: boolean) => string;
16
+ export declare const discountEarnTokenPrice: (bond: BondsData, useTiers?: boolean) => string | undefined;
17
17
  export declare const discountEarnTokenPriceForUser: (bond: BondsData, useTiers?: boolean, userTier?: LaunchBondTiers) => string;
18
18
  export declare const SAFETY_THRESHOLD = 5;
19
19
  export declare const getSafetyAvailable: (bond?: BondsData, allowLowValueBonds?: boolean) => BigNumber;
@@ -15,8 +15,7 @@ const claimableUSD = (userBill) => {
15
15
  return claimableTokens * parseFloat(userBill?.bond?.payoutTokenPrice ?? '0');
16
16
  };
17
17
  const earnTokenPrice = (bond) => {
18
- //TODO: remove this?
19
- return getFirstNonZeroDigits(parseFloat(bond?.payoutTokenPrice ?? '0'));
18
+ return formatNumberSI(bond?.payoutTokenPrice ?? '0');
20
19
  };
21
20
  // Amount of unvested (locked) tokens
22
21
  const pending = (userBill) => {
@@ -87,7 +86,7 @@ const discountEarnTokenPrice = (bond, useTiers) => {
87
86
  const principalTokenPrice = parseFloat(bond.principalTokenPrice ?? '0');
88
87
  const trueBondPrice = findHighestTrueBondPrice(useTiers ? TIERS_WEIGHT[LaunchBondTiers.Legend] : '0', bond?.trueBondPrices)?.trueBondPrice;
89
88
  const trueBondPriceWithFee = getBalanceNumber(new BigNumber(trueBondPrice ?? '0').times((100 + tierBoostRate) / 100).times((100 + feeInPayout) / 100));
90
- return getFirstNonZeroDigits(principalTokenPrice * trueBondPriceWithFee);
89
+ return formatNumberSI(principalTokenPrice * trueBondPriceWithFee, 3);
91
90
  };
92
91
  const discountEarnTokenPriceForUser = (bond, useTiers, userTier) => {
93
92
  const feeInPayout = bond?.feeInPayout ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"displayHelpers.js","sources":["../../src/utils/displayHelpers.ts"],"sourcesContent":["import { BigNumber } from 'bignumber.js'\nimport { UserBill } from '../types/yourbonds'\nimport { getBalanceNumber } from './getBalanceNumber'\nimport { BondsData } from '../types/bonds'\nimport { getFirstNonZeroDigits } from './roundNumber'\nimport { getTimePeriods } from './getTimePeriods'\nimport { formatNumberSI } from './formatNumber'\nimport { BillsConfig, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { TIERS_WEIGHT } from '../state/tiers/useTierPoints'\nimport { findHighestTrueBondPrice } from './bondPriceHelpers'\n\nexport const claimable = (userBill?: UserBill) => {\n return getBalanceNumber(\n new BigNumber(userBill?.pendingRewards ?? '0'),\n userBill?.bond?.earnToken?.decimals?.[userBill?.bond?.chainId] ?? 18,\n )\n}\n\nexport const claimableUSD = (userBill?: UserBill) => {\n const claimableTokens = claimable(userBill)\n return claimableTokens * parseFloat(userBill?.bond?.payoutTokenPrice ?? '0')\n}\n\nexport const earnTokenPrice = (bond: BondsData) => {\n //TODO: remove this?\n return getFirstNonZeroDigits(parseFloat(bond?.payoutTokenPrice ?? '0'))\n}\n\n// Amount of unvested (locked) tokens\nexport const pending = (userBill?: UserBill) => {\n return (\n getBalanceNumber(\n new BigNumber(userBill?.payout ?? 0),\n userBill?.bond?.earnToken?.decimals?.[userBill?.bond?.chainId] ?? 18,\n ) - claimable(userBill)\n )\n}\n\nexport const pendingUSD = (userBill?: UserBill) => {\n const pendingTokens = pending(userBill)\n return pendingTokens * parseFloat(userBill?.bond?.payoutTokenPrice ?? '0')\n}\n\nexport const claimed = (userBill?: UserBill) => {\n return getBalanceNumber(\n new BigNumber(userBill?.payoutClaimed ?? '0'),\n userBill?.bond?.earnToken?.decimals?.[userBill?.bond?.chainId] ?? 18,\n )\n}\n\nexport const claimedUSD = (userBill?: UserBill) => {\n const claimedTokens = claimed(userBill)\n return claimedTokens * parseFloat(userBill?.bond?.payoutTokenPrice ?? '0')\n}\n\nexport const getPercentageVested = (bond?: UserBill) => {\n const vestingTerm = parseInt(bond?.vestingTerm ?? '0')\n const timeLeftForFullyVested = getTimeLeftForFullyVested(bond)\n if (timeLeftForFullyVested <= 0) return 100\n return ((vestingTerm - timeLeftForFullyVested) / vestingTerm) * 100\n}\n\nexport const getTimeLeftForFullyVested = (bond?: UserBill) => {\n const vestingTerm = parseInt(bond?.vestingTerm ?? '0')\n const purchaseTimestamp = parseInt(bond?.vestingStartTimestamp ?? '0')\n const now = Math.round(Date.now() / 1000)\n return purchaseTimestamp + vestingTerm - now\n}\n\nexport const getPendingVestingString = (bond?: UserBill) => {\n const timeLeftForFullyVested = getTimeLeftForFullyVested(bond)\n const vestingTime = getTimePeriods(timeLeftForFullyVested, true)\n return `${vestingTime.days}d, ${vestingTime.hours}h, ${vestingTime.minutes}m`\n}\n\nexport const getVestingTermsString = (bond?: BondsData | BillsConfig) => {\n const vestingTerm = bond?.vestingTerm ?? 0\n const vestingCliff = bond?.vestingCliff ?? 0\n if (!vestingCliff) {\n const vestingTime = getTimePeriods(vestingTerm, true)\n return `${vestingTime.days} D`\n } else if (vestingCliff) {\n // TODO: remove this hardcoded shit\n if (bond?.earnToken.symbol === 'AIX') {\n return `${getTimePeriods(vestingCliff, true).days} D`\n }\n const vestingTime = getTimePeriods(vestingTerm - vestingCliff, true)\n const vestingCliffString = getTimePeriods(vestingCliff, true)\n return `${vestingCliffString.days + vestingTime.days} D`\n }\n return '-'\n}\n\nexport const getVestingTermsTooltipString = (bond?: BondsData | BillsConfig) => {\n const vestingTerm = bond?.vestingTerm ?? 0\n const vestingCliff = bond?.vestingCliff\n if (!vestingCliff) return undefined\n const vestingTime = getTimePeriods(vestingTerm - vestingCliff, true)\n const vestingCliffString = getTimePeriods(vestingCliff, true)\n if (vestingTerm - vestingCliff === 0) {\n return `${vestingCliffString.days}-day cliff, then instant release of all tokens.`\n }\n return `${vestingCliffString.days}-day cliff + ${vestingTime.days}-day linear vesting.`\n}\n\nexport const discountEarnTokenPrice = (bond: BondsData, useTiers?: boolean) => {\n const feeInPayout = bond?.feeInPayout ?? 0\n const tierBoostRate = bond?.tierBoostRate ?? 0\n const principalTokenPrice = parseFloat(bond.principalTokenPrice ?? '0')\n const trueBondPrice = findHighestTrueBondPrice(\n useTiers ? TIERS_WEIGHT[LaunchBondTiers.Legend] : '0',\n bond?.trueBondPrices,\n )?.trueBondPrice\n const trueBondPriceWithFee = getBalanceNumber(\n new BigNumber(trueBondPrice ?? '0').times((100 + tierBoostRate) / 100).times((100 + feeInPayout) / 100),\n )\n return getFirstNonZeroDigits(principalTokenPrice * trueBondPriceWithFee)\n}\n\nexport const discountEarnTokenPriceForUser = (bond: BondsData, useTiers?: boolean, userTier?: LaunchBondTiers) => {\n const feeInPayout = bond?.feeInPayout ?? 0\n const tierBoostRate = bond?.tierBoostRate ?? 0\n const principalTokenPrice = parseFloat(bond.principalTokenPrice ?? '0')\n const trueBondPrice = findHighestTrueBondPrice(\n useTiers && userTier ? TIERS_WEIGHT[userTier] : '0',\n bond?.trueBondPrices,\n )?.trueBondPrice\n const trueBondPriceWithFee = getBalanceNumber(\n new BigNumber(trueBondPrice ?? '0').times((100 + tierBoostRate) / 100).times((100 + feeInPayout) / 100),\n )\n return getFirstNonZeroDigits(principalTokenPrice * trueBondPriceWithFee)\n}\n\nexport const SAFETY_THRESHOLD = 5 // in USD\n\nexport const getSafetyAvailable = (bond?: BondsData, allowLowValueBonds?: boolean): BigNumber => {\n const available = new BigNumber(bond?.tokensRemaining ?? '0')\n const payoutTokenPrice = new BigNumber(bond?.payoutTokenPrice ?? 0)\n const threshold = allowLowValueBonds ? 0 : SAFETY_THRESHOLD\n const thresholdToShow = payoutTokenPrice.gt(0) ? new BigNumber(threshold).div(payoutTokenPrice) : new BigNumber(0)\n const feeInPayoutAdjuster = (100 - (bond?.feeInPayout ?? 0)) / 100\n let safeAvailable = available.times(feeInPayoutAdjuster).minus(thresholdToShow)\n if (safeAvailable.lt(0)) safeAvailable = new BigNumber(0)\n if (available.isZero()) return new BigNumber(0)\n return safeAvailable\n}\n\nexport const getSafetyPurchaseLimit = (bond?: BondsData, allowLowValueBonds?: boolean): BigNumber => {\n const threshold = allowLowValueBonds ? 0 : SAFETY_THRESHOLD\n const payoutTokenPrice = new BigNumber(bond?.payoutTokenPrice ?? 0)\n const thresholdToShow = payoutTokenPrice.gt(0) ? new BigNumber(threshold).div(payoutTokenPrice) : new BigNumber(0)\n return new BigNumber(bond?.maxPayout ?? 0)\n .div(new BigNumber(10).pow(bond?.earnToken?.decimals?.[bond?.chainId] ?? 18))\n .minus(thresholdToShow)\n}\n\nexport const getMaxBuy = (bond?: BondsData, allowLowValueBonds?: boolean): BigNumber => {\n const safeAvailable = getSafetyAvailable(bond, allowLowValueBonds)\n const safePurchaseLimit = getSafetyPurchaseLimit(bond, allowLowValueBonds)\n\n return safePurchaseLimit.lt(safeAvailable) ? safePurchaseLimit : safeAvailable\n}\n\nexport function formatUSDNumber(input: string): string {\n const number = new BigNumber(input)\n if (number.isNaN()) return '0'\n\n // If the number is greater than 0 but less than 0.01\n if (number.gt(0) && number.lt(0.01)) {\n return '< 0.01'\n }\n // If the number is greater than 1k, round to no decimals.\n if (number.gt(1000)) {\n return number.toNumber().toLocaleString('en-US', { maximumFractionDigits: 0 })\n }\n // Note: Between 1k and 0.01 show 2 decimals\n return parseFloat(number.toFixed(2)).toLocaleString('en-US')\n}\n\nexport const youSpendUSD = (bond: BondsData, inputValue: string) => {\n return (parseFloat(inputValue) * parseFloat(bond?.principalTokenPrice ?? '0')).toString()\n}\n\n// receives depositAmount and returns the payoutTokens the user will receive. IT DOES SUBTRACT FEE IN PAYOUT\nexport const getPayoutAmount = (bond?: BondsData, inputValue?: string, userPoints?: string | null) => {\n if (!inputValue || !bond || !userPoints || !bond.trueBondPrices) return 0\n\n const bigValue = new BigNumber(inputValue).times(new BigNumber(10).pow(18))\n const fee = bond?.feeInPayout ?? 0\n const trueBondPriceObject = findHighestTrueBondPrice(userPoints, bond?.trueBondPrices)\n const trueBondPrice = new BigNumber(trueBondPriceObject?.trueBondPrice ?? '0')\n const reverseFee = new BigNumber(fee / 100 / (1 - fee / 100))\n const billValue = bigValue.div(trueBondPrice.plus(trueBondPrice.times(reverseFee)))\n return billValue.toNumber()\n}\n\nexport const youGetUSD = (bond?: BondsData, inputValue?: string, userPoints?: string) => {\n if (!inputValue || !bond || !userPoints || !bond.trueBondPrices) return 0\n const payoutAmount = getPayoutAmount(bond, inputValue, userPoints)\n return payoutAmount * parseFloat(bond?.payoutTokenPrice ?? '0')\n}\n\nexport const getRawBonus = (bond?: BondsData, inputValue?: string, userPoints?: string) => {\n if (!bond || !inputValue || !userPoints) return '0'\n const premiumUSD = youGetUSD(bond, inputValue, userPoints) - parseFloat(youSpendUSD(bond, inputValue))\n return premiumUSD.toString()\n}\n\nexport const getFeeAmount = (bond?: BondsData, inputValue?: string, userPoints?: string) => {\n const fee = bond?.feeInPayout\n if (!bond || !inputValue || !fee || !userPoints) return 0\n const billValue = new BigNumber(inputValue).times(new BigNumber(10).pow(18))\n const trueBondPrice = findHighestTrueBondPrice(userPoints, bond?.trueBondPrices)\n const feeAmount = billValue.div(new BigNumber(trueBondPrice?.trueBondPrice ?? 0).div(fee / 100))\n return feeAmount.toNumber()\n}\n\nexport const getBonusColor = (premiumString: string): string => {\n return parseFloat(premiumString) < 0 ? 'premium-negative' : 'premium-positive'\n}\n\n/**\n * Calculates the principal token amount needed to receive a target payout amount.\n * This is the reverse of getRawPayoutAmount function (does NOT include fees).\n *\n * @param bond - The bond data\n * @param targetPayoutAmount - The desired payout amount in payout tokens\n * @param userPoints - User's tier points\n * @returns The principal token amount needed, or '0' if calculation cannot be performed\n */\nexport const getPrincipalAmount = (\n bond?: BondsData,\n targetPayoutAmount?: number | string,\n userPoints?: string | null,\n): BigNumber => {\n if (!targetPayoutAmount || !bond || !userPoints || !bond.trueBondPrices) return new BigNumber(0)\n\n const billValue = new BigNumber(targetPayoutAmount)\n const fee = bond?.feeInPayout ?? 0\n const trueBondPriceObject = findHighestTrueBondPrice(userPoints, bond?.trueBondPrices)\n const trueBondPrice = new BigNumber(trueBondPriceObject?.trueBondPrice ?? '0')\n\n if (trueBondPrice.isZero()) return new BigNumber(0)\n\n const reverseFee = new BigNumber(fee / 100 / (1 - fee / 100))\n const trueBondPriceWithFee = trueBondPrice.plus(trueBondPrice.times(reverseFee))\n\n // Reverse the formula: bigValue = billValue * (trueBondPrice + trueBondPrice * reverseFee)\n const bigValue = billValue.times(trueBondPriceWithFee)\n\n // Convert from 18 decimals back to regular amount\n return bigValue.div(new BigNumber(10).pow(18))\n}\n\nexport const getRemainingTokensString = (bond: BondsData, allowLowValueBonds?: boolean) => {\n const remainingTokens = getSafetyAvailable(bond, allowLowValueBonds).toNumber()\n // const remainingTokens = parseFloat(bond?.tokensRemaining ?? '0')\n const remainingTokensUsd = remainingTokens * parseFloat(bond.payoutTokenPrice ?? '0')\n\n return `${formatNumberSI(remainingTokens, 0)} ${bond.earnToken.symbol} ($${formatNumberSI(remainingTokensUsd, 0)})`\n}\n\nexport const remainingPercentage = (bond: BondsData): number => {\n const totalMaxPayout = new BigNumber(bond.maxTotalPayout ?? '0').div(\n new BigNumber(10).pow(bond.earnToken.decimals?.[bond.chainId] ?? 18),\n )\n const remainingTokens = new BigNumber(bond.tokensRemaining ?? '0')\n\n return remainingTokens.div(totalMaxPayout).times(100).toNumber()\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"displayHelpers.js","sources":["../../src/utils/displayHelpers.ts"],"sourcesContent":["import { BigNumber } from 'bignumber.js'\nimport { UserBill } from '../types/yourbonds'\nimport { getBalanceNumber } from './getBalanceNumber'\nimport { BondsData } from '../types/bonds'\nimport { getFirstNonZeroDigits } from './roundNumber'\nimport { getTimePeriods } from './getTimePeriods'\nimport { formatNumberSI } from './formatNumber'\nimport { BillsConfig, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { TIERS_WEIGHT } from '../state/tiers/useTierPoints'\nimport { findHighestTrueBondPrice } from './bondPriceHelpers'\n\nexport const claimable = (userBill?: UserBill) => {\n return getBalanceNumber(\n new BigNumber(userBill?.pendingRewards ?? '0'),\n userBill?.bond?.earnToken?.decimals?.[userBill?.bond?.chainId] ?? 18,\n )\n}\n\nexport const claimableUSD = (userBill?: UserBill) => {\n const claimableTokens = claimable(userBill)\n return claimableTokens * parseFloat(userBill?.bond?.payoutTokenPrice ?? '0')\n}\n\nexport const earnTokenPrice = (bond: BondsData) => {\n return formatNumberSI(bond?.payoutTokenPrice ?? '0')\n}\n\n// Amount of unvested (locked) tokens\nexport const pending = (userBill?: UserBill) => {\n return (\n getBalanceNumber(\n new BigNumber(userBill?.payout ?? 0),\n userBill?.bond?.earnToken?.decimals?.[userBill?.bond?.chainId] ?? 18,\n ) - claimable(userBill)\n )\n}\n\nexport const pendingUSD = (userBill?: UserBill) => {\n const pendingTokens = pending(userBill)\n return pendingTokens * parseFloat(userBill?.bond?.payoutTokenPrice ?? '0')\n}\n\nexport const claimed = (userBill?: UserBill) => {\n return getBalanceNumber(\n new BigNumber(userBill?.payoutClaimed ?? '0'),\n userBill?.bond?.earnToken?.decimals?.[userBill?.bond?.chainId] ?? 18,\n )\n}\n\nexport const claimedUSD = (userBill?: UserBill) => {\n const claimedTokens = claimed(userBill)\n return claimedTokens * parseFloat(userBill?.bond?.payoutTokenPrice ?? '0')\n}\n\nexport const getPercentageVested = (bond?: UserBill) => {\n const vestingTerm = parseInt(bond?.vestingTerm ?? '0')\n const timeLeftForFullyVested = getTimeLeftForFullyVested(bond)\n if (timeLeftForFullyVested <= 0) return 100\n return ((vestingTerm - timeLeftForFullyVested) / vestingTerm) * 100\n}\n\nexport const getTimeLeftForFullyVested = (bond?: UserBill) => {\n const vestingTerm = parseInt(bond?.vestingTerm ?? '0')\n const purchaseTimestamp = parseInt(bond?.vestingStartTimestamp ?? '0')\n const now = Math.round(Date.now() / 1000)\n return purchaseTimestamp + vestingTerm - now\n}\n\nexport const getPendingVestingString = (bond?: UserBill) => {\n const timeLeftForFullyVested = getTimeLeftForFullyVested(bond)\n const vestingTime = getTimePeriods(timeLeftForFullyVested, true)\n return `${vestingTime.days}d, ${vestingTime.hours}h, ${vestingTime.minutes}m`\n}\n\nexport const getVestingTermsString = (bond?: BondsData | BillsConfig) => {\n const vestingTerm = bond?.vestingTerm ?? 0\n const vestingCliff = bond?.vestingCliff ?? 0\n if (!vestingCliff) {\n const vestingTime = getTimePeriods(vestingTerm, true)\n return `${vestingTime.days} D`\n } else if (vestingCliff) {\n // TODO: remove this hardcoded shit\n if (bond?.earnToken.symbol === 'AIX') {\n return `${getTimePeriods(vestingCliff, true).days} D`\n }\n const vestingTime = getTimePeriods(vestingTerm - vestingCliff, true)\n const vestingCliffString = getTimePeriods(vestingCliff, true)\n return `${vestingCliffString.days + vestingTime.days} D`\n }\n return '-'\n}\n\nexport const getVestingTermsTooltipString = (bond?: BondsData | BillsConfig) => {\n const vestingTerm = bond?.vestingTerm ?? 0\n const vestingCliff = bond?.vestingCliff\n if (!vestingCliff) return undefined\n const vestingTime = getTimePeriods(vestingTerm - vestingCliff, true)\n const vestingCliffString = getTimePeriods(vestingCliff, true)\n if (vestingTerm - vestingCliff === 0) {\n return `${vestingCliffString.days}-day cliff, then instant release of all tokens.`\n }\n return `${vestingCliffString.days}-day cliff + ${vestingTime.days}-day linear vesting.`\n}\n\nexport const discountEarnTokenPrice = (bond: BondsData, useTiers?: boolean) => {\n const feeInPayout = bond?.feeInPayout ?? 0\n const tierBoostRate = bond?.tierBoostRate ?? 0\n const principalTokenPrice = parseFloat(bond.principalTokenPrice ?? '0')\n const trueBondPrice = findHighestTrueBondPrice(\n useTiers ? TIERS_WEIGHT[LaunchBondTiers.Legend] : '0',\n bond?.trueBondPrices,\n )?.trueBondPrice\n const trueBondPriceWithFee = getBalanceNumber(\n new BigNumber(trueBondPrice ?? '0').times((100 + tierBoostRate) / 100).times((100 + feeInPayout) / 100),\n )\n return formatNumberSI(principalTokenPrice * trueBondPriceWithFee, 3)\n}\n\nexport const discountEarnTokenPriceForUser = (bond: BondsData, useTiers?: boolean, userTier?: LaunchBondTiers) => {\n const feeInPayout = bond?.feeInPayout ?? 0\n const tierBoostRate = bond?.tierBoostRate ?? 0\n const principalTokenPrice = parseFloat(bond.principalTokenPrice ?? '0')\n const trueBondPrice = findHighestTrueBondPrice(\n useTiers && userTier ? TIERS_WEIGHT[userTier] : '0',\n bond?.trueBondPrices,\n )?.trueBondPrice\n const trueBondPriceWithFee = getBalanceNumber(\n new BigNumber(trueBondPrice ?? '0').times((100 + tierBoostRate) / 100).times((100 + feeInPayout) / 100),\n )\n return getFirstNonZeroDigits(principalTokenPrice * trueBondPriceWithFee)\n}\n\nexport const SAFETY_THRESHOLD = 5 // in USD\n\nexport const getSafetyAvailable = (bond?: BondsData, allowLowValueBonds?: boolean): BigNumber => {\n const available = new BigNumber(bond?.tokensRemaining ?? '0')\n const payoutTokenPrice = new BigNumber(bond?.payoutTokenPrice ?? 0)\n const threshold = allowLowValueBonds ? 0 : SAFETY_THRESHOLD\n const thresholdToShow = payoutTokenPrice.gt(0) ? new BigNumber(threshold).div(payoutTokenPrice) : new BigNumber(0)\n const feeInPayoutAdjuster = (100 - (bond?.feeInPayout ?? 0)) / 100\n let safeAvailable = available.times(feeInPayoutAdjuster).minus(thresholdToShow)\n if (safeAvailable.lt(0)) safeAvailable = new BigNumber(0)\n if (available.isZero()) return new BigNumber(0)\n return safeAvailable\n}\n\nexport const getSafetyPurchaseLimit = (bond?: BondsData, allowLowValueBonds?: boolean): BigNumber => {\n const threshold = allowLowValueBonds ? 0 : SAFETY_THRESHOLD\n const payoutTokenPrice = new BigNumber(bond?.payoutTokenPrice ?? 0)\n const thresholdToShow = payoutTokenPrice.gt(0) ? new BigNumber(threshold).div(payoutTokenPrice) : new BigNumber(0)\n return new BigNumber(bond?.maxPayout ?? 0)\n .div(new BigNumber(10).pow(bond?.earnToken?.decimals?.[bond?.chainId] ?? 18))\n .minus(thresholdToShow)\n}\n\nexport const getMaxBuy = (bond?: BondsData, allowLowValueBonds?: boolean): BigNumber => {\n const safeAvailable = getSafetyAvailable(bond, allowLowValueBonds)\n const safePurchaseLimit = getSafetyPurchaseLimit(bond, allowLowValueBonds)\n\n return safePurchaseLimit.lt(safeAvailable) ? safePurchaseLimit : safeAvailable\n}\n\nexport function formatUSDNumber(input: string): string {\n const number = new BigNumber(input)\n if (number.isNaN()) return '0'\n\n // If the number is greater than 0 but less than 0.01\n if (number.gt(0) && number.lt(0.01)) {\n return '< 0.01'\n }\n // If the number is greater than 1k, round to no decimals.\n if (number.gt(1000)) {\n return number.toNumber().toLocaleString('en-US', { maximumFractionDigits: 0 })\n }\n // Note: Between 1k and 0.01 show 2 decimals\n return parseFloat(number.toFixed(2)).toLocaleString('en-US')\n}\n\nexport const youSpendUSD = (bond: BondsData, inputValue: string) => {\n return (parseFloat(inputValue) * parseFloat(bond?.principalTokenPrice ?? '0')).toString()\n}\n\n// receives depositAmount and returns the payoutTokens the user will receive. IT DOES SUBTRACT FEE IN PAYOUT\nexport const getPayoutAmount = (bond?: BondsData, inputValue?: string, userPoints?: string | null) => {\n if (!inputValue || !bond || !userPoints || !bond.trueBondPrices) return 0\n\n const bigValue = new BigNumber(inputValue).times(new BigNumber(10).pow(18))\n const fee = bond?.feeInPayout ?? 0\n const trueBondPriceObject = findHighestTrueBondPrice(userPoints, bond?.trueBondPrices)\n const trueBondPrice = new BigNumber(trueBondPriceObject?.trueBondPrice ?? '0')\n const reverseFee = new BigNumber(fee / 100 / (1 - fee / 100))\n const billValue = bigValue.div(trueBondPrice.plus(trueBondPrice.times(reverseFee)))\n return billValue.toNumber()\n}\n\nexport const youGetUSD = (bond?: BondsData, inputValue?: string, userPoints?: string) => {\n if (!inputValue || !bond || !userPoints || !bond.trueBondPrices) return 0\n const payoutAmount = getPayoutAmount(bond, inputValue, userPoints)\n return payoutAmount * parseFloat(bond?.payoutTokenPrice ?? '0')\n}\n\nexport const getRawBonus = (bond?: BondsData, inputValue?: string, userPoints?: string) => {\n if (!bond || !inputValue || !userPoints) return '0'\n const premiumUSD = youGetUSD(bond, inputValue, userPoints) - parseFloat(youSpendUSD(bond, inputValue))\n return premiumUSD.toString()\n}\n\nexport const getFeeAmount = (bond?: BondsData, inputValue?: string, userPoints?: string) => {\n const fee = bond?.feeInPayout\n if (!bond || !inputValue || !fee || !userPoints) return 0\n const billValue = new BigNumber(inputValue).times(new BigNumber(10).pow(18))\n const trueBondPrice = findHighestTrueBondPrice(userPoints, bond?.trueBondPrices)\n const feeAmount = billValue.div(new BigNumber(trueBondPrice?.trueBondPrice ?? 0).div(fee / 100))\n return feeAmount.toNumber()\n}\n\nexport const getBonusColor = (premiumString: string): string => {\n return parseFloat(premiumString) < 0 ? 'premium-negative' : 'premium-positive'\n}\n\n/**\n * Calculates the principal token amount needed to receive a target payout amount.\n * This is the reverse of getRawPayoutAmount function (does NOT include fees).\n *\n * @param bond - The bond data\n * @param targetPayoutAmount - The desired payout amount in payout tokens\n * @param userPoints - User's tier points\n * @returns The principal token amount needed, or '0' if calculation cannot be performed\n */\nexport const getPrincipalAmount = (\n bond?: BondsData,\n targetPayoutAmount?: number | string,\n userPoints?: string | null,\n): BigNumber => {\n if (!targetPayoutAmount || !bond || !userPoints || !bond.trueBondPrices) return new BigNumber(0)\n\n const billValue = new BigNumber(targetPayoutAmount)\n const fee = bond?.feeInPayout ?? 0\n const trueBondPriceObject = findHighestTrueBondPrice(userPoints, bond?.trueBondPrices)\n const trueBondPrice = new BigNumber(trueBondPriceObject?.trueBondPrice ?? '0')\n\n if (trueBondPrice.isZero()) return new BigNumber(0)\n\n const reverseFee = new BigNumber(fee / 100 / (1 - fee / 100))\n const trueBondPriceWithFee = trueBondPrice.plus(trueBondPrice.times(reverseFee))\n\n // Reverse the formula: bigValue = billValue * (trueBondPrice + trueBondPrice * reverseFee)\n const bigValue = billValue.times(trueBondPriceWithFee)\n\n // Convert from 18 decimals back to regular amount\n return bigValue.div(new BigNumber(10).pow(18))\n}\n\nexport const getRemainingTokensString = (bond: BondsData, allowLowValueBonds?: boolean) => {\n const remainingTokens = getSafetyAvailable(bond, allowLowValueBonds).toNumber()\n // const remainingTokens = parseFloat(bond?.tokensRemaining ?? '0')\n const remainingTokensUsd = remainingTokens * parseFloat(bond.payoutTokenPrice ?? '0')\n\n return `${formatNumberSI(remainingTokens, 0)} ${bond.earnToken.symbol} ($${formatNumberSI(remainingTokensUsd, 0)})`\n}\n\nexport const remainingPercentage = (bond: BondsData): number => {\n const totalMaxPayout = new BigNumber(bond.maxTotalPayout ?? '0').div(\n new BigNumber(10).pow(bond.earnToken.decimals?.[bond.chainId] ?? 18),\n )\n const remainingTokens = new BigNumber(bond.tokensRemaining ?? '0')\n\n return remainingTokens.div(totalMaxPayout).times(100).toNumber()\n}\n"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ const ActiveBondRows = ({ chain, bonds, hideTitles, showHotBonds }) => {
20
20
  const { namingPreference } = useSDKConfig();
21
21
  const [isOpen, setIsOpen] = useState(true);
22
22
  const key = chain;
23
- return (jsx(Flex, { className: "bondrowswithtitle", children: jsxs(AnimatePresence, { initial: false, children: [jsx(Flex, { onClick: () => setIsOpen(!isOpen), sx: { cursor: 'pointer' }, children: jsx(ChainTitle, { chain: chain, pt: '5px', hideTitles: (bonds.length <= 0 && chain !== ChainId.SOL && chain !== ChainId.MONAD) || hideTitles, isOpen: isOpen }) }), isOpen && (bonds.length > 0 || chain === ChainId.SOL || chain === ChainId.MONAD) && (jsxs(motion.div, { initial: { height: 0, overflow: 'hidden' }, animate: { height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }, exit: { height: 0, overflow: 'hidden' }, sx: {
23
+ return (jsx(Flex, { className: "bondrowswithtitle", children: jsxs(AnimatePresence, { initial: false, children: [jsx(Flex, { onClick: () => setIsOpen(!isOpen), sx: { cursor: 'pointer' }, children: jsx(ChainTitle, { chain: chain, pt: '5px', hideTitles: bonds.length <= 0 || hideTitles, isOpen: isOpen }) }), isOpen && bonds.length > 0 && (jsxs(motion.div, { initial: { height: 0, overflow: 'hidden' }, animate: { height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }, exit: { height: 0, overflow: 'hidden' }, sx: {
24
24
  position: 'relative',
25
25
  overflow: 'hidden',
26
26
  width: '100%',
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveBondRows.js","sources":["../../../../../src/views/Bonds/components/BondRows/ActiveBondRows.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport ChainTitle from './ChainTitle'\nimport BondRow from './BondRow'\nimport { Flex } from 'theme-ui'\nimport { BondsData } from '../../../../types/bonds'\nimport { BaseBondConfig, ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport SwiperProvider from '../../../../contexts/SwiperProvider'\nimport HotBondCards from '../HotBondCards'\nimport ChainBanner from '../ChainBanner/ChainBanner'\nimport {\n getRemainingTokensString,\n getVestingTermsString,\n getVestingTermsTooltipString,\n remainingPercentage,\n} from '../../../../utils/displayHelpers'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport BigNumber from 'bignumber.js'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport RakuraiComponent from '../../../RakuraiComponent/RakuraiComponent'\n\n// Record<string, (BondsData | BaseBondConfig)[]>\n\nexport interface ActiveBondRowsProps {\n chain: number\n bonds: (BondsData | BaseBondConfig)[]\n hideTitles: boolean\n showHotBonds: boolean\n}\n\nconst ActiveBondRows: React.FC<ActiveBondRowsProps> = ({ chain, bonds, hideTitles, showHotBonds }) => {\n const { namingPreference } = useSDKConfig()\n const [isOpen, setIsOpen] = useState<boolean>(true)\n const key = chain\n\n return (\n <Flex className=\"bondrowswithtitle\" key={key}>\n <AnimatePresence initial={false}>\n <Flex onClick={() => setIsOpen(!isOpen)} sx={{ cursor: 'pointer' }}>\n <ChainTitle\n chain={chain}\n pt={'5px'}\n hideTitles={(bonds.length <= 0 && chain !== ChainId.SOL && chain !== ChainId.MONAD) || hideTitles}\n isOpen={isOpen}\n />\n </Flex>\n {isOpen && (bonds.length > 0 || chain === ChainId.SOL || chain === ChainId.MONAD) && (\n <motion.div\n initial={{ height: 0, overflow: 'hidden' }}\n animate={{ height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }}\n exit={{ height: 0, overflow: 'hidden' }}\n sx={{\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n marginTop: '0px',\n }}\n key={key}\n className=\"bonds-card-container\"\n >\n {[ChainId.MONAD].includes(chain) && !hideTitles && <ChainBanner chainId={chain} />}\n {chain === ChainId.SOL && <RakuraiComponent />}\n {bonds?.map((bondFromMap, index) => {\n // PRE TGE ROWS\n\n if (bondFromMap.billType === 'fcfs') {\n const bond = bondFromMap as BondsData\n const totalPrincipalBilled =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalPrincipalBilled ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n const raiseGoal =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalRaise ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n\n const tokensRemaining = raiseGoal - totalPrincipalBilled\n const tokensRemainingUSD = tokensRemaining * (bond?.initPrice ?? 0)\n const percentageAvailable = 100 - Math.floor((totalPrincipalBilled * 100) / raiseGoal)\n const earnToken = bond?.earnToken?.symbol\n\n const baseBonus = bond?.trueBondPrices?.[0]?.bonus ?? 0\n const airdropBonus = bond?.airdropBonus ?? 0\n const bonus = baseBonus + airdropBonus\n const initialRelease = (bond?.initialRelease ?? 0) * 100\n\n const now = new Date().getTime()\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n return (\n <BondRow\n key={`${bond.contractAddress}-${bond.chainId}-${index}`}\n bondAddress={bond.contractAddress?.[bond.chainId] as string}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n bonus={saleHasFinished ? undefined : `${bonus}%`}\n airdropTooltip={bond.airdropTooltip}\n percentageAvailable={percentageAvailable}\n remainingTokensString={\n saleHasFinished\n ? `0 ${earnToken} ($0) `\n : `${formatNumberSI(tokensRemaining, 0)} ${earnToken} ($${formatNumberSI(tokensRemainingUSD, 2)})`\n }\n vestingTermString={\n saleHasFinished\n ? '-'\n : initialRelease === 100\n ? `0 D`\n : `${getTimePeriods(bond.vestingTerm).months} Mo`\n }\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bondSoldOut={saleHasFinished}\n shortDescription={bond.shortDescription}\n />\n )\n } else {\n // POST TGE BONDS AKA NORMAL BONDS\n\n const bond = bondFromMap as BondsData\n const bondAddress = bond?.contractAddress?.[bond?.chainId] as string\n const remainingTokensString = getRemainingTokensString(bond)\n return (\n <BondRow\n key={`${bondAddress}-${bond.chainId}-${index}`}\n bondAddress={bondAddress}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n trueBondPrices={namingPreference === 'Bonus' ? bond.trueBondPrices : undefined}\n minTier={bond?.minTier}\n vestingTermString={getVestingTermsString(bond)}\n vestingCliffString={getVestingTermsTooltipString(bond)}\n percentageAvailable={remainingPercentage(bond)}\n remainingTokensString={remainingTokensString}\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bonus={\n namingPreference === 'Discount'\n ? `${bond?.trueBondPrices?.[0]?.discountWithFee?.toFixed(2)}%`\n : undefined\n }\n shortDescription={bond.shortDescription}\n cgId={bond.cgId}\n dexscreener={bond?.dexscreener}\n />\n )\n }\n })}\n {showHotBonds && (\n <SwiperProvider>\n <HotBondCards />\n </SwiperProvider>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n )\n}\n\nexport default ActiveBondRows\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ActiveBondRows.js","sources":["../../../../../src/views/Bonds/components/BondRows/ActiveBondRows.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport ChainTitle from './ChainTitle'\nimport BondRow from './BondRow'\nimport { Flex } from 'theme-ui'\nimport { BondsData } from '../../../../types/bonds'\nimport { BaseBondConfig, ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport SwiperProvider from '../../../../contexts/SwiperProvider'\nimport HotBondCards from '../HotBondCards'\nimport ChainBanner from '../ChainBanner/ChainBanner'\nimport {\n getRemainingTokensString,\n getVestingTermsString,\n getVestingTermsTooltipString,\n remainingPercentage,\n} from '../../../../utils/displayHelpers'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport BigNumber from 'bignumber.js'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport RakuraiComponent from '../../../RakuraiComponent/RakuraiComponent'\n\n// Record<string, (BondsData | BaseBondConfig)[]>\n\nexport interface ActiveBondRowsProps {\n chain: number\n bonds: (BondsData | BaseBondConfig)[]\n hideTitles: boolean\n showHotBonds: boolean\n}\n\nconst ActiveBondRows: React.FC<ActiveBondRowsProps> = ({ chain, bonds, hideTitles, showHotBonds }) => {\n const { namingPreference } = useSDKConfig()\n const [isOpen, setIsOpen] = useState<boolean>(true)\n const key = chain\n\n return (\n <Flex className=\"bondrowswithtitle\" key={key}>\n <AnimatePresence initial={false}>\n <Flex onClick={() => setIsOpen(!isOpen)} sx={{ cursor: 'pointer' }}>\n <ChainTitle chain={chain} pt={'5px'} hideTitles={bonds.length <= 0 || hideTitles} isOpen={isOpen} />\n </Flex>\n {isOpen && bonds.length > 0 && (\n <motion.div\n initial={{ height: 0, overflow: 'hidden' }}\n animate={{ height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }}\n exit={{ height: 0, overflow: 'hidden' }}\n sx={{\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n marginTop: '0px',\n }}\n key={key}\n className=\"bonds-card-container\"\n >\n {[ChainId.MONAD].includes(chain) && !hideTitles && <ChainBanner chainId={chain} />}\n {chain === ChainId.SOL && <RakuraiComponent />}\n {bonds?.map((bondFromMap, index) => {\n // PRE TGE ROWS\n\n if (bondFromMap.billType === 'fcfs') {\n const bond = bondFromMap as BondsData\n const totalPrincipalBilled =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalPrincipalBilled ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n const raiseGoal =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalRaise ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n\n const tokensRemaining = raiseGoal - totalPrincipalBilled\n const tokensRemainingUSD = tokensRemaining * (bond?.initPrice ?? 0)\n const percentageAvailable = 100 - Math.floor((totalPrincipalBilled * 100) / raiseGoal)\n const earnToken = bond?.earnToken?.symbol\n\n const baseBonus = bond?.trueBondPrices?.[0]?.bonus ?? 0\n const airdropBonus = bond?.airdropBonus ?? 0\n const bonus = baseBonus + airdropBonus\n const initialRelease = (bond?.initialRelease ?? 0) * 100\n\n const now = new Date().getTime()\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n return (\n <BondRow\n key={`${bond.contractAddress}-${bond.chainId}-${index}`}\n bondAddress={bond.contractAddress?.[bond.chainId] as string}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n bonus={saleHasFinished ? undefined : `${bonus}%`}\n airdropTooltip={bond.airdropTooltip}\n percentageAvailable={percentageAvailable}\n remainingTokensString={\n saleHasFinished\n ? `0 ${earnToken} ($0) `\n : `${formatNumberSI(tokensRemaining, 0)} ${earnToken} ($${formatNumberSI(tokensRemainingUSD, 2)})`\n }\n vestingTermString={\n saleHasFinished\n ? '-'\n : initialRelease === 100\n ? `0 D`\n : `${getTimePeriods(bond.vestingTerm).months} Mo`\n }\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bondSoldOut={saleHasFinished}\n shortDescription={bond.shortDescription}\n />\n )\n } else {\n // POST TGE BONDS AKA NORMAL BONDS\n\n const bond = bondFromMap as BondsData\n const bondAddress = bond?.contractAddress?.[bond?.chainId] as string\n const remainingTokensString = getRemainingTokensString(bond)\n return (\n <BondRow\n key={`${bondAddress}-${bond.chainId}-${index}`}\n bondAddress={bondAddress}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n trueBondPrices={namingPreference === 'Bonus' ? bond.trueBondPrices : undefined}\n minTier={bond?.minTier}\n vestingTermString={getVestingTermsString(bond)}\n vestingCliffString={getVestingTermsTooltipString(bond)}\n percentageAvailable={remainingPercentage(bond)}\n remainingTokensString={remainingTokensString}\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bonus={\n namingPreference === 'Discount'\n ? `${bond?.trueBondPrices?.[0]?.discountWithFee?.toFixed(2)}%`\n : undefined\n }\n shortDescription={bond.shortDescription}\n cgId={bond.cgId}\n dexscreener={bond?.dexscreener}\n />\n )\n }\n })}\n {showHotBonds && (\n <SwiperProvider>\n <HotBondCards />\n </SwiperProvider>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n )\n}\n\nexport default ActiveBondRows\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -16,7 +16,7 @@ const BonusComponent = ({ trueBondPrices, minTier, bonus, airdropTooltip, toolti
16
16
  return new BigNumber(current.points).isGreaterThan(new BigNumber(max.points)) ? current : max;
17
17
  }, trueBondPrices[0]);
18
18
  const baseTrueBondPrice = findHighestTrueBondPrice('0', trueBondPrices);
19
- return (jsx(Flex, { children: isIREET ? (jsx(TooltipBubble, { width: "280px", placement: tooltipPosition, transformTip: tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)', body: jsx(BonusTable, { trueBondPrices: trueBondPrices, minTier: minTier, isIREET: true }), sx: { display: hideTooltip ? 'none' : 'block' }, children: jsxs(Flex, { sx: {
19
+ return (jsx(Flex, { children: isIREET ? (jsx(TooltipBubble, { width: "260px", placement: tooltipPosition, transformTip: tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)', body: jsx(BonusTable, { trueBondPrices: trueBondPrices, minTier: minTier, isIREET: true }), sx: { display: hideTooltip ? 'none' : 'block' }, children: jsxs(Flex, { sx: {
20
20
  p: '3px 6px',
21
21
  border: '1px solid #9960C5',
22
22
  borderRadius: 'normal',
@@ -34,7 +34,7 @@ const BonusComponent = ({ trueBondPrices, minTier, bonus, airdropTooltip, toolti
34
34
  zIndex: 1,
35
35
  background: '#9960C5',
36
36
  opacity: 0.2,
37
- } }), jsxs(Flex, { sx: { width: '100%', zIndex: 2, alignItems: 'center', justifyContent: 'center' }, children: [jsx("img", { src: `https://ape.bond/images/launch/mythical.png`, alt: "minTier", style: { width: '21px', height: '21px', marginRight: '3px', zIndex: 1 } }), jsx(Flex, { sx: { fontSize: ['12px', '12px', '14px', '14px'], mr: '3px' }, children: "Up to" }), jsx(Flex, { sx: {
37
+ } }), jsxs(Flex, { sx: { width: '100%', zIndex: 2, alignItems: 'center', justifyContent: 'center' }, children: [isIREET ? ('🤖') : (jsx("img", { src: `https://ape.bond/images/launch/mythical.png`, alt: "minTier", style: { width: '21px', height: '21px', marginRight: '3px', zIndex: 1 } })), jsx(Flex, { sx: { fontSize: ['12px', '12px', '14px', '14px'], mr: '3px' }, children: "Up to" }), jsx(Flex, { sx: {
38
38
  color: highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? 'success' : 'error',
39
39
  fontSize: ['14px', '14px', '16px', '16px'],
40
40
  }, children: "7.00%" })] })] }) })) : trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (jsx(Flex, { sx: { alignItems: 'center', minWidth: '20px' }, children: highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (jsx(TooltipBubble, { width: "280px", placement: tooltipPosition, transformTip: tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)', body: jsx(BonusTable, { trueBondPrices: trueBondPrices, minTier: minTier }), sx: { display: hideTooltip ? 'none' : 'block' }, children: jsxs(Flex, { sx: {
@@ -1 +1 @@
1
- {"version":3,"file":"BonusComponent.js","sources":["../../../../../src/views/Bonds/components/BonusComponents/BonusComponent.tsx"],"sourcesContent":["import React from 'react'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport { BigNumber } from 'bignumber.js'\nimport BonusTable from './BonusTable'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { getDiscountColor } from '../../utils'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../../components/uikit-sdk/Svg'\n\nconst BonusComponent = ({\n trueBondPrices,\n minTier,\n bonus,\n airdropTooltip,\n tooltipPosition,\n hideTooltip,\n isIREET,\n}: {\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n bonus?: string\n airdropTooltip?: string\n tooltipPosition?: 'bottomRight' | 'bottomLeft'\n hideTooltip?: boolean\n isIREET?: boolean\n}) => {\n const SDKConfig = useSDKConfig()\n const isMobile = useIsMobile()\n const highestPointsElement = trueBondPrices?.reduce((max, current) => {\n return new BigNumber(current.points).isGreaterThan(new BigNumber(max.points)) ? current : max\n }, trueBondPrices[0])\n\n const baseTrueBondPrice = findHighestTrueBondPrice('0', trueBondPrices)\n\n return (\n <Flex>\n {isIREET ? (\n <TooltipBubble\n width=\"280px\"\n placement={tooltipPosition}\n transformTip={tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)'}\n body={<BonusTable trueBondPrices={trueBondPrices} minTier={minTier} isIREET />}\n sx={{ display: hideTooltip ? 'none' : 'block' }}\n >\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n cursor: 'pointer',\n width: ['130px', '130px', '150px', '150px'],\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: '#9960C5',\n opacity: 0.2,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center', justifyContent: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '14px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color:\n highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? 'success' : 'error',\n fontSize: ['14px', '14px', '16px', '16px'],\n }}\n >\n 7.00%\n </Flex>\n </Flex>\n </Flex>\n </TooltipBubble>\n ) : trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (\n <Flex sx={{ alignItems: 'center', minWidth: '20px' }}>\n {highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (\n <TooltipBubble\n width=\"280px\"\n placement={tooltipPosition}\n transformTip={tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)'}\n body={<BonusTable trueBondPrices={trueBondPrices} minTier={minTier} />}\n sx={{ display: hideTooltip ? 'none' : 'block' }}\n >\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n cursor: 'pointer',\n width: ['130px', '130px', '150px', '150px'],\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: '#9960C5',\n opacity: 0.2,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center', justifyContent: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '14px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color:\n highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0\n ? 'success'\n : 'error',\n fontSize: ['14px', '14px', '16px', '16px'],\n }}\n >\n {highestPointsElement?.bonusWithFee?.toFixed(2)}%\n </Flex>\n </Flex>\n </Flex>\n </TooltipBubble>\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width=\"20px\" color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : baseTrueBondPrice ? (\n <Flex\n sx={{ alignItems: 'center', minWidth: '20px' }}\n className={`${getDiscountColor(+baseTrueBondPrice?.bonusWithFee)}`}\n >\n {baseTrueBondPrice?.bonusWithFee > 0 ? (\n `${baseTrueBondPrice?.bonusWithFee?.toFixed(2)}%`\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width=\"20px\" color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : (\n <Flex sx={{ color: bonus && 'success', alignItems: 'center', minWidth: '20px' }}>\n {bonus || '-'}\n {airdropTooltip && (\n <TooltipBubble\n body={<>{airdropTooltip}</>}\n width=\"230px\"\n placement={isMobile ? 'bottomRight' : 'bottomLeft'}\n transformTip={isMobile ? 'translate(9%, 6%)' : 'translate(-3%, 6%)'}\n >\n <Flex sx={{ width: '20px', height: '20px', alignItems: 'center', ml: '5px' }}>\n <img\n src=\"https://res.cloudinary.com/dswmrqgwy/image/upload/v1750345773/airdrop_qvh4ow.png\"\n alt=\"airdrop-img\"\n style={{ width: '20px', height: '20px' }}\n />\n </Flex>\n </TooltipBubble>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default BonusComponent\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"BonusComponent.js","sources":["../../../../../src/views/Bonds/components/BonusComponents/BonusComponent.tsx"],"sourcesContent":["import React from 'react'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport { BigNumber } from 'bignumber.js'\nimport BonusTable from './BonusTable'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { getDiscountColor } from '../../utils'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../../components/uikit-sdk/Svg'\n\nconst BonusComponent = ({\n trueBondPrices,\n minTier,\n bonus,\n airdropTooltip,\n tooltipPosition,\n hideTooltip,\n isIREET,\n}: {\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n bonus?: string\n airdropTooltip?: string\n tooltipPosition?: 'bottomRight' | 'bottomLeft'\n hideTooltip?: boolean\n isIREET?: boolean\n}) => {\n const SDKConfig = useSDKConfig()\n const isMobile = useIsMobile()\n const highestPointsElement = trueBondPrices?.reduce((max, current) => {\n return new BigNumber(current.points).isGreaterThan(new BigNumber(max.points)) ? current : max\n }, trueBondPrices[0])\n\n const baseTrueBondPrice = findHighestTrueBondPrice('0', trueBondPrices)\n\n return (\n <Flex>\n {isIREET ? (\n <TooltipBubble\n width=\"260px\"\n placement={tooltipPosition}\n transformTip={tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)'}\n body={<BonusTable trueBondPrices={trueBondPrices} minTier={minTier} isIREET />}\n sx={{ display: hideTooltip ? 'none' : 'block' }}\n >\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n cursor: 'pointer',\n width: ['130px', '130px', '150px', '150px'],\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: '#9960C5',\n opacity: 0.2,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center', justifyContent: 'center' }}>\n {isIREET ? (\n '🤖'\n ) : (\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n )}\n <Flex sx={{ fontSize: ['12px', '12px', '14px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color:\n highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? 'success' : 'error',\n fontSize: ['14px', '14px', '16px', '16px'],\n }}\n >\n 7.00%\n </Flex>\n </Flex>\n </Flex>\n </TooltipBubble>\n ) : trueBondPrices && trueBondPrices?.length > 1 && SDKConfig.useTiers ? (\n <Flex sx={{ alignItems: 'center', minWidth: '20px' }}>\n {highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0 ? (\n <TooltipBubble\n width=\"280px\"\n placement={tooltipPosition}\n transformTip={tooltipPosition === 'bottomLeft' ? 'translate(0%, 0%)' : 'translate(0%, 0%)'}\n body={<BonusTable trueBondPrices={trueBondPrices} minTier={minTier} />}\n sx={{ display: hideTooltip ? 'none' : 'block' }}\n >\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n cursor: 'pointer',\n width: ['130px', '130px', '150px', '150px'],\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: '#9960C5',\n opacity: 0.2,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center', justifyContent: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '14px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color:\n highestPointsElement?.bonusWithFee && highestPointsElement?.bonusWithFee > 0\n ? 'success'\n : 'error',\n fontSize: ['14px', '14px', '16px', '16px'],\n }}\n >\n {highestPointsElement?.bonusWithFee?.toFixed(2)}%\n </Flex>\n </Flex>\n </Flex>\n </TooltipBubble>\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width=\"20px\" color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : baseTrueBondPrice ? (\n <Flex\n sx={{ alignItems: 'center', minWidth: '20px' }}\n className={`${getDiscountColor(+baseTrueBondPrice?.bonusWithFee)}`}\n >\n {baseTrueBondPrice?.bonusWithFee > 0 ? (\n `${baseTrueBondPrice?.bonusWithFee?.toFixed(2)}%`\n ) : (\n <Flex sx={{ height: '20px', width: '20px' }}>\n <TooltipBubble\n body={'This bond is currently on cooldown and has no bonus. Please check back soon.'}\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Svg icon=\"Timer\" width=\"20px\" color=\"#81CFEA\" />\n </TooltipBubble>\n </Flex>\n )}\n </Flex>\n ) : (\n <Flex sx={{ color: bonus && 'success', alignItems: 'center', minWidth: '20px' }}>\n {bonus || '-'}\n {airdropTooltip && (\n <TooltipBubble\n body={<>{airdropTooltip}</>}\n width=\"230px\"\n placement={isMobile ? 'bottomRight' : 'bottomLeft'}\n transformTip={isMobile ? 'translate(9%, 6%)' : 'translate(-3%, 6%)'}\n >\n <Flex sx={{ width: '20px', height: '20px', alignItems: 'center', ml: '5px' }}>\n <img\n src=\"https://res.cloudinary.com/dswmrqgwy/image/upload/v1750345773/airdrop_qvh4ow.png\"\n alt=\"airdrop-img\"\n style={{ width: '20px', height: '20px' }}\n />\n </Flex>\n </TooltipBubble>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default BonusComponent\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -30,32 +30,31 @@ const BonusTable = ({ trueBondPrices, minTier, hideTitle, isIREET, }) => {
30
30
  borderRadius: 'normal',
31
31
  px: '4px',
32
32
  alignItems: 'center',
33
- }, children: "+3%" })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '5px' }, children: [jsxs(Flex, { sx: { alignItems: 'center', gap: '3px' }, children: ["Extra ", jsx(TokenImage, { symbol: 'pmusd', size: 15 }), "pmUSD Bonus*"] }), jsx(Flex, { sx: {
33
+ }, children: "+3%" })] }), jsx(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '5px' }, children: jsx(Flex, { sx: { alignItems: 'center', gap: '3px' }, children: "If Bond sells out by April 21st:" }) }), jsxs(Flex, { sx: { flex: 1, justifyContent: 'space-between', p: '5px' }, children: [jsxs("div", { style: { flex: 1 }, children: ["Extra", ' ', jsx("span", { style: { display: 'inline-block', verticalAlign: 'middle' }, children: jsx(TokenImage, { symbol: 'pmusd', size: 15 }) }), ' ', "pmUSD Bonus for non-RAAC Bot holders*"] }), jsx(Flex, { sx: {
34
34
  color: 'success',
35
35
  fontWeight: 700,
36
36
  border: '1px solid var(--theme-ui-colors-success)',
37
37
  borderRadius: 'normal',
38
38
  px: '4px',
39
39
  alignItems: 'center',
40
- }, children: "+2%" })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '5px' }, children: [jsxs("div", { style: { flex: 1 }, children: ["Extra", ' ', jsx("span", { style: { display: 'inline-block', verticalAlign: 'middle' }, children: jsx(TokenImage, { symbol: 'pmusd', size: 15 }) }), ' ', "pmUSD Bonus if the Bond sells out before Apr 20th"] }), jsx(Flex, { sx: {
40
+ height: '19px',
41
+ }, children: "+2%" })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', p: '5px' }, children: [jsxs("div", { style: { flex: 1 }, children: ["Extra", ' ', jsx("span", { style: { display: 'inline-block', verticalAlign: 'middle' }, children: jsx(TokenImage, { symbol: 'pmusd', size: 15 }) }), ' ', "pmUSD Bonus for RAAC Bot holders*"] }), jsx(Flex, { sx: {
41
42
  color: 'success',
42
43
  fontWeight: 700,
43
44
  border: '1px solid var(--theme-ui-colors-success)',
44
45
  borderRadius: 'normal',
45
46
  px: '4px',
46
47
  alignItems: 'center',
47
- height: '21px',
48
+ height: '19px',
48
49
  minWidth: '35px',
49
- }, children: "+2%" })] })] }), jsxs("div", { sx: {
50
+ }, children: "+2%" })] })] }), jsx("div", { sx: {
50
51
  flex: 1,
51
52
  alignItems: 'center',
52
53
  fontWeight: 500,
53
54
  color: 'textDisabledButton',
54
55
  fontStyle: 'italic',
55
56
  mt: '10px',
56
- }, children: ["* Only eligible for", ' ', jsxs("span", { style: { display: 'inline-block', verticalAlign: 'middle' }, children: [jsx("img", { src: `https://ape.bond/images/launch/diamond.png`, alt: "minTier", style: { width: '17px', height: '17px', marginRight: '3px', zIndex: 1 } }), jsx("img", { src: `https://ape.bond/images/launch/legend.png`, alt: "minTier", style: { width: '17px', height: '17px', marginRight: '3px', zIndex: 1 } }), jsx("img", {
57
- //@ts-ignore
58
- src: `https://ape.bond/images/launch/mythical.png`, alt: "minTier", style: { width: '17px', height: '17px', marginRight: '3px', zIndex: 1 } })] }), "Ape Tiers & RAAC bot holders."] })] })) : (jsxs(Flex, { sx: { width: '100%', flexDirection: 'column' }, children: [!hideTitle && jsx(Flex, { sx: { width: '100%', justifyContent: 'center', mb: '10px' }, children: "Ape Tier Bonuses" }), trueBondPrices
57
+ }, children: "* Extra rewards to be distributed in pmUSD by RAAC at bond maturity." })] })) : (jsxs(Flex, { sx: { width: '100%', flexDirection: 'column' }, children: [!hideTitle && jsx(Flex, { sx: { width: '100%', justifyContent: 'center', mb: '10px' }, children: "Ape Tier Bonuses" }), trueBondPrices
59
58
  ?.sort((a, b) => new BigNumber(b.points).minus(new BigNumber(a.points)).toNumber())
60
59
  .map((tier) => {
61
60
  const tierToUse = getUserTier(tier.points);
@@ -1 +1 @@
1
- {"version":3,"file":"BonusTable.js","sources":["../../../../../src/views/Bonds/components/BonusComponents/BonusTable.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport useTierPoints, { getUserTier, TIERS_COLORS, TIERS_NAMES } from '../../../../state/tiers/useTierPoints'\nimport { BigNumber } from 'bignumber.js'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport YouTooltip from '../../../../components/YouTooltip/YouTooltip'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\n\nconst BonusTable = ({\n trueBondPrices,\n minTier,\n hideTitle,\n isIREET,\n}: {\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n hideTitle?: boolean\n isIREET?: boolean\n}) => {\n const { data: userPoints } = useTierPoints()\n const usersTrueBondPrices = findHighestTrueBondPrice(userPoints, trueBondPrices)\n\n return isIREET ? (\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n <Flex sx={{ width: '100%', justifyContent: 'center', mb: '10px' }}>Bonus Breakdown</Flex>\n <Flex\n sx={{\n width: '100%',\n flexDirection: 'column',\n borderRadius: 'normal',\n overflow: 'hidden',\n fontWeight: 400,\n // color: 'textDisabledButton',\n '& > :nth-of-type(even)': {\n background: 'white3',\n },\n '& > :nth-of-type(odd)': {\n background: 'white4',\n },\n }}\n >\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '5px' }}>\n <Flex sx={{ alignItems: 'center', gap: '3px' }}>\n Base <TokenImage symbol={'ireet'} size={15} />\n iREET Bonus\n </Flex>\n <Flex\n sx={{\n color: 'success',\n fontWeight: 700,\n border: '1px solid var(--theme-ui-colors-success)',\n borderRadius: 'normal',\n px: '4px',\n alignItems: 'center',\n }}\n >\n +3%\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '5px' }}>\n <Flex sx={{ alignItems: 'center', gap: '3px' }}>\n Extra <TokenImage symbol={'pmusd'} size={15} />\n pmUSD Bonus*\n </Flex>\n <Flex\n sx={{\n color: 'success',\n fontWeight: 700,\n border: '1px solid var(--theme-ui-colors-success)',\n borderRadius: 'normal',\n px: '4px',\n alignItems: 'center',\n }}\n >\n +2%\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '5px' }}>\n <div style={{ flex: 1 }}>\n Extra{' '}\n <span style={{ display: 'inline-block', verticalAlign: 'middle' }}>\n <TokenImage symbol={'pmusd'} size={15} />\n </span>{' '}\n pmUSD Bonus if the Bond sells out before Apr 20th\n </div>\n <Flex\n sx={{\n color: 'success',\n fontWeight: 700,\n border: '1px solid var(--theme-ui-colors-success)',\n borderRadius: 'normal',\n px: '4px',\n alignItems: 'center',\n height: '21px',\n minWidth: '35px',\n }}\n >\n +2%\n </Flex>\n </Flex>\n </Flex>\n <div\n sx={{\n flex: 1,\n alignItems: 'center',\n fontWeight: 500,\n color: 'textDisabledButton',\n fontStyle: 'italic',\n mt: '10px',\n }}\n >\n * Only eligible for{' '}\n <span style={{ display: 'inline-block', verticalAlign: 'middle' }}>\n <img\n src={`https://ape.bond/images/launch/diamond.png`}\n alt=\"minTier\"\n style={{ width: '17px', height: '17px', marginRight: '3px', zIndex: 1 }}\n />\n <img\n src={`https://ape.bond/images/launch/legend.png`}\n alt=\"minTier\"\n style={{ width: '17px', height: '17px', marginRight: '3px', zIndex: 1 }}\n />\n <img\n //@ts-ignore\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '17px', height: '17px', marginRight: '3px', zIndex: 1 }}\n />\n </span>\n Ape Tiers & RAAC bot holders.\n </div>\n </Flex>\n ) : (\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n {!hideTitle && <Flex sx={{ width: '100%', justifyContent: 'center', mb: '10px' }}>Ape Tier Bonuses</Flex>}\n {trueBondPrices\n ?.sort((a, b) => new BigNumber(b.points).minus(new BigNumber(a.points)).toNumber())\n .map((tier) => {\n const tierToUse = getUserTier(tier.points) as LaunchBondTiers\n //@ts-ignore\n const tierName = `${TIERS_NAMES[tierToUse!]}`\n const you = tier.points === usersTrueBondPrices?.points\n // @ts-ignore\n const isUnavailable = minTier ? minTier > tierToUse || (minTier === 0 && tier.points === '0') : false\n return (\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n height: '30px',\n //@ts-ignore\n background: TIERS_COLORS[tierToUse] ?? 'white3',\n borderRadius: 'normal',\n alignItems: 'center',\n px: '8px',\n mb: '1px',\n }}\n key={tier.points}\n >\n <Flex sx={{ alignItems: 'center' }}>\n {tier.points !== '0' && (\n <img\n //@ts-ignore\n src={`https://ape.bond/images/launch/${TIERS_NAMES[tierToUse]?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n )}\n <Flex>{tier.points === '0' ? 'No Tier' : tierName}</Flex>\n {you && <YouTooltip />}\n </Flex>\n {isUnavailable ? (\n <Flex sx={{ fontWeight: 600, opacity: 0.8 }}>UNAVAILABLE</Flex>\n ) : (\n <Flex sx={{ color: tier.bonusWithFee > 0 ? 'success' : 'text', fontWeight: 700, alignItems: 'center' }}>\n {tier.bonusWithFee > 0 ? tier.bonusWithFee.toFixed(2) : '0'}%\n {tier.points !== '0' && (\n <Flex\n sx={{\n borderRadius: 'normal',\n border: '1px solid var(--theme-ui-colors-success)',\n px: '4px',\n ml: '3px',\n color: 'success',\n }}\n >\n {`+${tier?.boost ?? 0}%`}\n </Flex>\n )}\n </Flex>\n )}\n </Flex>\n )\n })}\n {!hideTitle && (\n <Button\n variant=\"secondary\"\n sx={{ width: '100%', mt: '10px' }}\n onClick={() => window.open('https://www.ape.bond/true-yield?createPosition', '_blank')}\n >\n get tier\n </Button>\n )}\n </Flex>\n )\n}\n\nexport default BonusTable\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"BonusTable.js","sources":["../../../../../src/views/Bonds/components/BonusComponents/BonusTable.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport useTierPoints, { getUserTier, TIERS_COLORS, TIERS_NAMES } from '../../../../state/tiers/useTierPoints'\nimport { BigNumber } from 'bignumber.js'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport YouTooltip from '../../../../components/YouTooltip/YouTooltip'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\n\nconst BonusTable = ({\n trueBondPrices,\n minTier,\n hideTitle,\n isIREET,\n}: {\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n hideTitle?: boolean\n isIREET?: boolean\n}) => {\n const { data: userPoints } = useTierPoints()\n const usersTrueBondPrices = findHighestTrueBondPrice(userPoints, trueBondPrices)\n\n return isIREET ? (\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n <Flex sx={{ width: '100%', justifyContent: 'center', mb: '10px' }}>Bonus Breakdown</Flex>\n <Flex\n sx={{\n width: '100%',\n flexDirection: 'column',\n borderRadius: 'normal',\n overflow: 'hidden',\n fontWeight: 400,\n // color: 'textDisabledButton',\n '& > :nth-of-type(even)': {\n background: 'white3',\n },\n '& > :nth-of-type(odd)': {\n background: 'white4',\n },\n }}\n >\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '5px' }}>\n <Flex sx={{ alignItems: 'center', gap: '3px' }}>\n Base <TokenImage symbol={'ireet'} size={15} />\n iREET Bonus\n </Flex>\n <Flex\n sx={{\n color: 'success',\n fontWeight: 700,\n border: '1px solid var(--theme-ui-colors-success)',\n borderRadius: 'normal',\n px: '4px',\n alignItems: 'center',\n }}\n >\n +3%\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '5px' }}>\n <Flex sx={{ alignItems: 'center', gap: '3px' }}>If Bond sells out by April 21st:</Flex>\n </Flex>\n <Flex sx={{ flex: 1, justifyContent: 'space-between', p: '5px' }}>\n <div style={{ flex: 1 }}>\n Extra{' '}\n <span style={{ display: 'inline-block', verticalAlign: 'middle' }}>\n <TokenImage symbol={'pmusd'} size={15} />\n </span>{' '}\n pmUSD Bonus for non-RAAC Bot holders*\n </div>\n <Flex\n sx={{\n color: 'success',\n fontWeight: 700,\n border: '1px solid var(--theme-ui-colors-success)',\n borderRadius: 'normal',\n px: '4px',\n alignItems: 'center',\n height: '19px',\n }}\n >\n +2%\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', p: '5px' }}>\n <div style={{ flex: 1 }}>\n Extra{' '}\n <span style={{ display: 'inline-block', verticalAlign: 'middle' }}>\n <TokenImage symbol={'pmusd'} size={15} />\n </span>{' '}\n pmUSD Bonus for RAAC Bot holders*\n </div>\n <Flex\n sx={{\n color: 'success',\n fontWeight: 700,\n border: '1px solid var(--theme-ui-colors-success)',\n borderRadius: 'normal',\n px: '4px',\n alignItems: 'center',\n height: '19px',\n minWidth: '35px',\n }}\n >\n +2%\n </Flex>\n </Flex>\n </Flex>\n <div\n sx={{\n flex: 1,\n alignItems: 'center',\n fontWeight: 500,\n color: 'textDisabledButton',\n fontStyle: 'italic',\n mt: '10px',\n }}\n >\n * Extra rewards to be distributed in pmUSD by RAAC at bond maturity.\n </div>\n </Flex>\n ) : (\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n {!hideTitle && <Flex sx={{ width: '100%', justifyContent: 'center', mb: '10px' }}>Ape Tier Bonuses</Flex>}\n {trueBondPrices\n ?.sort((a, b) => new BigNumber(b.points).minus(new BigNumber(a.points)).toNumber())\n .map((tier) => {\n const tierToUse = getUserTier(tier.points) as LaunchBondTiers\n //@ts-ignore\n const tierName = `${TIERS_NAMES[tierToUse!]}`\n const you = tier.points === usersTrueBondPrices?.points\n // @ts-ignore\n const isUnavailable = minTier ? minTier > tierToUse || (minTier === 0 && tier.points === '0') : false\n return (\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n height: '30px',\n //@ts-ignore\n background: TIERS_COLORS[tierToUse] ?? 'white3',\n borderRadius: 'normal',\n alignItems: 'center',\n px: '8px',\n mb: '1px',\n }}\n key={tier.points}\n >\n <Flex sx={{ alignItems: 'center' }}>\n {tier.points !== '0' && (\n <img\n //@ts-ignore\n src={`https://ape.bond/images/launch/${TIERS_NAMES[tierToUse]?.toLowerCase()}.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n )}\n <Flex>{tier.points === '0' ? 'No Tier' : tierName}</Flex>\n {you && <YouTooltip />}\n </Flex>\n {isUnavailable ? (\n <Flex sx={{ fontWeight: 600, opacity: 0.8 }}>UNAVAILABLE</Flex>\n ) : (\n <Flex sx={{ color: tier.bonusWithFee > 0 ? 'success' : 'text', fontWeight: 700, alignItems: 'center' }}>\n {tier.bonusWithFee > 0 ? tier.bonusWithFee.toFixed(2) : '0'}%\n {tier.points !== '0' && (\n <Flex\n sx={{\n borderRadius: 'normal',\n border: '1px solid var(--theme-ui-colors-success)',\n px: '4px',\n ml: '3px',\n color: 'success',\n }}\n >\n {`+${tier?.boost ?? 0}%`}\n </Flex>\n )}\n </Flex>\n )}\n </Flex>\n )\n })}\n {!hideTitle && (\n <Button\n variant=\"secondary\"\n sx={{ width: '100%', mt: '10px' }}\n onClick={() => window.open('https://www.ape.bond/true-yield?createPosition', '_blank')}\n >\n get tier\n </Button>\n )}\n </Flex>\n )\n}\n\nexport default BonusTable\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;AAWA,MAAM,UAAU,GAAG,CAAC,EAClB,cAAc,EACd,OAAO,EACP,SAAS,EACT,OAAO,GAMR,KAAI;IACH,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE;IAC5C,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,UAAU,EAAE,cAAc,CAAC;IAEhF,OAAO,OAAO,IACZA,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,aAClDC,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAwB,EACzFD,KAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,aAAa,EAAE,QAAQ;AACvB,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,UAAU,EAAE,GAAG;;AAEf,oBAAA,wBAAwB,EAAE;AACxB,wBAAA,UAAU,EAAE,QAAQ;AACrB,qBAAA;AACD,oBAAA,uBAAuB,EAAE;AACvB,wBAAA,UAAU,EAAE,QAAQ;AACrB,qBAAA;iBACF,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,aACpEA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAAA,OAAA,EACvCC,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,aAAA,CAAA,EAAA,CAEzC,EACPA,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oCAAA,KAAK,EAAE,SAAS;AAChB,oCAAA,UAAU,EAAE,GAAG;AACf,oCAAA,MAAM,EAAE,0CAA0C;AAClD,oCAAA,YAAY,EAAE,QAAQ;AACtB,oCAAA,EAAE,EAAE,KAAK;AACT,oCAAA,UAAU,EAAE,QAAQ;iCACrB,EAAA,QAAA,EAAA,KAAA,EAAA,CAGI,CAAA,EAAA,CACF,EACPA,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,EAAA,QAAA,EACpEA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,kCAAA,EAAA,CAAyC,EAAA,CAClF,EACPD,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,aAC9DA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAA,QAAA,EAAA,CAAA,OAAA,EACf,GAAG,EACTC,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAA,QAAA,EAC/DA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CACpC,EAAC,GAAG,EAAA,uCAAA,CAAA,EAAA,CAEP,EACNA,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oCAAA,KAAK,EAAE,SAAS;AAChB,oCAAA,UAAU,EAAE,GAAG;AACf,oCAAA,MAAM,EAAE,0CAA0C;AAClD,oCAAA,YAAY,EAAE,QAAQ;AACtB,oCAAA,EAAE,EAAE,KAAK;AACT,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,MAAM,EAAE,MAAM;AACf,iCAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAGI,CAAA,EAAA,CACF,EACPD,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CACpEA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,sBACf,GAAG,EACTC,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAA,QAAA,EAC/DA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAI,EAAA,CACpC,EAAC,GAAG,EAAA,mCAAA,CAAA,EAAA,CAEP,EACNA,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oCAAA,KAAK,EAAE,SAAS;AAChB,oCAAA,UAAU,EAAE,GAAG;AACf,oCAAA,MAAM,EAAE,0CAA0C;AAClD,oCAAA,YAAY,EAAE,QAAQ;AACtB,oCAAA,EAAE,EAAE,KAAK;AACT,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,MAAM,EAAE,MAAM;AACd,oCAAA,QAAQ,EAAE,MAAM;AACjB,iCAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAGI,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EACPA,GAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE;AACF,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,UAAU,EAAE,QAAQ;AACpB,oBAAA,UAAU,EAAE,GAAG;AACf,oBAAA,KAAK,EAAE,oBAAoB;AAC3B,oBAAA,SAAS,EAAE,QAAQ;AACnB,oBAAA,EAAE,EAAE,MAAM;iBACX,EAAA,QAAA,EAAA,sEAAA,EAAA,CAGG,CAAA,EAAA,CACD,KAEPD,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACjD,CAAC,SAAS,IAAIC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAyB,EACxG;AACC,kBAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;AACjF,iBAAA,GAAG,CAAC,CAAC,IAAI,KAAI;gBACZ,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAoB;;gBAE7D,MAAM,QAAQ,GAAG,CAAA,EAAG,WAAW,CAAC,SAAU,CAAC,EAAE;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,mBAAmB,EAAE,MAAM;;gBAEvD,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,KAAK,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK;AACrG,gBAAA,QACED,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,cAAc,EAAE,eAAe;AAC/B,wBAAA,MAAM,EAAE,MAAM;;AAEd,wBAAA,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,QAAQ;AAC/C,wBAAA,YAAY,EAAE,QAAQ;AACtB,wBAAA,UAAU,EAAE,QAAQ;AACpB,wBAAA,EAAE,EAAE,KAAK;AACT,wBAAA,EAAE,EAAE,KAAK;AACV,qBAAA,EAAA,QAAA,EAAA,CAGDA,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,aAC/B,IAAI,CAAC,MAAM,KAAK,GAAG,KAClBC,GAAA,CAAA,KAAA,EAAA;;AAEE,oCAAA,GAAG,EAAE,CAAA,+BAAA,EAAkC,WAAW,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAClF,GAAG,EAAC,SAAS,EACb,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAA,CACvE,CACH,EACDA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAE,IAAI,CAAC,MAAM,KAAK,GAAG,GAAG,SAAS,GAAG,QAAQ,EAAA,CAAQ,EACxD,GAAG,IAAIA,IAAC,UAAU,EAAA,EAAA,CAAG,CAAA,EAAA,CACjB,EACN,aAAa,IACZA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,4BAAoB,KAE/DD,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACnG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAA,GAAA,EAC1D,IAAI,CAAC,MAAM,KAAK,GAAG,KAClBC,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,wCAAA,YAAY,EAAE,QAAQ;AACtB,wCAAA,MAAM,EAAE,0CAA0C;AAClD,wCAAA,EAAE,EAAE,KAAK;AACT,wCAAA,EAAE,EAAE,KAAK;AACT,wCAAA,KAAK,EAAE,SAAS;AACjB,qCAAA,EAAA,QAAA,EAEA,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,CAAA,CAAA,CAAG,EAAA,CACnB,CACR,CAAA,EAAA,CACI,CACR,CAAA,EAAA,EAjCI,IAAI,CAAC,MAAM,CAkCX;AAEX,YAAA,CAAC,CAAC,EACH,CAAC,SAAS,KACTA,IAAC,MAAM,EAAA,EACL,OAAO,EAAC,WAAW,EACnB,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EACjC,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE,QAAQ,CAAC,yBAG/E,CACV,CAAA,EAAA,CACI,CACR;AACH;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'theme-ui/jsx-runtime';
2
2
  import TokenImage from '../../../components/uikit-sdk/TokenImage/index.js';
3
- import { earnTokenPrice, discountEarnTokenPrice } from '../../../utils/displayHelpers.js';
3
+ import { discountEarnTokenPrice } from '../../../utils/displayHelpers.js';
4
4
  import useModal from '../../../hooks/useModal.js';
5
5
  import SlippageModal from '../../../components/SlippageModal/index.js';
6
6
  import ExpandedViewButton from './ExpandedViewButton.js';
@@ -15,6 +15,7 @@ import { useIsMobile } from '../../../hooks/useIsMobile.js';
15
15
  import Flex from '../../../components/uikit-sdk/Flex/index.js';
16
16
  import Svg from '../../../components/uikit-sdk/Svg/index.js';
17
17
  import ListTag from '../../../components/uikit-sdk/Tag/ListTag.js';
18
+ import { formatNumberSI } from '../../../utils/formatNumber.js';
18
19
 
19
20
  const BondModalHeader = ({ bondData, onDismiss, showProjectInfoButton, }) => {
20
21
  const isMobile = useIsMobile();
@@ -51,7 +52,7 @@ const BondModalHeader = ({ bondData, onDismiss, showProjectInfoButton, }) => {
51
52
  pl: ['10px', '10px', '10px', '20px'],
52
53
  fontSize: ['20px', '20px', '20px', '24px'],
53
54
  fontWeight: 700,
54
- }, children: [bondData?.showcaseTokenName, jsx(ListTag, { text: bondData?.tags?.[0] })] }), jsxs(Flex, { className: "title-container price-container", sx: { flexDirection: 'column', pl: ['10px', '10px', '10px', '20px'] }, children: [jsxs(Flex, { className: "price-container price", sx: { fontSize: ['12px', '12px', '12px', '14px'] }, children: ["$", earnTokenPrice(bondData)] }), SDKConfig.useTiers &&
55
+ }, children: [bondData?.showcaseTokenName, jsx(ListTag, { text: bondData?.tags?.[0] })] }), jsxs(Flex, { className: "title-container price-container", sx: { flexDirection: 'column', pl: ['10px', '10px', '10px', '20px'] }, children: [jsxs(Flex, { className: "price-container price", sx: { fontSize: ['12px', '12px', '12px', '14px'] }, children: ["$", formatNumberSI(bondData.payoutTokenPrice, bondData.earnToken.symbol.toLowerCase() === 'ireet' ? 6 : 2)] }), SDKConfig.useTiers &&
55
56
  bondData.billVersion === BillVersion.V4 &&
56
57
  (bondData?.trueBondPrices?.length ?? 0) > 1 ? (jsxs(Flex, { sx: {
57
58
  p: '3px 6px',
@@ -1 +1 @@
1
- {"version":3,"file":"BondModalHeader.js","sources":["../../../../src/views/BuyBond/components/BondModalHeader.tsx"],"sourcesContent":["import React from 'react'\nimport TokenImage from '../../../components/uikit-sdk/TokenImage'\nimport { discountEarnTokenPrice, earnTokenPrice } from '../../../utils/displayHelpers'\nimport useModal from '../../../hooks/useModal'\nimport SlippageModal from '../../../components/SlippageModal'\nimport { BondsData } from '../../../types/bonds'\nimport ExpandedViewButton from './ExpandedViewButton'\nimport track from '../../../utils/track'\nimport BondModalMinTierHeader from './BondModalMinTierHeader'\nimport { TIERS_WEIGHT } from '../../../state/tiers/useTierPoints'\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport { findHighestTrueBondPrice } from '../../../utils/bondPriceHelpers'\nimport { MCTokenIconStyles } from '../../../utils/campaignStyles'\nimport { useIsMobile } from '../../../hooks/useIsMobile'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport Svg from '../../../components/uikit-sdk/Svg'\nimport ListTag from '../../../components/uikit-sdk/Tag/ListTag'\n\nconst BondModalHeader = ({\n bondData,\n onDismiss,\n showProjectInfoButton,\n}: {\n bondData: BondsData\n onDismiss?: () => void\n showProjectInfoButton?: boolean\n}) => {\n const isMobile = useIsMobile()\n const SDKConfig = useSDKConfig()\n const [onOpenSlippageModal] = useModal(<SlippageModal chainId={bondData.chainId} />)\n const minTier = bondData.minTier !== undefined ? bondData.minTier : null\n const bonusWithFee = findHighestTrueBondPrice(\n TIERS_WEIGHT[LaunchBondTiers.Legend],\n bondData?.trueBondPrices,\n )?.bonusWithFee\n\n const handleClose = () => {\n if (typeof window !== 'undefined') {\n window.history.pushState({}, '', `/bonds`)\n }\n onDismiss?.()\n }\n\n const handleProjectViewNavigation = () => {\n window.location.href = `/bonds/${bondData?.contractAddress?.[bondData?.chainId]}/${bondData?.chainId}`\n track({\n event: 'projectInfoClick',\n chain: bondData.chainId,\n data: {\n cat: 'Modal',\n bond: bondData.earnToken.symbol,\n bondChain: bondData.chainId,\n },\n })\n }\n\n return (\n <Flex\n className=\"modaltable-container title-container\"\n sx={{ flexDirection: 'column', justifyContent: 'center', alignItems: 'start' }}\n >\n <Flex\n sx={{\n width: '100%',\n height: '30px',\n mb: ['10px', '10px', '10px', '0px'],\n justifyContent: ['space-between', 'space-between', 'space-between', 'flex-end'],\n }}\n >\n <Flex sx={{ display: ['flex', 'flex', 'flex', 'none'] }}>\n <BondModalMinTierHeader minTier={minTier} />\n </Flex>\n <Flex sx={{ cursor: 'pointer' }}>\n {onDismiss ? (\n <>\n {showProjectInfoButton && <ExpandedViewButton handleNavigation={handleProjectViewNavigation} />}\n <Flex sx={{ mx: '25px' }} onClick={onOpenSlippageModal}>\n <Svg icon=\"cog\" width={isMobile ? '16px' : '20px'} />\n </Flex>\n <Flex onClick={handleClose}>\n <Svg icon=\"close\" color=\"text\" width={isMobile ? '12px' : '18px'} />\n </Flex>\n </>\n ) : (\n <Flex sx={{ py: '3px', mt: '10px' }} onClick={onOpenSlippageModal}>\n <Svg icon=\"cog\" width={isMobile ? '16px' : '20px'} />\n </Flex>\n )}\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%' }}>\n <Flex className=\"title-container bondicon\">\n <Flex sx={MCTokenIconStyles[bondData.marketingCampaign!]} />\n <TokenImage\n symbol={bondData.showcaseTokenName ?? bondData.earnToken.symbol}\n size={50}\n chain={bondData.chainId}\n />\n </Flex>\n <Flex\n sx={{\n display: 'flex',\n flexDirection: 'column',\n pl: ['10px', '10px', '10px', '20px'],\n fontSize: ['20px', '20px', '20px', '24px'],\n fontWeight: 700,\n }}\n >\n {bondData?.showcaseTokenName}\n <ListTag text={bondData?.tags?.[0]} />\n </Flex>\n <Flex\n className=\"title-container price-container\"\n sx={{ flexDirection: 'column', pl: ['10px', '10px', '10px', '20px'] }}\n >\n <Flex className=\"price-container price\" sx={{ fontSize: ['12px', '12px', '12px', '14px'] }}>\n ${earnTokenPrice(bondData)}\n </Flex>\n {SDKConfig.useTiers &&\n bondData.billVersion === BillVersion.V4 &&\n (bondData?.trueBondPrices?.length ?? 0) > 1 ? (\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: '#9960C5',\n opacity: 0.2,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '12px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color: bonusWithFee && bonusWithFee > 0 ? 'success' : 'error',\n fontSize: ['12px', '12px', '12px', '14px'],\n }}\n >\n ${discountEarnTokenPrice(bondData, true)}\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <Flex sx={{ fontSize: '24px', fontWeight: 700 }}>${discountEarnTokenPrice(bondData)}</Flex>\n )}\n </Flex>\n <Flex sx={{ display: ['none', 'none', 'none', 'flex'], ml: '10px' }}>\n <BondModalMinTierHeader minTier={minTier} />\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default BondModalHeader\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"BondModalHeader.js","sources":["../../../../src/views/BuyBond/components/BondModalHeader.tsx"],"sourcesContent":["import React from 'react'\nimport TokenImage from '../../../components/uikit-sdk/TokenImage'\nimport { discountEarnTokenPrice } from '../../../utils/displayHelpers'\nimport useModal from '../../../hooks/useModal'\nimport SlippageModal from '../../../components/SlippageModal'\nimport { BondsData } from '../../../types/bonds'\nimport ExpandedViewButton from './ExpandedViewButton'\nimport track from '../../../utils/track'\nimport BondModalMinTierHeader from './BondModalMinTierHeader'\nimport { TIERS_WEIGHT } from '../../../state/tiers/useTierPoints'\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { useSDKConfig } from '../../../state/useSDKConfig'\nimport { findHighestTrueBondPrice } from '../../../utils/bondPriceHelpers'\nimport { MCTokenIconStyles } from '../../../utils/campaignStyles'\nimport { useIsMobile } from '../../../hooks/useIsMobile'\nimport Flex from '../../../components/uikit-sdk/Flex'\nimport Svg from '../../../components/uikit-sdk/Svg'\nimport ListTag from '../../../components/uikit-sdk/Tag/ListTag'\nimport { formatNumberSI } from '../../../utils/formatNumber'\n\nconst BondModalHeader = ({\n bondData,\n onDismiss,\n showProjectInfoButton,\n}: {\n bondData: BondsData\n onDismiss?: () => void\n showProjectInfoButton?: boolean\n}) => {\n const isMobile = useIsMobile()\n const SDKConfig = useSDKConfig()\n const [onOpenSlippageModal] = useModal(<SlippageModal chainId={bondData.chainId} />)\n const minTier = bondData.minTier !== undefined ? bondData.minTier : null\n const bonusWithFee = findHighestTrueBondPrice(\n TIERS_WEIGHT[LaunchBondTiers.Legend],\n bondData?.trueBondPrices,\n )?.bonusWithFee\n\n const handleClose = () => {\n if (typeof window !== 'undefined') {\n window.history.pushState({}, '', `/bonds`)\n }\n onDismiss?.()\n }\n\n const handleProjectViewNavigation = () => {\n window.location.href = `/bonds/${bondData?.contractAddress?.[bondData?.chainId]}/${bondData?.chainId}`\n track({\n event: 'projectInfoClick',\n chain: bondData.chainId,\n data: {\n cat: 'Modal',\n bond: bondData.earnToken.symbol,\n bondChain: bondData.chainId,\n },\n })\n }\n\n return (\n <Flex\n className=\"modaltable-container title-container\"\n sx={{ flexDirection: 'column', justifyContent: 'center', alignItems: 'start' }}\n >\n <Flex\n sx={{\n width: '100%',\n height: '30px',\n mb: ['10px', '10px', '10px', '0px'],\n justifyContent: ['space-between', 'space-between', 'space-between', 'flex-end'],\n }}\n >\n <Flex sx={{ display: ['flex', 'flex', 'flex', 'none'] }}>\n <BondModalMinTierHeader minTier={minTier} />\n </Flex>\n <Flex sx={{ cursor: 'pointer' }}>\n {onDismiss ? (\n <>\n {showProjectInfoButton && <ExpandedViewButton handleNavigation={handleProjectViewNavigation} />}\n <Flex sx={{ mx: '25px' }} onClick={onOpenSlippageModal}>\n <Svg icon=\"cog\" width={isMobile ? '16px' : '20px'} />\n </Flex>\n <Flex onClick={handleClose}>\n <Svg icon=\"close\" color=\"text\" width={isMobile ? '12px' : '18px'} />\n </Flex>\n </>\n ) : (\n <Flex sx={{ py: '3px', mt: '10px' }} onClick={onOpenSlippageModal}>\n <Svg icon=\"cog\" width={isMobile ? '16px' : '20px'} />\n </Flex>\n )}\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%' }}>\n <Flex className=\"title-container bondicon\">\n <Flex sx={MCTokenIconStyles[bondData.marketingCampaign!]} />\n <TokenImage\n symbol={bondData.showcaseTokenName ?? bondData.earnToken.symbol}\n size={50}\n chain={bondData.chainId}\n />\n </Flex>\n <Flex\n sx={{\n display: 'flex',\n flexDirection: 'column',\n pl: ['10px', '10px', '10px', '20px'],\n fontSize: ['20px', '20px', '20px', '24px'],\n fontWeight: 700,\n }}\n >\n {bondData?.showcaseTokenName}\n <ListTag text={bondData?.tags?.[0]} />\n </Flex>\n <Flex\n className=\"title-container price-container\"\n sx={{ flexDirection: 'column', pl: ['10px', '10px', '10px', '20px'] }}\n >\n <Flex className=\"price-container price\" sx={{ fontSize: ['12px', '12px', '12px', '14px'] }}>\n ${formatNumberSI(bondData.payoutTokenPrice, bondData.earnToken.symbol.toLowerCase() === 'ireet' ? 6 : 2)}\n </Flex>\n {SDKConfig.useTiers &&\n bondData.billVersion === BillVersion.V4 &&\n (bondData?.trueBondPrices?.length ?? 0) > 1 ? (\n <Flex\n sx={{\n p: '3px 6px',\n border: '1px solid #9960C5',\n borderRadius: 'normal',\n background: 'transparent',\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n <Flex\n sx={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n zIndex: 1,\n background: '#9960C5',\n opacity: 0.2,\n }}\n />\n <Flex sx={{ width: '100%', zIndex: 2, alignItems: 'center' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <Flex sx={{ fontSize: ['12px', '12px', '12px', '14px'], mr: '3px' }}>Up to</Flex>\n <Flex\n sx={{\n color: bonusWithFee && bonusWithFee > 0 ? 'success' : 'error',\n fontSize: ['12px', '12px', '12px', '14px'],\n }}\n >\n ${discountEarnTokenPrice(bondData, true)}\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <Flex sx={{ fontSize: '24px', fontWeight: 700 }}>${discountEarnTokenPrice(bondData)}</Flex>\n )}\n </Flex>\n <Flex sx={{ display: ['none', 'none', 'none', 'flex'], ml: '10px' }}>\n <BondModalMinTierHeader minTier={minTier} />\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default BondModalHeader\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -31,7 +31,7 @@ const PriceChart = ({ selectedBond, historicalPrices, }) => {
31
31
  }, 50);
32
32
  return () => clearTimeout(timer);
33
33
  }, [contractAddress]);
34
- return (jsxs(Flex, { sx: styles.priceContainer, children: [jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', mb: '15px', pr: '20px' }, children: [jsx(Flex, { children: "Prices" }), jsxs(Flex, { children: [jsxs(Flex, { sx: { color: hasDiscount ? 'success' : 'error', fontSize: '12px', fontWeight: 500, mr: '15px' }, children: ["Bond Price: $", bondPrice] }), jsxs(Flex, { sx: { color: 'textDisabledButton', fontSize: '12px', fontWeight: 500 }, children: ["Market Price: $", getFirstNonZeroDigits(earnTokenPrice ?? 0)] })] })] }), show && (jsxs(Flex, { sx: styles.container, children: [jsxs(Flex, { sx: styles.buttonsContainer, children: [jsx(Flex, { sx: { ...styles.button, mr: '15px' }, onClick: () => setChartOption('line'), children: jsx(Svg, { icon: "lineChart", width: 20 }) }), jsx(Flex, { sx: styles.button, onClick: () => setChartOption('candleStick'), children: "D" })] }), historicalPrices && historicalPrices.length > 0 ? (chartOption === 'line' ? (jsx(LineChart, { historicalPrices: historicalPrices, hasDiscount: hasDiscount, bondPrice: bondPrice, tokenPrice: selectedBond.payoutTokenPrice ?? '0' })) : (jsx(CandleStickChart, { historicalPrices: historicalPrices, hasDiscount: hasDiscount, bondPrice: bondPrice, tokenPrice: selectedBond.payoutTokenPrice ?? '0' }))) : (jsxs(Flex, { sx: { flexDirection: 'column', justifyContent: 'center', alignItems: 'center', width: '100%' }, children: [jsx(Svg, { icon: "placeholderMonkey" }), jsx(Flex, { sx: { mt: '15px' }, children: "No Historical Price for this Token" })] }))] }))] }));
34
+ return (jsxs(Flex, { sx: styles.priceContainer, children: [jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', mb: '15px', pr: '20px' }, children: [jsx(Flex, { children: "Prices" }), jsxs(Flex, { children: [jsxs(Flex, { sx: { color: hasDiscount ? 'success' : 'error', fontSize: '12px', fontWeight: 500, mr: '15px' }, children: ["Bond Price: $", bondPrice] }), jsxs(Flex, { sx: { color: 'textDisabledButton', fontSize: '12px', fontWeight: 500 }, children: ["Market Price: $", getFirstNonZeroDigits(earnTokenPrice ?? 0)] })] })] }), show && (jsxs(Flex, { sx: styles.container, children: [jsxs(Flex, { sx: styles.buttonsContainer, children: [jsx(Flex, { sx: { ...styles.button, mr: '15px' }, onClick: () => setChartOption('line'), children: jsx(Svg, { icon: "lineChart", width: 20 }) }), jsx(Flex, { sx: styles.button, onClick: () => setChartOption('candleStick'), children: "D" })] }), historicalPrices && historicalPrices.length > 0 ? (chartOption === 'line' ? (jsx(LineChart, { historicalPrices: historicalPrices, hasDiscount: hasDiscount, bondPrice: bondPrice ?? '0', tokenPrice: selectedBond.payoutTokenPrice ?? '0' })) : (jsx(CandleStickChart, { historicalPrices: historicalPrices, hasDiscount: hasDiscount, bondPrice: bondPrice ?? '0', tokenPrice: selectedBond.payoutTokenPrice ?? '0' }))) : (jsxs(Flex, { sx: { flexDirection: 'column', justifyContent: 'center', alignItems: 'center', width: '100%' }, children: [jsx(Svg, { icon: "placeholderMonkey" }), jsx(Flex, { sx: { mt: '15px' }, children: "No Historical Price for this Token" })] }))] }))] }));
35
35
  };
36
36
 
37
37
  export { PriceChart as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/ProjectView/components/PriceChart/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport CandleStickChart from './components/CandleStickChart'\nimport LineChart from './components/LineChart'\nimport { styles } from './styles'\nimport { BondsData } from '../../../../types/bonds'\nimport { HistoricalPrices } from '../../ProjectView'\nimport { getFirstNonZeroDigits } from '../../../../utils/roundNumber'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { TIERS_WEIGHT } from '../../../../state/tiers/useTierPoints'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { discountEarnTokenPrice } from '../../../../utils/displayHelpers'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\n\nconst PriceChart = ({\n selectedBond,\n historicalPrices,\n}: {\n selectedBond: BondsData\n historicalPrices?: HistoricalPrices[] | null\n}) => {\n const earnTokenPrice = parseFloat(selectedBond?.payoutTokenPrice ?? '0')\n const trueBondPrice = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], selectedBond?.trueBondPrices)\n const bondPrice = discountEarnTokenPrice(selectedBond, true)\n const hasDiscount = (trueBondPrice?.bonus ?? 0) > 0\n const contractAddress = selectedBond.contractAddress[selectedBond.chainId]\n\n const [show, setShow] = useState<boolean>(false)\n const [chartOption, setChartOption] = useState<'line' | 'candleStick'>('line')\n\n useEffect(() => {\n // This effect is to ensure that the charts are only rendered on the client\n setShow(true)\n }, [])\n\n useEffect(() => {\n // This effect is to ensure the charts are re-rendered everytime the selectedBond changes\n setShow(false)\n const timer = setTimeout(() => {\n setShow(true)\n }, 50)\n return () => clearTimeout(timer)\n }, [contractAddress])\n\n return (\n <Flex sx={styles.priceContainer}>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mb: '15px', pr: '20px' }}>\n <Flex>Prices</Flex>\n <Flex>\n <Flex sx={{ color: hasDiscount ? 'success' : 'error', fontSize: '12px', fontWeight: 500, mr: '15px' }}>\n Bond Price: ${bondPrice}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 500 }}>\n Market Price: ${getFirstNonZeroDigits(earnTokenPrice ?? 0)}\n </Flex>\n </Flex>\n </Flex>\n {show && (\n <Flex sx={styles.container}>\n <Flex sx={styles.buttonsContainer}>\n <Flex sx={{ ...styles.button, mr: '15px' }} onClick={() => setChartOption('line')}>\n <Svg icon=\"lineChart\" width={20} />\n </Flex>\n <Flex sx={styles.button} onClick={() => setChartOption('candleStick')}>\n D\n </Flex>\n </Flex>\n {historicalPrices && historicalPrices.length > 0 ? (\n chartOption === 'line' ? (\n <LineChart\n historicalPrices={historicalPrices}\n hasDiscount={hasDiscount}\n bondPrice={bondPrice}\n tokenPrice={selectedBond.payoutTokenPrice ?? '0'}\n />\n ) : (\n <CandleStickChart\n historicalPrices={historicalPrices}\n hasDiscount={hasDiscount}\n bondPrice={bondPrice}\n tokenPrice={selectedBond.payoutTokenPrice ?? '0'}\n />\n )\n ) : (\n <Flex sx={{ flexDirection: 'column', justifyContent: 'center', alignItems: 'center', width: '100%' }}>\n <Svg icon=\"placeholderMonkey\" />\n <Flex sx={{ mt: '15px' }}>No Historical Price for this Token</Flex>\n </Flex>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default PriceChart\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,UAAU,GAAG,CAAC,EAClB,YAAY,EACZ,gBAAgB,GAIjB,KAAI;IACH,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,EAAE,gBAAgB,IAAI,GAAG,CAAC;AACxE,IAAA,MAAM,aAAa,GAAG,wBAAwB,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,cAAc,CAAC;IAClH,MAAM,SAAS,GAAG,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5D,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;IACnD,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC;IAE1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC;IAChD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAyB,MAAM,CAAC;IAE9E,SAAS,CAAC,MAAK;;QAEb,OAAO,CAAC,IAAI,CAAC;IACf,CAAC,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;;QAEb,OAAO,CAAC,KAAK,CAAC;AACd,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK;YAC5B,OAAO,CAAC,IAAI,CAAC;QACf,CAAC,EAAE,EAAE,CAAC;AACN,QAAA,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC;AAClC,IAAA,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;AAErB,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,cAAc,aAC7BA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAClFC,IAAC,IAAI,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAc,EACnBD,IAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CACHA,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAAA,eAAA,EACrF,SAAS,IAClB,EACPA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,CAAA,iBAAA,EAC1D,qBAAqB,CAAC,cAAc,IAAI,CAAC,CAAC,CAAA,EAAA,CACrD,CAAA,EAAA,CACF,IACF,EACN,IAAI,KACHA,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CACxBA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,gBAAgB,EAAA,QAAA,EAAA,CAC/BC,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC,MAAM,CAAC,EAAA,QAAA,EAC/EA,IAAC,GAAG,EAAA,EAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,EAAA,CAAI,EAAA,CAC9B,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9D,CAAA,EAAA,CACF,EACN,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAC9C,WAAW,KAAK,MAAM,IACpBA,GAAA,CAAC,SAAS,EAAA,EACR,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,YAAY,CAAC,gBAAgB,IAAI,GAAG,EAAA,CAChD,KAEFA,GAAA,CAAC,gBAAgB,EAAA,EACf,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,YAAY,CAAC,gBAAgB,IAAI,GAAG,GAChD,CACH,KAEDD,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,aAClGC,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,mBAAmB,EAAA,CAAG,EAChCA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,oCAAA,EAAA,CAA2C,IAC9D,CACR,CAAA,EAAA,CACI,CACR,CAAA,EAAA,CACI;AAEX;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/ProjectView/components/PriceChart/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport CandleStickChart from './components/CandleStickChart'\nimport LineChart from './components/LineChart'\nimport { styles } from './styles'\nimport { BondsData } from '../../../../types/bonds'\nimport { HistoricalPrices } from '../../ProjectView'\nimport { getFirstNonZeroDigits } from '../../../../utils/roundNumber'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { TIERS_WEIGHT } from '../../../../state/tiers/useTierPoints'\nimport { LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { discountEarnTokenPrice } from '../../../../utils/displayHelpers'\nimport { findHighestTrueBondPrice } from '../../../../utils/bondPriceHelpers'\n\nconst PriceChart = ({\n selectedBond,\n historicalPrices,\n}: {\n selectedBond: BondsData\n historicalPrices?: HistoricalPrices[] | null\n}) => {\n const earnTokenPrice = parseFloat(selectedBond?.payoutTokenPrice ?? '0')\n const trueBondPrice = findHighestTrueBondPrice(TIERS_WEIGHT[LaunchBondTiers.Legend], selectedBond?.trueBondPrices)\n const bondPrice = discountEarnTokenPrice(selectedBond, true)\n const hasDiscount = (trueBondPrice?.bonus ?? 0) > 0\n const contractAddress = selectedBond.contractAddress[selectedBond.chainId]\n\n const [show, setShow] = useState<boolean>(false)\n const [chartOption, setChartOption] = useState<'line' | 'candleStick'>('line')\n\n useEffect(() => {\n // This effect is to ensure that the charts are only rendered on the client\n setShow(true)\n }, [])\n\n useEffect(() => {\n // This effect is to ensure the charts are re-rendered everytime the selectedBond changes\n setShow(false)\n const timer = setTimeout(() => {\n setShow(true)\n }, 50)\n return () => clearTimeout(timer)\n }, [contractAddress])\n\n return (\n <Flex sx={styles.priceContainer}>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mb: '15px', pr: '20px' }}>\n <Flex>Prices</Flex>\n <Flex>\n <Flex sx={{ color: hasDiscount ? 'success' : 'error', fontSize: '12px', fontWeight: 500, mr: '15px' }}>\n Bond Price: ${bondPrice}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 500 }}>\n Market Price: ${getFirstNonZeroDigits(earnTokenPrice ?? 0)}\n </Flex>\n </Flex>\n </Flex>\n {show && (\n <Flex sx={styles.container}>\n <Flex sx={styles.buttonsContainer}>\n <Flex sx={{ ...styles.button, mr: '15px' }} onClick={() => setChartOption('line')}>\n <Svg icon=\"lineChart\" width={20} />\n </Flex>\n <Flex sx={styles.button} onClick={() => setChartOption('candleStick')}>\n D\n </Flex>\n </Flex>\n {historicalPrices && historicalPrices.length > 0 ? (\n chartOption === 'line' ? (\n <LineChart\n historicalPrices={historicalPrices}\n hasDiscount={hasDiscount}\n bondPrice={bondPrice ?? '0'}\n tokenPrice={selectedBond.payoutTokenPrice ?? '0'}\n />\n ) : (\n <CandleStickChart\n historicalPrices={historicalPrices}\n hasDiscount={hasDiscount}\n bondPrice={bondPrice ?? '0'}\n tokenPrice={selectedBond.payoutTokenPrice ?? '0'}\n />\n )\n ) : (\n <Flex sx={{ flexDirection: 'column', justifyContent: 'center', alignItems: 'center', width: '100%' }}>\n <Svg icon=\"placeholderMonkey\" />\n <Flex sx={{ mt: '15px' }}>No Historical Price for this Token</Flex>\n </Flex>\n )}\n </Flex>\n )}\n </Flex>\n )\n}\n\nexport default PriceChart\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -172,7 +172,9 @@ const TransactionModal = ({ onDismiss, txChain, approvalState, approveCallback,
172
172
  background: 'rgba(56, 166, 17, 0.13)',
173
173
  color: 'success',
174
174
  lineHeight: '18px',
175
- }, children: [trueBondPrice?.bonusWithFee?.toFixed(2), " % Bonus"] })] })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', mt: '10px' }, children: [jsxs(Flex, { sx: { p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }, children: [isArray(splited) ? (jsx(TokenImage, { symbol: splited[0], symbol2: splited[1], size: 20, chain: txChain })) : (jsx(TokenImage, { symbol: getSymbol(inputToken, txChain), size: 20, chain: txChain })), jsx(Flex, { sx: { fontSize: '14px', fontWeight: 600, mx: '5px' }, children: formatNumberSI(inputValue, 4) ?? '0' }), jsxs(Flex, { sx: { color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }, children: ["(", inputTokenPrice?.price && inputValue
175
+ }, children: [bondData.earnToken.symbol.toLowerCase() === 'ireet'
176
+ ? '3.00'
177
+ : trueBondPrice?.bonusWithFee?.toFixed(2), ' ', "% Bonus"] })] })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', mt: '10px' }, children: [jsxs(Flex, { sx: { p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }, children: [isArray(splited) ? (jsx(TokenImage, { symbol: splited[0], symbol2: splited[1], size: 20, chain: txChain })) : (jsx(TokenImage, { symbol: getSymbol(inputToken, txChain), size: 20, chain: txChain })), jsx(Flex, { sx: { fontSize: '14px', fontWeight: 600, mx: '5px' }, children: formatNumberSI(inputValue, 4) ?? '0' }), jsxs(Flex, { sx: { color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }, children: ["(", inputTokenPrice?.price && inputValue
176
178
  ? `$${formatNumberSI(inputTokenPrice?.price * parseFloat(inputValue))}`
177
179
  : '0.00', ")"] })] }), jsx(Svg, { icon: 'arrow', direction: 'right', width: '10px' }), jsxs(Flex, { sx: { p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }, children: [jsx(TokenImage, { symbol: getSymbol(bondData.earnToken, txChain), chain: txChain, size: 20 }), jsx(Flex, { sx: { fontSize: '14px', fontWeight: 600, mx: '5px' }, children: formatNumberSI(estimatedOutputAmount, 4) }), jsxs(Flex, { sx: { color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }, children: ["($", formatNumberSI(estimatedOutputUSD), ")"] })] })] })] })), jsx(Flex, { sx: { mt: '20px' }, children: hasToSwitchChain ? (jsxs(Button, { load: loadingSwitchChain, disabled: loadingSwitchChain, onClick: handleSwitchChain, fullWidth: true, children: ["switch to ", NETWORK_LABEL[txChain]] })) : !hasToApprove ? (jsx(Button, { load: loadingTx || verifyingTx, disabled: loadingTx || verifyingTx, onClick: txCallback, fullWidth: true, children: "buy" })) : (jsx(Button, { className: "action-button", load: approvalState === ApprovalState.PENDING || approveLoading, disabled: approvalState === ApprovalState.PENDING || approveLoading, onClick: handleApprove, fullWidth: true, children: "Approve" })) })] })] }));
178
180
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionModal.js","sources":["../../../src/views/TransactionModal/TransactionModal.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport StepBubble from '../../components/StepBubble'\nimport LoadingSpinner from '../../components/LoadingSpinner'\nimport { useSwitchChain } from 'wagmi'\nimport { NETWORK_LABEL } from '../../config/constants/chains'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport { ApprovalState } from '../../state/allowance/useAllowance'\nimport {\n discountEarnTokenPriceForUser,\n earnTokenPrice,\n getPayoutAmount,\n getVestingTermsString,\n} from '../../utils/displayHelpers'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport useTierPoints, { getUserTier, TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport { BondsData } from '../../types/bonds'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport isArray from 'lodash-es/isArray.js'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\n\nconst stepDelay = 1000\n\nconst TransactionModal = ({\n onDismiss,\n txChain,\n approvalState,\n approveCallback,\n loadingTx,\n txCallback,\n bondData,\n inputToken,\n inputValue,\n depositAmount,\n buyTxHash,\n rateChanged,\n}: {\n onDismiss?: () => void\n txChain?: number\n approvalState?: ApprovalState\n approveCallback?: () => Promise<void>\n loadingTx?: boolean\n txCallback?: () => void\n bondData: BondsData\n inputToken: Token | 'NATIVE' | undefined\n inputValue: string\n depositAmount: string\n buyTxHash?: string\n rateChanged: boolean\n}) => {\n // Hooks\n const { chain } = useEVMAccount()\n const { data: userPoints } = useTierPoints()\n const inputTokenPrice = useCurrencyPrice(inputToken ?? null, txChain as ChainId)\n const { switchChainAsync } = useSwitchChain()\n const SDKConfig = useSDKConfig()\n\n // Flow\n const initialChain = useMemo(\n () => chain?.id,\n /* eslint-disable react-hooks/exhaustive-deps */\n [],\n )\n const showSwitchChainFlow = txChain !== initialChain\n // const showSwitchChainFlow = true\n const [hasToSwitchChain, setHasToSwitchChain] = useState<boolean>(showSwitchChainFlow)\n const [hasToApprove, setHasToApprove] = useState<boolean>(true)\n\n // Loading state\n const [loadingSwitchChain, setLoadingSwitchChain] = useState<boolean>(false)\n const [approveLoading, setApproveLoading] = useState<boolean>(false)\n\n // Values for regular bonds\n const estimatedOutputAmount = getPayoutAmount(bondData, depositAmount, userPoints ?? '0')\n const estimatedOutputUSD = estimatedOutputAmount * parseFloat(bondData?.payoutTokenPrice ?? '0')\n const preTGEEstimatedOutput = parseFloat(inputValue) / (bondData?.initPrice ?? 0)\n const preTGEEstimatedOutputUSD = preTGEEstimatedOutput * (bondData?.tgePrice ?? 0)\n\n const handleSwitchChain = () => {\n setLoadingSwitchChain(true)\n switchChainAsync({ chainId: txChain! })\n .then(() => {\n setHasToSwitchChain(false)\n setApproveLoading(true)\n })\n .catch((e) => console.error(e))\n .finally(() => {\n setLoadingSwitchChain(false)\n })\n }\n\n const handleApprove = () => {\n setApproveLoading(true)\n approveCallback?.().catch(() => {\n setApproveLoading(false)\n })\n }\n\n // Switch Chain Step #1\n const hasTriggeredSwitch = useRef(false)\n useEffect(() => {\n if (hasToSwitchChain && !hasTriggeredSwitch.current) {\n setLoadingSwitchChain(true)\n const delay = setTimeout(() => {\n hasTriggeredSwitch.current = true\n handleSwitchChain()\n }, stepDelay)\n return () => clearTimeout(delay)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain])\n\n // Trigger approve Step #2\n const hasTriggeredApproval = useRef(false)\n useEffect(() => {\n if (!hasToSwitchChain || !showSwitchChainFlow) {\n if (approvalState === ApprovalState.APPROVED) {\n setApproveLoading(true)\n const delay = setTimeout(() => {\n setApproveLoading(false)\n setHasToApprove(false)\n }, stepDelay)\n return () => clearTimeout(delay)\n } else if (!hasTriggeredApproval.current && approvalState !== ApprovalState.PENDING) {\n setApproveLoading(true)\n hasTriggeredApproval.current = true\n handleApprove()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain, approvalState])\n\n // Execute main tx Step #3\n const hasTriggeredTx = useRef(false)\n useEffect(() => {\n if (!hasToSwitchChain && !hasToApprove && !hasTriggeredTx.current) {\n hasTriggeredTx.current = true\n if (rateChanged) {\n onDismiss?.()\n } else {\n setApproveLoading(false)\n txCallback?.()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain, hasToApprove, txCallback])\n\n // Close modal if a hash is found. Final Step\n const { data: txReceipt, isSuccess, isLoading: verifyingTx } = useMonitorTx(buyTxHash, txChain)\n useEffect(() => {\n if (buyTxHash && txReceipt) {\n if (isSuccess) {\n onDismiss?.()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [buyTxHash, txReceipt, isSuccess])\n\n const currentStep: number = showSwitchChainFlow ? (hasToSwitchChain ? 1 : hasToApprove ? 2 : 3) : hasToApprove ? 1 : 2\n const splited = typeof inputToken !== 'string' ? inputToken?.symbol?.split('-') : undefined\n const trueBondPrice = findHighestTrueBondPrice(\n // @ts-ignore\n TIERS_WEIGHT[getUserTier(userPoints)] ?? '0',\n bondData?.trueBondPrices,\n )\n\n return (\n <Modal>\n <ModalHeader onDismiss={onDismiss} hideDivider />\n <Flex sx={{ flexDirection: 'column', width: '100%' }}>\n <Flex sx={{ width: '100%', alignItems: 'center', p: '10px' }}>\n {showSwitchChainFlow && (\n <StepBubble number={1} title={'Switch Chain'} currentStep={currentStep} loading={loadingSwitchChain} />\n )}\n <StepBubble\n number={showSwitchChainFlow ? 2 : 1}\n title={'Approve'}\n currentStep={currentStep}\n loading={approveLoading || approvalState === ApprovalState.PENDING}\n />\n <StepBubble\n number={showSwitchChainFlow ? 3 : 2}\n title={'Buy'}\n currentStep={currentStep}\n loading={loadingTx || verifyingTx}\n hideBar\n />\n </Flex>\n <Flex sx={{ width: '100%', mt: '40px', justifyContent: 'center' }}>\n <LoadingSpinner\n isLoading={\n loadingSwitchChain ||\n approveLoading ||\n loadingTx ||\n verifyingTx ||\n approvalState === ApprovalState.PENDING\n }\n size={100}\n />\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'center', mt: '10px' }}>\n {hasToSwitchChain\n ? loadingSwitchChain\n ? 'Switching Chain...'\n : 'Switch Chain'\n : hasToApprove\n ? approveLoading || approvalState === ApprovalState.PENDING\n ? 'Approving...'\n : 'Approve Contract'\n : loadingTx || verifyingTx\n ? 'Buying...'\n : 'Buy'}\n </Flex>\n {bondData.billType === 'fcfs' ? (\n <Flex sx={{ width: '100%', flexDirection: 'column', mt: '20px' }}>\n <Flex\n sx={{\n width: '100%',\n background: 'white3',\n p: '5px',\n borderRadius: 'normal',\n color: 'textDisabledButton',\n justifyContent: 'center',\n }}\n >\n {bondData.earnToken.symbol} ({getTimePeriods(bondData?.vestingTerm).months} Mo)\n </Flex>\n <Flex sx={{ width: '100%', background: 'white3', p: '10px', borderRadius: 'normal', mt: '10px' }}>\n <TokenImage symbol={bondData.earnToken.symbol} size={40} chain={txChain} />\n <Flex sx={{ width: '100%', justifyContent: 'space-between', alignItems: 'center' }}>\n <Flex sx={{ flexDirection: 'column', fontSize: '12px', ml: '10px' }}>\n <Flex sx={{ color: 'textDisabledButton', fontWeight: 400, textDecoration: 'line-through' }}>\n ${bondData.tgePrice}\n </Flex>\n <Flex sx={{ color: 'green', fontWeight: 600 }}>${bondData.initPrice}</Flex>\n </Flex>\n <Flex\n sx={{\n p: '5px',\n borderRadius: 'normal',\n border: '1px solid var(--theme-ui-colors-success)',\n background: 'rgba(56, 166, 17, 0.13)',\n color: 'success',\n lineHeight: '18px',\n }}\n >\n {trueBondPrice?.bonusWithFee?.toFixed(2)} % Bonus\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '10px' }}>\n <Flex\n sx={{ p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }}\n >\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={20} chain={txChain} />\n ) : (\n <TokenImage symbol={getSymbol(inputToken, txChain)} size={20} chain={txChain} />\n )}\n <Flex sx={{ fontSize: '14px', fontWeight: 600, mx: '5px' }}>\n {formatNumberSI(inputValue, 4) ?? '0'}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }}>\n (\n {inputTokenPrice?.price && inputValue\n ? `$${formatNumberSI(inputTokenPrice?.price * parseFloat(inputValue))}`\n : '0.00'}\n )\n </Flex>\n </Flex>\n <Svg icon={'arrow'} direction={'right'} width={'10px'} />\n <Flex\n sx={{ p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }}\n >\n <TokenImage symbol={getSymbol(bondData.earnToken, txChain)} chain={txChain} size={20} />\n <Flex sx={{ fontSize: '14px', fontWeight: 600, mx: '5px' }}>\n {formatNumberSI(preTGEEstimatedOutput, 4)}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }}>\n (${formatNumberSI(preTGEEstimatedOutputUSD)})\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <Flex sx={{ width: '100%', flexDirection: 'column', mt: '20px' }}>\n <Flex\n sx={{\n width: '100%',\n background: 'white3',\n p: '5px',\n borderRadius: 'normal',\n color: 'textDisabledButton',\n justifyContent: 'center',\n }}\n >\n {bondData.earnToken.symbol} ({getVestingTermsString(bondData)})\n </Flex>\n <Flex sx={{ width: '100%', background: 'white3', p: '10px', borderRadius: 'normal', mt: '10px' }}>\n <TokenImage symbol={bondData.earnToken.symbol} size={40} chain={txChain} />\n <Flex sx={{ width: '100%', justifyContent: 'space-between', alignItems: 'center' }}>\n <Flex sx={{ flexDirection: 'column', fontSize: '12px', ml: '10px' }}>\n <Flex sx={{ color: 'textDisabledButton', fontWeight: 400, textDecoration: 'line-through' }}>\n ${earnTokenPrice(bondData)}\n </Flex>\n <Flex sx={{ color: 'green', fontWeight: 600 }}>\n $\n {discountEarnTokenPriceForUser(bondData, SDKConfig.useTiers, getUserTier(userPoints!) ?? undefined)}\n </Flex>\n </Flex>\n <Flex\n sx={{\n p: '5px',\n borderRadius: 'normal',\n border: '1px solid var(--theme-ui-colors-success)',\n background: 'rgba(56, 166, 17, 0.13)',\n color: 'success',\n lineHeight: '18px',\n }}\n >\n {trueBondPrice?.bonusWithFee?.toFixed(2)} % Bonus\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '10px' }}>\n <Flex\n sx={{ p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }}\n >\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={20} chain={txChain} />\n ) : (\n <TokenImage symbol={getSymbol(inputToken, txChain)} size={20} chain={txChain} />\n )}\n <Flex sx={{ fontSize: '14px', fontWeight: 600, mx: '5px' }}>\n {formatNumberSI(inputValue, 4) ?? '0'}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }}>\n (\n {inputTokenPrice?.price && inputValue\n ? `$${formatNumberSI(inputTokenPrice?.price * parseFloat(inputValue))}`\n : '0.00'}\n )\n </Flex>\n </Flex>\n <Svg icon={'arrow'} direction={'right'} width={'10px'} />\n <Flex\n sx={{ p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }}\n >\n <TokenImage symbol={getSymbol(bondData.earnToken, txChain)} chain={txChain} size={20} />\n <Flex sx={{ fontSize: '14px', fontWeight: 600, mx: '5px' }}>\n {formatNumberSI(estimatedOutputAmount, 4)}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }}>\n (${formatNumberSI(estimatedOutputUSD)})\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n )}\n\n {/*\n\n Action Buttons\n\n */}\n <Flex sx={{ mt: '20px' }}>\n {hasToSwitchChain ? (\n <Button load={loadingSwitchChain} disabled={loadingSwitchChain} onClick={handleSwitchChain} fullWidth>\n switch to {NETWORK_LABEL[txChain!]}\n </Button>\n ) : !hasToApprove ? (\n <Button load={loadingTx || verifyingTx} disabled={loadingTx || verifyingTx} onClick={txCallback} fullWidth>\n buy\n </Button>\n ) : (\n <Button\n className=\"action-button\"\n load={approvalState === ApprovalState.PENDING || approveLoading}\n disabled={approvalState === ApprovalState.PENDING || approveLoading}\n onClick={handleApprove}\n fullWidth\n >\n Approve\n </Button>\n )}\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default TransactionModal\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"TransactionModal.js","sources":["../../../src/views/TransactionModal/TransactionModal.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport StepBubble from '../../components/StepBubble'\nimport LoadingSpinner from '../../components/LoadingSpinner'\nimport { useSwitchChain } from 'wagmi'\nimport { NETWORK_LABEL } from '../../config/constants/chains'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport { ApprovalState } from '../../state/allowance/useAllowance'\nimport {\n discountEarnTokenPriceForUser,\n earnTokenPrice,\n getPayoutAmount,\n getVestingTermsString,\n} from '../../utils/displayHelpers'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport useTierPoints, { getUserTier, TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport { BondsData } from '../../types/bonds'\nimport useCurrencyPrice from '../../state/price/useCurrencyPrice'\nimport { ChainId, Token } from '@ape.swap/apeswap-lists'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport isArray from 'lodash-es/isArray.js'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\n\nconst stepDelay = 1000\n\nconst TransactionModal = ({\n onDismiss,\n txChain,\n approvalState,\n approveCallback,\n loadingTx,\n txCallback,\n bondData,\n inputToken,\n inputValue,\n depositAmount,\n buyTxHash,\n rateChanged,\n}: {\n onDismiss?: () => void\n txChain?: number\n approvalState?: ApprovalState\n approveCallback?: () => Promise<void>\n loadingTx?: boolean\n txCallback?: () => void\n bondData: BondsData\n inputToken: Token | 'NATIVE' | undefined\n inputValue: string\n depositAmount: string\n buyTxHash?: string\n rateChanged: boolean\n}) => {\n // Hooks\n const { chain } = useEVMAccount()\n const { data: userPoints } = useTierPoints()\n const inputTokenPrice = useCurrencyPrice(inputToken ?? null, txChain as ChainId)\n const { switchChainAsync } = useSwitchChain()\n const SDKConfig = useSDKConfig()\n\n // Flow\n const initialChain = useMemo(\n () => chain?.id,\n /* eslint-disable react-hooks/exhaustive-deps */\n [],\n )\n const showSwitchChainFlow = txChain !== initialChain\n // const showSwitchChainFlow = true\n const [hasToSwitchChain, setHasToSwitchChain] = useState<boolean>(showSwitchChainFlow)\n const [hasToApprove, setHasToApprove] = useState<boolean>(true)\n\n // Loading state\n const [loadingSwitchChain, setLoadingSwitchChain] = useState<boolean>(false)\n const [approveLoading, setApproveLoading] = useState<boolean>(false)\n\n // Values for regular bonds\n const estimatedOutputAmount = getPayoutAmount(bondData, depositAmount, userPoints ?? '0')\n const estimatedOutputUSD = estimatedOutputAmount * parseFloat(bondData?.payoutTokenPrice ?? '0')\n const preTGEEstimatedOutput = parseFloat(inputValue) / (bondData?.initPrice ?? 0)\n const preTGEEstimatedOutputUSD = preTGEEstimatedOutput * (bondData?.tgePrice ?? 0)\n\n const handleSwitchChain = () => {\n setLoadingSwitchChain(true)\n switchChainAsync({ chainId: txChain! })\n .then(() => {\n setHasToSwitchChain(false)\n setApproveLoading(true)\n })\n .catch((e) => console.error(e))\n .finally(() => {\n setLoadingSwitchChain(false)\n })\n }\n\n const handleApprove = () => {\n setApproveLoading(true)\n approveCallback?.().catch(() => {\n setApproveLoading(false)\n })\n }\n\n // Switch Chain Step #1\n const hasTriggeredSwitch = useRef(false)\n useEffect(() => {\n if (hasToSwitchChain && !hasTriggeredSwitch.current) {\n setLoadingSwitchChain(true)\n const delay = setTimeout(() => {\n hasTriggeredSwitch.current = true\n handleSwitchChain()\n }, stepDelay)\n return () => clearTimeout(delay)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain])\n\n // Trigger approve Step #2\n const hasTriggeredApproval = useRef(false)\n useEffect(() => {\n if (!hasToSwitchChain || !showSwitchChainFlow) {\n if (approvalState === ApprovalState.APPROVED) {\n setApproveLoading(true)\n const delay = setTimeout(() => {\n setApproveLoading(false)\n setHasToApprove(false)\n }, stepDelay)\n return () => clearTimeout(delay)\n } else if (!hasTriggeredApproval.current && approvalState !== ApprovalState.PENDING) {\n setApproveLoading(true)\n hasTriggeredApproval.current = true\n handleApprove()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain, approvalState])\n\n // Execute main tx Step #3\n const hasTriggeredTx = useRef(false)\n useEffect(() => {\n if (!hasToSwitchChain && !hasToApprove && !hasTriggeredTx.current) {\n hasTriggeredTx.current = true\n if (rateChanged) {\n onDismiss?.()\n } else {\n setApproveLoading(false)\n txCallback?.()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [hasToSwitchChain, hasToApprove, txCallback])\n\n // Close modal if a hash is found. Final Step\n const { data: txReceipt, isSuccess, isLoading: verifyingTx } = useMonitorTx(buyTxHash, txChain)\n useEffect(() => {\n if (buyTxHash && txReceipt) {\n if (isSuccess) {\n onDismiss?.()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [buyTxHash, txReceipt, isSuccess])\n\n const currentStep: number = showSwitchChainFlow ? (hasToSwitchChain ? 1 : hasToApprove ? 2 : 3) : hasToApprove ? 1 : 2\n const splited = typeof inputToken !== 'string' ? inputToken?.symbol?.split('-') : undefined\n const trueBondPrice = findHighestTrueBondPrice(\n // @ts-ignore\n TIERS_WEIGHT[getUserTier(userPoints)] ?? '0',\n bondData?.trueBondPrices,\n )\n\n return (\n <Modal>\n <ModalHeader onDismiss={onDismiss} hideDivider />\n <Flex sx={{ flexDirection: 'column', width: '100%' }}>\n <Flex sx={{ width: '100%', alignItems: 'center', p: '10px' }}>\n {showSwitchChainFlow && (\n <StepBubble number={1} title={'Switch Chain'} currentStep={currentStep} loading={loadingSwitchChain} />\n )}\n <StepBubble\n number={showSwitchChainFlow ? 2 : 1}\n title={'Approve'}\n currentStep={currentStep}\n loading={approveLoading || approvalState === ApprovalState.PENDING}\n />\n <StepBubble\n number={showSwitchChainFlow ? 3 : 2}\n title={'Buy'}\n currentStep={currentStep}\n loading={loadingTx || verifyingTx}\n hideBar\n />\n </Flex>\n <Flex sx={{ width: '100%', mt: '40px', justifyContent: 'center' }}>\n <LoadingSpinner\n isLoading={\n loadingSwitchChain ||\n approveLoading ||\n loadingTx ||\n verifyingTx ||\n approvalState === ApprovalState.PENDING\n }\n size={100}\n />\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'center', mt: '10px' }}>\n {hasToSwitchChain\n ? loadingSwitchChain\n ? 'Switching Chain...'\n : 'Switch Chain'\n : hasToApprove\n ? approveLoading || approvalState === ApprovalState.PENDING\n ? 'Approving...'\n : 'Approve Contract'\n : loadingTx || verifyingTx\n ? 'Buying...'\n : 'Buy'}\n </Flex>\n {bondData.billType === 'fcfs' ? (\n <Flex sx={{ width: '100%', flexDirection: 'column', mt: '20px' }}>\n <Flex\n sx={{\n width: '100%',\n background: 'white3',\n p: '5px',\n borderRadius: 'normal',\n color: 'textDisabledButton',\n justifyContent: 'center',\n }}\n >\n {bondData.earnToken.symbol} ({getTimePeriods(bondData?.vestingTerm).months} Mo)\n </Flex>\n <Flex sx={{ width: '100%', background: 'white3', p: '10px', borderRadius: 'normal', mt: '10px' }}>\n <TokenImage symbol={bondData.earnToken.symbol} size={40} chain={txChain} />\n <Flex sx={{ width: '100%', justifyContent: 'space-between', alignItems: 'center' }}>\n <Flex sx={{ flexDirection: 'column', fontSize: '12px', ml: '10px' }}>\n <Flex sx={{ color: 'textDisabledButton', fontWeight: 400, textDecoration: 'line-through' }}>\n ${bondData.tgePrice}\n </Flex>\n <Flex sx={{ color: 'green', fontWeight: 600 }}>${bondData.initPrice}</Flex>\n </Flex>\n <Flex\n sx={{\n p: '5px',\n borderRadius: 'normal',\n border: '1px solid var(--theme-ui-colors-success)',\n background: 'rgba(56, 166, 17, 0.13)',\n color: 'success',\n lineHeight: '18px',\n }}\n >\n {trueBondPrice?.bonusWithFee?.toFixed(2)} % Bonus\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '10px' }}>\n <Flex\n sx={{ p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }}\n >\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={20} chain={txChain} />\n ) : (\n <TokenImage symbol={getSymbol(inputToken, txChain)} size={20} chain={txChain} />\n )}\n <Flex sx={{ fontSize: '14px', fontWeight: 600, mx: '5px' }}>\n {formatNumberSI(inputValue, 4) ?? '0'}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }}>\n (\n {inputTokenPrice?.price && inputValue\n ? `$${formatNumberSI(inputTokenPrice?.price * parseFloat(inputValue))}`\n : '0.00'}\n )\n </Flex>\n </Flex>\n <Svg icon={'arrow'} direction={'right'} width={'10px'} />\n <Flex\n sx={{ p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }}\n >\n <TokenImage symbol={getSymbol(bondData.earnToken, txChain)} chain={txChain} size={20} />\n <Flex sx={{ fontSize: '14px', fontWeight: 600, mx: '5px' }}>\n {formatNumberSI(preTGEEstimatedOutput, 4)}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }}>\n (${formatNumberSI(preTGEEstimatedOutputUSD)})\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <Flex sx={{ width: '100%', flexDirection: 'column', mt: '20px' }}>\n <Flex\n sx={{\n width: '100%',\n background: 'white3',\n p: '5px',\n borderRadius: 'normal',\n color: 'textDisabledButton',\n justifyContent: 'center',\n }}\n >\n {bondData.earnToken.symbol} ({getVestingTermsString(bondData)})\n </Flex>\n <Flex sx={{ width: '100%', background: 'white3', p: '10px', borderRadius: 'normal', mt: '10px' }}>\n <TokenImage symbol={bondData.earnToken.symbol} size={40} chain={txChain} />\n <Flex sx={{ width: '100%', justifyContent: 'space-between', alignItems: 'center' }}>\n <Flex sx={{ flexDirection: 'column', fontSize: '12px', ml: '10px' }}>\n <Flex sx={{ color: 'textDisabledButton', fontWeight: 400, textDecoration: 'line-through' }}>\n ${earnTokenPrice(bondData)}\n </Flex>\n <Flex sx={{ color: 'green', fontWeight: 600 }}>\n $\n {discountEarnTokenPriceForUser(bondData, SDKConfig.useTiers, getUserTier(userPoints!) ?? undefined)}\n </Flex>\n </Flex>\n <Flex\n sx={{\n p: '5px',\n borderRadius: 'normal',\n border: '1px solid var(--theme-ui-colors-success)',\n background: 'rgba(56, 166, 17, 0.13)',\n color: 'success',\n lineHeight: '18px',\n }}\n >\n {bondData.earnToken.symbol.toLowerCase() === 'ireet'\n ? '3.00'\n : trueBondPrice?.bonusWithFee?.toFixed(2)}{' '}\n % Bonus\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '10px' }}>\n <Flex\n sx={{ p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }}\n >\n {isArray(splited) ? (\n <TokenImage symbol={splited[0]} symbol2={splited[1]} size={20} chain={txChain} />\n ) : (\n <TokenImage symbol={getSymbol(inputToken, txChain)} size={20} chain={txChain} />\n )}\n <Flex sx={{ fontSize: '14px', fontWeight: 600, mx: '5px' }}>\n {formatNumberSI(inputValue, 4) ?? '0'}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }}>\n (\n {inputTokenPrice?.price && inputValue\n ? `$${formatNumberSI(inputTokenPrice?.price * parseFloat(inputValue))}`\n : '0.00'}\n )\n </Flex>\n </Flex>\n <Svg icon={'arrow'} direction={'right'} width={'10px'} />\n <Flex\n sx={{ p: '10px', borderRadius: 'normal', background: 'white3', alignItems: 'center', width: '45%' }}\n >\n <TokenImage symbol={getSymbol(bondData.earnToken, txChain)} chain={txChain} size={20} />\n <Flex sx={{ fontSize: '14px', fontWeight: 600, mx: '5px' }}>\n {formatNumberSI(estimatedOutputAmount, 4)}\n </Flex>\n <Flex sx={{ color: 'textDisabledButton', fontSize: '12px', fontWeight: 400 }}>\n (${formatNumberSI(estimatedOutputUSD)})\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n )}\n\n {/*\n\n Action Buttons\n\n */}\n <Flex sx={{ mt: '20px' }}>\n {hasToSwitchChain ? (\n <Button load={loadingSwitchChain} disabled={loadingSwitchChain} onClick={handleSwitchChain} fullWidth>\n switch to {NETWORK_LABEL[txChain!]}\n </Button>\n ) : !hasToApprove ? (\n <Button load={loadingTx || verifyingTx} disabled={loadingTx || verifyingTx} onClick={txCallback} fullWidth>\n buy\n </Button>\n ) : (\n <Button\n className=\"action-button\"\n load={approvalState === ApprovalState.PENDING || approveLoading}\n disabled={approvalState === ApprovalState.PENDING || approveLoading}\n onClick={handleApprove}\n fullWidth\n >\n Approve\n </Button>\n )}\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default TransactionModal\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Ape Bond SDK",
4
4
  "author": "Ape Bond",
5
5
  "license": "MIT",
6
- "version": "5.1.27-test.2",
6
+ "version": "5.1.28",
7
7
  "module": "dist/main.js",
8
8
  "type": "module",
9
9
  "types": "dist/main.d.ts",