From 51821d802ff14d923a0e51cafb5d1936c1d6b642 Mon Sep 17 00:00:00 2001 From: philbow61 <80156619+philbow61@users.noreply.github.com> Date: Mon, 23 Feb 2026 15:24:17 +0100 Subject: [PATCH 1/2] fix: remove first price fetch from FxPriceFeed (#38) --- contracts/src/PriceFeeds/FXPriceFeed.sol | 2 -- contracts/test/FXPriceFeed.t.sol | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/contracts/src/PriceFeeds/FXPriceFeed.sol b/contracts/src/PriceFeeds/FXPriceFeed.sol index 14acb8ff5..b4135735c 100644 --- a/contracts/src/PriceFeeds/FXPriceFeed.sol +++ b/contracts/src/PriceFeeds/FXPriceFeed.sol @@ -121,8 +121,6 @@ contract FXPriceFeed is IPriceFeed, OwnableUpgradeable { borrowerOperations = IBorrowerOperations(_borrowerOperationsAddress); watchdogAddress = _watchdogAddress; - fetchPrice(); - _transferOwnership(_initialOwner); } diff --git a/contracts/test/FXPriceFeed.t.sol b/contracts/test/FXPriceFeed.t.sol index 0dd3c2802..d2701cc82 100644 --- a/contracts/test/FXPriceFeed.t.sol +++ b/contracts/test/FXPriceFeed.t.sol @@ -199,7 +199,6 @@ contract FXPriceFeedTest is Test { assertEq(address(newFeed.borrowerOperations()), address(mockBorrowerOperations)); assertEq(newFeed.watchdogAddress(), watchdog); assertEq(newFeed.owner(), owner); - assertEq(newFeed.lastValidPrice(), 5e18); } function test_initialize_whenCalledTwice_shouldRevert() public { @@ -452,4 +451,4 @@ contract FXPriceFeedTest is Test { bool result = fxPriceFeed.isL2SequencerUp(); assertFalse(result); } -} +} \ No newline at end of file From 858ef07a497d748cdf65c602a56b4de901d4080e Mon Sep 17 00:00:00 2001 From: philbow61 <80156619+philbow61@users.noreply.github.com> Date: Fri, 27 Feb 2026 19:43:32 +0100 Subject: [PATCH 2/2] fix: make metadata mento specific (#39) * fix: make metadata mento specific * chore: update NFT metadata * fix: NFT metadata test --- contracts/src/NFTMetadata/MetadataNFT.sol | 8 +++++--- contracts/src/NFTMetadata/utils/bauhaus.sol | 11 ++--------- contracts/test/troveNFT.t.sol | 4 ++-- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/contracts/src/NFTMetadata/MetadataNFT.sol b/contracts/src/NFTMetadata/MetadataNFT.sol index 6f0673e03..91fdceb79 100644 --- a/contracts/src/NFTMetadata/MetadataNFT.sol +++ b/contracts/src/NFTMetadata/MetadataNFT.sol @@ -36,11 +36,13 @@ contract MetadataNFT is IMetadataNFT { function uri(TroveData memory _troveData) public view returns (string memory) { string memory attr = attributes(_troveData); return json.formattedMetadata( - string.concat("Liquity V2 - ", IERC20Metadata(_troveData._collToken).name()), + string.concat("Mento Liquity V2 - ", IERC20Metadata(_troveData._collToken).name()), string.concat( - "Liquity V2 is a collateralized debt platform. Users can lock up ", + "Mento Liquity V2 is a collateralized debt platform. Users can lock up ", IERC20Metadata(_troveData._collToken).symbol(), - " to issue stablecoin tokens (BOLD) to their own Ethereum address. The individual collateralized debt positions are called Troves, and are represented as NFTs." + " to issue ", + IERC20Metadata(_troveData._boldToken).symbol(), + " to their own address. The individual collateralized debt positions are called Troves, and are represented as NFTs." ), renderSVGImage(_troveData), attr diff --git a/contracts/src/NFTMetadata/utils/bauhaus.sol b/contracts/src/NFTMetadata/utils/bauhaus.sol index 437203e03..e63d3232f 100644 --- a/contracts/src/NFTMetadata/utils/bauhaus.sol +++ b/contracts/src/NFTMetadata/utils/bauhaus.sol @@ -25,15 +25,8 @@ library bauhaus { function _bauhaus(string memory _collName, uint256 _troveId) internal pure returns (string memory) { bytes32 collSig = keccak256(bytes(_collName)); uint256 variant = _troveId % 4; - - if (collSig == keccak256("WETH")) { - return _img1(variant); - } else if (collSig == keccak256("wstETH")) { - return _img2(variant); - } else { - // assume rETH - return _img3(variant); - } + // Always use _img1 because in MentoV3 we only have one collateral token + return _img1(variant); } function _colorCode2Hex(colorCode _color) private pure returns (string memory) { diff --git a/contracts/test/troveNFT.t.sol b/contracts/test/troveNFT.t.sol index 03ef11ee0..d42dfbd07 100644 --- a/contracts/test/troveNFT.t.sol +++ b/contracts/test/troveNFT.t.sol @@ -201,11 +201,11 @@ contract troveNFTTest is DevTestSetup { string memory decodedUri = string(Base64.decode(uriSplit)); // Check for expected attributes - assertTrue(LibString.contains(decodedUri, '"name": "Liquity V2 - '), "NFT Name attribute missing"); + assertTrue(LibString.contains(decodedUri, '"name": "Mento Liquity V2 - '), "NFT Name attribute missing"); assertTrue( LibString.contains( - decodedUri, '"description": "Liquity V2 is a collateralized debt platform. Users can lock up' + decodedUri, '"description": "Mento Liquity V2 is a collateralized debt platform. Users can lock up' ), "NFT description attribute missing" );