contract PiTokenRegistry is Ownable {
  /// @dev Events of the contract
  event TokenAdded(address token);
  event TokenRemoved(address token);

  /// @notice ERC20 Address -> Bool
  mapping(address => bool) public enabled;

  /**
  @notice Method for adding payment token
  @dev Only admin
  @param token ERC20 token address
  */
  function add(address token) external onlyOwner {
    require(!enabled[token], "token already added");
    enabled[token] = true;
    emit TokenAdded(token);
  }

  /**
  @notice Method for removing payment token
  @dev Only admin
  @param token ERC20 token address
  */
  function remove(address token) external onlyOwner {
    require(enabled[token], "token not exist");
    enabled[token] = false;
    emit TokenRemoved(token);
  }
}
function remove(address token) external onlyOwner {
  require(enabled[token], "token not exist");
  enabled[token] = false;
  emit TokenRemoved(token);
}

/**
 @notice Method for removing payment token
 @dev Only admin
 @param token ERC20 token address
 */