Skip to main content

MerkleLT

Git Source

Structs

ConstructorParams

Struct encapsulating the constructor parameters of Merkle Lockup Tranched campaigns.

The fields are arranged alphabetically.

struct ConstructorParams {
string campaignName;
uint40 campaignStartTime;
bool cancelable;
uint40 expiration;
address initialAdmin;
string ipfsCID;
ISablierLockup lockup;
bytes32 merkleRoot;
string shape;
IERC20 token;
MerkleLT.TrancheWithPercentage[] tranchesWithPercentages;
bool transferable;
uint40 vestingStartTime;
}

Properties

NameTypeDescription
campaignNamestringThe name of the campaign.
campaignStartTimeuint40The start time of the campaign, as a Unix timestamp.
cancelableboolIndicates if the Lockup stream will be cancelable after claiming.
expirationuint40The expiration of the campaign, as a Unix timestamp. A value of zero means the campaign does not expire.
initialAdminaddressThe initial admin of the campaign.
ipfsCIDstringThe content identifier for indexing the contract on IPFS. An empty value may break certain UI features that depend upon the IPFS CID.
lockupISablierLockupThe address of the SablierLockup contract.
merkleRootbytes32The Merkle root of the claim data.
shapestringThe shape of Lockup stream, used for differentiating between streams in the UI.
tokenIERC20The contract address of the ERC-20 token to be distributed.
tranchesWithPercentagesMerkleLT.TrancheWithPercentage[]The tranches with their respective unlock percentages, which are documented in {MerkleLT.TrancheWithPercentage}.
transferableboolIndicates if the Lockup stream will be transferable after claiming.
vestingStartTimeuint40The start time of the vesting stream, as a Unix timestamp. Zero is a sentinel value for block.timestamp.

TrancheWithPercentage

Struct encapsulating the unlock percentage and duration of a tranche.

Since users may have different amounts allocated, this struct makes it possible to calculate the amounts at claim time. An 18-decimal format is used to represent percentages: 100% = 1e18. For more information, see the PRBMath documentation on UD2x18: https://github.com/PaulRBerg/prb-math

struct TrancheWithPercentage {
UD2x18 unlockPercentage;
uint40 duration;
}

Properties

NameTypeDescription
unlockPercentageUD2x18The percentage designated to be unlocked in this tranche.
durationuint40The time difference in seconds between this tranche and the previous one.