Claiming Market Rewards

This guide how to claim secondary market reward through coin's Bonding Curve contract after migrated to PancakeSwap V3. Note: For coin's Bonding Curve stage reward, it will automatically deposit into 4meme's Reward Protocol. No additional step required before reward recipient claim it from 4.meme.

Claim Secondary Market Reward

The claimSecondaryRewards method withdraw LP fee from PancakeSwap V3 pool and deposit it into 4meme's Reward Protocol according to the defined reward structure. Then, reward recipient can claim their reward from 4.meme.

Method Interface

// solidity interface
/// @notice Migrate a graduated token to Liquidity pool (DEX)
///
/// @param pushEthRewards Whether to automatically transfer ETH or native token rewards into receipient wallet
function claimSecondaryRewards(bool pushEthRewards) external;

Events

Upon successful claim a LiquidityRewardsDistributed event will be emitted

/// @notice emitted when claim secondary reward invoked
///
/// @param payoutRecipient The reward receiving address, usually creator
/// @param platformReferrer The Trade Referrer reward receiving address, if applicable
/// @param protocolRewardRecipient The platform fee receiving address
event LiquidityRewardsDistributed(
    address indexed payoutRecipient,
    address indexed platformReferrer,
    address protocolRewardRecipient,
    LiquidityRewards liquidityRewards
);

/// @notice The LiquidityRewards type
/// 
/// @params totalAmountCurrency The total collateral amount claimed
/// @params totalAmountCoin The total Coin amouint claimed
/// @params creatorPayoutAmountCurrency The total collateral amount for creator
/// @params creatorPayoutAmountCoin The total coin amount for creator
/// @params platformReferrerAmountCurrency The total collateral amount for Trade Referrer
/// @params platformReferrerAmountCoin The total coin amount for Trade Referrer
/// @params protocolAmountCurrency The total collateral amount for platform
/// @params protocolAmountCoin The total coin amount for platform
struct LiquidityRewards {
    uint256 totalAmountCurrency;
    uint256 totalAmountCoin;
    uint256 creatorPayoutAmountCurrency;
    uint256 creatorPayoutAmountCoin;
    uint256 platformReferrerAmountCurrency;
    uint256 platformReferrerAmountCoin;
    uint256 protocolAmountCurrency;
    uint256 protocolAmountCoin;
}

Last updated