diff --git a/contracts/compressors/PriceFeedCompressor.sol b/contracts/compressors/PriceFeedCompressor.sol index 75786e5..0f4bafd 100644 --- a/contracts/compressors/PriceFeedCompressor.sol +++ b/contracts/compressors/PriceFeedCompressor.sol @@ -11,8 +11,8 @@ import {IPriceFeed, IUpdatablePriceFeed} from "@gearbox-protocol/core-v3/contrac import {IVersion} from "@gearbox-protocol/core-v3/contracts/interfaces/base/IVersion.sol"; import {PriceFeedType} from "@gearbox-protocol/sdk-gov/contracts/PriceFeedType.sol"; +import {IStateSerializerLegacy} from "../interfaces/IStateSerializerLegacy.sol"; import {IStateSerializer} from "../interfaces/IStateSerializer.sol"; -import {IStateSerializerTrait} from "../interfaces/IStateSerializerTrait.sol"; import {NestedPriceFeeds} from "../libraries/NestedPriceFeeds.sol"; import {BoundedPriceFeedSerializer} from "../serializers/oracles/BoundedPriceFeedSerializer.sol"; import {BPTWeightedPriceFeedSerializer} from "../serializers/oracles/BPTWeightedPriceFeedSerializer.sol"; @@ -44,7 +44,7 @@ contract PriceFeedCompressor is IVersion, Ownable { uint256 public constant override version = 3_10; /// @notice Map of state serializers for different price feed types - /// @dev Serializers only apply to feeds that don't implement `IStateSerializerTrait` themselves + /// @dev Serializers only apply to feeds that don't implement `IStateSerializer` themselves mapping(uint8 => address) public serializers; /// @notice Emitted when new state serializer is set for a given price feed type @@ -53,7 +53,7 @@ contract PriceFeedCompressor is IVersion, Ownable { /// @notice Constructor /// @param owner Contract owner /// @dev Sets serializers for existing price feed types. - /// It is recommended to implement `IStateSerializerTrait` in new price feeds. + /// It is recommended to implement `IStateSerializer` in new price feeds. constructor(address owner) { transferOwnership(owner); @@ -217,12 +217,12 @@ contract PriceFeedCompressor is IVersion, Ownable { data.updatable = updatable; } catch {} - try IStateSerializerTrait(priceFeed).serialize() returns (bytes memory specificParams) { + try IStateSerializer(priceFeed).serialize() returns (bytes memory specificParams) { data.specificParams = specificParams; } catch { address serializer = serializers[data.priceFeedType]; if (serializer != address(0)) { - data.specificParams = IStateSerializer(serializer).serialize(priceFeed); + data.specificParams = IStateSerializerLegacy(serializer).serialize(priceFeed); } } diff --git a/contracts/compressors/Types.sol b/contracts/compressors/Types.sol index 8149806..80f5c39 100644 --- a/contracts/compressors/Types.sol +++ b/contracts/compressors/Types.sol @@ -89,7 +89,7 @@ struct PriceFeedMapEntry { /// @param skipCheck Whether price feed implements its own staleness and sanity check, defaults to `false` /// @param updatable Whether it is an on-demand updatable (aka pull) price feed, defaults to `false` /// @param specificParams ABI-encoded params specific to this price feed type, filled if price feed implements -/// `IStateSerializerTrait` or there is a state serializer set for this type +/// `IStateSerializer` or there is a state serializer set for this type /// @param underlyingFeeds Array of underlying feeds, filled when `priceFeed` is nested /// @param underlyingStalenessPeriods Staleness periods of underlying feeds, filled when `priceFeed` is nested /// @param answer Price feed answer packed in a struct diff --git a/contracts/interfaces/IStateSerializer.sol b/contracts/interfaces/IStateSerializer.sol index bafe462..f03dffe 100644 --- a/contracts/interfaces/IStateSerializer.sol +++ b/contracts/interfaces/IStateSerializer.sol @@ -3,8 +3,8 @@ // (c) Gearbox Foundation, 2024. pragma solidity ^0.8.17; -/// @title State serializer -/// @notice Generic interface of a contract that is able to serialize state of other contracts +/// @title State serializer trait +/// @notice Generic interface of a contract that is able to serialize its own state interface IStateSerializer { - function serialize(address) external view returns (bytes memory); + function serialize() external view returns (bytes memory); } diff --git a/contracts/interfaces/IStateSerializerTrait.sol b/contracts/interfaces/IStateSerializerLegacy.sol similarity index 57% rename from contracts/interfaces/IStateSerializerTrait.sol rename to contracts/interfaces/IStateSerializerLegacy.sol index 8d7f7db..d7740ee 100644 --- a/contracts/interfaces/IStateSerializerTrait.sol +++ b/contracts/interfaces/IStateSerializerLegacy.sol @@ -3,8 +3,8 @@ // (c) Gearbox Foundation, 2024. pragma solidity ^0.8.17; -/// @title State serializer trait -/// @notice Generic interface of a contract that is able to serialize its own state -interface IStateSerializerTrait { - function serialize() external view returns (bytes memory); +/// @title State serializer +/// @notice Generic interface of a contract that is able to serialize state of other contracts +interface IStateSerializerLegacy { + function serialize(address) external view returns (bytes memory); } diff --git a/contracts/serializers/oracles/BoundedPriceFeedSerializer.sol b/contracts/serializers/oracles/BoundedPriceFeedSerializer.sol index d9054e3..5878e5d 100644 --- a/contracts/serializers/oracles/BoundedPriceFeedSerializer.sol +++ b/contracts/serializers/oracles/BoundedPriceFeedSerializer.sol @@ -4,9 +4,9 @@ pragma solidity ^0.8.17; import {BoundedPriceFeed} from "@gearbox-protocol/oracles-v3/contracts/oracles/BoundedPriceFeed.sol"; -import {IStateSerializer} from "../../interfaces/IStateSerializer.sol"; +import {IStateSerializerLegacy} from "../../interfaces/IStateSerializerLegacy.sol"; -contract BoundedPriceFeedSerializer is IStateSerializer { +contract BoundedPriceFeedSerializer is IStateSerializerLegacy { function serialize(address priceFeed) external view override returns (bytes memory) { BoundedPriceFeed pf = BoundedPriceFeed(priceFeed); diff --git a/contracts/serializers/oracles/LPPriceFeedSerializer.sol b/contracts/serializers/oracles/LPPriceFeedSerializer.sol index 83fe6c4..a9c2f68 100644 --- a/contracts/serializers/oracles/LPPriceFeedSerializer.sol +++ b/contracts/serializers/oracles/LPPriceFeedSerializer.sol @@ -4,9 +4,9 @@ pragma solidity ^0.8.17; import {ILPPriceFeed} from "@gearbox-protocol/oracles-v3/contracts/interfaces/ILPPriceFeed.sol"; -import {IStateSerializer} from "../../interfaces/IStateSerializer.sol"; +import {IStateSerializerLegacy} from "../../interfaces/IStateSerializerLegacy.sol"; -contract LPPriceFeedSerializer is IStateSerializer { +contract LPPriceFeedSerializer is IStateSerializerLegacy { struct PriceData { uint256 exchangeRate; int256 aggregatePrice; diff --git a/contracts/serializers/oracles/PythPriceFeedSerializer.sol b/contracts/serializers/oracles/PythPriceFeedSerializer.sol index 02d0ab0..3d4a2d1 100644 --- a/contracts/serializers/oracles/PythPriceFeedSerializer.sol +++ b/contracts/serializers/oracles/PythPriceFeedSerializer.sol @@ -4,9 +4,9 @@ pragma solidity ^0.8.17; import {PythPriceFeed} from "@gearbox-protocol/oracles-v3/contracts/oracles/updatable/PythPriceFeed.sol"; -import {IStateSerializer} from "../../interfaces/IStateSerializer.sol"; +import {IStateSerializerLegacy} from "../../interfaces/IStateSerializerLegacy.sol"; -contract PythPriceFeedSerializer is IStateSerializer { +contract PythPriceFeedSerializer is IStateSerializerLegacy { function serialize(address priceFeed) external view override returns (bytes memory) { PythPriceFeed pf = PythPriceFeed(payable(priceFeed)); diff --git a/contracts/serializers/oracles/RedstonePriceFeedSerializer.sol b/contracts/serializers/oracles/RedstonePriceFeedSerializer.sol index dbe6ad6..bc8434b 100644 --- a/contracts/serializers/oracles/RedstonePriceFeedSerializer.sol +++ b/contracts/serializers/oracles/RedstonePriceFeedSerializer.sol @@ -4,9 +4,9 @@ pragma solidity ^0.8.17; import {RedstonePriceFeed} from "@gearbox-protocol/oracles-v3/contracts/oracles/updatable/RedstonePriceFeed.sol"; -import {IStateSerializer} from "../../interfaces/IStateSerializer.sol"; +import {IStateSerializerLegacy} from "../../interfaces/IStateSerializerLegacy.sol"; -contract RedstonePriceFeedSerializer is IStateSerializer { +contract RedstonePriceFeedSerializer is IStateSerializerLegacy { function serialize(address priceFeed) external view override returns (bytes memory) { RedstonePriceFeed pf = RedstonePriceFeed(priceFeed);