all files / contracts/interfaces/staking/ IxSolaceMigrator.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 37 38 39 40 41 42 43 44 45                                                                                         
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
 
 
/**
 * @title xSolace Migrator
 * @author solace.fi
 * @notice Helps migrate from [**xSOLACEV1**](./../../staking/xSOLACEV1) to [**xsLocker**](./../../staking/xsLocker).
 */
interface IxSolaceMigrator {
 
    /***************************************
    VIEW FUNCTIONS
    ***************************************/
 
    /// @notice Address of the [**SOLACE**](./../../SOLACE) contract.
    function solace() external view returns (address);
    /// @notice Address of the V1 [**xSOLACE**](./../../staking/xSOLACEV1) contract.
    function xsolacev1() external view returns (address);
    /// @notice Address of the [**xsLocker**](./../../staking/xsLocker) contract.
    function xsLocker() external view returns (address);
 
    /***************************************
    MUTATOR FUNCTIONS
    ***************************************/
 
    /**
     * @notice Migrate from the [**xSOLACEv1**](./../../staking/xSOLACEV1) contract and create a new [**Lock**](./../../staking/xsLocker).
     * @param amount The amount of [**xSOLACEv1**](./../../staking/xSOLACEV1) to migrate.
     * @param lockEnd The timestamp that the lock will unlock.
     */
    function migrate(uint256 amount, uint256 lockEnd) external;
 
    /**
     * @notice Migrate from the [**xSOLACEv1**](./../../staking/xSOLACEV1) contract and create a new [**Lock**](./../../staking/xsLocker).
     * @param amount The amount of [**xSOLACEv1**](./../../staking/xSOLACEV1) to migrate.
     * @param lockEnd The timestamp that the lock will unlock.
     * @param deadline Time the transaction must go through before.
     * @param v secp256k1 signature
     * @param r secp256k1 signature
     * @param s secp256k1 signature
     */
    function migrateSigned(uint256 amount, uint256 lockEnd, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
}