Estándar de bóveda tokenizada ERC-4626
Última edición: @aspoky_dev(opens in a new tab), 8 de mayo 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
1función asset() retornos de vista pública (dirección assetTokenAddress)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
1función maxDeposit(receptor de dirección) retornos de vista pública (uint256 maxAssets)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
1vista previa de la función Depósito (activos uint256) rendimientos de vista pública (acciones 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
1función maxMint (receptor de dirección) devoluciones de vista pública (uint256 maxShares)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
1vista previa de la funciónMint(uint256 acciones) rendimientos de la vista pública (activos 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
1función maxWithdraw (propietario de la dirección) devuelve la vista pública (uint256 maxAssets)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
1vista previa de la funciónWithdraw(uint256 activos) rendimientos de vista pública (uint256 acciones)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
1función maxRedeem (propietario de la dirección) retornos de vista pública (uint256 maxShares)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
1vista previa de la funciónRedeem (uint256 acciones) rendimientos de vista pública (activos 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.
Mapa de la interfaz
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 shares6)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 shares7)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.