pub trait Erc4626Client {
Show 14 methods
// Required methods
fn provider(
&self,
) -> &FillProvider<JoinFill<JoinFill<Identity, JoinFill<GasFiller, JoinFill<BlobGasFiller, JoinFill<NonceFiller, ChainIdFiller>>>>, WalletFiller<EthereumWallet>>, RootProvider>;
fn signer_address(&self) -> Address;
// Provided methods
async fn get_asset(&self, vault: Address) -> Result<Address, ContractError> { ... }
async fn total_assets(
&self,
vault: Address,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn convert_to_shares(
&self,
vault: Address,
assets: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn convert_to_assets(
&self,
vault: Address,
shares: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn max_deposit(
&self,
vault: Address,
receiver: Address,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn max_withdraw(
&self,
vault: Address,
owner: Address,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn max_mint(
&self,
vault: Address,
receiver: Address,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn max_redeem(
&self,
vault: Address,
owner: Address,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn preview_deposit(
&self,
vault: Address,
assets: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn preview_mint(
&self,
vault: Address,
shares: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn preview_withdraw(
&self,
vault: Address,
assets: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError> { ... }
async fn preview_redeem(
&self,
vault: Address,
shares: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError> { ... }
}Expand description
Trait for ERC-4626 vault client functionality.
Provides default implementations for all ERC-4626 view functions.
Implementors only need to provide provider() and signer_address().
Required Methods§
Sourcefn provider(
&self,
) -> &FillProvider<JoinFill<JoinFill<Identity, JoinFill<GasFiller, JoinFill<BlobGasFiller, JoinFill<NonceFiller, ChainIdFiller>>>>, WalletFiller<EthereumWallet>>, RootProvider>
fn provider( &self, ) -> &FillProvider<JoinFill<JoinFill<Identity, JoinFill<GasFiller, JoinFill<BlobGasFiller, JoinFill<NonceFiller, ChainIdFiller>>>>, WalletFiller<EthereumWallet>>, RootProvider>
Returns a reference to the HTTP provider.
Sourcefn signer_address(&self) -> Address
fn signer_address(&self) -> Address
Returns the signer’s address.
Provided Methods§
Sourceasync fn get_asset(&self, vault: Address) -> Result<Address, ContractError>
async fn get_asset(&self, vault: Address) -> Result<Address, ContractError>
Get the underlying asset address of a vault.
Sourceasync fn total_assets(
&self,
vault: Address,
) -> Result<Uint<256, 4>, ContractError>
async fn total_assets( &self, vault: Address, ) -> Result<Uint<256, 4>, ContractError>
Get the total assets managed by a vault.
Convert an asset amount to shares.
Sourceasync fn convert_to_assets(
&self,
vault: Address,
shares: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError>
async fn convert_to_assets( &self, vault: Address, shares: Uint<256, 4>, ) -> Result<Uint<256, 4>, ContractError>
Convert a share amount to assets.
Sourceasync fn max_deposit(
&self,
vault: Address,
receiver: Address,
) -> Result<Uint<256, 4>, ContractError>
async fn max_deposit( &self, vault: Address, receiver: Address, ) -> Result<Uint<256, 4>, ContractError>
Get the maximum deposit amount for a receiver.
Sourceasync fn max_withdraw(
&self,
vault: Address,
owner: Address,
) -> Result<Uint<256, 4>, ContractError>
async fn max_withdraw( &self, vault: Address, owner: Address, ) -> Result<Uint<256, 4>, ContractError>
Get the maximum withdraw amount for an owner.
Sourceasync fn max_mint(
&self,
vault: Address,
receiver: Address,
) -> Result<Uint<256, 4>, ContractError>
async fn max_mint( &self, vault: Address, receiver: Address, ) -> Result<Uint<256, 4>, ContractError>
Get the maximum mint amount (in shares) for a receiver.
Sourceasync fn max_redeem(
&self,
vault: Address,
owner: Address,
) -> Result<Uint<256, 4>, ContractError>
async fn max_redeem( &self, vault: Address, owner: Address, ) -> Result<Uint<256, 4>, ContractError>
Get the maximum redeem amount (in shares) for an owner.
Sourceasync fn preview_deposit(
&self,
vault: Address,
assets: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError>
async fn preview_deposit( &self, vault: Address, assets: Uint<256, 4>, ) -> Result<Uint<256, 4>, ContractError>
Preview the shares that would be received for a deposit.
Sourceasync fn preview_mint(
&self,
vault: Address,
shares: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError>
async fn preview_mint( &self, vault: Address, shares: Uint<256, 4>, ) -> Result<Uint<256, 4>, ContractError>
Preview the assets required to mint a specific amount of shares.
Sourceasync fn preview_withdraw(
&self,
vault: Address,
assets: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError>
async fn preview_withdraw( &self, vault: Address, assets: Uint<256, 4>, ) -> Result<Uint<256, 4>, ContractError>
Preview the shares that would be burned for a withdrawal.
Sourceasync fn preview_redeem(
&self,
vault: Address,
shares: Uint<256, 4>,
) -> Result<Uint<256, 4>, ContractError>
async fn preview_redeem( &self, vault: Address, shares: Uint<256, 4>, ) -> Result<Uint<256, 4>, ContractError>
Preview the assets that would be received for redeeming shares.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.