diff --git a/package.json b/package.json index d3aba45..1e3b38c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ghost-dao-interface", "private": true, - "version": "0.5.40", + "version": "0.5.41", "type": "module", "scripts": { "dev": "vite", diff --git a/src/hooks/bonds/index.js b/src/hooks/bonds/index.js index f74732b..43c79a0 100644 --- a/src/hooks/bonds/index.js +++ b/src/hooks/bonds/index.js @@ -13,7 +13,7 @@ import { abi as BondAbi } from "../../abi/GhostBondDepository.json"; import { abi as TreasuryAbi } from "../../abi/GhostTreasury.json"; import { abi as BondingCalculatorAbi } from "../../abi/GhostBondingCalculator.json"; -import { useReservePrice } from "../prices"; +import { useReservePrice, useFtsoPrice } from "../prices"; import { useOrinalCoefficient } from "../treasury"; import { useTokenSymbol, useTokenSymbols } from "../tokens"; import { getTokenAddress, getTokenIcons, getBondNameDisplayName, getTokenPurchaseLink } from "../helpers"; @@ -21,6 +21,7 @@ import { DecimalBigNumber } from "../../helpers/DecimalBigNumber"; import { shorten } from "../../helpers"; export const useLiveBonds = (chainId) => { + const ftsoPrice = useFtsoPrice(chainId); const baseTokenPerUsd = useReservePrice(chainId); const originalCoefficient = useOrinalCoefficient(chainId); @@ -128,14 +129,11 @@ export const useLiveBonds = (chainId) => { const quoteTokenSymbol = quoteTokenSymbols?.at(index).result ? quoteTokenSymbols.at(index).result : ""; const quoteTokenPerBaseToken = new DecimalBigNumber(marketPrice, 9); - let priceInUsd = baseTokenPerUsd.mul(quoteTokenPerBaseToken); - if (Number(markdown?.toString() ?? "1") !== 1) { - priceInUsd = priceInUsd.div(originalCoefficient) - } + const priceInUsd = quoteTokenPerBaseToken.mul(baseTokenPerUsd).mul(quoteTokenPerUsd).mul(markdown).div(originalCoefficient); const discount = baseTokenPerUsd._value > 0n - ? baseTokenPerUsd.sub(priceInUsd).div(baseTokenPerUsd) - : new DecimalBigNumber("0", baseTokenPerUsd._decimals); + ? ftsoPrice.sub(priceInUsd).div(ftsoPrice) + : new DecimalBigNumber("0", ftsoPrice._decimals); const capacityInBaseToken = capacityInQuote ? new DecimalBigNumber(marketPrice > 0n ? marketCapacity / marketPrice : 0n, 9) @@ -177,7 +175,7 @@ export const useLiveBonds = (chainId) => { price: { inUsd: priceInUsd, inBaseToken: quoteTokenPerBaseToken, - marketPriceInUsd: baseTokenPerUsd + marketPriceInUsd: ftsoPrice }, capacity: { inBaseToken: capacityInBaseToken,