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.
src: https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol
Public State Variables
pool
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L23
function pool() external view returns (address
Curve's pool for the ETH <> stETH token pair.
ETH_INDEX
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L28
function ETH_INDEX() external view returns (int128)
ETH token index in the Curve pool. It is constant 0
.
STETH_INDEX
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L33
function ETH_INDEX() external view returns (int128)
StETH token index in the Curve pool. It is constant 1
.
ETH_ADDRESS
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L38
function ETH_ADDRESS() external view returns (address)
ETH token address representation. It is constant 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
STETH_ADDRESS
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L43
function STETH_ADDRESS() external view returns (address)
StETH token address representation. It is constant 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84
View Methods
convertToSTETH
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L61
function convertToSTETH(uint256 ethAmount) external view returns (uint256)
Convert ethAmount
ETH to stETH using Curve pool and returns the resulting amount of stETH.
Parameters
ethAmount
uint256
Amount of ETH to convert
Returns
_0
uint256
Amount of stETH receiveid in exchange
convertToETH
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L70
function convertToETH(uint256 stETHAmount) external view returns (uint256)
Convert stethAmount
stETH to ETH using Curve pool and returns the resulting amount of ETH.
Parameters
stETHAmount
uint256
Amount of ETH to convert
Returns
_0
uint256
Amount of ETH receiveid in exchange
Write Methods
deposit
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L81
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
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
_0
uint256
uint256 Amount of shares returned by vault ERC4626 contract
redeem
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L100
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 receiver
Parameters
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
_0
uint256
uint256 Amount of assets received from Vault ERC4626
redeemWithPermit
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L124
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 receiver
Do not need to approve the shares in advance. The vault tokenized shares supports Permit
Parameters
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
assets
uint256
Amount of assets received from Vault ERC4626
withdraw
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L148
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 receiver
Do not need to approve the shares in advance. The vault tokenized shares supports Permit
Parameters
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
shares
uint256
Amount of shares burned in order to receive assets
withdrawWithPermit
https://github.com/pods-finance/yield-contracts/blob/main/contracts/proxy/ETHAdapter.sol#L171
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 receiver
Do not need to approve the shares in advance. Vault's tokenized shares supports Permit
Parameters
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
shares
uint256
Amount of shares burned in order to receive assets
Last updated