Full drain: deposit+invest (spikes Blend) → report (locks fake gains) → withdraw No external flash loan needed — the vault's own invest mechanism IS the spike
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