Asset

Overview

License: MIT

library Asset

A library for handling different types of assets, including ERC20 tokens, ERC4626 tokens, and Uniswap V2 LP tokens.

Enums info

Type

enum Type {
	 ERC20,
	 ERC4626,
	 LP
}

Structs info

Info

struct Info {
	address addr;
	Asset.Type tokenType;
}

Functions info

_unwrap

function _unwrap(
    Asset.Info memory _tokenInfo,
    uint256 _tokenAmount
) internal returns (address[] memory assets, uint256[] memory assetAmounts)

Unwraps the specified amount of tokens based on their type.

Parameters:

NameTypeDescription

_tokenInfo

struct Asset.Info

Information about the token, including its address and type.

_tokenAmount

uint256

The amount of tokens to unwrap.

Return values:

NameTypeDescription

assets

address[]

The unwrapped assets' addresses.

assetAmounts

uint256[]

The amounts of the unwrapped assets.

_wrap

function _wrap(
    address[] memory _assets,
    uint256[] memory _assetAmounts,
    Asset.Info memory _tokenInfo
) internal returns (uint256 tokenAmount)

Wraps the specified amounts of assets into a token.

Parameters:

NameTypeDescription

_assets

address[]

The addresses of the assets to wrap.

_assetAmounts

uint256[]

The amounts of the assets to wrap.

_tokenInfo

struct Asset.Info

Information about the token, including its address and type.

Return values:

NameTypeDescription

tokenAmount

uint256

The amount of the wrapped token.

_redeem

function _redeem(
    Asset.Info memory _tokenInfo,
    address _receiver
) internal returns (address[] memory assets, uint256[] memory assetAmounts)

Redeems the redundant amount of tokens for the underlying assets.

Parameters:

NameTypeDescription

_tokenInfo

struct Asset.Info

Information about the token, including its address and type.

_receiver

address

The address that will receive the redeemed assets.

Return values:

NameTypeDescription

assets

address[]

The redeemed assets' addresses.

assetAmounts

uint256[]

The amounts of the redeemed assets.

_safeIncreaseAllowance

function _safeIncreaseAllowance(
    address _spender,
    address _token,
    uint256 _tokenAmount
) internal

Safely increases the allowance of a spender for a given token.

Parameters:

NameTypeDescription

_spender

address

The address allowed to spend the tokens.

_token

address

The address of the token.

_tokenAmount

uint256

The amount of tokens to allow.

Last updated