示例机器人
read_markets — 只读市场发现
cargo run --example read_marketsuse strike_sdk::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
tracing_subscriber::fmt::init();
let client = StrikeClient::new(StrikeConfig::bsc_mainnet()).build()?;
// Fetch markets from indexer
let markets = client.indexer().get_markets().await?;
println!("found {} markets", markets.len());
for market in &markets {
println!(
" factory {} | orderbook {:?} | status: {} | expiry: {} | batch_interval: {}s",
market.factory_market_id,
market.orderbook_market_id,
market.status,
market.expiry_time,
market.batch_interval,
);
}
// Read on-chain state
let active_count = client.markets().active_market_count().await?;
println!("active markets: {active_count}");
// Get orderbook for first active market using the tradable OrderBook ID
let active_markets: Vec<_> = markets.iter().filter(|m| m.status == "active").collect();
if let Some(market) = active_markets.first() {
let market_id = market.tradable_market_id()?;
let ob = client.indexer().get_orderbook(market_id).await?;
println!("\norderbook for factory market {} (ob {}):", market.factory_market_id, market_id);
for level in &ob.bids {
println!(" bid: tick {} | {} lots", level.tick, level.lots);
}
for level in &ob.asks {
println!(" ask: tick {} | {} lots", level.tick, level.lots);
}
}
Ok(())
}redeem_backlog_check — 赎回前查找可赎回仓位
place_orders — 完整交易生命周期
active_market_quote — 查找活跃市场并报价
atomic_requote — 在一笔交易中替换现有报价
track_order_lifecycle — Accepted/Live 与 Filled
stream_events — 事件驱动架构
simple_bot — 最小做市 Bot 骨架
Pattern
重要性
构建真实 Bot 的建议
Last updated

