Skip to content
This repository was archived by the owner on May 24, 2024. It is now read-only.

Commit 4094c8d

Browse files
added doQueryEulerConfig for general Euler config fetching
1 parent af57f36 commit 4094c8d

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

contracts/views/EulerGeneralView.sol

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,22 @@ import "../modules/EToken.sol";
88
import "../modules/Markets.sol";
99
import "../BaseIRMLinearKink.sol";
1010
import "../vendor/RPow.sol";
11+
import "../IRiskManager.sol";
1112

1213
interface IExec {
1314
function getPriceFull(address underlying) external view returns (uint twap, uint twapPeriod, uint currPrice);
1415
function getPrice(address underlying) external view returns (uint twap, uint twapPeriod);
1516
function detailedLiquidity(address account) external view returns (IRiskManager.AssetLiquidity[] memory assets);
1617
function liquidity(address account) external view returns (IRiskManager.LiquidityStatus memory status);
18+
function getRiskManagerSettings() external view returns (IRiskManager.RiskManagerSettings memory settings);
19+
}
20+
21+
interface IInstaller {
22+
function getUpgradeAdmin() external view returns (address);
23+
}
24+
25+
interface IGovernance {
26+
function getGovernorAdmin() external view returns (address);
1727
}
1828

1929
contract EulerGeneralView is Constants {
@@ -84,10 +94,45 @@ contract EulerGeneralView is Constants {
8494
address[] enteredMarkets;
8595
}
8696

97+
struct ResponseModule {
98+
uint moduleId;
99+
address proxyAddress;
100+
}
101+
102+
struct ResponseConfig {
103+
uint defaultReserveFee;
104+
uint defaultTWAPWindowSeconds;
105+
uint defaultBorrowFactor;
106+
address upgradeAdmin;
107+
address governorAdmin;
108+
IRiskManager.RiskManagerSettings riskManagerSettings;
109+
110+
ResponseModule[] modules;
111+
}
87112

88113

89114
// Implementation
90115

116+
function doQueryEulerConfig(address eulerContract) external view returns (ResponseConfig memory r) {
117+
r.defaultReserveFee = DEFAULT_RESERVE_FEE;
118+
r.defaultTWAPWindowSeconds = DEFAULT_TWAP_WINDOW_SECONDS;
119+
r.defaultBorrowFactor = DEFAULT_BORROW_FACTOR;
120+
r.modules = new ResponseModule[](7);
121+
122+
Euler eulerProxy = Euler(eulerContract);
123+
r.modules[0] = ResponseModule(MODULEID__INSTALLER, eulerProxy.moduleIdToProxy(MODULEID__INSTALLER));
124+
r.modules[1] = ResponseModule(MODULEID__MARKETS, eulerProxy.moduleIdToProxy(MODULEID__MARKETS));
125+
r.modules[2] = ResponseModule(MODULEID__LIQUIDATION, eulerProxy.moduleIdToProxy(MODULEID__LIQUIDATION));
126+
r.modules[3] = ResponseModule(MODULEID__GOVERNANCE, eulerProxy.moduleIdToProxy(MODULEID__GOVERNANCE));
127+
r.modules[4] = ResponseModule(MODULEID__EXEC, eulerProxy.moduleIdToProxy(MODULEID__EXEC));
128+
r.modules[5] = ResponseModule(MODULEID__SWAP, eulerProxy.moduleIdToProxy(MODULEID__SWAP));
129+
r.modules[6] = ResponseModule(MODULEID__SWAPHUB, eulerProxy.moduleIdToProxy(MODULEID__SWAPHUB));
130+
131+
r.upgradeAdmin = IInstaller(r.modules[0].proxyAddress).getUpgradeAdmin();
132+
r.governorAdmin = IGovernance(r.modules[3].proxyAddress).getGovernorAdmin();
133+
r.riskManagerSettings = IExec(r.modules[4].proxyAddress).getRiskManagerSettings();
134+
}
135+
91136
function doQueryBatch(Query[] memory qs) external view returns (Response[] memory r) {
92137
r = new Response[](qs.length);
93138

0 commit comments

Comments
 (0)