Skip to main content

SablierV2Batch

Git Source

Inherits: ISablierV2Batch

See the documentation in ISablierV2Batch.

User Facing Functions

createMerkleStreamerLL

Creates a batch of Lockup Linear streams using createWithDurations.

Requirements:

function createWithDurations(
ISablierV2LockupLinear lockupLinear,
IERC20 asset,
Batch.CreateWithDurations[] calldata batch
)
external
returns (uint256[] memory streamIds);

Parameters

NameTypeDescription
lockupLinearISablierV2LockupLinearThe address of the {SablierV2LockupLinear} contract.
assetIERC20The address of the ERC-20 asset.
batchBatch.CreateWithDurations[]An array of structs, each encapsulating a subset of the parameters of SablierV2LockupLinear.createWithDurations.

createWithRange

Creates a batch of Lockup Linear streams using createWithRange.

Requirements:

function createWithRange(
ISablierV2LockupLinear lockupLinear,
IERC20 asset,
Batch.createWithRange[] calldata batch
)
external
returns (uint256[] memory streamIds);

Parameters

NameTypeDescription
lockupLinearISablierV2LockupLinearThe address of the {SablierV2LockupLinear} contract.
assetIERC20The address of the ERC-20 asset.
batchBatch.CreateWithRange[]An array of structs, each encapsulating a subset of the parameters of SablierV2LockupLinear.createWithRange.

createWithDeltas

Creates a batch of Lockup Dynamic streams using createWithDeltas.

Requirements:

function createWithDeltas(
ISablierV2LockupDynamic lockupDynamic,
IERC20 asset,
Batch.CreateWithDeltas[] calldata batch
)
external
returns (uint256[] memory streamIds);

Parameters

NameTypeDescription
lockupDynamicISablierV2LockupDynamicThe address of the {SablierV2LockupDynamic} contract.
assetIERC20The address of the ERC-20 asset.
batchBatch.CreateWithDeltas[]An array of structs, each encapsulating a subset of the parameters of SablierV2LockupDynamic.createWithDeltas.

createWithMilestones

Creates a batch of Lockup Dynamic streams using createWithMilestones.

Requirements:

function createWithMilestones(
ISablierV2LockupDynamic lockupDynamic,
IERC20 asset,
Batch.CreateWithMilestones[] calldata batch
)
external
returns (uint256[] memory streamIds);

Parameters

NameTypeDescription
lockupDynamicISablierV2LockupDynamicThe address of the {SablierV2LockupDynamic} contract.
assetIERC20The address of the ERC-20 asset.
batchBatch.CreateWithMilestones[]An array of structs, each encapsulating a subset of the parameters of SablierV2LockupDynamic.createWithMilestones.

Internal Functions

_approve

Helper function to approve a Sablier contract to spend funds from the batch. If the current allowance is insufficient, this function approves Sablier to spend the exact amount. The {SafeERC20.forceApprove} function is used to handle special ERC-20 assets (e.g. USDT) that require the current allowance to be zero before setting it to a non-zero value.

function _approve(address sablierContract, IERC20 asset, uint256 amount) internal;

Parameters

NameTypeDescription
sablierContractaddressThe address of the Sablier contract to approve.
assetIERC20The address of the ERC-20 asset.
amountuint256The amount of tokens to approve.

_handleTransfer

Helper function to transfer assets from the caller to the batch contract and approve the Sablier contract.

function _handleTransfer(address sablierContract, IERC20 asset, uint256 amount) internal;

Parameters

NameTypeDescription
sablierContractaddressThe address of the Sablier contract to transfer from.
assetIERC20The address of the ERC-20 asset.
amountuint256The amount of tokens to transfer.