function mine(uint amount) canMine public {
    require(amount > 0);
    require(cycleMintSupply < CYCLE_CAP);
    require(ERC20(MNY).transferFrom(msg.sender, address(this), amount));

    uint refund = _mine(exchangeRateMNY, amount);
    if(refund > 0) {
      ERC20(MNY).transfer(msg.sender, refund);
    }
    if (cycleMintSupply == CYCLE_CAP) {
      
      _startSwap();
    }
  }