From f1144a89dc33172d74d81f3cd65c216a8359d38b Mon Sep 17 00:00:00 2001 From: rndquu <119500907+rndquu@users.noreply.github.com> Date: Wed, 20 Mar 2024 17:55:31 +0300 Subject: [PATCH] fix: check collateral exists on chainlink set (#917) --- .../src/dollar/libraries/LibUbiquityPool.sol | 5 +++++ .../test/diamond/facets/UbiquityPoolFacet.t.sol | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/packages/contracts/src/dollar/libraries/LibUbiquityPool.sol b/packages/contracts/src/dollar/libraries/LibUbiquityPool.sol index 19e86e01d..d3447d50f 100644 --- a/packages/contracts/src/dollar/libraries/LibUbiquityPool.sol +++ b/packages/contracts/src/dollar/libraries/LibUbiquityPool.sol @@ -750,6 +750,11 @@ library LibUbiquityPool { address chainLinkPriceFeedAddress, uint256 stalenessThreshold ) internal { + require( + collateralExists(collateralAddress), + "Collateral does not exist" + ); + UbiquityPoolStorage storage poolStorage = ubiquityPoolStorage(); uint256 collateralIndex = poolStorage.collateralIndex[ diff --git a/packages/contracts/test/diamond/facets/UbiquityPoolFacet.t.sol b/packages/contracts/test/diamond/facets/UbiquityPoolFacet.t.sol index 4520f0077..78309d118 100644 --- a/packages/contracts/test/diamond/facets/UbiquityPoolFacet.t.sol +++ b/packages/contracts/test/diamond/facets/UbiquityPoolFacet.t.sol @@ -831,6 +831,21 @@ contract UbiquityPoolFacetTest is DiamondTestSetup { vm.stopPrank(); } + function testSetCollateralChainLinkPriceFeed_ShouldRevertIfCollateralDoesNotExist() + public + { + vm.prank(admin); + vm.expectRevert("Collateral does not exist"); + address invalidCollateralAddress = address(0); + address newPriceFeedAddress = address(1); + uint256 newStalenessThreshold = 1 days; + ubiquityPoolFacet.setCollateralChainLinkPriceFeed( + invalidCollateralAddress, + newPriceFeedAddress, + newStalenessThreshold + ); + } + function testSetCollateralChainLinkPriceFeed_ShouldSetPriceFeed() public { vm.startPrank(admin);