41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import { useReadContract } from "wagmi";
|
|
|
|
import { useCurrentIndex } from "../staking";
|
|
import { useUniswapV2PairReserves } from "../uniswapv2";
|
|
import { DecimalBigNumber } from "../../helpers/DecimalBigNumber";
|
|
import { FTSO_DAI_LP_ADDRESSES, DAI_ADDRESSES } from "../../constants/addresses";
|
|
|
|
export const useDaiPrice = (chainId) => {
|
|
const daiPrice = new DecimalBigNumber(1000000000000000000n, 18);
|
|
return daiPrice;
|
|
};
|
|
|
|
export const useFtsoPrice = (chainId) => {
|
|
const { reserves, refetch } = useUniswapV2PairReserves(
|
|
chainId,
|
|
FTSO_DAI_LP_ADDRESSES[chainId],
|
|
9,
|
|
18,
|
|
"FTSO",
|
|
"GDAI",
|
|
);
|
|
|
|
let price = 0n
|
|
if (reserves.reserve0._value > 0n)
|
|
price = reserves.reserve1._value / reserves.reserve0._value;
|
|
|
|
return new DecimalBigNumber(price, 9);
|
|
};
|
|
|
|
export const useStnkPrice = (chainId) => {
|
|
const stnkPrice = useFtsoPrice(chainId);
|
|
return stnkPrice;
|
|
};
|
|
|
|
export const useGhstPrice = (chainId) => {
|
|
const ftsoPrice = useFtsoPrice(chainId);
|
|
const { currentIndex } = useCurrentIndex(chainId);
|
|
|
|
return ftsoPrice.mul(currentIndex);
|
|
};
|