diff --git a/deployments/901/matching.json b/deployments/901/matching.json index a3ef9e2..09efa89 100644 --- a/deployments/901/matching.json +++ b/deployments/901/matching.json @@ -1,5 +1,5 @@ { - "auctionUtil": "0x36c3B2a149754a56C16307758032A1d17bf58618", + "auctionUtil": "0xA4895392467de708F8BA46a13e7BC50E1AFA9346", "deposit-new": "0x65bf02FB74e722654c6d2a5103aBC9bd520f185f", "settlementUtil": "0xbc75340f9354aE4293D16C691A6961B3e6B972F4", "deposit": "0x43223Db33AdA0575D2E100829543f8B04A37a1ec", diff --git a/deployments/957/matching.json b/deployments/957/matching.json index 02bc362..027b4f6 100644 --- a/deployments/957/matching.json +++ b/deployments/957/matching.json @@ -1,5 +1,5 @@ { - "auctionUtil": "0x0831AAfC564E307b9c93fe45716c5dacF30D9a9d", + "auctionUtil": "0xec46b1b4090Ffcf6FF6298138A53ab3C77927170", "deposit": "0x9B3FE5E5a3bcEa5df4E08c41Ce89C4e3Ff01Ace3", "matching": "0xeB8d770ec18DB98Db922E9D83260A585b9F0DeAD", "settlementUtil": "0x7E1d17b580dD4F89037DB331430eAEe8B8e50c91", diff --git a/src/periphery/LyraAuctionUtils.sol b/src/periphery/LyraAuctionUtils.sol index ef0a91c..db6b5e3 100644 --- a/src/periphery/LyraAuctionUtils.sol +++ b/src/periphery/LyraAuctionUtils.sol @@ -7,6 +7,9 @@ import {IBaseManager} from "v2-core/src/interfaces/IBaseManager.sol"; import {ISubAccounts} from "v2-core/src/interfaces/ISubAccounts.sol"; import {IAsset} from "v2-core/src/interfaces/IAsset.sol"; import {DutchAuction} from "v2-core/src/liquidation/DutchAuction.sol"; +import {IPMRM_2} from "v2-core/src/interfaces/IPMRM_2.sol"; +import {PMRM_2} from "v2-core/src/risk-managers/PMRM_2.sol"; +import {ISpotFeed} from "v2-core/src/interfaces/ISpotFeed.sol"; /** * @title LyraAuctionUtils @@ -42,11 +45,18 @@ contract LyraAuctionUtils { return (manager, mm, mtm, 0); } - // Otherwise we assume it is a PMRM, so we need to work out the worst scenario by getting the portfolio and - // calculating margin in the lib - IPMRM.Portfolio memory portfolio = PMRM(manager).arrangePortfolio(subId); - (mm, mtm, worstScenario) = - PMRM(manager).lib().getMarginAndMarkToMarket(portfolio, false, PMRM(manager).getScenarios()); + try PMRM_2(manager).collateralSpotFeeds(address(0)) returns (ISpotFeed) { + IPMRM_2.Portfolio memory p2 = PMRM_2(manager).arrangePortfolio(subId); + (mm, mtm, worstScenario) = + PMRM_2(manager).lib().getMarginAndMarkToMarket(p2, false, PMRM_2(manager).getScenarios()); + return (manager, mm, mtm, worstScenario); + } catch { + // Fall back to PMRM + IPMRM.Portfolio memory p = PMRM(manager).arrangePortfolio(subId); + (mm, mtm, worstScenario) = PMRM(manager).lib().getMarginAndMarkToMarket(p, false, PMRM(manager).getScenarios()); + } + + return (manager, mm, mtm, worstScenario); } function startInsolventAuction(uint accountId, uint worstScenario) external {