Skip to content

Commit a79e6af

Browse files
authored
Merge pull request #564 from lidofinance/lido-locator-updates
LidoLocator: safetyNetsRegistry -> oracleReportSanityChecks
2 parents 1f1f5e1 + 0606f42 commit a79e6af

File tree

10 files changed

+48
-43
lines changed

10 files changed

+48
-43
lines changed

contracts/0.4.24/Lido.sol

+4-4
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ contract Lido is Versioned, StETHPermit, AragonApp {
473473
struct OracleReportContracts {
474474
address accountingOracle;
475475
address elRewardsVault;
476-
address safetyNetsRegistry;
476+
address oracleReportSanityChecker;
477477
address selfOwnedStEthBurner;
478478
address withdrawalQueue;
479479
address withdrawalVault;
@@ -1118,7 +1118,7 @@ contract Lido is Versioned, StETHPermit, AragonApp {
11181118
handlingData.preTotalShares = _getTotalShares();
11191119
handlingData.preCLBalance = _processClStateUpdate(_inputData.clValidators, _inputData.postCLBalance);
11201120

1121-
IOracleReportSanityChecker(_protocolContracts.safetyNetsRegistry).checkLidoOracleReport(
1121+
IOracleReportSanityChecker(_protocolContracts.oracleReportSanityChecker).checkLidoOracleReport(
11221122
_inputData.timeElapsed,
11231123
handlingData.preCLBalance,
11241124
_inputData.postCLBalance,
@@ -1137,7 +1137,7 @@ contract Lido is Versioned, StETHPermit, AragonApp {
11371137

11381138
(
11391139
withdrawals, elRewards, handlingData.sharesToBurnLimit
1140-
) = IOracleReportSanityChecker(_protocolContracts.safetyNetsRegistry).smoothenTokenRebase(
1140+
) = IOracleReportSanityChecker(_protocolContracts.oracleReportSanityChecker).smoothenTokenRebase(
11411141
handlingData.preTotalPooledEther,
11421142
handlingData.preTotalShares,
11431143
handlingData.preCLBalance,
@@ -1234,7 +1234,7 @@ contract Lido is Versioned, StETHPermit, AragonApp {
12341234
(
12351235
ret.accountingOracle,
12361236
ret.elRewardsVault,
1237-
ret.safetyNetsRegistry,
1237+
ret.oracleReportSanityChecker,
12381238
ret.selfOwnedStEthBurner,
12391239
ret.withdrawalQueue,
12401240
ret.withdrawalVault,

contracts/0.8.9/LidoLocator.sol

+5-5
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ contract LidoLocator is ILidoLocator {
2020
address elRewardsVault;
2121
address legacyOracle;
2222
address lido;
23-
address safetyNetsRegistry;
23+
address oracleReportSanityChecker;
2424
address selfOwnedStEthBurner;
2525
address stakingRouter;
2626
address treasury;
@@ -37,7 +37,7 @@ contract LidoLocator is ILidoLocator {
3737
address public immutable elRewardsVault;
3838
address public immutable legacyOracle;
3939
address public immutable lido;
40-
address public immutable safetyNetsRegistry;
40+
address public immutable oracleReportSanityChecker;
4141
address public immutable selfOwnedStEthBurner;
4242
address public immutable stakingRouter;
4343
address public immutable treasury;
@@ -57,7 +57,7 @@ contract LidoLocator is ILidoLocator {
5757
elRewardsVault = _assertNonZero(_config.elRewardsVault);
5858
legacyOracle = _assertNonZero(_config.legacyOracle);
5959
lido = _assertNonZero(_config.lido);
60-
safetyNetsRegistry = _assertNonZero(_config.safetyNetsRegistry);
60+
oracleReportSanityChecker = _assertNonZero(_config.oracleReportSanityChecker);
6161
selfOwnedStEthBurner = _assertNonZero(_config.selfOwnedStEthBurner);
6262
stakingRouter = _assertNonZero(_config.stakingRouter);
6363
treasury = _assertNonZero(_config.treasury);
@@ -77,7 +77,7 @@ contract LidoLocator is ILidoLocator {
7777
) {
7878
return (
7979
elRewardsVault,
80-
safetyNetsRegistry,
80+
oracleReportSanityChecker,
8181
stakingRouter,
8282
treasury,
8383
withdrawalQueue,
@@ -97,7 +97,7 @@ contract LidoLocator is ILidoLocator {
9797
return (
9898
accountingOracle,
9999
elRewardsVault,
100-
safetyNetsRegistry,
100+
oracleReportSanityChecker,
101101
selfOwnedStEthBurner,
102102
withdrawalQueue,
103103
withdrawalVault,

contracts/0.8.9/sanity_checks/OracleReportSanityChecker.sol

+9-4
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,26 @@ struct LimitsList {
4242
/// @notice The max possible number of validators that might appear or exit on the Consensus
4343
/// Layer during one epoch
4444
uint256 churnValidatorsByEpochLimit;
45+
4546
/// @notice The max decrease of the total validators' balances on the Consensus Layer since
4647
/// the previous oracle report
47-
/// @dev Represented in the Basis Points (100% == 100_00)
48+
/// @dev Represented in the Basis Points (100% == 10_000)
4849
uint256 oneOffCLBalanceDecreaseBPLimit;
50+
4951
/// @notice The max annual increase of the total validators' balances on the Consensus Layer
5052
/// since the previous oracle report
51-
/// @dev Represented in the Basis Points (100% == 100_00)
53+
/// @dev Represented in the Basis Points (100% == 10_000)
5254
uint256 annualBalanceIncreaseBPLimit;
55+
5356
/// @notice The max deviation of stETH.totalPooledEther() / stETH.totalShares() ratio since
5457
/// the previous oracle report
55-
/// @dev Represented in the Basis Points (100% == 100_00)
58+
/// @dev Represented in the Basis Points (100% == 10_000)
5659
uint256 shareRateDeviationBPLimit;
60+
5761
/// @notice The min time required to be passed from the creation of the request to be
5862
/// finalized till the time of the oracle report
5963
uint256 requestTimestampMargin;
64+
6065
/// @notice The positive token rebase allowed per single LidoOracle report
6166
/// @dev uses 1e9 precision, e.g.: 1e6 - 0.1%; 1e9 - 100%, see `setMaxPositiveTokenRebase()`
6267
uint256 maxPositiveTokenRebase;
@@ -151,7 +156,7 @@ contract OracleReportSanityChecker is AccessControlEnumerable {
151156

152157
/// @notice Returns max positive token rebase value with 1e9 precision:
153158
/// e.g.: 1e6 - 0.1%; 1e9 - 100%
154-
/// - zero value means unititialized
159+
/// - zero value means uninitialized
155160
/// - type(uint64).max means unlimited
156161
///
157162
/// @dev Get max positive rebase allowed per single oracle report token rebase happens on total

contracts/0.8.9/test_helpers/LidoLocatorMock.sol

+18-18
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ contract LidoLocatorMock is ILidoLocator {
1414
address elRewardsVault;
1515
address accountingOracle;
1616
address legacyOracle;
17-
address safetyNetsRegistry;
17+
address oracleReportSanityChecker;
1818
address selfOwnedStEthBurner;
1919
address validatorExitBus;
2020
address stakingRouter;
@@ -29,7 +29,7 @@ contract LidoLocatorMock is ILidoLocator {
2929
address public immutable elRewardsVault;
3030
address public immutable accountingOracle;
3131
address public immutable legacyOracle;
32-
address public immutable safetyNetsRegistry;
32+
address public immutable oracleReportSanityChecker;
3333
address public immutable selfOwnedStEthBurner;
3434
address public immutable validatorExitBus;
3535
address public immutable stakingRouter;
@@ -39,27 +39,27 @@ contract LidoLocatorMock is ILidoLocator {
3939
address public immutable postTokenRebaseReceiver;
4040

4141
constructor (
42-
ContractAddresses memory addrs
42+
ContractAddresses memory addresses
4343
) {
44-
lido = addrs.lido;
45-
depositSecurityModule = addrs.depositSecurityModule;
46-
elRewardsVault = addrs.elRewardsVault;
47-
accountingOracle = addrs.accountingOracle;
48-
legacyOracle = addrs.legacyOracle;
49-
safetyNetsRegistry = addrs.safetyNetsRegistry;
50-
selfOwnedStEthBurner = addrs.selfOwnedStEthBurner;
51-
validatorExitBus = addrs.validatorExitBus;
52-
stakingRouter = addrs.stakingRouter;
53-
treasury = addrs.treasury;
54-
withdrawalQueue = addrs.withdrawalQueue;
55-
withdrawalVault = addrs.withdrawalVault;
56-
postTokenRebaseReceiver = addrs.postTokenRebaseReceiver;
44+
lido = addresses.lido;
45+
depositSecurityModule = addresses.depositSecurityModule;
46+
elRewardsVault = addresses.elRewardsVault;
47+
accountingOracle = addresses.accountingOracle;
48+
legacyOracle = addresses.legacyOracle;
49+
oracleReportSanityChecker = addresses.oracleReportSanityChecker;
50+
selfOwnedStEthBurner = addresses.selfOwnedStEthBurner;
51+
validatorExitBus = addresses.validatorExitBus;
52+
stakingRouter = addresses.stakingRouter;
53+
treasury = addresses.treasury;
54+
withdrawalQueue = addresses.withdrawalQueue;
55+
withdrawalVault = addresses.withdrawalVault;
56+
postTokenRebaseReceiver = addresses.postTokenRebaseReceiver;
5757
}
5858

5959
function coreComponents() external view returns(address,address,address,address,address,address) {
6060
return (
6161
elRewardsVault,
62-
safetyNetsRegistry,
62+
oracleReportSanityChecker,
6363
stakingRouter,
6464
treasury,
6565
withdrawalQueue,
@@ -79,7 +79,7 @@ contract LidoLocatorMock is ILidoLocator {
7979
return (
8080
accountingOracle,
8181
elRewardsVault,
82-
safetyNetsRegistry,
82+
oracleReportSanityChecker,
8383
selfOwnedStEthBurner,
8484
withdrawalQueue,
8585
withdrawalVault,

contracts/0.8.9/test_helpers/oracle/MockLidoLocatorForOracles.sol

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,29 @@ contract MockLidoLocatorForOracles is IComponentLocator {
99
address public immutable lido;
1010
address public immutable stakingRouter;
1111
address public immutable withdrawalQueue;
12-
address public immutable safetyNetsRegistry;
12+
address public immutable oracleReportSanityChecker;
1313

1414
constructor(
1515
address _lido,
1616
address _stakingRouter,
1717
address _withdrawalQueue,
18-
address _safetyNetsRegistry
18+
address _oracleReportSanityChecker
1919
) {
2020
lido = _lido;
2121
stakingRouter = _stakingRouter;
2222
withdrawalQueue = _withdrawalQueue;
23-
safetyNetsRegistry = _safetyNetsRegistry;
23+
oracleReportSanityChecker = _oracleReportSanityChecker;
2424
}
2525

2626
function coreComponents() external view returns (
2727
address elRewardsVault_,
28-
address safetyNetsRegistry_,
28+
address oracleReportSanityChecker_,
2929
address stakingRouter_,
3030
address treasury_,
3131
address withdrawalQueue_,
3232
address withdrawalVault_
3333
) {
34-
safetyNetsRegistry_ = safetyNetsRegistry;
34+
oracleReportSanityChecker_ = oracleReportSanityChecker;
3535
stakingRouter_ = stakingRouter;
3636
withdrawalQueue_ = withdrawalQueue;
3737
}

contracts/common/interfaces/ILidoLocator.sol

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ interface ILidoLocator {
1212
function elRewardsVault() external view returns(address);
1313
function legacyOracle() external view returns(address);
1414
function lido() external view returns(address);
15-
function safetyNetsRegistry() external view returns(address);
15+
function oracleReportSanityChecker() external view returns(address);
1616
function selfOwnedStEthBurner() external view returns(address);
1717
function stakingRouter() external view returns(address);
1818
function treasury() external view returns(address);
@@ -22,7 +22,7 @@ interface ILidoLocator {
2222
function postTokenRebaseReceiver() external view returns(address);
2323
function coreComponents() external view returns(
2424
address elRewardsVault,
25-
address safetyNetsRegistry,
25+
address oracleReportSanityChecker,
2626
address stakingRouter,
2727
address treasury,
2828
address withdrawalQueue,
@@ -31,7 +31,7 @@ interface ILidoLocator {
3131
function oracleReportComponentsForLido() external view returns(
3232
address accountingOracle,
3333
address elRewardsVault,
34-
address safetyNetsRegistry,
34+
address oracleReportSanityChecker,
3535
address selfOwnedStEthBurner,
3636
address withdrawalQueue,
3737
address withdrawalVault,

lib/abi/LidoLocator.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"inputs":[{"components":[{"internalType":"address","name":"accountingOracle","type":"address"},{"internalType":"address","name":"depositSecurityModule","type":"address"},{"internalType":"address","name":"elRewardsVault","type":"address"},{"internalType":"address","name":"legacyOracle","type":"address"},{"internalType":"address","name":"lido","type":"address"},{"internalType":"address","name":"safetyNetsRegistry","type":"address"},{"internalType":"address","name":"selfOwnedStEthBurner","type":"address"},{"internalType":"address","name":"stakingRouter","type":"address"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"validatorExitBus","type":"address"},{"internalType":"address","name":"withdrawalQueue","type":"address"},{"internalType":"address","name":"withdrawalVault","type":"address"},{"internalType":"address","name":"postTokenRebaseReceiver","type":"address"}],"internalType":"struct LidoLocator.Config","name":"_config","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ErrorZeroAddress","type":"error"},{"inputs":[],"name":"accountingOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coreComponents","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositSecurityModule","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"elRewardsVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"legacyOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lido","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleReportComponentsForLido","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"postTokenRebaseReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safetyNetsRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"selfOwnedStEthBurner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validatorExitBus","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalQueue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
1+
[{"inputs":[{"components":[{"internalType":"address","name":"accountingOracle","type":"address"},{"internalType":"address","name":"depositSecurityModule","type":"address"},{"internalType":"address","name":"elRewardsVault","type":"address"},{"internalType":"address","name":"legacyOracle","type":"address"},{"internalType":"address","name":"lido","type":"address"},{"internalType":"address","name":"oracleReportSanityChecker","type":"address"},{"internalType":"address","name":"selfOwnedStEthBurner","type":"address"},{"internalType":"address","name":"stakingRouter","type":"address"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"validatorExitBus","type":"address"},{"internalType":"address","name":"withdrawalQueue","type":"address"},{"internalType":"address","name":"withdrawalVault","type":"address"},{"internalType":"address","name":"postTokenRebaseReceiver","type":"address"}],"internalType":"struct LidoLocator.Config","name":"_config","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ErrorZeroAddress","type":"error"},{"inputs":[],"name":"accountingOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coreComponents","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositSecurityModule","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"elRewardsVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"legacyOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lido","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleReportComponentsForLido","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracleReportSanityChecker","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"postTokenRebaseReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"selfOwnedStEthBurner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validatorExitBus","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalQueue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

0 commit comments

Comments
 (0)