10 个版本

0.2.5 2024 年 8 月 15 日
0.2.4 2024 年 8 月 8 日
0.2.3 2024 年 7 月 29 日
0.2.1 2024 年 6 月 13 日
0.1.2 2024 年 1 月 23 日

#199 in 魔法豆

Download history 5/week @ 2024-06-03 253/week @ 2024-06-10 74/week @ 2024-06-17 34/week @ 2024-06-24 188/week @ 2024-07-01 44/week @ 2024-07-08 10/week @ 2024-07-15 4/week @ 2024-07-22 208/week @ 2024-07-29 126/week @ 2024-08-05

每月 351 次下载

MIT/Apache

2.5MB
39K SLoC

Vertex Protocol Rust SDK

Crates.io

这是 Vertex Protocol API 的 Rust SDK。

文档

快速入门

在您想要交互的链上实例化一个客户端。例如,使用 ClientMode::Prod 使用 Arbitrum,使用 ClientMode::BlastProd 使用 Blast。执行时需要签名者(私钥)。查询不需要签名者。对于具有许多参数的请求,使用客户端构建和发送请求。对于简单的查询(1-2 个参数),如 get_market_price,可以直接从客户端调用。

请参阅 basic_usage.rs 以获取包括将资金存入 Vertex 的端到端示例。

use vertex_sdk::prelude::*;

async fn main() {
    let client = VertexClient::new(ClientMode::Prod)
        .with_signer(private_key())
        .await
        .unwrap();

    const BTC_PERP: u32 = 2;

    // query market data
    let market_price = client.get_market_price(BTC_PERP).await.unwrap();

    // place orders
    let place_order_response = client
        .place_order_builder()
        .product_id(BTC_PERP)
        .amount(to_i128_x18(1))
        .price_x18(market_price.ask_x18)
        .execute()
        .await
        .unwrap();
    
    let digest = place_order_response.unwrap().digest;

    // cancel orders
    client
        .cancellation_builder()
        .digests(vec![digest])
        .product_ids(vec![BTC_PERP])
        .execute()
        .await
        .unwrap();
}

安装

将以下行添加到您的 Cargo.toml 文件中

[dependencies]
vertex_sdk = "0.2.5"

使用方法

请参阅 示例sanity 目录。

本地运行

运行 sanity 检查

  • cargo run -- --execute-sanity:运行执行时的 sanity 检查。
  • cargo run -- --query-sanity:运行引擎查询的 sanity 检查。
  • cargo run -- --indexer-sanity:运行索引查询的健壮性检查。

依赖项

~28–44MB
~830K SLoC