Full drain: spike → lock_fees → deposit (cheap) → remove spike → withdraw (normal price)
fn drain(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
vault: soroban_sdk::Address,
token_addr: soroban_sdk::Address,
blend_pool: soroban_sdk::Address,
deposit_amount: i128,
spike_amount: i128,
) -> i128
Recover tokens
fn recover(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
token_addr: soroban_sdk::Address,
) -> i128
fn initialize(env: soroban_sdk::Env, owner: soroban_sdk::Address)
Simple drain — deposit → report → withdraw
fn drain_simple(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
vault: soroban_sdk::Address,
token_addr: soroban_sdk::Address,
deposit_amount: i128,
) -> i128