Helpers
Library with functions needed to validate input parameters across lockup streams.
Functions
calculateSegmentTimestamps
Calculate the timestamps and return the segments.
function calculateSegmentTimestamps(
LockupDynamic.SegmentWithDuration[] memory segmentsWithDuration,
uint40 startTime
)
public
pure
returns (LockupDynamic.Segment[] memory segmentsWithTimestamps);
calculateTrancheTimestamps
Calculate the timestamps and return the tranches.
function calculateTrancheTimestamps(
LockupTranched.TrancheWithDuration[] memory tranchesWithDuration,
uint40 startTime
)
public
pure
returns (LockupTranched.Tranche[] memory tranchesWithTimestamps);
checkCreateLockupDynamic
Checks the parameters of the {SablierLockup-_createLD} function.
function checkCreateLockupDynamic(
address sender,
Lockup.Timestamps memory timestamps,
uint128 totalAmount,
LockupDynamic.Segment[] memory segments,
uint256 maxCount,
UD60x18 brokerFee,
string memory shape,
UD60x18 maxBrokerFee
)
public
pure
returns (Lockup.CreateAmounts memory createAmounts);
checkCreateLockupLinear
Checks the parameters of the {SablierLockup-_createLL} function.
function checkCreateLockupLinear(
address sender,
Lockup.Timestamps memory timestamps,
uint40 cliffTime,
uint128 totalAmount,
LockupLinear.UnlockAmounts memory unlockAmounts,
UD60x18 brokerFee,
string memory shape,
UD60x18 maxBrokerFee
)
public
pure
returns (Lockup.CreateAmounts memory createAmounts);
checkCreateLockupTranched
Checks the parameters of the {SablierLockup-_createLT} function.
function checkCreateLockupTranched(
address sender,
Lockup.Timestamps memory timestamps,
uint128 totalAmount,
LockupTranched.Tranche[] memory tranches,
uint256 maxCount,
UD60x18 brokerFee,
string memory shape,
UD60x18 maxBrokerFee
)
public
pure
returns (Lockup.CreateAmounts memory createAmounts);
_checkAndCalculateBrokerFee
Checks the broker fee is not greater than maxBrokerFee
, and then calculates the broker fee amount and the deposit
amount from the total amount.
function _checkAndCalculateBrokerFee(
uint128 totalAmount,
UD60x18 brokerFee,
UD60x18 maxBrokerFee
)
private
pure
returns (Lockup.CreateAmounts memory amounts);
_checkTimestampsAndUnlockAmounts
Checks the user-provided cliff, end times and unlock amounts of a lockup linear stream.
function _checkTimestampsAndUnlockAmounts(
uint128 depositAmount,
Lockup.Timestamps memory timestamps,
uint40 cliffTime,
LockupLinear.UnlockAmounts memory unlockAmounts
)
private
pure;
_checkCreateStream
Checks the user-provided common parameters across lockup streams.
function _checkCreateStream(
address sender,
uint128 depositAmount,
uint40 startTime,
string memory shape
)
private
pure;
_checkSegments
Checks:
- The first timestamp is strictly greater than the start time.
- The timestamps are ordered chronologically.
- There are no duplicate timestamps.
- The deposit amount is equal to the sum of all segment amounts.
- The end time equals the last segment's timestamp.
function _checkSegments(
LockupDynamic.Segment[] memory segments,
uint128 depositAmount,
Lockup.Timestamps memory timestamps,
uint256 maxSegmentCount
)
private
pure;
_checkTranches
Checks:
- The first timestamp is strictly greater than the start time.
- The timestamps are ordered chronologically.
- There are no duplicate timestamps.
- The deposit amount is equal to the sum of all tranche amounts.
- The end time equals the last tranche's timestamp.
function _checkTranches(
LockupTranched.Tranche[] memory tranches,
uint128 depositAmount,
Lockup.Timestamps memory timestamps,
uint256 maxTrancheCount
)
private
pure;