5 releases

0.0.5 Jun 14, 2024
0.0.4 Jun 14, 2024
0.0.3 Apr 3, 2024
0.0.2 Mar 25, 2024
0.0.1 Mar 25, 2024

#1272 in #api-client

MIT license

255KB
5.5K SLoC

Midgard

Consumer information relating to swaps, pools, and volume. Midgard returns time-series information regarding the THORChain network, such as volume, pool information, users, liquidity providers and more. It also proxies to THORNode to reduce burden on the network. Runs on every node.

midgard-rs

This crate aims to provide fully typed client for the THORChain Midgard API.

  • By default it references the https://midgard.thorswap.net/v2/ base url but this can be changed by creating a new Configuration object and passing it to the Midgard::with_config() method.
  • The client is rate limited to 1 request per second by default but this can be changed by creating a new Configuration object and passing it to the Midgard::with_config() method.

Basic Usage

use midgard::Midgard;

#[tokio::main]
async fn main() {
    let midgard = Midgard::new();
    let address = "thor102y0m3uptg0vvudeyh00r2fnz70wq7d8y7mu2g";
    let balance = midgard.get_balance(address, None, None).await.unwrap();
    println!("coins: {:?}", balance.get_coins());
}

Configuration

use midgard::Midgard;
use midgard::Configuration;

#[tokio::main]
async fn main() {
    let config = Configuration::new("https://midgard.ninerealms.com/v2/".to_string(), 1000); // base_url, rate_limit_ms
    let midgard = Midgard::with_config(config);
    let address = "thor102y0m3uptg0vvudeyh00r2fnz70wq7d8y7mu2g";
    let balance = midgard.get_balance(address, None, None).await.unwrap(); // address, timestamp, height
    println!("coins: {:?}", balance.get_coins());
}

Dependencies

~8–19MB
~279K SLoC