ExtraRewardsMultiMerkle

This smart contract's purpose is to hold the rewards coming from votes on gauge incentives for users that delegated their voting power to the Paladin delegation address

(current delegation address is : 0x68378fCB3A27D5613aFCfddB590d35a6e751972C) The distribution process is : - Paladin claims all rewards for the users, and swap everything to USDC - The Merkle Root in this smart contract is frozen, allowing to calculate the round rewards to be added to each user, based on the votes they delegated, and the previous amounts claimed or not by the user (allowing users to accumulate the rewards to claim it all at once). - A new Merkle Root is generated and updated in this smart contract, allowing users to claim their rewards.

Smart Contract :

Here are the useful methods on this smart contract :

ClaimParams struct :

struct ClaimParams { 
    address token; 
    uint256 index; 
    uint256 amount; 
    bytes32[] merkleProof; 
}

isClaimed :

Checks if the rewards were claimed for an index

Params :

  • token : address of the token to claim

  • index : Index of the claim

Returns : bool : true if already claimed

isClaimed(address token, uint256 index) public view returns (bool)

claim :

Claims rewards for a given token for the user

Params :

  • token : Address of the token to claim

  • index : Index in the Merkle Tree

  • account : Address of the user claiming the rewards

  • amount : Amount of rewards to claim

  • merkleProof : Proof to claim the rewards

function claim(address token, uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof) public

multiClaim :

Claims multiple rewards for a given list of ClaimParams

Params :

  • account : Address of the user claiming the rewards

  • claims : List of ClaimParams struct data to claim

function multiClaim(address account, ClaimParams[] calldata claims) external

freezeRoot :

Freezes the given token

Params :

  • token : Address of the token to freeze

function freezeRoot(address token) public

updateRoot :

Udpates the Merkle Root for a given token

Params :

  • token : Address of the token

  • root : Merkle Root

function updateRoot(address token, bytes32 root) public

Last updated