diff --git a/packages/perennial-extensions/contracts/Coordinator.sol b/packages/perennial-extensions/contracts/Coordinator.sol index 442212ded..d1aabceca 100644 --- a/packages/perennial-extensions/contracts/Coordinator.sol +++ b/packages/perennial-extensions/contracts/Coordinator.sol @@ -1,8 +1,10 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { RiskParameter } from "@equilibria/perennial-v2/contracts/types/RiskParameter.sol"; import { Ownable } from "@equilibria/root/attribute/Ownable.sol"; -import { ICoordinator, IMarket, RiskParameter, Token18 } from "./interfaces/ICoordinator.sol"; +import { ICoordinator } from "./interfaces/ICoordinator.sol"; /// @title Coordinator /// @notice Manages claiming fees and updating risk parameters for markets diff --git a/packages/perennial-extensions/contracts/MultiInvoker.sol b/packages/perennial-extensions/contracts/MultiInvoker.sol index 4c7423ba8..345b0feef 100644 --- a/packages/perennial-extensions/contracts/MultiInvoker.sol +++ b/packages/perennial-extensions/contracts/MultiInvoker.sol @@ -1,18 +1,28 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; +import { Address } from "@openzeppelin/contracts/utils/Address.sol"; import { AggregatorV3Interface } from "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import { IEmptySetReserve } from "@equilibria/emptyset-batcher/interfaces/IEmptySetReserve.sol"; -import { IFactory } from "@equilibria/root/attribute/interfaces/IFactory.sol"; import { IBatcher } from "@equilibria/emptyset-batcher/interfaces/IBatcher.sol"; import { IInstance } from "@equilibria/root/attribute/interfaces/IInstance.sol"; +import { IFactory } from "@equilibria/root/attribute/interfaces/IFactory.sol"; +import { Token6 } from "@equilibria/root/token/types/Token6.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed18, UFixed18Lib } from "@equilibria/root/number/types/UFixed18.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { Fixed18, Fixed18Lib } from "@equilibria/root/number/types/Fixed18.sol"; +import { Kept } from "@equilibria/root/attribute/Kept/Kept.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { Order } from "@equilibria/perennial-v2/contracts/types/Order.sol"; +import { Position } from "@equilibria/perennial-v2/contracts/types/Position.sol"; import { IPythFactory } from "@equilibria/perennial-v2-oracle/contracts/interfaces/IPythFactory.sol"; import { IVault } from "@equilibria/perennial-v2-vault/contracts/interfaces/IVault.sol"; -import "./interfaces/IMultiInvoker.sol"; -import "./types/TriggerOrder.sol"; -import "./types/InterfaceFee.sol"; -import "@equilibria/root/attribute/Kept/Kept.sol"; -import "@openzeppelin/contracts/utils/Address.sol"; +import { Intent } from "@equilibria/perennial-v2-verifier/contracts/types/Intent.sol"; +import { IMultiInvoker } from "./interfaces/IMultiInvoker.sol"; +import { TriggerOrder, TriggerOrderStorage } from "./types/TriggerOrder.sol"; +import { InterfaceFee } from "./types/InterfaceFee.sol"; /// @title MultiInvoker /// @notice Extension to handle batched calls to the Perennial protocol diff --git a/packages/perennial-extensions/contracts/MultiInvoker_Arbitrum.sol b/packages/perennial-extensions/contracts/MultiInvoker_Arbitrum.sol index fb71fb4cb..10d38fa46 100644 --- a/packages/perennial-extensions/contracts/MultiInvoker_Arbitrum.sol +++ b/packages/perennial-extensions/contracts/MultiInvoker_Arbitrum.sol @@ -1,8 +1,14 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@equilibria/root/attribute/Kept/Kept_Arbitrum.sol"; -import "./MultiInvoker.sol"; +import { UFixed18 } from "@equilibria/root/number/types/UFixed18.sol"; +import { Token6 } from "@equilibria/root/token/types/Token6.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { IFactory } from "@equilibria/root/attribute/Factory.sol"; +import { Kept, Kept_Arbitrum } from "@equilibria/root/attribute/Kept/Kept_Arbitrum.sol"; +import { IEmptySetReserve } from "@equilibria/emptyset-batcher/interfaces/IEmptySetReserve.sol"; +import { IBatcher } from "@equilibria/emptyset-batcher/interfaces/IBatcher.sol"; +import { MultiInvoker } from "./MultiInvoker.sol"; /// @title MultiInvoker_Arbitrum /// @notice Arbitrum Kept MultiInvoker implementation. diff --git a/packages/perennial-extensions/contracts/MultiInvoker_Optimism.sol b/packages/perennial-extensions/contracts/MultiInvoker_Optimism.sol index b70647689..19fe45d00 100644 --- a/packages/perennial-extensions/contracts/MultiInvoker_Optimism.sol +++ b/packages/perennial-extensions/contracts/MultiInvoker_Optimism.sol @@ -1,8 +1,14 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@equilibria/root/attribute/Kept/Kept_Optimism.sol"; -import "./MultiInvoker.sol"; +import { UFixed18 } from "@equilibria/root/number/types/UFixed18.sol"; +import { Token6 } from "@equilibria/root/token/types/Token6.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { IFactory } from "@equilibria/root/attribute/Factory.sol"; +import { Kept, Kept_Optimism } from "@equilibria/root/attribute/Kept/Kept_Optimism.sol"; +import { IEmptySetReserve } from "@equilibria/emptyset-batcher/interfaces/IEmptySetReserve.sol"; +import { IBatcher } from "@equilibria/emptyset-batcher/interfaces/IBatcher.sol"; +import { MultiInvoker } from "./MultiInvoker.sol"; /// @title MultiInvoker_Optimism /// @notice Optimism Kept MultiInvoker implementation. diff --git a/packages/perennial-extensions/contracts/interfaces/ICoordinator.sol b/packages/perennial-extensions/contracts/interfaces/ICoordinator.sol index a7d329ec2..de224c1d6 100644 --- a/packages/perennial-extensions/contracts/interfaces/ICoordinator.sol +++ b/packages/perennial-extensions/contracts/interfaces/ICoordinator.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import { Token18 } from "@equilibria/root/token/types/Token18.sol"; -import { IMarket, RiskParameter } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { RiskParameter } from "@equilibria/perennial-v2/contracts/types/RiskParameter.sol"; interface ICoordinator { function setComptroller(address comptroller) external; diff --git a/packages/perennial-extensions/contracts/interfaces/IMultiInvoker.sol b/packages/perennial-extensions/contracts/interfaces/IMultiInvoker.sol index 8e11ca298..dc8bf0407 100644 --- a/packages/perennial-extensions/contracts/interfaces/IMultiInvoker.sol +++ b/packages/perennial-extensions/contracts/interfaces/IMultiInvoker.sol @@ -1,21 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import { - IFactory, - IMarket, - Position, - Local, - UFixed18Lib, - UFixed18, - OracleVersion, - RiskParameter -} from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; + +import { IFactory } from "@equilibria/root/attribute/interfaces/IFactory.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; import { IBatcher } from "@equilibria/emptyset-batcher/interfaces/IBatcher.sol"; import { IEmptySetReserve } from "@equilibria/emptyset-batcher/interfaces/IEmptySetReserve.sol"; -import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; -import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; -import { Token6 } from "@equilibria/root/token/types/Token6.sol"; -import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; import { TriggerOrder } from "../types/TriggerOrder.sol"; import { InterfaceFee } from "../types/InterfaceFee.sol"; diff --git a/packages/perennial-extensions/contracts/types/InterfaceFee.sol b/packages/perennial-extensions/contracts/types/InterfaceFee.sol index 2550a0fc5..9e3ede3b7 100644 --- a/packages/perennial-extensions/contracts/types/InterfaceFee.sol +++ b/packages/perennial-extensions/contracts/types/InterfaceFee.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; + +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; /// @dev Interface fee type struct InterfaceFee { diff --git a/packages/perennial-extensions/contracts/types/TriggerOrder.sol b/packages/perennial-extensions/contracts/types/TriggerOrder.sol index e0575f64b..c8fb10ca9 100644 --- a/packages/perennial-extensions/contracts/types/TriggerOrder.sol +++ b/packages/perennial-extensions/contracts/types/TriggerOrder.sol @@ -1,10 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; -import "@equilibria/perennial-v2/contracts/types/Position.sol"; -import "./InterfaceFee.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { Position } from "@equilibria/perennial-v2/contracts/types/Position.sol"; +import { InterfaceFee } from "./InterfaceFee.sol"; struct TriggerOrder { uint8 side; diff --git a/packages/perennial-oracle/contracts/Oracle.sol b/packages/perennial-oracle/contracts/Oracle.sol index 81d715291..4c03a854b 100644 --- a/packages/perennial-oracle/contracts/Oracle.sol +++ b/packages/perennial-oracle/contracts/Oracle.sol @@ -1,11 +1,15 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@equilibria/root/attribute/Instance.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IOracleProviderFactory.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; -import "./interfaces/IOracle.sol"; -import "./interfaces/IOracleFactory.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed18Lib } from "@equilibria/root/number/types/UFixed18.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { Instance } from "@equilibria/root/attribute/Instance.sol"; +import { IOracleProvider} from "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { OracleReceipt } from "@equilibria/perennial-v2/contracts/types/OracleReceipt.sol"; +import { IOracle } from "./interfaces/IOracle.sol"; /// @title Oracle /// @notice The top-level oracle contract that implements an oracle provider interface. diff --git a/packages/perennial-oracle/contracts/OracleFactory.sol b/packages/perennial-oracle/contracts/OracleFactory.sol index a7d04f78e..ffa904ba9 100644 --- a/packages/perennial-oracle/contracts/OracleFactory.sol +++ b/packages/perennial-oracle/contracts/OracleFactory.sol @@ -1,11 +1,14 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@equilibria/root/token/types/Token18.sol"; -import "@equilibria/root/attribute/Factory.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IOracleProviderFactory.sol"; -import "./interfaces/IOracleFactory.sol"; +import { UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { Factory } from "@equilibria/root/attribute/Factory.sol"; +import { IOracleProvider } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; +import { IOracleProviderFactory } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProviderFactory.sol"; +import { IOracleFactory } from "./interfaces/IOracleFactory.sol"; import { OracleParameter, OracleParameterStorage } from "./types/OracleParameter.sol"; +import { IOracle } from "./interfaces/IOracle.sol"; /// @title OracleFactory /// @notice Factory for creating and managing oracles diff --git a/packages/perennial-oracle/contracts/chainlink/ChainlinkFactory.sol b/packages/perennial-oracle/contracts/chainlink/ChainlinkFactory.sol index 9c74e0e4c..8d26db699 100644 --- a/packages/perennial-oracle/contracts/chainlink/ChainlinkFactory.sol +++ b/packages/perennial-oracle/contracts/chainlink/ChainlinkFactory.sol @@ -1,8 +1,12 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "../interfaces/IChainlinkFactory.sol"; -import "../keeper/KeeperFactory.sol"; +import { Math } from "@openzeppelin/contracts/utils/math/Math.sol"; +import { UFixed18 } from "@equilibria/root/number/types/UFixed18.sol"; +import { Fixed18Lib } from "@equilibria/root/number/types/Fixed18.sol"; +import { IGasOracle } from "@equilibria/root/gas/GasOracle.sol"; +import { IChainlinkFactory, IVerifierProxy, IFeeManager } from "../interfaces/IChainlinkFactory.sol"; +import { KeeperFactory } from "../keeper/KeeperFactory.sol"; /// @title ChainlinkFactory /// @notice Factory contract for creating and managing Chainlink oracles diff --git a/packages/perennial-oracle/contracts/interfaces/IChainlinkFactory.sol b/packages/perennial-oracle/contracts/interfaces/IChainlinkFactory.sol index 957ca819b..b7b1e5cb1 100644 --- a/packages/perennial-oracle/contracts/interfaces/IChainlinkFactory.sol +++ b/packages/perennial-oracle/contracts/interfaces/IChainlinkFactory.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "./IKeeperFactory.sol"; +import { IKeeperFactory } from "./IKeeperFactory.sol"; interface IChainlinkFactory is IKeeperFactory { error ChainlinkFactoryInputLengthMismatchError(); diff --git a/packages/perennial-oracle/contracts/interfaces/IKeeperFactory.sol b/packages/perennial-oracle/contracts/interfaces/IKeeperFactory.sol index fe69e7cf7..4463a3ab1 100644 --- a/packages/perennial-oracle/contracts/interfaces/IKeeperFactory.sol +++ b/packages/perennial-oracle/contracts/interfaces/IKeeperFactory.sol @@ -1,13 +1,15 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/token/types/Token18.sol"; -import "@equilibria/root/attribute/interfaces/IFactory.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IOracleProviderFactory.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed18 } from "@equilibria/root/number/types/Fixed18.sol"; +import { IFactory } from "@equilibria/root/attribute/interfaces/IFactory.sol"; +import { IOracleProvider } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; +import { IOracleProviderFactory } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProviderFactory.sol"; import { IGasOracle } from "@equilibria/root/gas/GasOracle.sol"; -import "./IKeeperOracle.sol"; -import "./IOracleFactory.sol"; -import "./IPayoffProvider.sol"; +import { IKeeperOracle } from "./IKeeperOracle.sol"; +import { IOracleFactory } from "./IOracleFactory.sol"; +import { IPayoffProvider } from "./IPayoffProvider.sol"; import { KeeperOracleParameter } from "../keeper/types/KeeperOracleParameter.sol"; interface IKeeperFactory is IOracleProviderFactory, IFactory { diff --git a/packages/perennial-oracle/contracts/interfaces/IKeeperOracle.sol b/packages/perennial-oracle/contracts/interfaces/IKeeperOracle.sol index 790bcaf09..2c77a71a4 100644 --- a/packages/perennial-oracle/contracts/interfaces/IKeeperOracle.sol +++ b/packages/perennial-oracle/contracts/interfaces/IKeeperOracle.sol @@ -1,10 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/attribute/interfaces/IInstance.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; -import "./IOracle.sol"; +import { IInstance } from "@equilibria/root/attribute/interfaces/IInstance.sol"; +import { IOracleProvider } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { IOracle } from "./IOracle.sol"; import { PriceResponse } from "../keeper/types/PriceResponse.sol"; interface IKeeperOracle is IOracleProvider, IInstance { diff --git a/packages/perennial-oracle/contracts/interfaces/IMetaQuantsFactory.sol b/packages/perennial-oracle/contracts/interfaces/IMetaQuantsFactory.sol index 85c53540d..d55a3ec79 100644 --- a/packages/perennial-oracle/contracts/interfaces/IMetaQuantsFactory.sol +++ b/packages/perennial-oracle/contracts/interfaces/IMetaQuantsFactory.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@pythnetwork/pyth-sdk-solidity/PythStructs.sol"; -import "./IKeeperFactory.sol"; +import { PythStructs } from "@pythnetwork/pyth-sdk-solidity/PythStructs.sol"; +import { IKeeperFactory } from "./IKeeperFactory.sol"; interface IMetaQuantsFactory is IKeeperFactory { struct UpdateAndSignature { diff --git a/packages/perennial-oracle/contracts/interfaces/IOracle.sol b/packages/perennial-oracle/contracts/interfaces/IOracle.sol index c94222a14..02539095b 100644 --- a/packages/perennial-oracle/contracts/interfaces/IOracle.sol +++ b/packages/perennial-oracle/contracts/interfaces/IOracle.sol @@ -1,10 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; -import "@equilibria/root/token/types/Token18.sol"; -import "@equilibria/root/attribute/interfaces/IInstance.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { IInstance } from "@equilibria/root/attribute/interfaces/IInstance.sol"; +import { IOracleProvider } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; interface IOracle is IOracleProvider, IInstance { // sig: 0x8852e53b diff --git a/packages/perennial-oracle/contracts/interfaces/IOracleFactory.sol b/packages/perennial-oracle/contracts/interfaces/IOracleFactory.sol index 4e212fd4c..f48d4f5f6 100644 --- a/packages/perennial-oracle/contracts/interfaces/IOracleFactory.sol +++ b/packages/perennial-oracle/contracts/interfaces/IOracleFactory.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/token/types/Token18.sol"; -import "@equilibria/root/attribute/interfaces/IFactory.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IOracleProviderFactory.sol"; -import "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; -import "./IOracle.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { IFactory } from "@equilibria/root/attribute/interfaces/IFactory.sol"; +import { IOracleProvider } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; +import { IOracleProviderFactory } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProviderFactory.sol"; +import { IOracle } from "./IOracle.sol"; import { OracleParameter } from "../types/OracleParameter.sol"; interface IOracleFactory is IOracleProviderFactory, IFactory { diff --git a/packages/perennial-oracle/contracts/interfaces/IPayoffProvider.sol b/packages/perennial-oracle/contracts/interfaces/IPayoffProvider.sol index 4d6b975de..b7c3d4714 100644 --- a/packages/perennial-oracle/contracts/interfaces/IPayoffProvider.sol +++ b/packages/perennial-oracle/contracts/interfaces/IPayoffProvider.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/Fixed18.sol"; +import { Fixed18 } from "@equilibria/root/number/types/Fixed18.sol"; interface IPayoffProvider { function payoff(Fixed18 price) external pure returns (Fixed18 payoff); diff --git a/packages/perennial-oracle/contracts/interfaces/IPythFactory.sol b/packages/perennial-oracle/contracts/interfaces/IPythFactory.sol index 50fc8c952..d3543924a 100644 --- a/packages/perennial-oracle/contracts/interfaces/IPythFactory.sol +++ b/packages/perennial-oracle/contracts/interfaces/IPythFactory.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "./IKeeperFactory.sol"; +import { IKeeperFactory } from "./IKeeperFactory.sol"; interface IPythFactory is IKeeperFactory { // sig: 0x22445848 diff --git a/packages/perennial-oracle/contracts/keeper/KeeperFactory.sol b/packages/perennial-oracle/contracts/keeper/KeeperFactory.sol index 95fe920e0..694a827c7 100644 --- a/packages/perennial-oracle/contracts/keeper/KeeperFactory.sol +++ b/packages/perennial-oracle/contracts/keeper/KeeperFactory.sol @@ -1,12 +1,21 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import "@equilibria/root/attribute/Factory.sol"; +import { Math } from "@openzeppelin/contracts/utils/math/Math.sol"; +import { SignedMath } from "@openzeppelin/contracts/utils/math/SignedMath.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { Fixed18, Fixed18Lib } from "@equilibria/root/number/types/Fixed18.sol"; +import { Factory } from "@equilibria/root/attribute/Factory.sol"; import { IGasOracle } from "@equilibria/root/gas/GasOracle.sol"; -import "../interfaces/IKeeperFactory.sol"; -import "../interfaces/IOracleFactory.sol"; +import { IOracleProvider } from "@equilibria/perennial-v2/contracts/interfaces/IOracleProvider.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { IKeeperOracle } from "../interfaces/IKeeperOracle.sol"; +import { IKeeperFactory } from "../interfaces/IKeeperFactory.sol"; +import { IOracleFactory } from "../interfaces/IOracleFactory.sol"; +import { IPayoffProvider } from "../interfaces/IPayoffProvider.sol"; import { KeeperOracleParameter, KeeperOracleParameterStorage } from "./types/KeeperOracleParameter.sol"; +import { OracleParameter } from "../types/OracleParameter.sol"; import { DedupLib } from "./libs/DedupLib.sol"; /// @title KeeperFactory diff --git a/packages/perennial-oracle/contracts/keeper/KeeperOracle.sol b/packages/perennial-oracle/contracts/keeper/KeeperOracle.sol index 61e6eaeb0..09dfc77fa 100644 --- a/packages/perennial-oracle/contracts/keeper/KeeperOracle.sol +++ b/packages/perennial-oracle/contracts/keeper/KeeperOracle.sol @@ -1,12 +1,20 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; -import "@equilibria/root/attribute/Instance.sol"; +// import "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import { EnumerableSet } from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; +import { UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed18Lib } from "@equilibria/root/number/types/UFixed18.sol"; +import { Instance } from "@equilibria/root/attribute/Instance.sol"; import { IGasOracle } from "@equilibria/root/gas/GasOracle.sol"; -import "../interfaces/IKeeperFactory.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { OracleReceipt } from "@equilibria/perennial-v2/contracts/types/OracleReceipt.sol"; +import { IKeeperFactory } from "../interfaces/IKeeperFactory.sol"; +import { IKeeperOracle } from "../interfaces/IKeeperOracle.sol"; import { PriceResponse, PriceResponseStorage, PriceResponseLib } from "./types/PriceResponse.sol"; +import { KeeperOracleParameter } from "./types/KeeperOracleParameter.sol"; +import { IOracle } from "../interfaces/IOracle.sol"; /// @title KeeperOracle /// @notice Generic implementation of the IOracle interface for keeper-based oracles. diff --git a/packages/perennial-oracle/contracts/keeper/KeeperOracle_Migration.sol b/packages/perennial-oracle/contracts/keeper/KeeperOracle_Migration.sol index 7326c6844..d48bbf037 100644 --- a/packages/perennial-oracle/contracts/keeper/KeeperOracle_Migration.sol +++ b/packages/perennial-oracle/contracts/keeper/KeeperOracle_Migration.sol @@ -1,7 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import {IMarket, OracleVersion, OracleReceipt } from "../interfaces/IKeeperFactory.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { OracleReceipt } from "@equilibria/perennial-v2/contracts/types/OracleReceipt.sol"; import { PriceResponse } from "./types/PriceResponse.sol"; import { KeeperOracle } from "./KeeperOracle.sol"; diff --git a/packages/perennial-oracle/contracts/keeper/types/KeeperOracleParameter.sol b/packages/perennial-oracle/contracts/keeper/types/KeeperOracleParameter.sol index 03bb66581..272c4c8f3 100644 --- a/packages/perennial-oracle/contracts/keeper/types/KeeperOracleParameter.sol +++ b/packages/perennial-oracle/contracts/keeper/types/KeeperOracleParameter.sol @@ -1,8 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; -import "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; struct KeeperOracleParameter { /// @dev The latest granularity setting in seconds diff --git a/packages/perennial-oracle/contracts/keeper/types/PriceResponse.sol b/packages/perennial-oracle/contracts/keeper/types/PriceResponse.sol index 877017033..027eac890 100644 --- a/packages/perennial-oracle/contracts/keeper/types/PriceResponse.sol +++ b/packages/perennial-oracle/contracts/keeper/types/PriceResponse.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; import { OracleReceipt } from "@equilibria/perennial-v2/contracts/types/OracleReceipt.sol"; diff --git a/packages/perennial-oracle/contracts/metaquants/MetaQuantsFactory.sol b/packages/perennial-oracle/contracts/metaquants/MetaQuantsFactory.sol index d0cda30a5..ecac6d4f9 100644 --- a/packages/perennial-oracle/contracts/metaquants/MetaQuantsFactory.sol +++ b/packages/perennial-oracle/contracts/metaquants/MetaQuantsFactory.sol @@ -1,9 +1,12 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import "../interfaces/IMetaQuantsFactory.sol"; -import "../keeper/KeeperFactory.sol"; +import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import { SignedMath } from "@openzeppelin/contracts/utils/math/SignedMath.sol"; +import { Fixed18, Fixed18Lib } from "@equilibria/root/number/types/Fixed18.sol"; +import { IGasOracle } from "@equilibria/root/gas/GasOracle.sol"; +import { IMetaQuantsFactory } from "../interfaces/IMetaQuantsFactory.sol"; +import { KeeperFactory } from "../keeper/KeeperFactory.sol"; contract MetaQuantsFactory is IMetaQuantsFactory, KeeperFactory { int32 private constant PARSE_DECIMALS = 18; diff --git a/packages/perennial-oracle/contracts/payoff/Inverse.sol b/packages/perennial-oracle/contracts/payoff/Inverse.sol index 6d424be13..3670ce3e8 100644 --- a/packages/perennial-oracle/contracts/payoff/Inverse.sol +++ b/packages/perennial-oracle/contracts/payoff/Inverse.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@openzeppelin/contracts/utils/math/Math.sol"; -import "../interfaces/IPayoffProvider.sol"; +import { Fixed18, Fixed18Lib } from "@equilibria/root/number/types/Fixed18.sol"; +import { IPayoffProvider } from "../interfaces/IPayoffProvider.sol"; contract Inverse is IPayoffProvider { function payoff(Fixed18 price) external pure override returns (Fixed18) { diff --git a/packages/perennial-oracle/contracts/payoff/PowerHalf.sol b/packages/perennial-oracle/contracts/payoff/PowerHalf.sol index ffea82d61..31f59c4c8 100644 --- a/packages/perennial-oracle/contracts/payoff/PowerHalf.sol +++ b/packages/perennial-oracle/contracts/payoff/PowerHalf.sol @@ -1,8 +1,10 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@openzeppelin/contracts/utils/math/Math.sol"; -import "../interfaces/IPayoffProvider.sol"; +import { Math } from "@openzeppelin/contracts/utils/math/Math.sol"; +import { UFixed18 } from "@equilibria/root/number/types/UFixed18.sol"; +import { Fixed18, Fixed18Lib } from "@equilibria/root/number/types/Fixed18.sol"; +import { IPayoffProvider } from "../interfaces/IPayoffProvider.sol"; contract PowerHalf is IPayoffProvider { uint256 private constant BASE = 1e18; diff --git a/packages/perennial-oracle/contracts/payoff/PowerTwo.sol b/packages/perennial-oracle/contracts/payoff/PowerTwo.sol index f8e2517c0..0fd40fbe7 100644 --- a/packages/perennial-oracle/contracts/payoff/PowerTwo.sol +++ b/packages/perennial-oracle/contracts/payoff/PowerTwo.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "../interfaces/IPayoffProvider.sol"; +import { Fixed18 } from "@equilibria/root/number/types/Fixed18.sol"; +import { IPayoffProvider } from "../interfaces/IPayoffProvider.sol"; contract PowerTwo is IPayoffProvider { function payoff(Fixed18 price) external pure override returns (Fixed18) { diff --git a/packages/perennial-oracle/contracts/pyth/PythFactory.sol b/packages/perennial-oracle/contracts/pyth/PythFactory.sol index 859e323ec..44355a3e8 100644 --- a/packages/perennial-oracle/contracts/pyth/PythFactory.sol +++ b/packages/perennial-oracle/contracts/pyth/PythFactory.sol @@ -1,10 +1,14 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import "@pythnetwork/pyth-sdk-solidity/AbstractPyth.sol"; -import "../interfaces/IPythFactory.sol"; -import "../keeper/KeeperFactory.sol"; +import { SignedMath } from "@openzeppelin/contracts/utils/math/SignedMath.sol"; +import { IGasOracle } from "@equilibria/root/gas/GasOracle.sol"; +import { Fixed18, Fixed18Lib } from "@equilibria/root/number/types/Fixed18.sol"; +import { AbstractPyth, PythStructs } from "@pythnetwork/pyth-sdk-solidity/AbstractPyth.sol"; +import { IPythFactory, IPythStaticFee } from "../interfaces/IPythFactory.sol"; +import { IKeeperOracle } from "../interfaces/IKeeperOracle.sol"; +import { IKeeperFactory } from "../interfaces/IKeeperFactory.sol"; +import { KeeperFactory } from "../keeper/KeeperFactory.sol"; /// @title PythFactory /// @notice Factory contract for creating and managing Pyth oracles diff --git a/packages/perennial-oracle/contracts/test/DedupTester.sol b/packages/perennial-oracle/contracts/test/DedupTester.sol index a98a35297..749e86f2d 100644 --- a/packages/perennial-oracle/contracts/test/DedupTester.sol +++ b/packages/perennial-oracle/contracts/test/DedupTester.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../keeper/libs/DedupLib.sol"; +import { DedupLib } from "../keeper/libs/DedupLib.sol"; contract DedupTester { function dedup(bytes32[] memory ids) external pure returns (bytes32[] memory dedupedIds, uint256[] memory indices) { diff --git a/packages/perennial-oracle/contracts/test/KeeperOracleParameterTester.sol b/packages/perennial-oracle/contracts/test/KeeperOracleParameterTester.sol index 0f8ba1633..110ca130d 100644 --- a/packages/perennial-oracle/contracts/test/KeeperOracleParameterTester.sol +++ b/packages/perennial-oracle/contracts/test/KeeperOracleParameterTester.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../keeper/types/KeeperOracleParameter.sol"; +import { KeeperOracleParameter, KeeperOracleParameterStorage } from "../keeper/types/KeeperOracleParameter.sol"; contract KeeperOracleParameterTester { KeeperOracleParameterStorage public kreeperOracleParameter; diff --git a/packages/perennial-oracle/contracts/test/MockFeeManager.sol b/packages/perennial-oracle/contracts/test/MockFeeManager.sol index d65aa1963..357e8ed9f 100644 --- a/packages/perennial-oracle/contracts/test/MockFeeManager.sol +++ b/packages/perennial-oracle/contracts/test/MockFeeManager.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../interfaces/IChainlinkFactory.sol"; +import { IFeeManager, Asset } from "../interfaces/IChainlinkFactory.sol"; -contract MockFeeManager is IFeeManager{ +contract MockFeeManager is IFeeManager { address public immutable nativeAddress; constructor(address nativeAddress_) { diff --git a/packages/perennial-oracle/contracts/test/MockVerifierProxy.sol b/packages/perennial-oracle/contracts/test/MockVerifierProxy.sol index dfdc85c3a..eb03b95c7 100644 --- a/packages/perennial-oracle/contracts/test/MockVerifierProxy.sol +++ b/packages/perennial-oracle/contracts/test/MockVerifierProxy.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "./MockFeeManager.sol"; +import { MockFeeManager } from "./MockFeeManager.sol"; contract MockVerifierProxy { MockFeeManager public immutable mockFeeManager; diff --git a/packages/perennial-oracle/contracts/test/OracleParameterTester.sol b/packages/perennial-oracle/contracts/test/OracleParameterTester.sol index b5c2fbd73..93ff06472 100644 --- a/packages/perennial-oracle/contracts/test/OracleParameterTester.sol +++ b/packages/perennial-oracle/contracts/test/OracleParameterTester.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/OracleParameter.sol"; +import { OracleParameter, OracleParameterStorage } from "../types/OracleParameter.sol"; contract OracleParameterTester { OracleParameterStorage public oracleParameter; diff --git a/packages/perennial-oracle/contracts/test/PriceResponseTester.sol b/packages/perennial-oracle/contracts/test/PriceResponseTester.sol index 1344f5d69..34aa0c7fb 100644 --- a/packages/perennial-oracle/contracts/test/PriceResponseTester.sol +++ b/packages/perennial-oracle/contracts/test/PriceResponseTester.sol @@ -1,7 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../keeper/types/PriceResponse.sol"; +import { PriceResponse, PriceResponseLib, PriceResponseStorage } from "../keeper/types/PriceResponse.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { OracleReceipt } from "@equilibria/perennial-v2/contracts/types/OracleReceipt.sol"; contract PriceResponseTester { PriceResponseStorage public priceResponse; diff --git a/packages/perennial-oracle/contracts/types/OracleParameter.sol b/packages/perennial-oracle/contracts/types/OracleParameter.sol index 05f9796ce..ea16b3476 100644 --- a/packages/perennial-oracle/contracts/types/OracleParameter.sol +++ b/packages/perennial-oracle/contracts/types/OracleParameter.sol @@ -1,8 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; -import "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; struct OracleParameter { /// @dev The cap for the granularity setting in seconds diff --git a/packages/perennial-vault/contracts/Vault.sol b/packages/perennial-vault/contracts/Vault.sol index 6a374e73b..1f213dcf0 100644 --- a/packages/perennial-vault/contracts/Vault.sol +++ b/packages/perennial-vault/contracts/Vault.sol @@ -1,15 +1,23 @@ //SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@equilibria/root/attribute/Instance.sol"; -import "@openzeppelin/contracts/utils/math/Math.sol"; -import "./interfaces/IVaultFactory.sol"; -import "./types/Account.sol"; -import "./types/Checkpoint.sol"; -import "./types/Registration.sol"; -import "./types/VaultParameter.sol"; -import "./interfaces/IVault.sol"; -import "./libs/StrategyLib.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed18Lib } from "@equilibria/root/number/types/UFixed18.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { Instance } from "@equilibria/root/attribute/Instance.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { Checkpoint as PerennialCheckpoint } from "@equilibria/perennial-v2/contracts/types/Checkpoint.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; +import { Local } from "@equilibria/perennial-v2/contracts/types/Local.sol"; +import { Math } from "@openzeppelin/contracts/utils/math/Math.sol"; +import { IVault } from "./interfaces/IVault.sol"; +import { IVaultFactory } from "./interfaces/IVaultFactory.sol"; +import { Account, AccountStorage } from "./types/Account.sol"; +import { Checkpoint, CheckpointStorage } from "./types/Checkpoint.sol"; +import { Registration, RegistrationStorage } from "./types/Registration.sol"; +import { VaultParameter, VaultParameterStorage } from "./types/VaultParameter.sol"; +import { StrategyLib } from "./libs/StrategyLib.sol"; /// @title Vault /// @notice Deploys underlying capital by weight in maker positions across registered markets diff --git a/packages/perennial-vault/contracts/VaultFactory.sol b/packages/perennial-vault/contracts/VaultFactory.sol index dc9df3c65..b34e55433 100644 --- a/packages/perennial-vault/contracts/VaultFactory.sol +++ b/packages/perennial-vault/contracts/VaultFactory.sol @@ -1,11 +1,14 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity 0.8.24; -import "@equilibria/root/attribute/Ownable.sol"; -import "@equilibria/root/attribute/Factory.sol"; -import "@equilibria/root/attribute/Pausable.sol"; -import "./interfaces/IVaultFactory.sol"; -import { VaultParameter } from "./types/VaultParameter.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed18Lib } from "@equilibria/root/number/types/UFixed18.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { Factory } from "@equilibria/root/attribute/Factory.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { IMarketFactory } from "@equilibria/perennial-v2/contracts/interfaces/IMarketFactory.sol"; +import { IVault } from "./interfaces/IVault.sol"; +import { IVaultFactory } from "./interfaces/IVaultFactory.sol"; /// @title VaultFactory /// @notice Manages creating new markets and global protocol parameters. diff --git a/packages/perennial-vault/contracts/interfaces/IVault.sol b/packages/perennial-vault/contracts/interfaces/IVault.sol index 8de6eb560..5a71395ec 100644 --- a/packages/perennial-vault/contracts/interfaces/IVault.sol +++ b/packages/perennial-vault/contracts/interfaces/IVault.sol @@ -1,7 +1,8 @@ //SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import { IMarket, Checkpoint as PerennialCheckpoint } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { Checkpoint as PerennialCheckpoint } from "@equilibria/perennial-v2/contracts/types/Checkpoint.sol"; import { IInstance } from "@equilibria/root/attribute/interfaces/IInstance.sol"; import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; diff --git a/packages/perennial-vault/contracts/libs/StrategyLib.sol b/packages/perennial-vault/contracts/libs/StrategyLib.sol index c756e6125..20b9704ee 100644 --- a/packages/perennial-vault/contracts/libs/StrategyLib.sol +++ b/packages/perennial-vault/contracts/libs/StrategyLib.sol @@ -3,16 +3,13 @@ pragma solidity ^0.8.13; import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; -import { - MarketParameter, - RiskParameter, - Local, - Global, - Position, - PositionLib, - Order, - OracleVersion -} from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { MarketParameter } from "@equilibria/perennial-v2/contracts/types/MarketParameter.sol"; +import { RiskParameter } from "@equilibria/perennial-v2/contracts/types/RiskParameter.sol"; +import { Local } from "@equilibria/perennial-v2/contracts/types/Local.sol"; +import { Global } from "@equilibria/perennial-v2/contracts/types/Global.sol"; +import { Position, PositionLib } from "@equilibria/perennial-v2/contracts/types/Position.sol"; +import { Order } from "@equilibria/perennial-v2/contracts/types/Order.sol"; +import { OracleVersion } from "@equilibria/perennial-v2/contracts/types/OracleVersion.sol"; import { Registration } from "../types/Registration.sol"; /// @dev The context of an underlying market diff --git a/packages/perennial-vault/contracts/test/AccountTester.sol b/packages/perennial-vault/contracts/test/AccountTester.sol index 59f970b27..dc7ee7d1f 100644 --- a/packages/perennial-vault/contracts/test/AccountTester.sol +++ b/packages/perennial-vault/contracts/test/AccountTester.sol @@ -1,7 +1,9 @@ // // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Account.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Account, AccountStorage } from "../types/Account.sol"; +import { Checkpoint } from "../types/Checkpoint.sol"; contract AccountTester { AccountStorage public account; diff --git a/packages/perennial-vault/contracts/test/CheckpointTester.sol b/packages/perennial-vault/contracts/test/CheckpointTester.sol index 9328af5aa..029f86c06 100644 --- a/packages/perennial-vault/contracts/test/CheckpointTester.sol +++ b/packages/perennial-vault/contracts/test/CheckpointTester.sol @@ -1,7 +1,10 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Checkpoint.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Checkpoint as PerennialCheckpoint } from "@equilibria/perennial-v2/contracts/types/Checkpoint.sol"; +import { Checkpoint, CheckpointStorage } from "../types/Checkpoint.sol"; +import { Account } from "../types/Account.sol"; contract CheckpointTester { CheckpointStorage public checkpoint; diff --git a/packages/perennial-vault/contracts/test/RegistrationTester.sol b/packages/perennial-vault/contracts/test/RegistrationTester.sol index 256cfbf0d..c9c9d7eb1 100644 --- a/packages/perennial-vault/contracts/test/RegistrationTester.sol +++ b/packages/perennial-vault/contracts/test/RegistrationTester.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Registration.sol"; +import { Registration, RegistrationStorage } from "../types/Registration.sol"; contract RegistrationTester { RegistrationStorage public registration; diff --git a/packages/perennial-vault/contracts/test/VaultParameterTest.sol b/packages/perennial-vault/contracts/test/VaultParameterTest.sol index f06942c28..6bd7e3472 100644 --- a/packages/perennial-vault/contracts/test/VaultParameterTest.sol +++ b/packages/perennial-vault/contracts/test/VaultParameterTest.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/VaultParameter.sol"; +import { VaultParameter, VaultParameterStorage } from "../types/VaultParameter.sol"; contract VaultParameterTester { VaultParameterStorage public vaultParameter; diff --git a/packages/perennial-vault/contracts/types/Account.sol b/packages/perennial-vault/contracts/types/Account.sol index d5fef1ac5..c44a06d93 100644 --- a/packages/perennial-vault/contracts/types/Account.sol +++ b/packages/perennial-vault/contracts/types/Account.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; -import "./Checkpoint.sol"; +import { UFixed6 } from"@equilibria/root/number/types/UFixed6.sol"; +import { Checkpoint } from "./Checkpoint.sol"; /// @dev Account type struct Account { diff --git a/packages/perennial-vault/contracts/types/Checkpoint.sol b/packages/perennial-vault/contracts/types/Checkpoint.sol index c788fc27a..390d4d221 100644 --- a/packages/perennial-vault/contracts/types/Checkpoint.sol +++ b/packages/perennial-vault/contracts/types/Checkpoint.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.13; import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; -import { Checkpoint as PerennialCheckpoint } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; +import { Checkpoint as PerennialCheckpoint } from "@equilibria/perennial-v2/contracts/types/Checkpoint.sol"; import { Account } from "./Account.sol"; /// @dev Checkpoint type diff --git a/packages/perennial-vault/contracts/types/Registration.sol b/packages/perennial-vault/contracts/types/Registration.sol index 8dce8eb7c..2e9751b4f 100644 --- a/packages/perennial-vault/contracts/types/Registration.sol +++ b/packages/perennial-vault/contracts/types/Registration.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.13; import { IMarket } from "@equilibria/perennial-v2/contracts/interfaces/IMarket.sol"; -import "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; /// @dev Registration type struct Registration { diff --git a/packages/perennial-vault/contracts/types/VaultParameter.sol b/packages/perennial-vault/contracts/types/VaultParameter.sol index 2c639e746..4acaa363f 100644 --- a/packages/perennial-vault/contracts/types/VaultParameter.sol +++ b/packages/perennial-vault/contracts/types/VaultParameter.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; /// @dev VaultParameter type struct VaultParameter { diff --git a/packages/perennial/contracts/Market.sol b/packages/perennial/contracts/Market.sol index 3588040aa..7cf9fc1fe 100644 --- a/packages/perennial/contracts/Market.sol +++ b/packages/perennial/contracts/Market.sol @@ -1,13 +1,32 @@ // SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.24; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed18, UFixed18Lib } from "@equilibria/root/number/types/UFixed18.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; import { IVerifier } from "@equilibria/perennial-v2-verifier/contracts/interfaces/IVerifier.sol"; -import "@equilibria/root/attribute/Instance.sol"; -import "@equilibria/root/attribute/ReentrancyGuard.sol"; -import "./interfaces/IMarket.sol"; -import "./interfaces/IMarketFactory.sol"; -import "./libs/InvariantLib.sol"; -import "./libs/MagicValueLib.sol"; +import { Instance } from "@equilibria/root/attribute/Instance.sol"; +import { ReentrancyGuard } from "@equilibria/root/attribute/ReentrancyGuard.sol"; +import { Intent } from "@equilibria/perennial-v2-verifier/contracts/types/Intent.sol"; +import { IMarket } from "./interfaces/IMarket.sol"; +import { IMarketFactory } from "./interfaces/IMarketFactory.sol"; +import { IOracleProvider } from "./interfaces/IOracleProvider.sol"; +import { MarketParameter, MarketParameterStorage } from "./types/MarketParameter.sol"; +import { RiskParameter, RiskParameterStorage } from "./types/RiskParameter.sol"; +import { Global, GlobalStorage } from "./types/Global.sol"; +import { Position, PositionStorageGlobal, PositionStorageLocal } from "./types/Position.sol"; +import { Local, LocalStorage } from "./types/Local.sol"; +import { Version, VersionStorage } from "./types/Version.sol"; +import { Order, OrderLib, OrderStorageGlobal, OrderStorageLocal } from "./types/Order.sol"; +import { Guarantee, GuaranteeLib, GuaranteeStorageGlobal, GuaranteeStorageLocal } from "./types/Guarantee.sol"; +import { Checkpoint, CheckpointStorage } from "./types/Checkpoint.sol"; +import { OracleVersion } from "./types/OracleVersion.sol"; +import { OracleReceipt } from "./types/OracleReceipt.sol"; +import { InvariantLib } from "./libs/InvariantLib.sol"; +import { MagicValueLib } from "./libs/MagicValueLib.sol"; +import { VersionAccumulationResponse, VersionLib } from "./libs/VersionLib.sol"; +import { CheckpointAccumulationResponse, CheckpointLib } from "./libs/CheckpointLib.sol"; /// @title Market /// @notice Manages logic and state for a single market. diff --git a/packages/perennial/contracts/MarketFactory.sol b/packages/perennial/contracts/MarketFactory.sol index f851fc0a0..fe400d9d4 100644 --- a/packages/perennial/contracts/MarketFactory.sol +++ b/packages/perennial/contracts/MarketFactory.sol @@ -1,10 +1,18 @@ // SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.24; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; import { IVerifier } from "@equilibria/perennial-v2-verifier/contracts/interfaces/IVerifier.sol"; -import "@equilibria/root/attribute/Factory.sol"; -import "./interfaces/IOracleProvider.sol"; -import "./interfaces/IMarketFactory.sol"; +import { Factory, IFactory } from "@equilibria/root/attribute/Factory.sol"; +import { IInstance } from "@equilibria/root/attribute/Instance.sol"; +import { IMarket } from "./interfaces/IMarket.sol"; +import { IOracleProvider } from "./interfaces/IOracleProvider.sol"; +import { IMarketFactory } from "./interfaces/IMarketFactory.sol"; +import { OperatorUpdate } from "@equilibria/perennial-v2-verifier/contracts/types/OperatorUpdate.sol"; +import { SignerUpdate } from "@equilibria/perennial-v2-verifier/contracts/types/SignerUpdate.sol"; +import { AccessUpdate } from "@equilibria/perennial-v2-verifier/contracts/types/AccessUpdate.sol"; +import { AccessUpdateBatch } from "@equilibria/perennial-v2-verifier/contracts/types/AccessUpdateBatch.sol"; +import { ProtocolParameter, ProtocolParameterStorage } from "./types/ProtocolParameter.sol"; /// @title MarketFactory /// @notice Manages creating new markets and global protocol parameters. diff --git a/packages/perennial/contracts/interfaces/IMarket.sol b/packages/perennial/contracts/interfaces/IMarket.sol index e03f17db0..18660c312 100644 --- a/packages/perennial/contracts/interfaces/IMarket.sol +++ b/packages/perennial/contracts/interfaces/IMarket.sol @@ -1,21 +1,24 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/attribute/interfaces/IInstance.sol"; -import "@equilibria/root/number/types/UFixed6.sol"; -import "@equilibria/root/token/types/Token18.sol"; -import "@equilibria/perennial-v2-verifier/contracts/types/Intent.sol"; -import "./IOracleProvider.sol"; -import "../types/OracleVersion.sol"; -import "../types/MarketParameter.sol"; -import "../types/RiskParameter.sol"; -import "../types/Version.sol"; -import "../types/Local.sol"; -import "../types/Global.sol"; -import "../types/Position.sol"; -import "../types/Checkpoint.sol"; -import "../types/Guarantee.sol"; -import "../libs/VersionLib.sol"; +import { IInstance } from "@equilibria/root/attribute/interfaces/IInstance.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; +import { Token18 } from "@equilibria/root/token/types/Token18.sol"; +import { Intent } from "@equilibria/perennial-v2-verifier/contracts/types/Intent.sol"; +import { IOracleProvider } from "./IOracleProvider.sol"; +import { OracleVersion } from "../types/OracleVersion.sol"; +import { MarketParameter } from "../types/MarketParameter.sol"; +import { RiskParameter } from "../types/RiskParameter.sol"; +import { Version } from "../types/Version.sol"; +import { Local } from "../types/Local.sol"; +import { Global } from "../types/Global.sol"; +import { Position } from "../types/Position.sol"; +import { Checkpoint } from "../types/Checkpoint.sol"; +import { Order } from "../types/Order.sol"; +import { Guarantee } from "../types/Guarantee.sol"; +import { VersionAccumulationResult } from "../libs/VersionLib.sol"; +import { CheckpointAccumulationResult } from "../libs/CheckpointLib.sol"; interface IMarket is IInstance { struct MarketDefinition { diff --git a/packages/perennial/contracts/interfaces/IMarketFactory.sol b/packages/perennial/contracts/interfaces/IMarketFactory.sol index 0a9f10224..93b2ed049 100644 --- a/packages/perennial/contracts/interfaces/IMarketFactory.sol +++ b/packages/perennial/contracts/interfaces/IMarketFactory.sol @@ -1,14 +1,16 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/attribute/interfaces/IFactory.sol"; +import { IFactory } from "@equilibria/root/attribute/interfaces/IFactory.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; import { IVerifier } from "@equilibria/perennial-v2-verifier/contracts/interfaces/IVerifier.sol"; -import "@equilibria/perennial-v2-verifier/contracts/types/OperatorUpdate.sol"; -import "@equilibria/perennial-v2-verifier/contracts/types/SignerUpdate.sol"; -import "@equilibria/perennial-v2-verifier/contracts/types/AccessUpdate.sol"; -import "@equilibria/perennial-v2-verifier/contracts/types/AccessUpdateBatch.sol"; -import "../types/ProtocolParameter.sol"; -import "./IMarket.sol"; +import { OperatorUpdate } from "@equilibria/perennial-v2-verifier/contracts/types/OperatorUpdate.sol"; +import { SignerUpdate } from "@equilibria/perennial-v2-verifier/contracts/types/SignerUpdate.sol"; +import { AccessUpdate } from "@equilibria/perennial-v2-verifier/contracts/types/AccessUpdate.sol"; +import { AccessUpdateBatch } from "@equilibria/perennial-v2-verifier/contracts/types/AccessUpdateBatch.sol"; +import { ProtocolParameter } from "../types/ProtocolParameter.sol"; +import { IMarket } from "./IMarket.sol"; +import { IOracleProvider } from "./IOracleProvider.sol"; interface IMarketFactory is IFactory { event ParameterUpdated(ProtocolParameter newParameter); diff --git a/packages/perennial/contracts/interfaces/IOracleProviderFactory.sol b/packages/perennial/contracts/interfaces/IOracleProviderFactory.sol index 715a0c7d4..1f97815f5 100644 --- a/packages/perennial/contracts/interfaces/IOracleProviderFactory.sol +++ b/packages/perennial/contracts/interfaces/IOracleProviderFactory.sol @@ -1,8 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/OracleVersion.sol"; -import "./IOracleProvider.sol"; +import { IOracleProvider } from "./IOracleProvider.sol"; interface IOracleProviderFactory { event OracleCreated(IOracleProvider indexed oracle, bytes32 indexed id); diff --git a/packages/perennial/contracts/libs/CheckpointLib.sol b/packages/perennial/contracts/libs/CheckpointLib.sol index 3104d898f..2a3257610 100644 --- a/packages/perennial/contracts/libs/CheckpointLib.sol +++ b/packages/perennial/contracts/libs/CheckpointLib.sol @@ -1,17 +1,15 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/accumulator/types/Accumulator6.sol"; -import "../interfaces/IMarket.sol"; -import "../types/OracleVersion.sol"; -import "../types/RiskParameter.sol"; -import "../types/Global.sol"; -import "../types/Local.sol"; -import "../types/Order.sol"; -import "../types/Version.sol"; -import "../types/Checkpoint.sol"; -import "../types/Guarantee.sol"; - +import { Accumulator6 } from "@equilibria/root/accumulator/types/Accumulator6.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { IMarket } from "../interfaces/IMarket.sol"; +import { Position } from "../types/Position.sol"; +import { Order } from "../types/Order.sol"; +import { Version } from "../types/Version.sol"; +import { Checkpoint } from "../types/Checkpoint.sol"; +import { Guarantee } from "../types/Guarantee.sol"; struct CheckpointAccumulationResponse { /// @dev Total Collateral change due to collateral, price override, and trade fee and offset diff --git a/packages/perennial/contracts/libs/InvariantLib.sol b/packages/perennial/contracts/libs/InvariantLib.sol index cc490be26..c1e112240 100644 --- a/packages/perennial/contracts/libs/InvariantLib.sol +++ b/packages/perennial/contracts/libs/InvariantLib.sol @@ -1,15 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/accumulator/types/Accumulator6.sol"; -import "../interfaces/IMarket.sol"; -import "../types/OracleVersion.sol"; -import "../types/RiskParameter.sol"; -import "../types/Global.sol"; -import "../types/Local.sol"; -import "../types/Order.sol"; -import "../types/Version.sol"; -import "../types/Checkpoint.sol"; +import { Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { IMarket } from "../interfaces/IMarket.sol"; +import { PositionLib } from "../types/Position.sol"; +import { Order } from "../types/Order.sol"; +import { Guarantee } from "../types/Guarantee.sol"; /// @title InvariantLib /// @dev (external-safe): this library is safe to externalize diff --git a/packages/perennial/contracts/libs/MagicValueLib.sol b/packages/perennial/contracts/libs/MagicValueLib.sol index 1ba1a8ea0..1adc10fe8 100644 --- a/packages/perennial/contracts/libs/MagicValueLib.sol +++ b/packages/perennial/contracts/libs/MagicValueLib.sol @@ -1,15 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/accumulator/types/Accumulator6.sol"; -import "../interfaces/IMarket.sol"; -import "../types/OracleVersion.sol"; -import "../types/RiskParameter.sol"; -import "../types/Global.sol"; -import "../types/Local.sol"; -import "../types/Order.sol"; -import "../types/Version.sol"; -import "../types/Checkpoint.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { IMarket } from "../interfaces/IMarket.sol"; /// @title MagicValueLib /// @dev (external-safe): this library is safe to externalize diff --git a/packages/perennial/contracts/libs/VersionLib.sol b/packages/perennial/contracts/libs/VersionLib.sol index f02be8f40..b10c26385 100644 --- a/packages/perennial/contracts/libs/VersionLib.sol +++ b/packages/perennial/contracts/libs/VersionLib.sol @@ -1,17 +1,18 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/accumulator/types/Accumulator6.sol"; -import "@equilibria/root/accumulator/types/UAccumulator6.sol"; -import "../interfaces/IMarket.sol"; -import "../types/ProtocolParameter.sol"; -import "../types/MarketParameter.sol"; -import "../types/RiskParameter.sol"; -import "../types/Global.sol"; -import "../types/Position.sol"; -import "../types/Version.sol"; -import "../types/OracleVersion.sol"; -import "../types/OracleReceipt.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { IMarket } from "../interfaces/IMarket.sol"; +import { MarketParameter } from "../types/MarketParameter.sol"; +import { RiskParameter } from "../types/RiskParameter.sol"; +import { Global } from "../types/Global.sol"; +import { Position } from "../types/Position.sol"; +import { Order } from "../types/Order.sol"; +import { Guarantee } from "../types/Guarantee.sol"; +import { Version } from "../types/Version.sol"; +import { OracleVersion } from "../types/OracleVersion.sol"; +import { OracleReceipt } from "../types/OracleReceipt.sol"; /// @dev The response of the version accumulation /// Contains only select fee information needed for the downstream market contract diff --git a/packages/perennial/contracts/test/CheckpointTester.sol b/packages/perennial/contracts/test/CheckpointTester.sol index cf1d141d4..7acdf8f24 100644 --- a/packages/perennial/contracts/test/CheckpointTester.sol +++ b/packages/perennial/contracts/test/CheckpointTester.sol @@ -1,9 +1,12 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../interfaces/IMarket.sol"; -import "../types/Checkpoint.sol"; -import "../libs/CheckpointLib.sol"; +import { IMarket } from "../interfaces/IMarket.sol"; +import { Checkpoint, CheckpointStorage } from "../types/Checkpoint.sol"; +import { Order } from "../types/Order.sol"; +import { Guarantee } from "../types/Guarantee.sol"; +import { Version } from "../types/Version.sol"; +import { CheckpointLib, CheckpointAccumulationResponse } from "../libs/CheckpointLib.sol"; contract CheckpointTester { CheckpointStorage public checkpoint; diff --git a/packages/perennial/contracts/test/GlobalTester.sol b/packages/perennial/contracts/test/GlobalTester.sol index 84d3bd674..d4cbb00f2 100644 --- a/packages/perennial/contracts/test/GlobalTester.sol +++ b/packages/perennial/contracts/test/GlobalTester.sol @@ -1,7 +1,10 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Global.sol"; +import { Global, GlobalStorage } from "../types/Global.sol"; +import { VersionAccumulationResponse } from "../libs/VersionLib.sol"; +import { MarketParameter } from "../types/MarketParameter.sol"; +import { OracleReceipt } from "../types/OracleReceipt.sol"; contract GlobalTester { GlobalStorage public global; diff --git a/packages/perennial/contracts/test/GuaranteeTester.sol b/packages/perennial/contracts/test/GuaranteeTester.sol index 21892e734..a7b313cdf 100644 --- a/packages/perennial/contracts/test/GuaranteeTester.sol +++ b/packages/perennial/contracts/test/GuaranteeTester.sol @@ -1,7 +1,10 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Guarantee.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; +import { Guarantee, GuaranteeLib, GuaranteeStorageGlobal, GuaranteeStorageLocal } from "../types/Guarantee.sol"; +import { Order } from "../types/Order.sol"; abstract contract GuaranteeTester { function read() public virtual view returns (Guarantee memory); diff --git a/packages/perennial/contracts/test/LocalTester.sol b/packages/perennial/contracts/test/LocalTester.sol index 2cf79c726..5e15fdf88 100644 --- a/packages/perennial/contracts/test/LocalTester.sol +++ b/packages/perennial/contracts/test/LocalTester.sol @@ -1,7 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Local.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; +import { Local, LocalStorage } from "../types/Local.sol"; +import { CheckpointAccumulationResponse } from "../libs/CheckpointLib.sol"; contract LocalTester { LocalStorage public local; diff --git a/packages/perennial/contracts/test/MarketParameterTester.sol b/packages/perennial/contracts/test/MarketParameterTester.sol index e9e23341d..d74181590 100644 --- a/packages/perennial/contracts/test/MarketParameterTester.sol +++ b/packages/perennial/contracts/test/MarketParameterTester.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/MarketParameter.sol"; +import { MarketParameter, MarketParameterStorage } from "../types/MarketParameter.sol"; +import { ProtocolParameter } from "../types/ProtocolParameter.sol"; contract MarketParameterTester { MarketParameterStorage public marketParameter; diff --git a/packages/perennial/contracts/test/MockToken.sol b/packages/perennial/contracts/test/MockToken.sol index 2c8262f02..b2461ac22 100644 --- a/packages/perennial/contracts/test/MockToken.sol +++ b/packages/perennial/contracts/test/MockToken.sol @@ -1,14 +1,15 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; -import {Intent} from "@equilibria/perennial-v2-verifier/contracts/interfaces/IVerifier.sol"; - -import "../interfaces/IMarket.sol"; +import { UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import { Intent } from "@equilibria/perennial-v2-verifier/contracts/interfaces/IVerifier.sol"; +import { IMarket } from "../interfaces/IMarket.sol"; contract MockToken is ERC20 { - enum Function{SETTLE, UPDATE, UPDATE_MAKER, UPDATE_INTENT} + enum Function{ SETTLE, UPDATE, UPDATE_MAKER, UPDATE_INTENT } Function private functionToCall; @@ -26,6 +27,8 @@ contract MockToken is ERC20 { } else if (functionToCall == Function.SETTLE){ IMarket(msg.sender).settle(address(0)); } + + return true; } function setFunctionToCall(Function _functionToCall) external { diff --git a/packages/perennial/contracts/test/OrderTester.sol b/packages/perennial/contracts/test/OrderTester.sol index 21a946daf..30239522b 100644 --- a/packages/perennial/contracts/test/OrderTester.sol +++ b/packages/perennial/contracts/test/OrderTester.sol @@ -1,7 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Order.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; +import { Order, OrderStorageGlobal, OrderStorageLocal } from "../types/Order.sol"; +import { OracleVersion } from "../types/OracleVersion.sol"; +import { Position } from "../types/Position.sol"; +import { MarketParameter } from "../types/MarketParameter.sol"; abstract contract OrderTester { function read() public virtual view returns (Order memory); diff --git a/packages/perennial/contracts/test/PositionTester.sol b/packages/perennial/contracts/test/PositionTester.sol index 4bb1196a0..a3ebadbf0 100644 --- a/packages/perennial/contracts/test/PositionTester.sol +++ b/packages/perennial/contracts/test/PositionTester.sol @@ -1,7 +1,13 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Position.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; +import { Position, PositionStorageGlobal, PositionStorageLocal } from "../types/Position.sol"; +import { Order } from "../types/Order.sol"; +import { RiskParameter } from "../types/RiskParameter.sol"; +import { OracleVersion } from "../types/OracleVersion.sol"; + abstract contract PositionTester { function read() public view virtual returns (Position memory); diff --git a/packages/perennial/contracts/test/ProtocolParameterTester.sol b/packages/perennial/contracts/test/ProtocolParameterTester.sol index 9c7b4a090..8409b70ed 100644 --- a/packages/perennial/contracts/test/ProtocolParameterTester.sol +++ b/packages/perennial/contracts/test/ProtocolParameterTester.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/ProtocolParameter.sol"; +import { ProtocolParameter, ProtocolParameterStorage } from "../types/ProtocolParameter.sol"; contract ProtocolParameterTester { ProtocolParameterStorage public protocolParameter; diff --git a/packages/perennial/contracts/test/RiskParameterTester.sol b/packages/perennial/contracts/test/RiskParameterTester.sol index 4fa243975..1ccbc76d2 100644 --- a/packages/perennial/contracts/test/RiskParameterTester.sol +++ b/packages/perennial/contracts/test/RiskParameterTester.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/RiskParameter.sol"; +import { RiskParameter, RiskParameterStorage } from "../types/RiskParameter.sol"; +import { ProtocolParameter } from "../types/ProtocolParameter.sol"; contract RiskParameterTester { RiskParameterStorage public riskParameter; diff --git a/packages/perennial/contracts/test/VersionTester.sol b/packages/perennial/contracts/test/VersionTester.sol index c0a5c7194..d63cbd9e9 100644 --- a/packages/perennial/contracts/test/VersionTester.sol +++ b/packages/perennial/contracts/test/VersionTester.sol @@ -1,8 +1,14 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "../types/Version.sol"; -import "../libs/VersionLib.sol"; +import { Version, VersionStorage } from "../types/Version.sol"; +import { Global } from "../types/Global.sol"; +import { Order } from "../types/Order.sol"; +import { Guarantee } from "../types/Guarantee.sol"; +import { OracleVersion } from "../types/OracleVersion.sol"; +import { OracleReceipt } from "../types/OracleReceipt.sol"; +import { IMarket } from "../interfaces/IMarket.sol"; +import { VersionLib, VersionAccumulationResponse } from "../libs/VersionLib.sol"; contract VersionTester { VersionStorage public version; diff --git a/packages/perennial/contracts/types/Checkpoint.sol b/packages/perennial/contracts/types/Checkpoint.sol index 161a6f339..eae7c00a3 100644 --- a/packages/perennial/contracts/types/Checkpoint.sol +++ b/packages/perennial/contracts/types/Checkpoint.sol @@ -1,13 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/accumulator/types/Accumulator6.sol"; -import "./OracleVersion.sol"; -import "./RiskParameter.sol"; -import "./Global.sol"; -import "./Local.sol"; -import "./Order.sol"; -import "./Version.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; /// @dev Checkpoint type struct Checkpoint { diff --git a/packages/perennial/contracts/types/Global.sol b/packages/perennial/contracts/types/Global.sol index 31aa9f3fc..8ec2b4c7c 100644 --- a/packages/perennial/contracts/types/Global.sol +++ b/packages/perennial/contracts/types/Global.sol @@ -1,10 +1,15 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/pid/types/PAccumulator6.sol"; -import "./ProtocolParameter.sol"; -import "./MarketParameter.sol"; -import "../libs/VersionLib.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; +import { PAccumulator6 } from "@equilibria/root/pid/types/PAccumulator6.sol"; +import { MarketParameter } from "./MarketParameter.sol"; +import { RiskParameter } from "./RiskParameter.sol"; +import { Position } from "./Position.sol"; +import { OracleVersion } from "./OracleVersion.sol"; +import { OracleReceipt } from "./OracleReceipt.sol"; +import { VersionAccumulationResponse } from "../libs/VersionLib.sol"; /// @dev Global type struct Global { diff --git a/packages/perennial/contracts/types/Guarantee.sol b/packages/perennial/contracts/types/Guarantee.sol index eccf65f6f..bdd3e486b 100644 --- a/packages/perennial/contracts/types/Guarantee.sol +++ b/packages/perennial/contracts/types/Guarantee.sol @@ -1,7 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "./Order.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { Order } from "./Order.sol"; /// @dev Guarantee type struct Guarantee { diff --git a/packages/perennial/contracts/types/Local.sol b/packages/perennial/contracts/types/Local.sol index 97d46cd21..4307d77fc 100644 --- a/packages/perennial/contracts/types/Local.sol +++ b/packages/perennial/contracts/types/Local.sol @@ -1,16 +1,9 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/Fixed6.sol"; -import "@equilibria/root/accumulator/types/UAccumulator6.sol"; -import "@equilibria/root/accumulator/types/Accumulator6.sol"; -import "./Version.sol"; -import "./Position.sol"; -import "./RiskParameter.sol"; -import "./OracleVersion.sol"; -import "./Order.sol"; -import "./Checkpoint.sol"; -import "../libs/CheckpointLib.sol"; +import { UFixed6 } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { CheckpointAccumulationResponse } from "../libs/CheckpointLib.sol"; /// @dev Local type struct Local { diff --git a/packages/perennial/contracts/types/MarketParameter.sol b/packages/perennial/contracts/types/MarketParameter.sol index 14d46f966..af5af6223 100644 --- a/packages/perennial/contracts/types/MarketParameter.sol +++ b/packages/perennial/contracts/types/MarketParameter.sol @@ -1,9 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/token/types/Token18.sol"; -import "@equilibria/root/number/types/UFixed6.sol"; -import "./ProtocolParameter.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { ProtocolParameter } from "./ProtocolParameter.sol"; /// @dev MarketParameter type struct MarketParameter { diff --git a/packages/perennial/contracts/types/OracleVersion.sol b/packages/perennial/contracts/types/OracleVersion.sol index 688aed898..c5880b11b 100644 --- a/packages/perennial/contracts/types/OracleVersion.sol +++ b/packages/perennial/contracts/types/OracleVersion.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/Fixed6.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; /// @dev A singular oracle version with its corresponding data struct OracleVersion { diff --git a/packages/perennial/contracts/types/Order.sol b/packages/perennial/contracts/types/Order.sol index 4a341b3ab..e397e756e 100644 --- a/packages/perennial/contracts/types/Order.sol +++ b/packages/perennial/contracts/types/Order.sol @@ -1,12 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "./OracleVersion.sol"; -import "./RiskParameter.sol"; -import "./Global.sol"; -import "./Local.sol"; -import "./Position.sol"; -import "./MarketParameter.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { OracleVersion } from "./OracleVersion.sol"; +import { Position } from "./Position.sol"; +import { MarketParameter } from "./MarketParameter.sol"; /// @dev Order type struct Order { diff --git a/packages/perennial/contracts/types/Position.sol b/packages/perennial/contracts/types/Position.sol index 0cb0e6363..ab7f09e19 100644 --- a/packages/perennial/contracts/types/Position.sol +++ b/packages/perennial/contracts/types/Position.sol @@ -1,13 +1,13 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "./OracleVersion.sol"; -import "./RiskParameter.sol"; -import "./Global.sol"; -import "./Local.sol"; -import "./Order.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6, Fixed6Lib } from "@equilibria/root/number/types/Fixed6.sol"; +import { OracleVersion } from "./OracleVersion.sol"; +import { RiskParameter } from "./RiskParameter.sol"; +import { Order } from "./Order.sol"; -/// @dev Order type +/// @dev Position type struct Position { /// @dev The timestamp of the position uint256 timestamp; diff --git a/packages/perennial/contracts/types/ProtocolParameter.sol b/packages/perennial/contracts/types/ProtocolParameter.sol index 276308b8c..1ad8e3ec6 100644 --- a/packages/perennial/contracts/types/ProtocolParameter.sol +++ b/packages/perennial/contracts/types/ProtocolParameter.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; /// @dev ProtocolParameter type struct ProtocolParameter { diff --git a/packages/perennial/contracts/types/RiskParameter.sol b/packages/perennial/contracts/types/RiskParameter.sol index e1b3c6ced..070e23433 100644 --- a/packages/perennial/contracts/types/RiskParameter.sol +++ b/packages/perennial/contracts/types/RiskParameter.sol @@ -1,13 +1,13 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/number/types/UFixed6.sol"; -import "@equilibria/root/utilization/types/UJumpRateUtilizationCurve6.sol"; -import "@equilibria/root/pid/types/PController6.sol"; -import "@equilibria/root/adiabatic/types/LinearAdiabatic6.sol"; -import "@equilibria/root/adiabatic/types/NoopAdiabatic6.sol"; -import "../interfaces/IOracleProvider.sol"; -import "./ProtocolParameter.sol"; +import { UFixed6, UFixed6Lib } from "@equilibria/root/number/types/UFixed6.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; +import { UJumpRateUtilizationCurve6 } from "@equilibria/root/utilization/types/UJumpRateUtilizationCurve6.sol"; +import { PController6 } from "@equilibria/root/pid/types/PController6.sol"; +import { LinearAdiabatic6 } from "@equilibria/root/adiabatic/types/LinearAdiabatic6.sol"; +import { NoopAdiabatic6 } from "@equilibria/root/adiabatic/types/NoopAdiabatic6.sol"; +import { ProtocolParameter } from "./ProtocolParameter.sol"; /// @dev RiskParameter type struct RiskParameter { diff --git a/packages/perennial/contracts/types/Version.sol b/packages/perennial/contracts/types/Version.sol index 68290a95f..ce3bff937 100644 --- a/packages/perennial/contracts/types/Version.sol +++ b/packages/perennial/contracts/types/Version.sol @@ -1,13 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.13; -import "@equilibria/root/accumulator/types/Accumulator6.sol"; -import "./ProtocolParameter.sol"; -import "./MarketParameter.sol"; -import "./RiskParameter.sol"; -import "./Global.sol"; -import "./Position.sol"; -import "./Order.sol"; +import { Fixed6 } from "@equilibria/root/number/types/Fixed6.sol"; +import { Accumulator6 } from "@equilibria/root/accumulator/types/Accumulator6.sol"; /// @dev Version type struct Version {