Buy a listed domain — atomic: USDC -> seller, domain -> buyer
fn buy(
env: soroban_sdk::Env,
buyer: soroban_sdk::Address,
node: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
List a domain for sale on the public marketplace
fn list(
env: soroban_sdk::Env,
seller: soroban_sdk::Address,
node: soroban_sdk::BytesN<32>,
price: i128,
duration_days: u32,
) -> Result<(), soroban_sdk::Error>
Cancel a listing (seller only)
fn cancel(
env: soroban_sdk::Env,
seller: soroban_sdk::Address,
node: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn upgrade(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
new_wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn get_offer(
env: soroban_sdk::Env,
offer_id: soroban_sdk::BytesN<32>,
) -> Result
fn set_admin(
env: soroban_sdk::Env,
current_admin: soroban_sdk::Address,
new_admin: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
fn extend_ttl(env: soroban_sdk::Env)
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
registry: soroban_sdk::Address,
vault: soroban_sdk::Address,
usdc_token: soroban_sdk::Address,
operator_wallet: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
Make an offer on a domain (buyer submits)
fn make_offer(
env: soroban_sdk::Env,
buyer: soroban_sdk::Address,
node: soroban_sdk::BytesN<32>,
price: i128,
duration_days: u32,
) -> Result, soroban_sdk::Error>
fn get_listing(
env: soroban_sdk::Env,
node: soroban_sdk::BytesN<32>,
) -> Result
Accept an offer (seller accepts buyer's offer)
fn accept_offer(
env: soroban_sdk::Env,
seller: soroban_sdk::Address,
offer_id: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn total_volume(env: soroban_sdk::Env) -> i128
Constructor (Protocol 22+): Called atomically during CreateContractV2.
fn __constructor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
registry: soroban_sdk::Address,
vault: soroban_sdk::Address,
usdc_token: soroban_sdk::Address,
operator_wallet: soroban_sdk::Address,
)
Execute a private trade (signed proposal, 0.5% fee)
fn accept_private_trade(
env: soroban_sdk::Env,
buyer: soroban_sdk::Address,
proposal: TradeProposal,
) -> Result<(), soroban_sdk::Error>