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);