wstETH
¿Qué es wrapped stETH (wstETH)?
Es un token envoltorio ERC-20 de acumulación de valor para stETH
. Su balance no cambia con cada informe del oráculo, pero su valor en stETH
sí lo hace. Internamente, representa la participación del usuario en el suministro total de tokens stETH
.
¿Por qué usar wstETH?
wstETH
se utiliza principalmente como una capa de compatibilidad para integrar stETH
en otros protocolos DeFi que no soportan tokens rebasables, especialmente puentes hacia L2s y otras cadenas, ya que los rebases no funcionan por defecto para activos puenteados.
¿Cómo usar wstETH?
El contrato puede ser utilizado como un envoltorio sin confianza que acepta tokens stETH y emite wstETH a cambio. Cuando el usuario desenvuelve, el contrato quema el wstETH
del usuario y le envía el stETH
bloqueado a cambio.
Atajo de Staking
El usuario puede enviar ETH con una transferencia regular a la dirección del contrato y recibir wstETH a cambio. El contrato enviará ETH al método submit de Lido, haciendo staking y envolviendo el stETH recibido de manera transparente.
Estándares
El contrato implementa los siguientes estándares de Ethereum:
- ERC-20: Estándar de Token
- ERC-2612: Extensión de Permiso para Aprobaciones Firmadas ERC-20
- EIP-712: Hashing y firma de datos estructurados tipados
Métodos de Vista
getWstETHByStETH()
Devuelve la cantidad de wstETH
para una cantidad dada de stETH
function getWstETHByStETH(uint256 _stETHAmount) returns (uint256)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
_stETHAmount | uint256 | cantidad de stETH |
getStETHByWstETH()
Devuelve la cantidad de stETH
para una cantidad dada de wstETH
function getStETHByWstETH(uint256 _wstETHAmount) returns (uint256)
Parámetros
Nombre del Parámetro | Tipo | Descripción |
---|---|---|
_wstETHAmount | uint256 | cantidad de wstETH |
stEthPerToken()
Devuelve la cantidad de tokens stETH correspondientes a un wstETH
function stEthPerToken() returns (uint256)
tokensPerStEth()
Devuelve la cantidad de tokens wstETH
correspondientes a un stETH
function tokensPerStEth() returns (uint256)
Métodos
wrap()
Intercambia stETH
por wstETH
function wrap(uint256 _stETHAmount) returns (uint256)
Requisitos:
_stETHAmount
debe ser mayor a ceromsg.sender
debe aprobar al menos_stETHAmount
de stETH a este contrato.msg.sender
debe tener al menos_stETHAmount
de stETH.
Parámetros
Nombre del Parámetro | Tipo | Descripción |
---|---|---|
_stETHAmount | uint256 | cantidad de stETH para envolver a cambio de wstETH |
Devuelve
Cantidad de wstETH que el usuario recibe después de envolver
unwrap()
Intercambia wstETH por stETH
function unwrap(uint256 _wstETHAmount) returns (uint256)
Requisitos:
_wstETHAmount
debe ser mayor a ceromsg.sender
debe tener al menos_wstETHAmount
de wstETH.
Parámetros
Nombre del Parámetro | Tipo | Descripción |
---|---|---|
_wstETHAmount | uint256 | cantidad de wstETH para desenvolver a cambio de stETH |
Devuelve
Cantidad de stETH que el usuario recibe después de desenvolver
receive()
Atajo para hacer staking de ETH y envolver automáticamente el stETH
recibido
receive() payable