contract KranteriumERC20Token is ERC20 {

string private _name;
string private _symbol;
uint8 private _decimals;

constructor(string memory name, string memory symbol, uint8 decimals, uint256 totalSupply, address payable feeReceiver, address tokenOwnerAddress) public payable {
_name = name;
_symbol = symbol;
_decimals = decimals;

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

// pay the service fee for contract deployment
feeReceiver.transfer(msg.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 KranteriumERC20Token
 * @author Kranterium (visit https://Kranterium.me)
 *
 * @dev Standard ERC20 token with optional functions implemented.
 * For full specification of ERC-20 standard see:
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 */
function name() public view returns (string memory) {
return _name;
}
/**
 * @return the name of the token.
 */