Estándar de bóveda tokenizada ERC-4626
Última edición: @aspoky_dev(opens in a new tab), Invalid DateTime
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 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 share7)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
- EIP-4626: estándar de bóveda tokenizada(opens in a new tab)
- ERC-4626: repositorio de GitHub(opens in a new tab)