Contract cb28531b98c4badf845da8b01832ab7f251e89459e54bc24ff9de2b1b837c3bf

← Back to Index 📥 Download WASM

Meta

rssdkver 23.5.3#d3e1ab2424388b10893b796b0c8e405c5edd03d2
rsver 1.94.0

Instances

  • CC3TLRWCCBXSFHBWCXBXMJ2WAKRZQZ2T2TMT7O3RWRDDBWQBTHYRATCY

Interface

Get the pool address.

fn get_pool(env: soroban_sdk::Env) -> soroban_sdk::Address

Update the Blend pool address. Admin only.

fn set_pool(env: soroban_sdk::Env, new_pool: soroban_sdk::Address)

Initialize the adapter with admin and Blend pool address. Can only be called once.

fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    pool: soroban_sdk::Address,
)

Get all position values for an account from a real Blend pool.

Called by PositionRegistry as: adapter.get_all_pos(account, oracle_registry, accounting_token)

Steps:

  1. Call pool.get_reserve_list() → Vec<Address> (index → asset)
  2. Call pool.get_positions(account) → Positions { collateral, supply, liabilities }
  3. For each (index, b_tokens) in supply + collateral: a. Get asset = reserve_list[index] b. Call pool.get_reserve(asset) → b_rate, decimals c. Convert: underlying = b_tokens * b_rate / RATE_SCALAR d. Price via oracle_registry.get_price_pair(asset, accounting_token)
  4. For each (index, d_tokens) in liabilities: same with d_rate, is_debt=true
  5. Returns Vec<PositionValue>
fn get_all_pos(
    env: soroban_sdk::Env,
    account: soroban_sdk::Address,
    oracle_registry: soroban_sdk::Address,
    accounting_token: soroban_sdk::Address,
) -> soroban_sdk::Vec

Transfer admin to a new address. Admin only. (B7)

Required for multisig key rotation without redeploying the adapter. Emits an AdminChanged event for on-chain auditability.

fn transfer_admin(env: soroban_sdk::Env, new_admin: soroban_sdk::Address)

Return adapter info: (protocol_id, name, version).

fn get_adapter_info(
    env: soroban_sdk::Env,
) -> (soroban_sdk::Symbol, soroban_sdk::Symbol, u32)

Imports

WebAssembly Text (WAT) ▶