// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract GopadToken is ERC20 { string public tokenURI; constructor(string memory name_, string memory symbol_, uint256 supply_, string memory uri_) ERC20(name_, symbol_) { require(bytes(name_).length > 0 && bytes(name_).length <= 64, "Invalid name"); require(bytes(symbol_).length > 0 && bytes(symbol_).length <= 12, "Invalid symbol"); require(supply_ > 0 && supply_ <= 1000000000000, "Invalid supply"); require(bytes(uri_).length > 0, "Metadata required"); tokenURI = uri_; _mint(msg.sender, supply_ * 10 ** decimals()); } }