The Sablier Flow protocol lacks a refundMax
function, unlike its withdrawal counterpart withdrawMax
. This asymmetry creates potential issues with transaction failures and front-running opportunities.
The current refund mechanism requires users to:
Query refundable amount
Submit separate refund transaction
Failed transactions due to amount changes between query and execution
Wasted gas from transaction retries
Poor UX for senders trying to refund maximum amount
Increased likelihood of front-running attacks
LOW - This scenario is likely to occur in active streams where:
Recipients frequently withdraw
Senders need to refund maximum amounts
MEV bots monitor for refund opportunities
Let's do a pseudo PoC
Implement refundMax
function similar to withdrawMax
:
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.