Skip to content

fix: add reentrancy guards and dust absorption to distribution (#85)#108

Open
Tranquil-Flow wants to merge 3 commits into
mainfrom
fix/85-dust-reentrancy
Open

fix: add reentrancy guards and dust absorption to distribution (#85)#108
Tranquil-Flow wants to merge 3 commits into
mainfrom
fix/85-dust-reentrancy

Conversation

@Tranquil-Flow
Copy link
Copy Markdown

Summary

  • Adds ReentrancyGuardUpgradeable to AbstractDistributionStrategy, BaseDistributionManager, and MultiStrategyDistributionManager
  • Applies nonReentrant to claimAndDistribute() in both managers and distribute() in both strategies
  • Fixes dust accumulation: last recipient/strategy absorbs rounding remainder (up to N-1 wei) instead of leaving tokens trapped in the contract
  • Removes redundant require($.strategies.length > 0, ...) check (already enforced at initialization)
  • Corrects NatSpec: "Dust from integer division is left in the contract" → accurate description of new dust-free behavior

Closes #85

Test plan

  • Verify __ReentrancyGuard_init() called in all three initializers
  • Verify nonReentrant on all claimAndDistribute() and distribute() functions
  • Verify dust absorption: total amount distributed equals input amount (no wei left behind)
  • EqualDistributionStrategy — last recipient gets remainder
  • VotingDistributionStrategy — last recipient gets remainder
  • MultiStrategyDistributionManager — last strategy gets remainder
  • Full suite: 191 tests pass

Tranquil-Flow and others added 3 commits April 4, 2026 19:21
Add ReentrancyGuardUpgradeable to MultiStrategyDistributionManager
and apply nonReentrant to claimAndDistribute. Fix rounding dust loss
by having the last strategy absorb the remainder. Add corresponding
test coverage for distribution strategies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix dust/remainder handling in distribution strategies

1 participant