From 493e8ca37e0a004d3bc69a83abab21f1d4a34b18 Mon Sep 17 00:00:00 2001 From: cryptickoan Date: Wed, 13 Apr 2022 15:32:16 -0600 Subject: [PATCH] Modified identifyOracle --- .../pages/Fuse/FusePoolInfoPage.tsx | 8 +------ .../OracleConfig/OracleConfig.tsx | 2 +- .../pages/Fuse/Modals/Edit/OraclesTable.tsx | 2 +- src/hooks/fuse/useOracleData.ts | 23 +++++++++++-------- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/components/pages/Fuse/FusePoolInfoPage.tsx b/src/components/pages/Fuse/FusePoolInfoPage.tsx index 23ceec8f..3c5dbefb 100644 --- a/src/components/pages/Fuse/FusePoolInfoPage.tsx +++ b/src/components/pages/Fuse/FusePoolInfoPage.tsx @@ -387,18 +387,12 @@ const AssetAndOtherInfo = ({ assets, poolOracle, tokensData }: { assets: USDPric }); - const oracleIdentity = useIdentifyOracle( + const { identity: oracleIdentity, oracle: oracleAddress } = useIdentifyOracle( selectedAsset.oracle, poolOracle, selectedAsset.underlyingToken ) - // Link to MPO if asset is ETH - const oracleAddress = - (selectedAsset.underlyingToken === ETH_TOKEN_DATA.address || selectedAsset.oracle === ETH_TOKEN_DATA.address) - ? poolOracle - : selectedAsset.oracle; - const isMobile = useIsMobile(); return ( diff --git a/src/components/pages/Fuse/Modals/AddAssetModal/OracleConfig/OracleConfig.tsx b/src/components/pages/Fuse/Modals/AddAssetModal/OracleConfig/OracleConfig.tsx index bc041f04..42f561d3 100644 --- a/src/components/pages/Fuse/Modals/AddAssetModal/OracleConfig/OracleConfig.tsx +++ b/src/components/pages/Fuse/Modals/AddAssetModal/OracleConfig/OracleConfig.tsx @@ -78,7 +78,7 @@ const OracleConfig = ({ const options = useGetOracleOptions(oracleData, tokenAddress); // Identify token oracle address - const oracleIdentity = useIdentifyOracle(oracleAddress, poolOracleAddress, tokenAddress); + const {identity: oracleIdentity} = useIdentifyOracle(oracleAddress, poolOracleAddress, tokenAddress); const [inputTouched, setInputTouched] = useState(false); diff --git a/src/components/pages/Fuse/Modals/Edit/OraclesTable.tsx b/src/components/pages/Fuse/Modals/Edit/OraclesTable.tsx index abd19cb6..7dd90fbb 100644 --- a/src/components/pages/Fuse/Modals/Edit/OraclesTable.tsx +++ b/src/components/pages/Fuse/Modals/Edit/OraclesTable.tsx @@ -58,7 +58,7 @@ const OracleRow = ({ underlyings: string[]; isDefault?: boolean; }) => { - const oracleIdentity = useIdentifyOracle(oracle); + const {identity: oracleIdentity} = useIdentifyOracle(oracle); const displayedOracle = !!oracleIdentity ? oracleIdentity diff --git a/src/hooks/fuse/useOracleData.ts b/src/hooks/fuse/useOracleData.ts index 4649704b..bae9518b 100644 --- a/src/hooks/fuse/useOracleData.ts +++ b/src/hooks/fuse/useOracleData.ts @@ -27,15 +27,18 @@ export const useIdentifyOracle = ( oracleAddr: string, poolOracle?: string, tokenAddr?: string -): string => { +):{ + identity: string; + oracle: string; +} => { const { fuse } = useRari(); const { data } = useQuery("Identifying Oracle " + tokenAddr, async () => { if (tokenAddr && tokenAddr === ETH_TOKEN_DATA.address) - return "MasterPriceOracle"; + return {identity: "MasterPriceOracle", oracle: oracleAddr}; // If no oracle address provided, return empty string - if (!oracleAddr) return ""; + if (!oracleAddr) return {identity: "", oracle: oracleAddr}; if (oracleAddr === EmptyAddress && !!poolOracle) { // If condition is true it means price feed comes from default oracle @@ -58,22 +61,22 @@ export const useIdentifyOracle = ( true ); - const tokenOracle = await poolDefaultOracleContract.oracles(tokenAddr); + const tokenOracle: string = await poolDefaultOracleContract.oracles(tokenAddr); // Identify type of oracle used - const identity = await fuse.identifyPriceOracle(tokenOracle); + const identity: string = await fuse.identifyPriceOracle(tokenOracle); - return identity; + return {identity, oracle: tokenOracle}; } - const identity = await fuse.identifyPriceOracle(oracleAddr); + const identity: string = await fuse.identifyPriceOracle(oracleAddr); - if (identity === "MasterPriceOracleV1") return "RariMasterPriceOracle"; + if (identity === "MasterPriceOracleV1") return {identity: "RariMasterPriceOracle", oracle: oracleAddr}; - return identity; + return {identity, oracle: oracleAddr}; }); - return data ?? ""; + return data ?? {identity: " ", oracle: oracleAddr}; }; export const useOracleData = (