Incorrect Withdrawal Handling During Stream Pause
// Stream rate is used to determine if paused
uint256 ratePerSecond = _streams[streamId].ratePerSecond.unwrap();
// But withdrawal logic doesn't check this
// Example: Paused with Pending Debt
Stream {
balance: 1000 tokens
snapshotDebtScaled: 800 tokens (scaled)
ratePerSecond: 0 (paused)
}
// Current behavior: Allows withdrawal based on total debt
// Correct behavior: Should only allow withdrawal of snapshotDebt
// Another Example : Paused with Zero Debt
Stream {
balance: 1000 tokens
snapshotDebtScaled: 0
ratePerSecond: 0 (paused)
}
// Current behavior: Might allow full balance withdrawal
// Correct behavior: Should check pause conditions
Miscalculation of withdrawable amounts. Potential for excess withdrawals and Incorrect debt accounting.
Manual Review
Implement Proper Pause State Handling. Calculate withdrawable amount differently for paused streams. Process withdrawal with pause awareness. For paused streams, only consider snapshot debt
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.