Skip to main content

SablierFactoryMerkleVCA

Git Source

Inherits: ISablierFactoryMerkleVCA, SablierFactoryMerkleBase

See the documentation in ISablierFactoryMerkleVCA.

Functions

constructor

constructor(address initialComptroller) SablierFactoryMerkleBase(initialComptroller);

Parameters

NameTypeDescription
initialComptrolleraddressThe address of the initial comptroller contract.

computeMerkleVCA

Computes the deterministic address where SablierMerkleVCA campaign will be deployed.

Reverts if the requirements from {createMerkleVCA} are not met.

function computeMerkleVCA(
address campaignCreator,
MerkleVCA.ConstructorParams calldata params
)
external
view
override
returns (address merkleVCA);

createMerkleVCA

Creates a new MerkleVCA campaign for variable distribution of tokens.

Emits a {CreateMerkleVCA} 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.
  • Users interested into funding the campaign before its deployment must meet the below requirements, otherwise the campaign deployment will revert. Requirements:
  • params.token must not be the forbidden native token.
  • params.expiration must be greater than 0.
  • params.expiration must be at least 1 week beyond the end time to ensure loyal recipients have enough time to claim.
  • params.vestingEndTime must be greater than params.vestingStartTime.
  • Both params.vestingStartTime and params.vestingEndTime must be greater than 0.
  • params.unlockPercentage must not be greater than 1e18, equivalent to 100%.
function createMerkleVCA(
MerkleVCA.ConstructorParams calldata params,
uint256 aggregateAmount,
uint256 recipientCount
)
external
returns (ISablierMerkleVCA merkleVCA);

Parameters

NameTypeDescription
paramsMerkleVCA.ConstructorParamsStruct encapsulating the SablierMerkleVCA parameters, which are documented in {DataTypes}.
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
merkleVCAISablierMerkleVCAThe address of the newly created MerkleVCA campaign.

_checkDeploymentParams

Validate the deployment parameters.

function _checkDeploymentParams(
address token,
uint40 vestingStartTime,
uint40 vestingEndTime,
uint40 expiration,
UD60x18 unlockPercentage
)
private
view;