Collect reward
Function
clmmpool/sources/pool.move
/// Collect reward for a given position.
///
/// # Arguments
///
/// _ config - A reference to the GlobalConfig object.
/// _ pool - A mutable reference to the Pool object.
/// _ position_nft - A reference to the Position object for which to collect rewards.
/// _ vault - A mutable reference to the RewarderGlobalVault object.
/// _ recalculate - A boolean indicating whether to recalculate the reward rate.
/// _ clock - A reference to the Clock object used to determine the current time.
///
/// # Generic Type Parameters
///
/// _ CoinTypeA - The type of the first coin in the pool.
/// _ CoinTypeB - The type of the second coin in the pool.
/// \* CoinTypeC - The type of the reward coin.
///
/// # Returns
///
/// Returns the collected reward as a Balance of type CoinTypeC.
public fun collect_reward<CoinTypeA, CoinTypeB, CoinTypeC>(
config: &GlobalConfig,
pool: &mut Pool<CoinTypeA, CoinTypeB>,
position_nft: &Position,
vault: &mut RewarderGlobalVault,
recalculate: bool,
clock: &Clock
): Balance<CoinTypeC> {}
Example
public entry fun collect_reward<CoinTypeA, CoinTypeB, CoinTypeC>(
config: &GlobalConfig,
pool: &mut Pool<CoinTypeA, CoinTypeB>,
position_nft: &mut Position,
vault: &mut RewarderGlobalVault,
clock: &Clock,
ctx: &mut TxContext,
) {
let reward_balance = pool::collect_reward<CoinTypeA, CoinTypeB, CoinTypeC>(
config,
pool,
position_nft,
vault,
true,
clock
);
send_coin(coin::from_balance(reward_balance, ctx), tx_context::sender(ctx));
}
Last updated