Ir al contenido principal
Change page

Estándar de bóveda tokenizada ERC-4626

Última edición: @aspoky_dev(opens in a new tab), 30 de enero de 2024

Introducción

ERC-4626 es un estándar para optimizar y unificar los parámetros técnicos de las bóvedas que otorgan rendimiento. Proporciona una API estándar para las bóvedas de rendimiento tokenizadas que representan acciones de un único token ERC-20 subyacente. ERC-4626 también esboza una extensión opcional para las bóvedas tokenizadas que usan ERC-20, ofreciendo funcionalidad básica para depósitos, retiros de tokens y lectura de saldos.

El papel del ERC-4626 en las bóvedas de rendimiento

Los mercados de préstamos, los agregadores y los tokens que intrínsecamente dan interés ayudan a los usuarios a encontrar el mejor rendimiento en sus tokens criptográficos mediante la ejecución de diferentes estrategias. Estas estrategias se llevan a cabo con ligeras variaciones, que podrían ser propensas a errores o desperdiciar recursos de desarrollo.

ERC-4626 en bóvedas de rendimiento reducirá el esfuerzo de integración y desbloqueará el acceso al rendimiento en varias aplicaciones con poco esfuerzo especializado de los desarrolladores gracias a la creación de patrones de implementación más consistentes y robustos.

El token ERC-4626 se describe en detalle en EIP-4626(opens in a new tab).

Prerrequisitos

Para comprender mejor esta página, recomendamos leer primero sobre estándares de token y ERC-20.

Funciones y características de ERC-4626:

Métodos

asset

1function asset() public view returns (address)
Copiar

Esta función devuelve la dirección del token subyacente utilizado en la bóveda para contabilidad, depósito y retiro.

totalAssets

1function totalAssets() public view returns (uint256)
Copiar

Esta función devuelve la cantidad total de activos subyacentes que se poseen en la bóveda.

convertToShares

1function convertToShares(uint256 assets) public view returns (uint256 shares)
Copiar

Esta función devuelve la cantidad de shares (acciones) que serían intercambiadas por la bóveda por la cantidad de assets (activos) proporcionados.

convertToAssets

1function convertToAssets(uint256 shares) public view returns (uint256 assets)
Copiar

Esta función devuelve la cantidad de assets que serían intercambiados por la bóveda por la cantidad de shares proporcionadas.

maxDeposit

1function maxDeposit(address receiver) public view returns (uint256)
Copiar

Esta función devuelve la cantidad máxima de activos subyacentes que pueden depositarse en una sola llamada de depósito (deposit) por parte del receiver (receptor).

previewDeposit

1function previewDeposit(uint256 assets) public view returns (uint256)
Copiar

Esta función permite a los usuarios simular los efectos de su depósito en el bloque actual.

deposit

1function deposit(uint256 assets, address receiver) public returns (uint256 shares)
Copiar

Esta función deposita assets de los tokens subyacentes en la bóveda y otorga la propiedad de acciones (shares) al receptor (receiver).

maxMint

1function maxMint(address receiver) public view returns (uint256)
Copiar

Esta función devuelve la cantidad máxima de acciones que pueden mintearse en una sola llamada de mint (minteo) por parte del receptor (receiver).

previewMint

1function previewMint(uint256 shares) public view returns (uint256)
Copiar

Esta función permite a los usuarios simular los efectos de su minteo en el bloque actual.

mint

1function mint(uint256 shares, address receiver) public returns (uint256 assets)
Copiar

Esta función mintea exactamente shares acciones de la bóveda al receiver depositando assets de los tokens subyacentes.

maxWithdraw

1function maxWithdraw(address owner) public view returns (uint256)
Copiar

Esta función devuelve la cantidad máxima de activos subyacentes que se pueden retirar del saldo del propietario (owner) con una única llamada a withdraw (retiro).

previewWithdraw

1function previewWithdraw(uint256 assets) public view returns (uint256)
Copiar

Esta función permite a los usuarios simular los efectos de su retiro en el bloque actual.

withdraw

1function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares)
Copiar

Esta función quema shares del owner y envía exactamente assets token de la bóveda al receiver.

maxRedeem

1function maxRedeem(address owner) public view returns (uint256)
Copiar

Esta funcion retorna la cantidad máxima de acciones que pueden ser reclamadas del saldo del owner a traves de una llamada a redeem (canjeo o reclamo).

previewRedeem

1function previewRedeem(uint256 shares) public view returns (uint256)
Copiar

Esta función permite a los usuarios simular el efecto de su canjeo en el bloque actual.

redeem

1function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets)
Copiar

Esta función canjea un número específico de shares del owner y envía assets del token subyacente de la bóveda al receiver.

totalSupply

1function totalSupply() public view returns (uint256)
Copiar

Devuelve el número total de acciones no canjeadas de la bóveda en circulación.

balanceOf

1function balanceOf(address owner) public view returns (uint256)
Copiar

Devuelve la cantidad total de acciones de la bóveda que el owner tiene actualmente.

Eventos

Evento de depósito

DEBE ser emitido cuando se depositan tokens en la bóveda mediante los métodos mint y deposit

1event Deposit(
2 address indexed sender,
3 address indexed owner,
4 uint256 assets,
5 uint256 shares
6)
Copiar

Donde sender es el usuario que intercambió assets por shares y transfirió esas shares al owner.

Evento de retiro

DEBE ser emitido cuando un depositante retira acciones de la bóveda con los métodos redeem o withdraw.

1event Withdraw(
2 address indexed sender,
3 address indexed receiver,
4 address indexed owner,
5 uint256 assets,
6 uint256 share
7)
Copiar

Donde sender es el usuario que desencadenó el retiro e intercambió shares, en posesión de owner, por assets. receiver es el usuario que recibió los assets retirados.

Más información

¿Le ha resultado útil este artículo?