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, and executing on-chain transactions.

§Example

use morpho_rs_api::{MorphoClient, MorphoClientConfig, NamedChain};
use alloy::primitives::{Address, U256};

#[tokio::main]
async fn main() -> Result<(), morpho_rs_api::ApiError> {
    // API-only client (no transactions)
    let client = MorphoClient::new();
    let vaults = client.get_vaults_by_chain(NamedChain::Mainnet).await?;

    // Full client with transaction support
    let config = MorphoClientConfig::new()
        .with_rpc_url("https://eth.llamarpc.com")
        .with_private_key("0x...");
    let client = MorphoClient::with_config(config)?;

    // V1 vault operations using bound signer address
    let vault: Address = "0x...".parse().unwrap();
    let balance = client.vault_v1()?.balance(vault).await?;

    // Approve and deposit
    let amount = U256::from(1000000);
    client.vault_v1()?.approve(vault, amount).await?;
    client.vault_v1()?.deposit(vault, amount).await?;

    Ok(())
}

Re-exports§

pub use client::ClientConfig;
pub use client::MorphoApiClient;
pub use client::MorphoClient;
pub use client::MorphoClientConfig;
pub use client::VaultV1Client;
pub use client::VaultV1Operations;
pub use client::VaultV2Client;
pub use client::VaultV2Operations;
pub use client::DEFAULT_API_URL;
pub use error::ApiError;
pub use error::Result;
pub use filters::VaultFiltersV1;
pub use filters::VaultFiltersV2;
pub use filters::VaultQueryOptionsV1;
pub use filters::VaultQueryOptionsV2;
pub use types::chain_from_id;
pub use types::chain_serde;
pub use types::Asset;
pub use types::MarketInfo;
pub use types::OrderDirection;
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::VaultOrderByV1;
pub use types::VaultOrderByV2;
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;
pub use types::SUPPORTED_CHAINS;

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.

Enums§

NamedChain
An Ethereum EIP-155 chain.