Skip to content

Commit 0cd06f0

Browse files
committed
vaultsDetailed
1 parent 6137cd6 commit 0cd06f0

File tree

2 files changed

+63
-16
lines changed

2 files changed

+63
-16
lines changed

script/DeployDev.sol

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,9 @@ contract DeployDev is Script {
203203
IEVault(assets[1].vault).setLTV(assets[0].vault, 0.91e4, 0.93e4, 0); // change WETH/wstETH LTV for testing
204204
IEVault(assets[1].vault).setLTV(assets[2].vault, 0.8e4, 0.82e4, 0); // change USDC/wstETH LTV for testing
205205

206+
IEVault(assets[0].vault).setLTV(assets[2].vault, 0.65e4, 0.67e4, 0); // change USDC/WETH LTV for testing
207+
IEVault(assets[0].vault).setLTV(assets[3].vault, 0.85e4, 0.87e4, 0); // change USDT/WETH LTV for testing
208+
206209
address[] memory vaults = new address[](assets.length);
207210
for (uint256 i; i < assets.length; ++i) {
208211
vaults[i] = assets[i].vault;
@@ -298,22 +301,22 @@ contract DeployDev is Script {
298301
vm.startBroadcast(user0PK);
299302

300303
evc.enableCollateral(user0, address(eUSDC));
301-
evc.enableCollateral(user0, address(eWETH));
304+
evc.enableCollateral(user0, address(eUSDT));
302305

303-
assetUSDC.mint(user0, 80000e6);
306+
assetUSDC.mint(user0, 10000e6);
304307
assetUSDC.approve(address(eUSDC), type(uint256).max);
305-
eUSDC.deposit(80000e6, user0);
308+
eUSDC.deposit(10000e6, user0);
306309

307-
assetWETH.mint(user0, 20.9424e18);
308-
assetWETH.approve(address(eWETH), type(uint256).max);
309-
eWETH.deposit(20.9424e18, user0);
310+
assetUSDT.mint(user0, 30000e6);
311+
assetUSDT.approve(address(eUSDT), type(uint256).max);
312+
eUSDT.deposit(30000e6, user0);
310313

311-
evc.enableController(user0, address(ewstETH));
312-
ewstETH.borrow(30.7e18, user0);
314+
evc.enableController(user0, address(eWETH));
315+
eWETH.borrow(10e18, user0);
313316

314-
// Deposit a some USDT shares to user0 subaccount 1
315317

316318
/*
319+
// Deposit some USDT shares to user0 subaccount 1
317320
assetUSDT.mint(user2, 10000e6);
318321
assetUSDT.approve(address(eUSDT), type(uint256).max);
319322
eUSDT.deposit(10000e6, getSubaccount(user0, 1));

src/MaglevLens.sol

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,57 @@ contract MaglevLens {
4040
}
4141
}
4242

43+
struct VaultDetailed {
44+
// IGovernance
45+
address governorAdmin;
46+
address feeReceiver;
47+
uint16 interestFee;
48+
address interestRateModel;
49+
uint256 protocolFeeShare;
50+
address protocolFeeReceiver;
51+
uint16 maxLiquidationDiscount;
52+
uint16 liquidationCoolOffTime;
53+
address hookTarget;
54+
uint32 hookedOps;
55+
uint32 configFlags;
56+
address unitOfAccount;
57+
address oracle;
58+
59+
// IBorrowing
60+
address dToken;
61+
62+
// IVault
63+
uint256 accumulatedFees;
64+
address creator;
65+
}
66+
67+
function vaultsDetailed(address[] calldata vaults) external view returns (VaultDetailed[] memory output) {
68+
output = new VaultDetailed[](vaults.length);
69+
70+
for (uint i; i < vaults.length; ++i) {
71+
IEVault v = IEVault(vaults[i]);
72+
VaultDetailed memory o = output[i];
73+
74+
o.governorAdmin = v.governorAdmin();
75+
o.feeReceiver = v.feeReceiver();
76+
o.interestFee = v.interestFee();
77+
o.interestRateModel = v.interestRateModel();
78+
o.protocolFeeShare = v.protocolFeeShare();
79+
o.protocolFeeReceiver = v.protocolFeeReceiver();
80+
o.maxLiquidationDiscount = v.maxLiquidationDiscount();
81+
o.liquidationCoolOffTime = v.liquidationCoolOffTime();
82+
(o.hookTarget, o.hookedOps) = v.hookConfig();
83+
o.configFlags = v.configFlags();
84+
o.unitOfAccount = v.unitOfAccount();
85+
o.oracle = v.oracle();
86+
87+
o.dToken = v.dToken();
88+
89+
o.accumulatedFees = v.accumulatedFees();
90+
o.creator = v.creator();
91+
}
92+
}
93+
4394
struct VaultPersonalState {
4495
uint256 packed;
4596
}
@@ -94,13 +145,6 @@ contract MaglevLens {
94145
supplyAPY /= 1e18;
95146
}
96147

97-
function getLTVPair(address vault0, address vault1) external view returns (uint16, uint16) {
98-
return (
99-
IEVault(vault0).LTVBorrow(vault1),
100-
IEVault(vault1).LTVBorrow(vault0)
101-
);
102-
}
103-
104148
function getLTVMatrix(address[] calldata vaults, bool liquidationLtv) external view returns (uint16[] memory ltvs) {
105149
uint256 num = vaults.length;
106150
ltvs = new uint16[](num * num);

0 commit comments

Comments
 (0)