pub struct VaultV2Client { /* private fields */ }Expand description
Client for querying V2 vaults.
Implementations§
Source§impl VaultV2Client
impl VaultV2Client
Sourcepub fn with_config(config: ClientConfig) -> Self
pub fn with_config(config: ClientConfig) -> Self
Create a new V2 vault client with custom configuration.
Sourcepub async fn get_vaults(
&self,
filters: Option<VaultFiltersV2>,
) -> Result<Vec<VaultV2>>
pub async fn get_vaults( &self, filters: Option<VaultFiltersV2>, ) -> Result<Vec<VaultV2>>
Get V2 vaults with optional filters.
Sourcepub async fn get_vault(
&self,
address: &str,
chain: NamedChain,
) -> Result<VaultV2>
pub async fn get_vault( &self, address: &str, chain: NamedChain, ) -> Result<VaultV2>
Get a single V2 vault by address and chain.
Sourcepub async fn get_vaults_by_chain(
&self,
chain: NamedChain,
) -> Result<Vec<VaultV2>>
pub async fn get_vaults_by_chain( &self, chain: NamedChain, ) -> Result<Vec<VaultV2>>
Get V2 vaults on a specific chain.
Sourcepub async fn get_whitelisted_vaults(
&self,
chain: Option<NamedChain>,
) -> Result<Vec<VaultV2>>
pub async fn get_whitelisted_vaults( &self, chain: Option<NamedChain>, ) -> Result<Vec<VaultV2>>
Get whitelisted (listed) V2 vaults.
Sourcepub async fn get_vaults_with_options(
&self,
options: VaultQueryOptionsV2,
) -> Result<Vec<VaultV2>>
pub async fn get_vaults_with_options( &self, options: VaultQueryOptionsV2, ) -> Result<Vec<VaultV2>>
Get V2 vaults with query options (filters, ordering, and limit).
This method provides full control over the query parameters including ordering by various fields like APY, total assets, liquidity, etc.
Note: Asset filtering (by symbol or address) is done client-side since the Morpho V2 API doesn’t support server-side asset filtering.
§Example
use morpho_rs_api::{VaultV2Client, VaultQueryOptionsV2, VaultFiltersV2, VaultOrderByV2, OrderDirection, NamedChain};
#[tokio::main]
async fn main() -> Result<(), morpho_rs_api::ApiError> {
let client = VaultV2Client::new();
// Get top 10 USDC vaults by APY on Ethereum
let options = VaultQueryOptionsV2::new()
.filters(VaultFiltersV2::new()
.chain(NamedChain::Mainnet))
.order_by(VaultOrderByV2::NetApy)
.order_direction(OrderDirection::Desc)
.asset_symbols(["USDC"]) // Client-side filtering
.limit(10);
let vaults = client.get_vaults_with_options(options).await?;
Ok(())
}Sourcepub async fn get_top_vaults_by_apy(
&self,
limit: i64,
filters: Option<VaultFiltersV2>,
) -> Result<Vec<VaultV2>>
pub async fn get_top_vaults_by_apy( &self, limit: i64, filters: Option<VaultFiltersV2>, ) -> Result<Vec<VaultV2>>
Get top N V2 vaults ordered by APY (highest first).
§Example
use morpho_rs_api::{VaultV2Client, VaultFiltersV2, NamedChain};
#[tokio::main]
async fn main() -> Result<(), morpho_rs_api::ApiError> {
let client = VaultV2Client::new();
// Get top 10 vaults by APY on Ethereum
let filters = VaultFiltersV2::new().chain(NamedChain::Mainnet);
let vaults = client.get_top_vaults_by_apy(10, Some(filters)).await?;
Ok(())
}Sourcepub async fn get_vaults_by_asset(
&self,
asset_symbol: &str,
chain: Option<NamedChain>,
) -> Result<Vec<VaultV2>>
pub async fn get_vaults_by_asset( &self, asset_symbol: &str, chain: Option<NamedChain>, ) -> Result<Vec<VaultV2>>
Get V2 vaults for a specific deposit asset.
Note: This filtering is done client-side since the Morpho V2 API doesn’t support server-side asset filtering.
§Example
use morpho_rs_api::{VaultV2Client, NamedChain};
#[tokio::main]
async fn main() -> Result<(), morpho_rs_api::ApiError> {
let client = VaultV2Client::new();
// Get all USDC vaults
let vaults = client.get_vaults_by_asset("USDC", None).await?;
Ok(())
}Trait Implementations§
Source§impl Clone for VaultV2Client
impl Clone for VaultV2Client
Source§fn clone(&self) -> VaultV2Client
fn clone(&self) -> VaultV2Client
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VaultV2Client
impl Debug for VaultV2Client
Auto Trait Implementations§
impl Freeze for VaultV2Client
impl !RefUnwindSafe for VaultV2Client
impl Send for VaultV2Client
impl Sync for VaultV2Client
impl Unpin for VaultV2Client
impl !UnwindSafe for VaultV2Client
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more