From 342206bfe94a8fe4dada5dc5c201fb29eeee5bcf Mon Sep 17 00:00:00 2001 From: Dan Liu Date: Sat, 26 Mar 2022 11:17:56 +0800 Subject: [PATCH] fix: prevent getPrice from revert in UniswapPairPriceAdapter --- .../integration/oracles/UniswapPairPriceAdapter.sol | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/contracts/protocol/integration/oracles/UniswapPairPriceAdapter.sol b/contracts/protocol/integration/oracles/UniswapPairPriceAdapter.sol index cc7c70e2b..371ed7a8b 100644 --- a/contracts/protocol/integration/oracles/UniswapPairPriceAdapter.sol +++ b/contracts/protocol/integration/oracles/UniswapPairPriceAdapter.sol @@ -117,7 +117,7 @@ contract UniswapPairPriceAdapter is Ownable { * @param _assetOne Address of first asset in pair * @param _assetTwo Address of second asset in pair */ - function getPrice(address _assetOne, address _assetTwo) external view returns (bool, uint256) { + function getPoolPrice(address _assetOne, address _assetTwo) external view returns (bool, uint256) { require(controller.isSystemContract(msg.sender), "Must be system contract"); bool isAllowedUniswapPoolOne = uniswapPoolsToSettings[_assetOne].isValid; @@ -148,6 +148,14 @@ contract UniswapPairPriceAdapter is Ownable { return (true, assetOnePriceToMaster.preciseDiv(assetTwoPriceToMaster)); } + function getPrice(address _assetOne, address _assetTwo) external view returns (bool, uint256) { + try this.getPoolPrice(_assetOne, _assetTwo) returns (bool found, uint256 price) { + if (found) { + return (true, price); + } + } catch {} + } + function addPool(address _poolAddress) external onlyOwner { require ( !uniswapPoolsToSettings[_poolAddress].isValid,