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:
_stETHAmountdebe ser mayor a ceromsg.senderdebe aprobar al menos_stETHAmountde stETH a este contrato.msg.senderdebe tener al menos_stETHAmountde 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:
_wstETHAmountdebe ser mayor a ceromsg.senderdebe tener al menos_wstETHAmountde 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