Module 0xd5044d9f4b80910ef7b8910a68d2ac257d14319fb9315ddce1ca5190878bc8ea::rewards_distributor

@title Rewards Distributor Module @author Aave @notice Implements functionality to distribute rewards to users

use 0x1::event;
use 0x1::object;
use 0x1::option;
use 0x1::signer;
use 0xa888dd108ea636a234c973b8b72b9cadf0c7ae94d6f355c64dde9fdc275724ee::error_config;
use 0xd5044d9f4b80910ef7b8910a68d2ac257d14319fb9315ddce1ca5190878bc8ea::rewards_controller;
use 0xd5044d9f4b80910ef7b8910a68d2ac257d14319fb9315ddce1ca5190878bc8ea::transfer_strategy;

Struct RewardsClaimed

@notice Emitted when rewards are claimed @param user The address of the user who claimed rewards @param reward The address of the reward @param to The address to which rewards are transferred @param claimer The address of the claimer @param amount The amount of rewards claimed @param rewards_controller_address The address of the rewards controller

#[event]
struct RewardsClaimed has drop, store

Function claim_rewards

@notice Claims rewards for a user @param caller The signer account of the caller @param assets Vector of asset addresses @param amount The amount of rewards to claim @param to The address to which rewards are transferred @param reward The address of the reward @param rewards_controller_address The address of the rewards controller @return The amount of rewards claimed

public fun claim_rewards(caller: &signer, assets: vector<address>, amount: u256, to: address, reward: address, rewards_controller_address: address): u256

Function claim_rewards_on_behalf

@notice Claims rewards on behalf of a user @param caller The signer account of the caller @param assets Vector of asset addresses @param amount The amount of rewards to claim @param user The address of the user @param to The address to which rewards are transferred @param reward The address of the reward @param rewards_controller_address The address of the rewards controller @return The amount of rewards claimed

public fun claim_rewards_on_behalf(caller: &signer, assets: vector<address>, amount: u256, user: address, to: address, reward: address, rewards_controller_address: address): u256

Function claim_rewards_to_self

@notice Claims rewards and transfers them to the caller @param caller The signer account of the caller @param assets Vector of asset addresses @param amount The amount of rewards to claim @param reward The address of the reward @param rewards_controller_address The address of the rewards controller @return The amount of rewards claimed

public fun claim_rewards_to_self(caller: &signer, assets: vector<address>, amount: u256, reward: address, rewards_controller_address: address): u256

Function claim_all_rewards

@notice Claims all rewards for a user @param caller The signer account of the caller @param assets Vector of asset addresses @param to The address to which rewards are transferred @param rewards_controller_address The address of the rewards controller @return Tuple containing vector of reward addresses and vector of reward amounts

public fun claim_all_rewards(caller: &signer, assets: vector<address>, to: address, rewards_controller_address: address): (vector<address>, vector<u256>)

Function claim_all_rewards_on_behalf

@notice Claims all rewards on behalf of a user @param caller The signer account of the caller @param assets Vector of asset addresses @param user The address of the user @param to The address to which rewards are transferred @param rewards_controller_address The address of the rewards controller @return Tuple containing vector of reward addresses and vector of reward amounts

public fun claim_all_rewards_on_behalf(caller: &signer, assets: vector<address>, user: address, to: address, rewards_controller_address: address): (vector<address>, vector<u256>)

Function claim_all_rewards_to_self

@notice Claims all rewards and transfers them to the caller @param caller The signer account of the caller @param assets Vector of asset addresses @param rewards_controller_address The address of the rewards controller @return Tuple containing vector of reward addresses and vector of reward amounts

public fun claim_all_rewards_to_self(caller: &signer, assets: vector<address>, rewards_controller_address: address): (vector<address>, vector<u256>)