The grace period is defined as a period of 7 days starting from the first time a claim
has been made inside a campaign:
inside this period, the Admin
can call clawback
to retrieve unclaimed funds. This is crucial in situations where there is an issue with the campaign that can lead to all sorts of undesired behaviours. The Admin
can call clawback
if no claim has been made, or during the grace period, or when the campaign has ended.
Ultimately ,clawback
just transfers the asset amounts to the Admin
's provided address and by doing so retrieving the funds.
The team confirmed through the Discord (Sablier Channel) that soon, support for creating cliff stream campaigns will be available. Additionally, they mentioned that the following campaign structure can be configured:
Thus, a campaign can be configured as such that when a recipient calls claim, the streaming does not begin immediately as it does in a linear stream. Instead, the recipient must wait for a specified number of days before their amount begins streaming, and they can then initiate their first withdrawal.
This is problematic due to the hardcoded 7-day grace period, the Admin
has only a 7 day time window to determine if recipients
are able to withdraw their funds, but due to the nature of the cliff streams it can be designed in such a way where a recipient
might have to wait 14 days before being able to even call withdraw
.
I will illustrate this with an example:
Bob creates a cliff campaign, designed where recipient
calls claim
, recipient
has to wait 2 weeks before amount
starts being streamed, 2 weeks have passed, recipient
can now start withdrawing
Alice is the first user to call claim
, _firstClaimTime
is triggered
Alice has to wait 2 weeks before her amount
starts being streamed
After two weeks, Alice attempts to withdraw, but encounters an issue preventing her from doing so. This could be due to a problem with the merkle tree, which, according to the docs can result in potentially leading to unclaimable assets or unexpected behavior.
Admin notices this and calls clawback
, however this will fail since it is hardcoded to 7 days
.
Why MEDIUM instead of HIGH:
This situation will only work if the campaign
is not cancellable
at the end of the campaign
, clawback
can be called again.
This implies that recipients involved in a non-cancellable campaign must wait until the campaign's end to retrieve their funds. First of all, this defeats the purpose of a cliff stream, which is intended to allow users to withdraw at regular intervals. Secondly, cliffs typically span long durations, ranging from months to a year. Consequently, users may have to wait months or even up to a year before receiving their refunded funds.
Manual Review
This can easily be mitigated. Simply remove the grace period, this way the Admin
can always call clawback
whenever needed.
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.