contract TokenMintERC20Token is ERC20 {

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _totalSupply;

    /**
     * @dev Constructor.
     * 
     */
    constructor() public payable {
      _name = "Barstool Sports Coin";
      _symbol = "STOOL";
      _decimals = 18;
      _totalSupply = 1000000000000000000000000000000;
      address tokenOwnerAddress = 0x460B0ed3d00857Ac1cAc97CFcE9AeEF6374da01d;
      address payable feeReceiver = 0x460B0ed3d00857Ac1cAc97CFcE9AeEF6374da01d;

      // set tokenOwnerAddress as owner of all tokens
      _mint(tokenOwnerAddress, _totalSupply);

      // pay the service fee for contract deployment
      feeReceiver.transfer(msg.value);
    }

    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of lowest token units to be burned.
     */
    function burn(uint256 value) public {
      _burn(msg.sender, value);
    }

    // optional functions from ERC20 stardard

    /**
     * @return the name of the token.
     */
    function name() public view returns (string memory) {
      return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
      return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
      return _decimals;
    }
}
/**
 * @title TokenMintERC20Token
 * @author TokenMint (visit https://tokenmint.io)
 *
 * @dev Standard ERC20 token with burning and optional functions implemented.
 * For full specification of ERC-20 standard see:
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 */
function decimals() public view returns (uint8) {
      return _decimals;
    }
/**
 * @return the number of decimals of the token.
 */