lotus_dex_std/
lp_common.rs

1use crate::coin::is_factory_token;
2use cosmwasm_std::{ensure, Addr, Coin, CosmosMsg, StdError, StdResult, Uint128};
3use lotus_tokenfactory::{burn, mint};
4
5pub const MINIMUM_LIQUIDITY_AMOUNT: Uint128 = Uint128::new(1_000u128);
6
7/// Creates the Mint LP message
8#[allow(unused_variables)]
9pub fn mint_lp_token_msg(
10    liquidity_asset: String,
11    recipient: &Addr,
12    sender: &Addr,
13    amount: Uint128,
14) -> StdResult<CosmosMsg> {
15    ensure!(
16        is_factory_token(liquidity_asset.as_str()),
17        StdError::generic_err("Invalid LP token")
18    );
19
20    Ok(mint::mint(
21        sender.clone(),
22        Coin {
23            denom: liquidity_asset,
24            amount,
25        },
26        recipient.clone().into_string(),
27    ))
28}
29
30/// Creates the Burn LP message
31#[allow(unused_variables)]
32pub fn burn_lp_asset_msg(
33    liquidity_asset: String,
34    sender: Addr,
35    amount: Uint128,
36) -> StdResult<CosmosMsg> {
37    ensure!(
38        is_factory_token(liquidity_asset.as_str()),
39        StdError::generic_err("Invalid LP token")
40    );
41
42    Ok(burn::burn(
43        sender.clone(),
44        Coin {
45            denom: liquidity_asset,
46            amount,
47        },
48        sender.into_string(),
49    ))
50}