#web3 #alchemy #api-bindings #api #request-response

alchemy-api

Alchemy增强API的高级别绑定,用Rust编写

1个不稳定版本

0.1.0 2024年1月13日

#189 in #request-response

GPL-3.0-or-later

43KB
860

alchemy-api

Crates.io Documentation codecov Build Status

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