EthAdapter
The EthAdapter is responsible for accepting deposits and withdrawals in ETH, instead of accepting the staked ETH directly. It uses Curve as a trading venue under the hood.
function pool() external view returns (address
Curve's pool for the ETH <> stETH token pair.
function ETH_INDEX() external view returns (int128)
ETH token index in the Curve pool. It is constant
0
.function ETH_INDEX() external view returns (int128)
StETH token index in the Curve pool. It is constant
1
.function ETH_ADDRESS() external view returns (address)
ETH token address representation. It is constant
0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
function STETH_ADDRESS() external view returns (address)
StETH token address representation. It is constant 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84
function convertToSTETH(uint256 ethAmount) external view returns (uint256)
Convert
ethAmount
ETH to stETH using Curve pool and returns the resulting amount of stETH.Parameters
Name | Type | Description |
---|---|---|
ethAmount | uint256 | Amount of ETH to convert |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | Amount of stETH receiveid in exchange |
function convertToETH(uint256 stETHAmount) external view returns (uint256)
Convert
stethAmount
stETH to ETH using Curve pool and returns the resulting amount of ETH.Parameters
Name | Type | Description |
---|---|---|
stETHAmount | uint256 | Amount of ETH to convert |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | Amount of ETH receiveid in exchange |
function deposit(contract IVault vault, address receiver, uint256 minOutput) external payable returns (uint256)
Deposit
msg.value
of ETH, convert to stETH and deposit into vault
Parameters
Name | Type | Description |
---|---|---|
vault | contract IVault | Pods' strategy vault that will receive the stETH |
receiver | address | Address that will be the owner of the Vault's shares |
minOutput | uint256 | slippage control. Minimum acceptable amount of stETH |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | uint256 Amount of shares returned by vault ERC4626 contract |
function redeem(contract IVault vault, uint256 shares, address receiver, uint256 minOutput) external nonpayable returns (uint256)
Redeem
shares
shares, receive stETH, trade stETH for ETH and send to receiverParameters
Name | Type | Description |
---|---|---|
vault | contract IVault | Pods' strategy vault that will receive the shares and payback stETH |
shares | uint256 | Amount of Vault's shares to redeem |
receiver | address | Address that will receive back the ETH withdrawn from the vault |
minOutput | uint256 | slippage control. Minimum acceptable amount of ETH |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | uint256 Amount of assets received from Vault ERC4626 |
function redeemWithPermit(contract IVault vault, uint256 shares, address receiver, uint256 minOutput, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable returns (uint256 assets)
redeemWithPermit
shares
shares, receive stETH, trade stETH for ETH and send to receiverDo not need to approve the shares in advance. The vault tokenized shares supports Permit
Parameters
Name | Type | Description |
---|---|---|
vault | contract IVault | Pods' strategy vault that will receive the shares and payback stETH |
shares | uint256 | Amount of Vault's shares to redeem |
receiver | address | Address that will receive back the ETH withdrawn from vault |
minOutput | uint256 | slippage control. Minimum acceptable amount of ETH |
deadline | uint256 | deadline that this transaction will be valid |
v | uint8 | recovery id |
r | bytes32 | ECDSA signature output |
s | bytes32 | ECDSA signature output |
Returns
Name | Type | Description |
---|---|---|
assets | uint256 | Amount of assets received from Vault ERC4626 |
function withdraw(contract IVault vault, uint256 assets, address receiver, uint256 minOutput) external nonpayable returns (uint256 shares)
Withdraw
assets
assets, receive stETH, trade stETH for ETH and send to receiverDo not need to approve the shares in advance. The vault tokenized shares supports Permit
Parameters
Name | Type | Description |
---|---|---|
vault | contract IVault | Pods' strategy vault that will receive the shares and payback stETH |
assets | uint256 | Amount of assets (stETH) to redeem |
receiver | address | Address that will receive back the ETH withdrawn from the Vault |
minOutput | uint256 | slippage control. Minimum acceptable amount of ETH |
Returns
Name | Type | Description |
---|---|---|
shares | uint256 | Amount of shares burned in order to receive assets |
function withdrawWithPermit(contract IVault vault, uint256 assets, address receiver, uint256 minOutput, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable returns (uint256 shares)
withdrawWithPermit
assets
assets, receive stETH, trade stETH for ETH and send to receiverDo not need to approve the shares in advance. Vault's tokenized shares supports Permit
Parameters
Name | Type | Description |
---|---|---|
vault | contract IVault | Pods' strategy vault that will receive the shares and payback stETH |
assets | uint256 | Amount of assets (stETH) to redeem |
receiver | address | Address that will receive back the ETH withdrawn from the Vault |
minOutput | uint256 | slippage control. Minimum acceptable amount of ETH |
deadline | uint256 | deadline that this transaction will be valid |
v | uint8 | recovery id |
r | bytes32 | ECDSA signature output |
s | bytes32 | ECDSA signature output |
Returns
Name | Type | Description |
---|---|---|
shares | uint256 | Amount of shares burned in order to receive assets |
Last modified 7mo ago