Skip to content

Commit b818ed3

Browse files
authored
Merge pull request #15 from euler-xyz/refactor/assets-order
Refactor: assets order checks
2 parents 29c2edd + 742d4b2 commit b818ed3

File tree

3 files changed

+25
-35
lines changed

3 files changed

+25
-35
lines changed

src/MaglevBase.sol

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ abstract contract MaglevBase is IMaglevBase, EVCUtil {
2626
error InsufficientReserves();
2727
error InsufficientCash();
2828
error DifferentEVC();
29+
error AssetsOutOfOrderOrEqual();
2930

3031
modifier nonReentrant() {
3132
require(locked == 0, Locked());
@@ -36,11 +37,11 @@ abstract contract MaglevBase is IMaglevBase, EVCUtil {
3637

3738
struct BaseParams {
3839
address evc;
39-
address vaultA;
40-
address vaultB;
40+
address vault0;
41+
address vault1;
4142
address myAccount;
42-
uint112 debtLimitA;
43-
uint112 debtLimitB;
43+
uint112 debtLimit0;
44+
uint112 debtLimit1;
4445
uint256 fee;
4546
}
4647

@@ -58,32 +59,21 @@ abstract contract MaglevBase is IMaglevBase, EVCUtil {
5859
constructor(BaseParams memory params) EVCUtil(params.evc) {
5960
require(params.fee < 1e18, BadFee());
6061

61-
address vaultAEvc = IEVault(params.vaultA).EVC();
62-
require(vaultAEvc == IEVault(params.vaultB).EVC(), DifferentEVC());
63-
require(vaultAEvc == params.evc, DifferentEVC());
62+
address vault0Evc = IEVault(params.vault0).EVC();
63+
require(vault0Evc == IEVault(params.vault1).EVC(), DifferentEVC());
64+
require(vault0Evc == params.evc, DifferentEVC());
6465

65-
address assetA = IEVault(params.vaultA).asset();
66-
address assetB = IEVault(params.vaultB).asset();
67-
require(assetA != assetB, UnsupportedPair());
66+
address asset0Addr = IEVault(params.vault0).asset();
67+
address asset1Addr = IEVault(params.vault1).asset();
68+
require(asset0Addr < asset1Addr, AssetsOutOfOrderOrEqual());
6869

6970
myAccount = params.myAccount;
70-
(vault0, asset0, reserve0, vault1, asset1, reserve1) = assetA < assetB
71-
? (
72-
params.vaultA,
73-
assetA,
74-
offsetReserve(params.debtLimitA, params.vaultA),
75-
params.vaultB,
76-
assetB,
77-
offsetReserve(params.debtLimitB, params.vaultB)
78-
)
79-
: (
80-
params.vaultB,
81-
assetB,
82-
offsetReserve(params.debtLimitB, params.vaultB),
83-
params.vaultA,
84-
assetA,
85-
offsetReserve(params.debtLimitA, params.vaultA)
86-
);
71+
vault0 = params.vault0;
72+
vault1 = params.vault1;
73+
asset0 = asset0Addr;
74+
asset1 = asset1Addr;
75+
reserve0 = offsetReserve(params.debtLimit0, params.vault0);
76+
reserve1 = offsetReserve(params.debtLimit1, params.vault1);
8777
feeMultiplier = 1e18 - params.fee;
8878
}
8979

test/EulerSwap.t.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ contract EulerSwapTest is MaglevTestBase {
4747
new Maglev(
4848
MaglevBase.BaseParams({
4949
evc: address(makeAddr("RANDOM_EVC")),
50-
vaultA: address(eTST),
51-
vaultB: address(eTST2),
50+
vault0: address(eTST),
51+
vault1: address(eTST2),
5252
myAccount: holder,
53-
debtLimitA: 50e18,
54-
debtLimitB: 50e18,
53+
debtLimit0: 50e18,
54+
debtLimit1: 50e18,
5555
fee: 0
5656
}),
5757
Maglev.EulerSwapParams({priceX: 1e18, priceY: 1e18, concentrationX: 4e18, concentrationY: 0.85e18})

test/MaglevTestBase.t.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ contract MaglevTestBase is EVaultTestBase {
5050
{
5151
return MaglevBase.BaseParams({
5252
evc: address(evc),
53-
vaultA: address(eTST),
54-
vaultB: address(eTST2),
53+
vault0: address(eTST),
54+
vault1: address(eTST2),
5555
myAccount: holder,
56-
debtLimitA: debtLimitA,
57-
debtLimitB: debtLimitB,
56+
debtLimit0: debtLimitA,
57+
debtLimit1: debtLimitB,
5858
fee: fee
5959
});
6060
}

0 commit comments

Comments
 (0)