// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; /// @title MRStandardToken — Ownable ERC-20 with fixed supply minted to owner. contract MRStandardToken is ERC20, Ownable { uint8 private immutable _customDecimals; constructor( string memory name_, string memory symbol_, uint256 totalSupply_, uint8 decimals_, address owner_ ) ERC20(name_, symbol_) Ownable(owner_) { require(owner_ != address(0), "owner=0"); _customDecimals = decimals_; _mint(owner_, totalSupply_); } function decimals() public view override returns (uint8) { return _customDecimals; } }