Remove Collateral
Removes collateral from a user’s position. The position must remain properly collateralized after removal.
Accounts
user_position
Account<UserPosition>
required
The user’s position account.
collateral_vault
InterfaceAccount<TokenAccount>
required
The pair vault for the collateral token.
user_collateral_token_account
InterfaceAccount<TokenAccount>
required
User’s collateral token account. Will receive removed collateral.
The user removing collateral. Must be a signer.
Arguments
Amount of collateral to remove. Must be greater than 0.
use anchor_lang::prelude::*;
use omnipair::program::Omnipair;
let remove_collateral_args = AdjustPositionArgs {
amount: 200 * 10u64.pow(collateral_token_decimals),
};
let accounts = CommonAdjustPosition {
pair: pair_pda,
user_position: user_position_pda,
token_vault: collateral_vault,
user_token_account: user_collateral_token_account,
user: user.key(),
// ... other accounts
};
let ctx = CpiContext::new(program_id, accounts);
omnipair::cpi::remove_collateral(ctx, remove_collateral_args)?;
{
"signature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmG5Rk88jH2k9f4w3JHFf7Pjsk3bWqeXrC",
"slot": 123456789
}