Liquidate
Liquidates an undercollateralized position by writing off debt and seizing collateral.
Accounts
user_position
Account<UserPosition>
required
The undercollateralized position to liquidate.
collateral_vault
InterfaceAccount<TokenAccount>
required
The pair vault for the collateral token.
debt_vault
InterfaceAccount<TokenAccount>
required
The pair vault for the debt token.
liquidator_collateral_account
InterfaceAccount<TokenAccount>
required
Liquidator’s collateral token account. Will receive liquidation incentive.
The liquidator. Must be a signer.
use anchor_lang::prelude::*;
use omnipair::program::Omnipair;
let accounts = Liquidate {
pair: pair_pda,
user_position: undercollateralized_position_pda,
collateral_vault: token0_vault,
debt_vault: token1_vault,
liquidator_collateral_account: liquidator_token0_account,
liquidator: liquidator.key(),
// ... other accounts
};
let ctx = CpiContext::new(program_id, accounts);
omnipair::cpi::liquidate(ctx)?;
{
"signature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmG5Rk88jH2k9f4w3JHFf7Pjsk3bWqeXrC",
"slot": 123456789
}