// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.7.6; interface IBaseToken { // Do NOT change the order of enum values because it will break backwards compatibility enum Status { Open, Paused, Closed } event PriceFeedChanged(address indexed priceFeed); event StatusUpdated(Status indexed status); function close() external; /// @notice Update the cached index price of the token. /// @param interval The twap interval in seconds. function cacheTwap(uint256 interval) external; /// @notice Get the price feed address /// @dev priceFeed is now priceFeedDispatcher, which dispatches either Chainlink or UniswapV3 price /// @return priceFeed the current price feed function getPriceFeed() external view returns (address priceFeed); function getPausedTimestamp() external view returns (uint256); function getPausedIndexPrice() external view returns (uint256); function getClosedPrice() external view returns (uint256); function isOpen() external view returns (bool); function isPaused() external view returns (bool); function isClosed() external view returns (bool); }