Add Collateral
Adds collateral to a user’s position, enabling borrowing against it.
Accounts
user_position
Account<UserPosition>
required
The user’s position account. Will be created if it doesn’t exist. PDA derived from [POSITION_SEED_PREFIX, pair, user].
collateral_vault
InterfaceAccount<TokenAccount>
required
The pair vault for the collateral token. Must be owned by pair PDA.
user_collateral_token_account
InterfaceAccount<TokenAccount>
required
User’s collateral token account. Must have sufficient balance.
The user adding collateral. Must be a signer.
Arguments
Amount of collateral to add. Must be greater than 0.
use anchor_lang::prelude::*;
use omnipair::program::Omnipair;
let add_collateral_args = AdjustPositionArgs {
amount: 1000 * 10u64.pow(collateral_token_decimals),
};
let accounts = AddCollateral {
pair: pair_pda,
user_position: user_position_pda,
collateral_vault: token0_vault,
user_collateral_token_account: user_token0_account,
user: user.key(),
// ... other accounts
};
let ctx = CpiContext::new(program_id, accounts);
omnipair::cpi::add_collateral(ctx, add_collateral_args)?;
{
"signature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmG5Rk88jH2k9f4w3JHFf7Pjsk3bWqeXrC",
"slot": 123456789
}