Skip to main content

ISablierMerkleBase

Git Source

Inherits: IAdminable

Title: ISablierMerkleBase

Common interface between campaign contracts.

Functions

CAMPAIGN_START_TIME

The timestamp at which campaign starts and claim begins.

This is an immutable state variable.

function CAMPAIGN_START_TIME() external view returns (uint40);

CLAIM_TYPE

Retrieves the claim type supported by the campaign.

This is an immutable state variable.

function CLAIM_TYPE() external view returns (ClaimType);

COMPTROLLER

Retrieves the address of the comptroller contract.

function COMPTROLLER() external view returns (address);

EXPIRATION

The cut-off point for the campaign, as a Unix timestamp. A value of zero means there is no expiration.

This is an immutable state variable.

function EXPIRATION() external view returns (uint40);

IS_SABLIER_MERKLE

Returns true indicating that this campaign contract is deployed using the Sablier Factory.

This is a constant state variable.

function IS_SABLIER_MERKLE() external view returns (bool);

MERKLE_ROOT

The root of the Merkle tree used to validate the proofs of inclusion.

This is an immutable state variable.

function MERKLE_ROOT() external view returns (bytes32);

TOKEN

The ERC-20 token to distribute.

This is an immutable state variable.

function TOKEN() external view returns (IERC20);

calculateMinFeeWei

Calculates the minimum fee in wei required to claim the airdrop.

function calculateMinFeeWei() external view returns (uint256);

campaignName

Retrieves the name of the campaign.

function campaignName() external view returns (string memory);

firstClaimTime

Retrieves the timestamp when the first claim is made, and zero if no claim was made yet.

function firstClaimTime() external view returns (uint40);

hasClaimed

Returns a flag indicating whether a claim has been made for a given index.

Uses a bitmap to save gas.

function hasClaimed(uint256 index) external view returns (bool);

Parameters

NameTypeDescription
indexuint256The index of the recipient to check.

hasExpired

Returns a flag indicating whether the campaign has expired.

function hasExpired() external view returns (bool);

ipfsCID

The content identifier for indexing the campaign on IPFS.

An empty value may break certain UI features that depend upon the IPFS CID.

function ipfsCID() external view returns (string memory);

minFeeUSD

Retrieves the min USD fee required to claim the airdrop, denominated in 8 decimals.

The denomination is based on Chainlink's 8-decimal format for USD prices, where 1e8 is $1.

function minFeeUSD() external view returns (uint256);

clawback

Claws back the unclaimed tokens.

Emits a Clawback event. Requirements:

  • msg.sender must be the admin.
  • No claim must be made, OR The current timestamp must not exceed 7 days after the first claim, OR The campaign must be expired.
function clawback(address to, uint128 amount) external;

Parameters

NameTypeDescription
toaddressThe address to receive the tokens.
amountuint128The amount of tokens to claw back.

lowerMinFeeUSD

Lowers the min USD fee.

Emits a LowerMinFeeUSD event. Requirements:

function lowerMinFeeUSD(uint256 newMinFeeUSD) external;

Parameters

NameTypeDescription
newMinFeeUSDuint256The new min USD fee to set, denominated in 8 decimals.

Sponsors the claim fees for eligible recipients.

Emits a Sponsor event. Notes:

  • This function only makes the payment. The claim fees are updated only after the payment has been verified off-chain.
  • Refer to the Sablier website in order to sponsor with the correct token, otherwise the sponsorship may be ignored. Requirements:
  • biller must not be the zero address.
  • amount must be greater than zero.
  • token must not be the zero address and must be a valid ERC20 token.
  • msg.sender must have approved the contract to spend the tokens.
function sponsor(IERC20 token, uint128 amount, address biller) external;

Parameters

NameTypeDescription
tokenIERC20The ERC-20 token to transfer.
amountuint128The amount of tokens to transfer.
billeraddressThe address to receive the tokens.

Events

Clawback

Emitted when the admin claws back the unclaimed tokens.

event Clawback(address indexed admin, address indexed to, uint128 amount);

LowerMinFeeUSD

Emitted when the min USD fee is lowered by the comptroller.

event LowerMinFeeUSD(address indexed comptroller, uint256 newMinFeeUSD, uint256 previousMinFeeUSD);

Emitted when campaign owner sponsors the claim fees for eligible recipients.

event Sponsor(address indexed caller, IERC20 indexed token, uint128 amount, address indexed biller);