1个不稳定版本
0.1.0 | 2024年1月13日 |
---|
#189 in #request-response
43KB
860 行
alchemy-api
Alchemy增强API的高级别绑定,用Rust编写。
Alchemy提供了一套web3 API,极大地简化并优化了常见的请求模式,使开发者工作更轻松。
使用Alchemy不断扩大的增强API套件和web3开发者工具,以前所未有的方式访问区块链!通过用户查询NFT,追踪交易,在您的dApp中获取实时通知,更快地调试智能合约,并使用Alchemy支持的服务端点做更多事情。
此crate使用reqwest crate提供了一个方便的高级HTTP客户端,用于与Alchemy进行请求和响应,以及使用serde进行序列化和反序列化到适当的数据格式。
示例
让我们从创建一个AddressActivity
webhook开始。
use alchemy_api::{
alchemy::Alchemy,
api::notify::{CreateWebhook, WebhookResponse, WebhookType},
cores::query::Query,
};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = Alchemy::new(&std::env::var("ALCHEMY_TOKEN")?);
// Create a simple endpoint.
let endpoint = CreateWebhook::builder()
.webhook_url(std::env::var("WEBHOOK_URL")?)
.webhook_type(WebhookType::AddressActivity)
.addresses(vec![std::env::var("ADDRESS")?.parse()?])
.build()?;
println!("{:?}", endpoint);
// Call the endpoint. The return type decides how to represent the value.
let webhook: WebhookResponse = endpoint.query(&client).await?;
println!("webhook: {:?}", webhook);
anyhow::Ok(())
}
有关更多示例,请参阅examples/
目录。
依赖关系
~18–34MB
~542K SLoC