all files / interfaces/ IFurnace.sol

100% Statements 0/0
100% Branches 0/0
100% Functions 0/0
100% Lines 0/0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36                                                                       
// SPDX-License-Identifier: BlueOak-1.0.0
pragma solidity 0.8.17;
 
import "../libraries/Fixed.sol";
import "./IComponent.sol";
 
/**
 * @title IFurnace
 * @notice A helper contract to burn RTokens slowly and permisionlessly.
 */
interface IFurnace is IComponent {
    // Initialization
    function init(IMain main_, uint192 ratio_) external;
 
    /// Emitted when the melting ratio is changed
    /// @param oldRatio The old ratio
    /// @param newRatio The new ratio
    event RatioSet(uint192 indexed oldRatio, uint192 indexed newRatio);
 
    function ratio() external view returns (uint192);
 
    ///    Needed value range: [0, 1], granularity 1e-9
    /// @custom:governance
    function setRatio(uint192) external;
 
    /// Performs any RToken melting that has vested since the last payout.
    /// @custom:refresher
    function melt() external;
}
 
interface TestIFurnace is IFurnace {
    function lastPayout() external view returns (uint256);
 
    function lastPayoutBal() external view returns (uint256);
}