Protocol supports creating streams with any ERC20 tokens(except FoT and rebase tokens) but there can be calculation issues incase of tokens with extremely low decimals.
Example, tokens like Gemini USD have only 2 decimals, in that case suppose a broker charge a fee of 0.01% for every stream created through it, then the broker will not get any fees when users create streams with small amount, any users creating with less than 100e2 tokens will not give any fees to the broker because checkAndCalculateBrokerFee
will return 0 for the amount.brokerFee
since it will round down to 0.
amounts.brokerFee = uint128(ud(totalAmount).mul(brokerFee).intoUint256());
broker fails to charge fees for their service.
The impact will also depend on the ratio between how much fee is charged and how much it is deposited. The less the fee percentage the more larger the amount of deposits that can be the without paying fees.
manual
Try checking the decimals of the tokens when creating a new stream and revert if less than 6. Or Brokers should be notified here that atleast 1% fee should be charged for low decimal tokens.
Protocol uses Adminable
contract which is inherited by other contracts of the protocol, where the admin can change the admin with the transferAdmin
function.
However, if the admin is changed incorrectly by entering the wrong address, it cannot be taken back, it allows the owner to transfer ownership to a non-existent or mistyped address.
core - SablierV2LockupLinear
, SablierV2LockupTranched
and SablierV2LockupDynamic
periphery - SablierV2MerkleLL
and SablierV2MerkleLT
These contracts will be left with no admin and only admin functions are lost.
Incase of the periphery contracts the likelihood increases.
manual
Use Ownable2Step from openzeppelin which instead of directly transferring to the new admin, the transfer only completes when the new admin accepts ownership.
Ownable2Step
should be implemented especially for the SablierV2MerkleLockup
because in this case the users(campaign creators) are the admin.
https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity
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.