Errors
Library containing all custom errors the protocol may revert with.
Errors
CallerNotAdmin
Thrown when msg.sender
is not the admin.
error CallerNotAdmin(address admin, address caller);
DelegateCall
Thrown when trying to delegate call to a function that disallows delegate calls.
error DelegateCall();
SablierV2Lockup_AllowToHookUnsupportedInterface
Thrown when trying to allow to hook a contract that doesn't implement the interface correctly.
error SablierV2Lockup_AllowToHookUnsupportedInterface(address recipient);
SablierV2Lockup_AllowToHookZeroCodeSize
Thrown when trying to allow to hook an address with no code.
error SablierV2Lockup_AllowToHookZeroCodeSize(address recipient);
SablierV2Lockup_BrokerFeeTooHigh
Thrown when the broker fee exceeds the maximum allowed fee.
error SablierV2Lockup_BrokerFeeTooHigh(UD60x18 brokerFee, UD60x18 maxBrokerFee);
SablierV2Lockup_DepositAmountZero
Thrown when trying to create a stream with a zero deposit amount.
error SablierV2Lockup_DepositAmountZero();
SablierV2Lockup_EndTimeNotInTheFuture
Thrown when trying to create a stream with an end time not in the future.
error SablierV2Lockup_EndTimeNotInTheFuture(uint40 blockTimestamp, uint40 endTime);
SablierV2Lockup_InvalidHookSelector
Thrown when the hook does not return the correct selector.
error SablierV2Lockup_InvalidHookSelector(address recipient);
SablierV2Lockup_NotTransferable
Thrown when trying to transfer Stream NFT when transferability is disabled.
error SablierV2Lockup_NotTransferable(uint256 tokenId);
SablierV2Lockup_Null
Thrown when the ID references a null stream.
error SablierV2Lockup_Null(uint256 streamId);
SablierV2Lockup_Overdraw
Thrown when trying to withdraw an amount greater than the withdrawable amount.
error SablierV2Lockup_Overdraw(uint256 streamId, uint128 amount, uint128 withdrawableAmount);
SablierV2Lockup_StartTimeZero
Thrown when trying to create a stream with a zero start time.
error SablierV2Lockup_StartTimeZero();
SablierV2Lockup_StreamCanceled
Thrown when trying to cancel or renounce a canceled stream.
error SablierV2Lockup_StreamCanceled(uint256 streamId);
SablierV2Lockup_StreamDepleted
Thrown when trying to cancel, renounce, or withdraw from a depleted stream.
error SablierV2Lockup_StreamDepleted(uint256 streamId);
SablierV2Lockup_StreamNotCancelable
Thrown when trying to cancel or renounce a stream that is not cancelable.
error SablierV2Lockup_StreamNotCancelable(uint256 streamId);
SablierV2Lockup_StreamNotDepleted
Thrown when trying to burn a stream that is not depleted.
error SablierV2Lockup_StreamNotDepleted(uint256 streamId);
SablierV2Lockup_StreamSettled
Thrown when trying to cancel or renounce a settled stream.
error SablierV2Lockup_StreamSettled(uint256 streamId);
SablierV2Lockup_Unauthorized
Thrown when msg.sender
lacks authorization to perform an action.
error SablierV2Lockup_Unauthorized(uint256 streamId, address caller);
SablierV2Lockup_WithdrawalAddressNotRecipient
Thrown when trying to withdraw to an address other than the recipient's.
error SablierV2Lockup_WithdrawalAddressNotRecipient(uint256 streamId, address caller, address to);
SablierV2Lockup_WithdrawAmountZero
Thrown when trying to withdraw zero assets from a stream.
error SablierV2Lockup_WithdrawAmountZero(uint256 streamId);
SablierV2Lockup_WithdrawArrayCountsNotEqual
Thrown when trying to withdraw from multiple streams and the number of stream IDs does not match the number of withdraw amounts.
error SablierV2Lockup_WithdrawArrayCountsNotEqual(uint256 streamIdsCount, uint256 amountsCount);
SablierV2Lockup_WithdrawToZeroAddress
Thrown when trying to withdraw to the zero address.
error SablierV2Lockup_WithdrawToZeroAddress(uint256 streamId);
SablierV2LockupDynamic_DepositAmountNotEqualToSegmentAmountsSum
Thrown when trying to create a stream with a deposit amount not equal to the sum of the segment amounts.
error SablierV2LockupDynamic_DepositAmountNotEqualToSegmentAmountsSum(uint128 depositAmount, uint128 segmentAmountsSum);
SablierV2LockupDynamic_SegmentCountTooHigh
Thrown when trying to create a stream with more segments than the maximum allowed.
error SablierV2LockupDynamic_SegmentCountTooHigh(uint256 count);
SablierV2LockupDynamic_SegmentCountZero
Thrown when trying to create a stream with no segments.
error SablierV2LockupDynamic_SegmentCountZero();
SablierV2LockupDynamic_SegmentTimestampsNotOrdered
Thrown when trying to create a stream with unordered segment timestamps.
error SablierV2LockupDynamic_SegmentTimestampsNotOrdered(
uint256 index, uint40 previousTimestamp, uint40 currentTimestamp
);
SablierV2LockupDynamic_StartTimeNotLessThanFirstSegmentTimestamp
Thrown when trying to create a stream with a start time not strictly less than the first segment timestamp.
error SablierV2LockupDynamic_StartTimeNotLessThanFirstSegmentTimestamp(uint40 startTime, uint40 firstSegmentTimestamp);
SablierV2LockupLinear_CliffTimeNotLessThanEndTime
Thrown when trying to create a stream with a cliff time not strictly less than the end time.
error SablierV2LockupLinear_CliffTimeNotLessThanEndTime(uint40 cliffTime, uint40 endTime);
SablierV2LockupLinear_StartTimeNotLessThanCliffTime
Thrown when trying to create a stream with a start time not strictly less than the cliff time, when the cliff time does not have a zero value.
error SablierV2LockupLinear_StartTimeNotLessThanCliffTime(uint40 startTime, uint40 cliffTime);
SablierV2LockupLinear_StartTimeNotLessThanEndTime
Thrown when trying to create a stream with a start time not strictly less than the end time.
error SablierV2LockupLinear_StartTimeNotLessThanEndTime(uint40 startTime, uint40 endTime);
SablierV2NFTDescriptor_UnknownNFT
Thrown when trying to generate the token URI for an unknown ERC-721 NFT contract.
error SablierV2NFTDescriptor_UnknownNFT(IERC721Metadata nft, string symbol);
SablierV2LockupTranched_DepositAmountNotEqualToTrancheAmountsSum
Thrown when trying to create a stream with a deposit amount not equal to the sum of the tranche amounts.
error SablierV2LockupTranched_DepositAmountNotEqualToTrancheAmountsSum(uint128 depositAmount, uint128 trancheAmountsSum);
SablierV2LockupTranched_StartTimeNotLessThanFirstTrancheTimestamp
Thrown when trying to create a stream with a start time not strictly less than the first tranche timestamp.
error SablierV2LockupTranched_StartTimeNotLessThanFirstTrancheTimestamp(uint40 startTime, uint40 firstTrancheTimestamp);
SablierV2LockupTranched_TrancheCountTooHigh
Thrown when trying to create a stream with more tranches than the maximum allowed.
error SablierV2LockupTranched_TrancheCountTooHigh(uint256 count);
SablierV2LockupTranched_TrancheCountZero
Thrown when trying to create a stream with no tranches.
error SablierV2LockupTranched_TrancheCountZero();
SablierV2LockupTranched_TrancheTimestampsNotOrdered
Thrown when trying to create a stream with unordered tranche timestamps.
error SablierV2LockupTranched_TrancheTimestampsNotOrdered(
uint256 index, uint40 previousTimestamp, uint40 currentTimestamp
);