Skip to content

Commit

Permalink
Reset pending payment to 0 when sending
Browse files Browse the repository at this point in the history
  • Loading branch information
m-chrzan committed Sep 18, 2024
1 parent 59ea380 commit a5e0c77
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
1 change: 1 addition & 0 deletions packages/protocol/contracts-0.8/common/EpochManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,7 @@ contract EpochManager is
FixidityLib.Fraction memory totalPayment = FixidityLib.newFixed(
validatorPendingPayments[signer]
);
validatorPendingPayments[signer] = 0;

IValidators validators = getValidators();
address group = validators.getValidatorsGroup(validator);
Expand Down
11 changes: 11 additions & 0 deletions packages/protocol/test-sol/unit/common/EpochManager.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -380,4 +380,15 @@ contract EpochManagerTest_sendValidatorPayment is EpochManagerTest {
assertEq(beneficiaryBalanceAfter, 0);
assertEq(epochManagerBalanceAfter, epochManagerBalanceBefore);
}

function test_doesntAllowDoubleSending() public {
epochManager.sendValidatorPayment(validator1);
epochManager.sendValidatorPayment(validator1);

uint256 validatorBalanceAfter = stableToken.balanceOf(validator1);
uint256 epochManagerBalanceAfter = stableToken.balanceOf(address(epochManager));

assertEq(validatorBalanceAfter, paymentAmount);
assertEq(epochManagerBalanceAfter, epochManagerBalanceBefore - paymentAmount);
}
}

0 comments on commit a5e0c77

Please sign in to comment.