#exchange #trading #kraken #async #api-bindings #api

bin+lib async_kraken

使用 async-std 的 Kraken 交易所 REST API 的最小封装

3 个版本

0.1.3 2021 年 5 月 28 日
0.1.2 2021 年 5 月 27 日
0.1.1 2021 年 5 月 27 日
0.1.0 2021 年 5 月 27 日

#24#kraken


async_kraken_ws 中使用

Apache-2.0

20KB
178

这是一个使用 Kraken 交易所 REST API 的最小接口,并使用 async-std 运行时。

作为 API 的最小接口,只有一个方法,该方法接受端点名称和作为 Value 对象的参数 serde_json

当查询私有端点时,此库将处理并向 Kraken 正确发送请求。

先决条件

要使用私有端点,您需要生成一个 API-Key 和一个 API-Secret 以验证所需的 Kraken 账户。
如何生成 API 密钥对?

使用

根据您的需求使用 new()with_credentials(key, secret) 创建 KrakenClient 对象。

然后调用 api_request(endpoint_name, payload)。它将返回一个 JSON,您可以处理或错误信息。您可以在 API 文档 中了解每个端点的有效负载和返回的 JSON。

可用的 公共 端点名称
时间系统状态资产可交易资产对行情OHLC深度交易价差

可用的 私有 端点名称
用户数据
余额交易余额未成交订单已成交订单查询订单交易历史查询交易未平仓头寸账本查询账本交易量添加导出导出状态检索导出删除导出

用户交易
添加订单 取消订单 取消所有订单 取消所有订单后

用户资金
存款方式存款地址存款状态取款信息取款取款状态取消取款钱包转账

WebSocket身份验证
获取WebSocket令牌.

示例

use async_kraken::client::KrakenClient;

fn get_keys() -> (String, String) {
    let content = std::fs::read_to_string("key").expect("File not found");
    let lines: Vec<&str> = content.lines().collect();

    let key = String::from(lines[0]);
    let secret = String::from(lines[1]);

    (key, secret)
}

#[async_std::main]
async fn main() {
    // # Only public endpoints
    // let k = KrakenClient::new();

    // # Public and private enpoints
    let (key, secret) = get_keys();
    let k = KrakenClient::with_credentials(key, secret);

    match k.api_request("Time", serde_json::json!({})).await {
        Ok(json) => println!("{:?}", json),
        Err(e) => println!("{:?}", e),
    };

    match k.api_request("OHLC", serde_json::json!({"pair":"doteur", "interval":30, "since":0})).await
    {
        Ok(json) => println!("{:?}", json),
        Err(e) => println!("{:?}", e),
    };

    match k.api_request("Balance", serde_json::json!({})).await {
        Ok(json) => println!("{:?}", json),
        Err(e) => println!("{:?}", e),
    };
}

免责声明

本软件不提供任何形式的保证。
您是您收益或亏损的唯一责任人。

依赖关系

~15–30MB
~537K SLoC