5个不稳定版本
新增 0.3.0 | 2024年8月25日 |
---|---|
0.2.0 | 2023年12月16日 |
0.1.2 | 2023年12月15日 |
0.1.1 | 2023年12月14日 |
0.1.0 | 2023年12月14日 |
#7 in #ton
175KB
4.5K SLoC
tonapi-rs
这是一个SDK,它为与TonAPI交互提供全面支持。
功能
- 授权支持:您可以从tonconsole.com获取令牌。
- REST API集成:与TonAPI RESTful端点交互。
- 流式API(SSE、WebSocket):利用服务器发送事件(SSE)和WebSocket协议进行实时数据流。
- 与tonlib-rs类型兼容:TonAddress
使用方法
REST
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = RestApiClientV2::new(Network::Mainnet, None);
let result = client.get_account(ACCOUNT_ID).await.unwrap();
println!("Account balance: {}", result.balance);
Ok(())
}
SSE
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let sse_api = SseApi::new(tonapi::Network::Mainnet, None);
let mut stream = sse_api.transactions_stream(
Some(vec![
"-1:5555555555555555555555555555555555555555555555555555555555555555".to_string(),
]),
None,
);
while let Ok(evt) = stream.next().await {
if let Some(evt) = evt {
println!("Event: {}", evt.tx_hash);
} else {
// Stream ended
break;
}
}
Ok(())
}
WebSocket
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let ws_api = WsApi::new(Network::Mainnet, None);
let mut stream = ws.transactions_stream(Some(vec![AccountOperations {
account: "-1:5555555555555555555555555555555555555555555555555555555555555555".to_string(),
operations: None
}]));
while let Ok(evt) = stream.next().await {
if let Some(evt) = evt {
println!("Event: {}", evt.params.tx_hash);
} else {
// Stream ended
break;
}
}
Ok(())
}
贡献
欢迎对库的贡献!如果您想做出贡献,请随时在GitHub上发起拉取请求。您的贡献将非常受赞赏,并有助于提升整个TON社区SDK的质量。
依赖项
~7–22MB
~350K SLoC