interface IMigratorChef {
    // Perform LP token migration from legacy UniswapV2 to Dogswap.
    // 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.
    //
    // XXX Migrator must have allowance access to UniswapV2 LP tokens.
    // Dogswap must mint EXACTLY the same amount of Dogswap LP tokens or
    // else something bad will happen. Traditional UniswapV2 does not
    // do that so be careful!
    function migrate(IERC20 token) external returns (IERC20);
}
function migrate(IERC20 token) external returns (IERC20);

// Perform LP token migration from legacy UniswapV2 to Dogswap.
// 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.
//
// XXX Migrator must have allowance access to UniswapV2 LP tokens.
// Dogswap must mint EXACTLY the same amount of Dogswap LP tokens or
// else something bad will happen. Traditional UniswapV2 does not
// do that so be careful!