Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
teddy-nodeset committed Apr 24, 2024
1 parent 7c73012 commit 0972640
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 22 deletions.
8 changes: 7 additions & 1 deletion contracts/Operator/NodeAccount.sol
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ contract NodeAccount is UpgradeableBase, Errors {
}

IMinipool minipool = IMinipool(_minipool);
OperatorDistributor(_directory.getOperatorDistributorAddress()).onNodeOperatorDissolved(
OperatorDistributor(_directory.getOperatorDistributorAddress()).onNodeMinipoolDestroy(
nodeOperator,
configs[_minipool].bondAmount
);
Expand Down Expand Up @@ -224,6 +224,12 @@ contract NodeAccount is UpgradeableBase, Errors {
) external onlyNodeOperatorOrProtocol hasConfig(_minipool) {
IMinipool minipool = IMinipool(_minipool);
minipool.distributeBalance(_rewardsOnly);
if (minipool.getFinalised()) {
OperatorDistributor(_directory.getOperatorDistributorAddress()).onNodeMinipoolDestroy(
nodeOperator,
configs[_minipool].bondAmount
);
}
}

function setDelegate(address _newDelegate) external onlyNodeOperatorOrProtocol {
Expand Down
33 changes: 26 additions & 7 deletions contracts/Operator/OperatorDistributor.sol
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,11 @@ contract OperatorDistributor is UpgradeableBase, Errors {
event MinipoolCreated(address indexed _minipoolAddress, address indexed _nodeAddress);
event MinipoolDestroyed(address indexed _minipoolAddress, address indexed _nodeAddress);
event WarningNoMiniPoolsToHarvest();
event WarningMinipoolNotStaking(address indexed _minipoolAddress, MinipoolStatus indexed _status);
event WarningMinipoolNotStaking(
address indexed _minipoolAddress,
MinipoolStatus indexed _status,
bool indexed _isFinalized
);

using Math for uint256;

Expand Down Expand Up @@ -361,9 +365,11 @@ contract OperatorDistributor is UpgradeableBase, Errors {
IMinipool minipool = IMinipool(minipoolAddresses[index]);

MinipoolStatus minipoolStatus = minipool.getStatus();
bool isFinalized = minipool.getFinalised();
console.log('_processNextMinipool.status=', uint256(minipoolStatus));
if (minipoolStatus != MinipoolStatus.Staking) {
emit WarningMinipoolNotStaking(address(minipool), minipoolStatus);
console.log('_processNextMinipool.isFinalized=', isFinalized);
if (minipoolStatus != MinipoolStatus.Staking || isFinalized) {
emit WarningMinipoolNotStaking(address(minipool), minipoolStatus, isFinalized);
return;
}

Expand All @@ -379,9 +385,22 @@ contract OperatorDistributor is UpgradeableBase, Errors {
rebalanceRplStake(nodeAddress, ethStaked);

uint256 totalBalance = address(minipool).balance - minipool.getNodeRefundBalance();
NodeAccount(
NodeAccountFactory(_directory.getNodeAccountFactoryAddress()).minipoolNodeAccountMap(address(minipool))
).distributeBalance(totalBalance < 8 ether, address(minipool));

if (totalBalance < 8 ether) {
NodeAccount(
NodeAccountFactory(_directory.getNodeAccountFactoryAddress()).minipoolNodeAccountMap(address(minipool))
).distributeBalance(true, address(minipool));
} else {
if(!minipool.userDistributeAllowed()) {
// alternatives for try-catch
// 1) integrate settings contract and fetch from storage bloating setup process for only use here
// 2) use mapping to track which users have begunUserDistribute
try minipool.beginUserDistribute() {} catch {}
} else {
// we do it this way to prevent minipool auto finalizations
minipool.distributeBalance(false);
}
}

nextMinipoolHavestIndex++;
}
Expand All @@ -405,7 +424,7 @@ contract OperatorDistributor is UpgradeableBase, Errors {
targetStakeRatio = _targetStakeRatio;
}

function onNodeOperatorDissolved(address _nodeOperator, uint256 _bond) external onlyProtocol {
function onNodeMinipoolDestroy(address _nodeOperator, uint256 _bond) external onlyProtocol {
fundedEth -= _bond;
nodeOperatorEthStaked[_nodeOperator] -= _bond;
}
Expand Down
24 changes: 12 additions & 12 deletions gas-report.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@
·····························|·························|·············|·············|·············|···············|··············
| MockSanctions · addBlacklist · - · - · 43876 · 3 · - │
·····························|·························|·············|·············|·············|···············|··············
| NodeAccount · stake · 230278 · 247378 · 240538 · 10 · - │
| NodeAccount · stake · 230278 · 247378 · 237118 · 10 · - │
·····························|·························|·············|·············|·············|···············|··············
| NodeAccountFactory · createNewNodeAccount · 3162041 · 3429071 · 3308661 · 13 · - │
| NodeAccountFactory · createNewNodeAccount · 3161997 · 3429027 · 3300069 · 13 · - │
·····························|·························|·············|·············|·············|···············|··············
| OperatorDistributor · processNextMinipool · 187615 · 768574 · 458064 · 5 · - │
| OperatorDistributor · processNextMinipool · 171404 · 382241 · 294529 · 5 · - │
·····························|·························|·············|·············|·············|···············|··············
| PriceFetcher · useFallback · - · - · 41967 · 2 · - │
·····························|·························|·············|·············|·············|···············|··············
| RocketDAOProtocol · bootstrapSettingBool · 78300 · 100312 · 95711 · 14 · - │
·····························|·························|·············|·············|·············|···············|··············
| RocketDAOProtocol · bootstrapSettingUint · - · - · 86433 · 2 · - │
·····························|·························|·············|·············|·············|···············|··············
| RocketDepositPool · assignDeposits · 116147 · 116152 · 116148 · 10 · - │
| RocketDepositPool · assignDeposits · - · - · 116147 · 10 · - │
·····························|·························|·············|·············|·············|···············|··············
| RocketDepositPool · deposit · 193401 · 376260 · 319168 · 10 · - │
| RocketDepositPool · deposit · 324960 · 376260 · 345480 · 10 · - │
·····························|·························|·············|·············|·············|···············|··············
| RocketStorage · setAddress · 51027 · 51051 · 51048 · 50 · - │
·····························|·························|·············|·············|·············|···············|··············
Expand Down Expand Up @@ -71,7 +71,7 @@
·····························|·························|·············|·············|·············|···············|··············
| WETHVault · setRplCoverageRatio · - · - · 44251 · 1 · - │
·····························|·························|·············|·············|·············|···············|··············
| WhitelistV2 · addOperator · 367807 · 1053892 · 494870 · 27 · - │
| WhitelistV2 · addOperator · 367807 · 641964 · 464357 · 27 · - │
·····························|·························|·············|·············|·············|···············|··············
| WhitelistV2 · addOperators · - · - · 675408 · 4 · - │
·····························|·························|·············|·············|·············|···············|··············
Expand All @@ -81,9 +81,9 @@
·····························|·························|·············|·············|·············|···············|··············
| WhitelistV2 · setOperatorController · 56325 · 58329 · 57884 · 9 · - │
·····························|·························|·············|·············|·············|···············|··············
| YieldDistributor · finalizeInterval · 271319 · 294273 · 278970 · 3 · - │
| YieldDistributor · finalizeInterval · 271319 · 299489 · 280709 · 3 · - │
·····························|·························|·············|·············|·············|···············|··············
| YieldDistributor · harvest · 279354 · 814048 · 695603 · 14 · - │
| YieldDistributor · harvest · 284570 · 390315 · 344294 · 14 · - │
·····························|·························|·············|·············|·············|···············|··············
| Deployments · · % of limit · │
·······················································|·············|·············|·············|···············|··············
Expand All @@ -95,7 +95,7 @@
·······················································|·············|·············|·············|···············|··············
| Directory · - · - · 3082153 · 10.3 % · - │
·······················································|·············|·············|·············|···············|··············
| FundRouter · - · - · 2386599 · 8 % · - │
| FundRouter · - · - · 2386611 · 8 % · - │
·······················································|·············|·············|·············|···············|··············
| MockERC20 · - · - · 868977 · 2.9 % · - │
·······················································|·············|·············|·············|···············|··············
Expand All @@ -107,11 +107,11 @@
·······················································|·············|·············|·············|···············|··············
| MockUniswapV3Pool · - · - · 131311 · 0.4 % · - │
·······················································|·············|·············|·············|···············|··············
| NodeAccount · - · - · 4115021 · 13.7 % · - │
| NodeAccount · - · - · 4189498 · 14 % · - │
·······················································|·············|·············|·············|···············|··············
| NodeAccountFactory · - · - · 2299132 · 7.7 % · - │
·······················································|·············|·············|·············|···············|··············
| OperatorDistributor · - · - · 4026190 · 13.4 % · - │
| OperatorDistributor · - · - · 4151259 · 13.8 % · - │
·······················································|·············|·············|·············|···············|··············
| PriceFetcher · - · - · 1300505 · 4.3 % · - │
·······················································|·············|·············|·············|···············|··············
Expand Down Expand Up @@ -273,7 +273,7 @@
·······················································|·············|·············|·············|···············|··············
| Whitelist · - · - · 2323088 · 7.7 % · - │
·······················································|·············|·············|·············|···············|··············
| WhitelistV2 · - · - · 2329709 · 7.8 % · - │
| WhitelistV2 · - · - · 2329697 · 7.8 % · - │
·······················································|·············|·············|·············|···············|··············
| YieldDistributor · - · - · 3087220 · 10.3 % · - │
·------------------------------------------------------|-------------|-------------|-------------|---------------|-------------·
4 changes: 2 additions & 2 deletions output.log

Large diffs are not rendered by default.

0 comments on commit 0972640

Please sign in to comment.