Skip to main content

LP Staking

InstantiateMsg#

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]pub struct InstantiateMsg {    pub owner: String,    pub nebula_token: String,    pub terraswap_factory: String,}

ExecuteMsg#

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]#[serde(rename_all = "snake_case")]pub enum ExecuteMsg {    Receive(Cw20ReceiveMsg),
    ////////////////////////    /// Owner operations ///    ////////////////////////    UpdateConfig {        owner: Option<String>,    },    RegisterAsset {        asset_token: String,        staking_token: String,    },
    ////////////////////////    /// User operations ///    ////////////////////////    Unbond {        asset_token: String,        amount: Uint128,    },    /// Withdraw pending rewards    Withdraw {        // If the asset token is not given, then all rewards are withdrawn        asset_token: Option<String>,    },    /// Provides liquidity and automatically stakes the LP tokens    AutoStake {        assets: [Asset; 2],        slippage_tolerance: Option<Decimal>,    },    /// Hook to stake the minted LP tokens    AutoStakeHook {        asset_token: String,        staking_token: String,        staker_addr: String,        prev_staking_token_amount: Uint128,    },}

CW20 Hook#

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]#[serde(rename_all = "snake_case")]pub enum Cw20HookMsg {    Bond { asset_token: String },    DepositReward { rewards: Vec<(String, Uint128)> },}

QueryMsg#

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]#[serde(rename_all = "snake_case")]pub enum QueryMsg {    Config {},    PoolInfo {        asset_token: String,    },    RewardInfo {        staker_addr: String,        asset_token: Option<String>,    },}