Crate morpho_rs_api

Crate morpho_rs_api 

Source
Expand description

Morpho Vaults Rust API Library

This crate provides a Rust client for querying Morpho V1 (MetaMorpho) and V2 vaults via their GraphQL API.

§Example

use morpho_rs_api::{VaultClient, VaultV1Client, VaultV2Client, Chain, VaultFiltersV1};

#[tokio::main]
async fn main() -> Result<(), morpho_rs_api::ApiError> {
    // Use separate clients for V1 and V2
    let v1_client = VaultV1Client::new();
    let v2_client = VaultV2Client::new();

    // Get whitelisted V1 vaults on Ethereum
    let v1_vaults = v1_client.get_whitelisted_vaults(Some(Chain::EthMainnet)).await?;

    // Get V2 vaults on Base
    let v2_vaults = v2_client.get_vaults_by_chain(Chain::BaseMainnet).await?;

    // Or use the combined client for unified queries
    let client = VaultClient::new();
    let all_vaults = client.get_whitelisted_vaults(Some(Chain::EthMainnet)).await?;

    Ok(())
}

Re-exports§

pub use client::ClientConfig;
pub use client::VaultClient;
pub use client::VaultV1Client;
pub use client::VaultV2Client;
pub use client::DEFAULT_API_URL;
pub use error::ApiError;
pub use error::Result;
pub use filters::VaultFiltersV1;
pub use filters::VaultFiltersV2;
pub use types::Asset;
pub use types::Chain;
pub use types::MarketInfo;
pub use types::UserAccountOverview;
pub use types::UserMarketPosition;
pub use types::UserState;
pub use types::UserVaultPositions;
pub use types::UserVaultV1Position;
pub use types::UserVaultV2Position;
pub use types::Vault;
pub use types::VaultAdapter;
pub use types::VaultAllocation;
pub use types::VaultAllocator;
pub use types::VaultInfo;
pub use types::VaultPositionState;
pub use types::VaultReward;
pub use types::VaultStateV1;
pub use types::VaultV1;
pub use types::VaultV2;
pub use types::VaultV2Warning;
pub use types::VaultVersion;
pub use types::VaultWarning;

Modules§

client
Vault client implementations for V1 and V2 vaults.
error
Error types for the Morpho API client.
filters
Filter builders for vault queries.
queries
GraphQL query definitions.
types
Type definitions for the Morpho API.

Structs§

VaultV1TransactionClient
Client for executing transactions against V1 (MetaMorpho) vaults.
VaultV2TransactionClient
Client for executing transactions against V2 vaults.