Skip to content

Commit

Permalink
fix: add pendle price feed serializer
Browse files Browse the repository at this point in the history
  • Loading branch information
doomsower committed Dec 17, 2024
1 parent 03315cd commit a8cb071
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
2 changes: 2 additions & 0 deletions contracts/compressors/PriceFeedCompressor.sol
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {BPTWeightedPriceFeedSerializer} from "../serializers/oracles/BPTWeighted
import {LPPriceFeedSerializer} from "../serializers/oracles/LPPriceFeedSerializer.sol";
import {PythPriceFeedSerializer} from "../serializers/oracles/PythPriceFeedSerializer.sol";
import {RedstonePriceFeedSerializer} from "../serializers/oracles/RedstonePriceFeedSerializer.sol";
import {PendleTWAPPTPriceFeedSerializer} from "../serializers/oracles/PendleTWAPPTPriceFeedSerializer.sol";
import {PriceFeedAnswer, PriceFeedMapEntry, PriceFeedTreeNode, PriceOracleState} from "../types/PriceOracleState.sol";

interface ImplementsPriceFeedType {
Expand Down Expand Up @@ -96,6 +97,7 @@ contract PriceFeedCompressor is IPriceFeedCompressor {
_setSerializer("PF_BOUNDED_ORACLE", address(new BoundedPriceFeedSerializer()));
_setSerializer("PF_PYTH_ORACLE", address(new PythPriceFeedSerializer()));
_setSerializer("PF_REDSTONE_ORACLE", address(new RedstonePriceFeedSerializer()));
_setSerializer("PF_PENDLE_PT_TWAP_ORACLE", address(new PendleTWAPPTPriceFeedSerializer()));
}

/// @notice Returns all potentially useful price feeds data for a given price oracle in the form of two arrays:
Expand Down
15 changes: 15 additions & 0 deletions contracts/serializers/oracles/PendleTWAPPTPriceFeedSerializer.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
// Gearbox Protocol. Generalized leverage for DeFi protocols
// (c) Gearbox Foundation, 2024.
pragma solidity ^0.8.17;

import {PendleTWAPPTPriceFeed} from "@gearbox-protocol/oracles-v3/contracts/oracles/pendle/PendleTWAPPTPriceFeed.sol";
import {IStateSerializerLegacy} from "../../interfaces/IStateSerializerLegacy.sol";

contract PendleTWAPPTPriceFeedSerializer is IStateSerializerLegacy {
function serialize(address priceFeed) external view override returns (bytes memory) {
PendleTWAPPTPriceFeed pf = PendleTWAPPTPriceFeed(priceFeed);

return abi.encode(pf.market(), pf.sy(), pf.yt(), pf.expiry(), pf.twapWindow(), pf.priceToSy());
}
}

0 comments on commit a8cb071

Please sign in to comment.