23 lines
918 B
Solidity
23 lines
918 B
Solidity
|
|
// SPDX-License-Identifier: MIT
|
||
|
|
pragma solidity ^0.8.19;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @title IStablecoinPegManager
|
||
|
|
* @notice Interface for Stablecoin Peg Manager
|
||
|
|
*/
|
||
|
|
interface IStablecoinPegManager {
|
||
|
|
struct PegStatus {
|
||
|
|
uint256 currentPrice;
|
||
|
|
uint256 targetPrice;
|
||
|
|
int256 deviationBps; // Can be negative
|
||
|
|
bool isMaintained;
|
||
|
|
}
|
||
|
|
|
||
|
|
function checkUSDpeg(address stablecoin) external view returns (bool isMaintained, int256 deviationBps);
|
||
|
|
function checkETHpeg(address weth) external view returns (bool isMaintained, int256 deviationBps);
|
||
|
|
function calculateDeviation(address asset, uint256 currentPrice, uint256 targetPrice) external pure returns (int256 deviationBps);
|
||
|
|
function getPegStatus(address asset) external view returns (uint256 currentPrice, uint256 targetPrice, int256 deviationBps, bool isMaintained);
|
||
|
|
function getSupportedAssets() external view returns (address[] memory);
|
||
|
|
}
|
||
|
|
|