@knine-sdk/react
Version:
React helpers for Knine Finance projects. Part of Knine JS SDK
23 lines (20 loc) • 1.02 kB
JavaScript
import { __awaiter } from '../node_modules/tslib/tslib.es6.js';
import { BigNumber } from '@ethersproject/bignumber';
import { getAggregatorContract } from '@knine-sdk/contracts';
import { getAggregatorAddress, CHAINS } from '@knine-sdk/constants';
import { divide } from '@knine-sdk/helpers';
import { useSDK } from './useSDK.js';
import { useWrapperSWR } from './useWrapperSWR.js';
const useEthPrice = (config) => {
const { providerMainnetRpc } = useSDK();
const address = getAggregatorAddress(CHAINS.Mainnet);
const aggregatorContract = getAggregatorContract(address, providerMainnetRpc);
return useWrapperSWR(['lido-swr:eth-price', aggregatorContract], () => __awaiter(void 0, void 0, void 0, function* () {
const [decimals, latestAnswer] = yield Promise.all([
aggregatorContract.decimals(),
aggregatorContract.latestAnswer(),
]);
return divide(latestAnswer, BigNumber.from(10).pow(decimals));
}), config);
};
export { useEthPrice };