Ion Protocol
HomeDiscordTwitter
  • Overview
    • ๐Ÿ’งWelcome to Ion Protocol
    • ๐Ÿ“šUnderstanding the Staking and Restaking Ecosystem
    • ๐Ÿ”—Official Links
    • โ”FAQ
  • Ion Protocol
    • โš™๏ธHow Ion Works
    • ๐Ÿ‘ฅReferrals
    • ๐Ÿ’ฆIon Points
  • Lending
    • ๐Ÿ’ฐHow To Lend On Ion
    • ๐ŸŒETH-on-ETH Yield
    • ๐ŸงชLending Mechanisms
      • Composable Markets
      • ZKML-Supported Risk Underwriting
  • Borrowing
    • ๐Ÿ’ธHow To Borrow On Ion
    • ๐Ÿ“ˆMultiplying Rewards
    • ๐Ÿ› ๏ธBorrowing Mechanisms
      • Flash Leverage
      • Interest Rates
      • ZK Proof-of-Reserve
  • Liquidations
    • ๐Ÿ“‰Liquidation Mechanism
    • ๐Ÿง‘โ€๐Ÿ’ปKeepers
  • Supported Collateral
    • LSTs
    • LRTs
    • Exotic ETH-Backed Assets
  • Devs
    • ๐Ÿ’ปSmart Contract Architecture
      • Home
      • Admin
        • ProxyAdmin
        • TransparentUpgradeableProxy
        • ITransparentUpgradeableProxy
      • Flash
        • LRT
          • RsEthHandler
          • EzEthHandler
          • RswEthHandler
          • WeEthHandler
        • LST
          • SwEthHandler
          • EthXHandler
          • WstEthHandler
        • BalancerFlashloanDirectMintHandler constants
        • BalancerFlashloanDirectMintHandler
        • PtHandler
        • IonHandlerBase
        • UniswapFlashloanBalancerSwapHandler
        • UniswapFlashswapDirectMintHandler
        • UniswapFlashswapDirectMintHandlerWithDust
        • UniswapFlashswapHandler
      • Join
        • GemJoin
      • Libraries
        • LRT
          • KelpDaoLibrary
          • EtherFiLibrary
          • RestakedSwellLibrary
          • RenzoLibrary
        • LST
          • StaderLibrary
          • LidoLibrary
          • SwellLibrary
        • math
          • WadRayMath constants
          • WadRayMath
        • uniswap
          • UniswapOracleLibrary
          • TickMath
      • Oracles
        • Reserve
          • LRT
            • EzEthWstEthReserveOracle
            • RsEthWstEthReserveOracle
            • RswEthWstEthReserveOracle
            • WeEthWstEthReserveOracle
          • LST
            • SwEthReserveOracle
            • EthXReserveOracle
            • WstEthReserveOracle
          • Pendle
            • EzEthPtReserveOracle
            • RsEthPtReserveOracle
            • RswEthPtReserveOracle
            • WeEthPtReserveOracle
          • ReserveOracle
          • ReserveFeed
          • ReserveOracle constants
        • Spot
          • LRT
            • EzEthWstEthSpotOracle
            • RsEthWstEthSpotOracle
            • RswEthWstEthSpotOracle
            • WeEthWstEthSpotOracle
          • LST
            • EthXSpotOracle constants
            • EthXSpotOracle
            • IRedstonePriceFeed
            • SwEthSpotOracle
            • WstEthSpotOracle
          • SpotOracle
          • PtSpotOracle
      • Periphery
        • IonInvariants
        • IonLens
        • IlkSlot0
        • IonRegistry
      • Token
        • IERC20Errors
        • RewardToken
      • Vault
        • VaultFactory
        • Vault
      • Whitelist
      • YieldOracle constants
      • YieldOracle
      • YieldOracleNull
      • YieldOraclePendle
      • Errors
      • Constants
      • Seaport Leverage and Deleverage
    • ๐Ÿ“„Deployed Contracts
  • Security
    • ๐Ÿ”Security Reviews
  • Legal
    • Terms of Use
    • Privacy Policy
  • Import
    • ProxyAdmin
Powered by GitBook
On this page
  1. Devs
  2. Smart Contract Architecture
  3. Libraries
  4. LST

StaderLibrary

PreviousLSTNextLidoLibrary

A helper library for Stader-related conversions.

Functions

getEthAmountInForLstAmountOut

Returns the amount of ETH needed to mint the given amount of ETHx.

function getEthAmountInForLstAmountOut(
    IStaderStakePoolsManager staderDeposit,
    uint256 lstAmount
)
    internal
    view
    returns (uint256);

Parameters

Name
Type
Description

staderDeposit

IStaderStakePoolsManager

address.

lstAmount

uint256

Desired output amount. [WAD]

getLstAmountOutForEthAmountIn

Returns the amount of ETHx that can be minted with the given amount of ETH.

function getLstAmountOutForEthAmountIn(
    IStaderStakePoolsManager staderDeposit,
    uint256 ethAmount
)
    internal
    view
    returns (uint256);

Parameters

Name
Type
Description

staderDeposit

IStaderStakePoolsManager

address.

ethAmount

uint256

Amount of ETH to deposit. [WAD]

depositForLst

Deposits ETH into the stader deposit contract and returns the amount of ETHx received.

function depositForLst(IStaderStakePoolsManager staderDeposit, uint256 ethAmount) internal returns (uint256);

Parameters

Name
Type
Description

staderDeposit

IStaderStakePoolsManager

address.

ethAmount

uint256

Amount of ETH to deposit. [WAD]

depositForLst

Deposits ETH into the stader deposit contract and returns the amount of ETHx received. This function parameterizes the address to receive the ETHx.

function depositForLst(
    IStaderStakePoolsManager staderDeposit,
    uint256 ethAmount,
    address receiver
)
    internal
    returns (uint256);

Parameters

Name
Type
Description

staderDeposit

IStaderStakePoolsManager

address.

ethAmount

uint256

Amount of ETH to deposit. [WAD]

receiver

address

to receive the ETHx.

๐Ÿ’ป
Git Source