Skip to main content

ISablierV2MerkleStreamerFactory

Git Source

Deploys new Lockup Linear Merkle streamers via CREATE2.

Functions

createMerkleStreamerLL

Creates a new Merkle streamer that uses Lockup Linear.

Emits a CreateMerkleStreamerLL event.

function createMerkleStreamerLL(
address initialAdmin,
ISablierV2LockupLinear lockupLinear,
IERC20 asset,
bytes32 merkleRoot,
uint40 expiration,
LockupLinear.Durations memory streamDurations,
bool cancelable,
bool transferable,
string memory ipfsCID,
uint256 aggregateAmount,
uint256 recipientsCount
)
external
returns (ISablierV2MerkleStreamerLL merkleStreamerLL);

Parameters

NameTypeDescription
initialAdminaddressThe initial admin of the Merkle streamer contract.
lockupLinearISablierV2LockupLinearThe address of the SablierV2LockupLinear contract.
assetIERC20The address of the streamed ERC-20 asset.
merkleRootbytes32The Merkle root of the claim data.
expirationuint40The expiration of the streaming campaign, as a Unix timestamp.
streamDurationsLockupLinear.DurationsThe durations for each stream due to the recipient.
cancelableboolIndicates if each stream will be cancelable.
transferableboolIndicates if each stream NFT will be transferable.
ipfsCIDstringMetadata parameter emitted for indexing purposes.
aggregateAmountuint256Total amount of ERC-20 assets to be streamed to all recipients.
recipientsCountuint256Total number of recipients eligible to claim.

Returns

NameTypeDescription
merkleStreamerLLISablierV2MerkleStreamerLLThe address of the newly created Merkle streamer contract.

Events

CreateMerkleStreamerLL

Emitted when a Sablier V2 Lockup Linear Merkle streamer is created.

event CreateMerkleStreamerLL(
ISablierV2MerkleStreamerLL merkleStreamer,
address indexed admin,
ISablierV2LockupLinear indexed lockupLinear,
IERC20 indexed asset,
bytes32 merkleRoot,
uint40 expiration,
LockupLinear.Durations streamDurations,
bool cancelable,
bool transferable,
string ipfsCID,
uint256 aggregateAmount,
uint256 recipientsCount
);