Skip to content

Commit 413e63c

Browse files
committed
fix test for real liquidations per chain
1 parent 5956bb2 commit 413e63c

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

test/integration/oracle/ChainlinkOEVWrapperIntegration.t.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,6 +1238,12 @@ contract ChainlinkOEVWrapperIntegrationTest is
12381238
/// @notice Simulate some real liquidations from 10/10
12391239
function testRealLiquidations() public {
12401240
LiquidationData[] memory liquidations = getLiquidations();
1241+
1242+
// Skip test if no liquidation data for this chain
1243+
if (liquidations.length == 0) {
1244+
return;
1245+
}
1246+
12411247
for (uint256 i = 0; i < liquidations.length; i++) {
12421248
_testRealLiquidation(liquidations[i]);
12431249
}

test/utils/Liquidations.sol

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
//SPDX-License-Identifier: GPL-3.0-or-later
22
pragma solidity 0.8.19;
33

4+
import {BASE_CHAIN_ID} from "@utils/ChainIds.sol";
5+
46
/// @notice Struct to represent a real liquidation event
57
struct LiquidationData {
68
uint256 timestamp;
@@ -31,11 +33,13 @@ struct LiquidationState {
3133
/// @notice Abstract contract to provide liquidation data from 10/10; used by ChainlinkOEVWrapperIntegration.t.sol
3234
/// https://dune.com/queries/4326964/7267425
3335
abstract contract Liquidations {
34-
LiquidationData[] internal _liquidations;
36+
/// @notice Mapping from chainId to liquidation data array
37+
mapping(uint256 => LiquidationData[]) internal _liquidationsByChain;
3538

3639
constructor() {
40+
// Base chain liquidations (chainId: 8453)
3741
// https://basescan.org/tx/0x24782acfe7faef5bad1e4545a617c733a632e0aa20810f4500fbaf2c05354c7f
38-
_liquidations.push(
42+
_liquidationsByChain[BASE_CHAIN_ID].push(
3943
LiquidationData({
4044
timestamp: 1760131433,
4145
blockNumber: 36671043,
@@ -50,26 +54,29 @@ abstract contract Liquidations {
5054
);
5155
}
5256

53-
/// @notice Get all liquidation data
57+
/// @notice Get liquidation data for the current chain
5458
function getLiquidations() public view returns (LiquidationData[] memory) {
59+
LiquidationData[] storage chainLiquidations = _liquidationsByChain[
60+
block.chainid
61+
];
5562
LiquidationData[] memory liquidations = new LiquidationData[](
56-
_liquidations.length
63+
chainLiquidations.length
5764
);
5865

5966
unchecked {
6067
uint256 liquidationsLength = liquidations.length;
6168
for (uint256 i = 0; i < liquidationsLength; i++) {
6269
liquidations[i] = LiquidationData({
63-
timestamp: _liquidations[i].timestamp,
64-
blockNumber: _liquidations[i].blockNumber,
65-
borrowedToken: _liquidations[i].borrowedToken,
66-
collateralToken: _liquidations[i].collateralToken,
67-
borrower: _liquidations[i].borrower,
68-
liquidator: _liquidations[i].liquidator,
69-
repayAmount: _liquidations[i].repayAmount,
70-
seizedCollateralAmount: _liquidations[i]
70+
timestamp: chainLiquidations[i].timestamp,
71+
blockNumber: chainLiquidations[i].blockNumber,
72+
borrowedToken: chainLiquidations[i].borrowedToken,
73+
collateralToken: chainLiquidations[i].collateralToken,
74+
borrower: chainLiquidations[i].borrower,
75+
liquidator: chainLiquidations[i].liquidator,
76+
repayAmount: chainLiquidations[i].repayAmount,
77+
seizedCollateralAmount: chainLiquidations[i]
7178
.seizedCollateralAmount,
72-
liquidationSizeUSD: _liquidations[i].liquidationSizeUSD
79+
liquidationSizeUSD: chainLiquidations[i].liquidationSizeUSD
7380
});
7481
}
7582
}

0 commit comments

Comments
 (0)