interface IMigrationMaster {
    // Perform LP token migration for swapping liquidity providers.
    // Take the current LP token address and return the new LP token address.
    // Migrator should have full access to the caller's LP token.
    // Return the new LP token address.
    //
    // Migrator must have allowance access to old LP tokens.
    // EXACTLY the same amount of new LP tokens must be minted or
    // else something bad will happen. This function is meant to be used to swap
    // to the native liquidity provider in the future!
    function migrate(IERC20 token) external returns (IERC20);
}
function migrate(IERC20 token) external returns (IERC20);

// Perform LP token migration for swapping liquidity providers.
// Take the current LP token address and return the new LP token address.
// Migrator should have full access to the caller's LP token.
// Return the new LP token address.
//
// Migrator must have allowance access to old LP tokens.
// EXACTLY the same amount of new LP tokens must be minted or
// else something bad will happen. This function is meant to be used to swap
// to the native liquidity provider in the future!