TermWstEthPriceFeedV1

Description:

Smart contract deployed on Ethereum with Factory, Oracle features.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol": {
      "content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// solhint-disable-next-line interface-starts-with-i
interface AggregatorV3Interface {
  function decimals() external view returns (uint8);

  function description() external view returns (string memory);

  function version() external view returns (uint256);

  function getRoundData(
    uint80 _roundId
  ) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);

  function latestRoundData()
    external
    view
    returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
}
"
    },
    "contracts/v1/TermWstEthPriceFeedV1.sol": {
      "content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

import {
    AggregatorV3Interface
} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol";

/// @notice IWstETH represents a Lido wrapped staked eth contract
interface IWstETH {
    /**
     * @notice Get amount of stETH for a one wstETH
     * @return Amount of stETH for 1 wstETH
     */
    function stEthPerToken() external view returns (uint256);
}

contract TermWstEthPriceFeedV1 is AggregatorV3Interface {
    address public immutable referenceToken;
    AggregatorV3Interface immutable ethPriceFeed;
    IWstETH immutable wstEth;

    string _description;

    uint8 immutable feedDecimals;

    constructor(
        address referenceToken_,
        string memory description_,
        AggregatorV3Interface ethPriceFeed_
    ) {
        ethPriceFeed = ethPriceFeed_;

        referenceToken = referenceToken_;
        wstEth = IWstETH(referenceToken_);
        _description = description_;

        feedDecimals = ethPriceFeed.decimals();
    }

    function decimals() external view returns (uint8) {
        return feedDecimals;
    }

    function description() external view returns (string memory) {
        return _description;
    }

    function version() external pure returns (uint256) {
        return 1;
    }

    function getRoundData(
        uint80 /* _roundId */
    )
        external
        pure
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        )
    {
        return (0, 0, 0, 0, 0);
    }

    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        )
    {
        // slither-disable-next-line unused-return
        (, int256 ethPrice, , uint256 ethUpdatedAt, ) = ethPriceFeed
            .latestRoundData();

        int256 wstEthPrice = (int256(wstEth.stEthPerToken()) * ethPrice) / int256(1e18);

        return (
            0,
            wstEthPrice,
            0,
            ethUpdatedAt,
            0
        );
    }
}
"
    }
  },
  "settings": {
    "evmVersion": "paris",
    "optimizer": {
      "enabled": false,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    }
  }
}}

Tags:
Factory, Oracle|addr:0x9f377f83caa93728d5c8d8dad258acb4f2fa0eae|verified:true|block:23588259|tx:0xcc8a1ce8f9c6ff84f80029a5efbaf0ea7a67293d478213c1fdb6e3192c53544e|first_check:1760606003

Submitted on: 2025-10-16 11:13:25

Comments

Log in to comment.

No comments yet.