Vaults 1.5 Interfaces

Below are the new IVault.sol and IStrategy.sol interfaces for the Vault and the Strategy respectively

NOTE: Check Github!!!

For the latest code, refer to: https://github.com/Badger-Finance/badger-sett-1.5

IStrategy.sol

The strategy is used for managing funds, earning yield and reporting profit

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

interface IStrategy {
    // Return value for harvest, tend and balanceOfRewards
    struct TokenAmount {
        address token;
        uint256 amount;
    }

    function balanceOf() external view returns (uint256 balance);

    function balanceOfPool() external view returns (uint256 balance);

    function balanceOfWant() external view returns (uint256 balance);

    function earn() external;

    function withdraw(uint256 amount) external;

    function withdrawToVault() external returns (uint256 balance);

    function withdrawOther(address _asset) external;

    function harvest() external returns (TokenAmount[] memory harvested);
    function tend() external returns (TokenAmount[] memory tended);
    function balanceOfRewards() external view returns (TokenAmount[] memory rewards);

    function emitNonProtectedToken(address _token) external;
}

IVault.sol

The vault is used to track deposits and withdrawals as well as interact with the strategy

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

interface IVault {
    function rewards() external view returns (address);

    function reportHarvest(
        uint256 _harvestedAmount
    ) external;

    function reportAdditionalToken(address _token) external;

    // Fees
    function performanceFeeGovernance() external view returns (uint256);

    function performanceFeeStrategist() external view returns (uint256);

    function withdrawalFee() external view returns (uint256);

    function managementFee() external view returns (uint256);

    // Actors
    function governance() external view returns (address);

    function keeper() external view returns (address);

    function guardian() external view returns (address);

    function strategist() external view returns (address);

    // External
    function deposit(uint256 _amount) external;
}

Last updated

Was this helpful?