Step 2: Redeem Principal (Only after Maturity)
fn redeem_pt(env: soroban_sdk::Env, user: soroban_sdk::Address, amount_pt: i128)
NEW: Added oracle_address to the initialization so the contract knows where to pull the index from.
fn initialize(
env: soroban_sdk::Env,
stusdc_address: soroban_sdk::Address,
maturity_timestamp: u64,
oracle_address: soroban_sdk::Address,
)
Step 1: Wrap & Split
fn mint_split(env: soroban_sdk::Env, user: soroban_sdk::Address, amount: i128)
Step 3: Claim Yield
fn claim_yield(env: soroban_sdk::Env, user: soroban_sdk::Address)
fn transfer_pt(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
)
fn transfer_yt(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
)
fn get_pt_balance(env: soroban_sdk::Env, user: soroban_sdk::Address) -> i128
fn get_yt_balance(env: soroban_sdk::Env, user: soroban_sdk::Address) -> i128
Step 4: Early Exit (Redeem with both PT and YT)
fn combine_and_redeem(env: soroban_sdk::Env, user: soroban_sdk::Address, amount: i128)
fn get_total_pt_supply(env: soroban_sdk::Env) -> i128
fn get_total_yt_supply(env: soroban_sdk::Env) -> i128