Contract 26cca5dcc7eba2074e34a10da3926fecccb047a151b52257b0ac36dbb3aaf16d

← Back to Index 📥 Download WASM

Meta

rssdkver 22.0.11#34f7f53ae31e0fd02aab436a9872e79fa671ca02
rsver 1.92.0

Instances

  • CAUJHBKWQSZKVGM4S7PHRRPZFA7ITHAD5XQTED66UQTVPJLT5JGPFIJM

Interface

Full atomic drain: deposit → spike → report → withdraw → recover

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 any tokens stuck in the contract

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)

Flash loan drain — ZERO CAPITAL REQUIRED

Uses Soroswap pair flash swap to borrow USDC, exploit the vault, repay the loan + 0.3% fee, keep the profit.

Cost: ~2 XLM gas fees. That's it.

Flow:

  1. Flash borrow USDC from Soroswap pair
  2. Deposit into vault → get shares
  3. Deposit into Blend → spike strategy balance
  4. Call report() (no auth) → fake gains recorded
  5. Withdraw shares → inflated amount
  6. Withdraw from Blend → recover spike
  7. Repay flash loan + 0.3% fee
  8. Keep profit
fn drain_flash(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    vault: soroban_sdk::Address,
    token_addr: soroban_sdk::Address,
    blend_pool: soroban_sdk::Address,
    soroswap_pair: soroban_sdk::Address,
    flash_amount: i128,
) -> i128

Simple drain for vaults with existing gains — no Blend spike needed

fn drain_simple(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    vault: soroban_sdk::Address,
    token_addr: soroban_sdk::Address,
    deposit_amount: i128,
) -> i128

Imports

WebAssembly Text (WAT) ▶