Skip to main content

ISablierFactoryMerkleLL

Git Source

Inherits: ISablierFactoryMerkleBase

Title: ISablierFactoryMerkleLL

A factory that deploys MerkleLL campaign contracts.

See the documentation in ISablierMerkleLL.

Functions​

computeMerkleLL​

Computes the deterministic address where SablierMerkleLL campaign will be deployed.

Reverts if the requirements from createMerkleLL are not met.

function computeMerkleLL(
address campaignCreator,
MerkleLL.ConstructorParams calldata campaignParams
)
external
view
returns (address merkleLL);

createMerkleLL​

Creates a new Merkle Lockup campaign with a Lockup Linear distribution.

Emits a CreateMerkleLL event. Notes:

  • The contract is created with CREATE2.
  • The campaign's fee will be set to the min USD fee unless a custom fee is set for msg.sender.
  • A value of zero for campaignParams.expiration means the campaign does not expire.
  • A value of zero for campaignParams.granularity would store the granularity as 1 second. Requirements:
  • campaignParams.token must not be the forbidden native token.
function createMerkleLL(
MerkleLL.ConstructorParams memory campaignParams,
uint256 aggregateAmount,
uint256 recipientCount
)
external
returns (ISablierMerkleLL merkleLL);

Parameters

NameTypeDescription
campaignParamsMerkleLL.ConstructorParamsStruct encapsulating the SablierMerkleLL parameters.
aggregateAmountuint256The total amount of ERC-20 tokens to be distributed to all recipients.
recipientCountuint256The total number of recipient addresses eligible for the airdrop.

Returns

NameTypeDescription
merkleLLISablierMerkleLLThe address of the newly created Merkle Lockup contract.

Events​

CreateMerkleLL​

Emitted when a SablierMerkleLL campaign is created.

event CreateMerkleLL(
ISablierMerkleLL indexed merkleLL,
MerkleLL.ConstructorParams campaignParams,
uint256 aggregateAmount,
uint256 recipientCount,
address comptroller,
uint256 minFeeUSD
);