contract SellersAuthorization {
  mapping(address => bool) internal sellers;

  /**
   * @dev Returns true if @param _seller is true.
   */
  function isSeller(address _seller) public view returns (bool) {
    return sellers[_seller];
  }

  /**
   * @dev Enables a seller.
   * @param _newSeller The new seller address.
   */
  function _addSeller(address _newSeller) internal returns (bool) {
    require(_newSeller != address(0), 'Address 0x0 not valid');
    sellers[_newSeller] = true;
    return sellers[_newSeller];
  }

  /**
   * @dev Removes a seller.
   * @param _seller The address of the seller to remove.
   */

  function _removeSeller(address _seller) internal returns (bool) {
    sellers[_seller] = false;
    return sellers[_seller];
  }

  /**
   * @dev Push the amount earned to the seller as soon as the tx is completed.
   */
  function _pushPayment(address payable _seller, uint256 _amount) internal {
    require(_seller != address(0));
    _seller.transfer(_amount);
  }
}
function _pushPayment(address payable _seller, uint256 _amount) internal {
  require(_seller != address(0));
  _seller.transfer(_amount);
}

/**
 * @dev Push the amount earned to the seller as soon as the tx is completed.
 */