C — vòng thuần Soroban khép về asset, lượng vào own + borrow: own lấy từ vốn của E,
borrow vay flash Blend phí 0 (0 = không chạm lender). Lãi = số dư asset của E tăng thêm, ≥
min_profit, chuyển về admin và trả về.
fn run(
env: soroban_sdk::Env,
target_ledger: u32,
asset: soroban_sdk::Address,
own: i128,
borrow: i128,
steps: soroban_sdk::Vec,
min_profit: i128,
) -> Result
Nối instance kia. Admin, một lần: đổi peer = deploy mới.
fn link(
env: soroban_sdk::Env,
peer: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
fn peer(env: soroban_sdk::Env) -> Option
Lane đọc lúc boot để so với env (operator, lender, router, entry).
fn config(env: soroban_sdk::Env) -> Config
Callback 2/2 — pool Blend gọi sau khi chuyển amount cho ta (moderc3156::exec_op). Xác thực từ
frame của ta (plan một lần do peer đặt, pool đã cấu hình là người gọi trực tiếp), không từ tham
số.
fn exec_op(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
token: soroban_sdk::Address,
amount: i128,
fee: i128,
) -> Result<(), soroban_sdk::Error>
fn version(env: soroban_sdk::Env) -> u32
Callback 1/2 — chỉ peer (E) đặt được, trong tx của chính nó.
fn set_plan(env: soroban_sdk::Env, plan: Plan) -> Result<(), soroban_sdk::Error>
Lối ra duy nhất của tiền. Chỉ admin, luôn về admin, không có tham số đích. Rút vốn tự cấp của E và cứu token bị gửi nhầm đều đi đường này.
fn withdraw(env: soroban_sdk::Env, token: soroban_sdk::Address, amount: i128)
E gọi ngay sau flash_loan: plan phải đã được exec_op lấy đi. Chỉ peer.
fn plan_used(env: soroban_sdk::Env) -> Result<(), soroban_sdk::Error>
fn capabilities(env: soroban_sdk::Env) -> u32
Xoay khoá nóng. Admin.
fn set_operator(env: soroban_sdk::Env, operator: soroban_sdk::Address)
fn __constructor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
operator: soroban_sdk::Address,
lender: soroban_sdk::Address,
router: soroban_sdk::Address,
entry: bool,
)