MyToken

Description:

Smart contract deployed on Ethereum with Factory features.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "My token.sol": {
      "content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.20;\r
\r
contract MyToken {\r
    // Метаданные\r
    string public name = "My Token";\r
    string public symbol = "MTK";\r
    uint8 public decimals = 18;\r
\r
    // Состояние\r
    uint256 public totalSupply;\r
    mapping(address => uint256) public balanceOf;\r
    mapping(address => mapping(address => uint256)) public allowance;\r
\r
    // События стандарта ERC-20\r
    event Transfer(address indexed from, address indexed to, uint256 value);\r
    event Approval(address indexed owner, address indexed spender, uint256 value);\r
\r
    // Конструктор: минтим 1,000,000 MTK на адрес того, кто деплоит\r
    constructor() {\r
        uint256 initialSupply = 1_000_000 * (10 ** uint256(decimals));\r
        totalSupply = initialSupply;\r
        balanceOf[msg.sender] = initialSupply;\r
        emit Transfer(address(0), msg.sender, initialSupply);\r
    }\r
\r
    // Базовые функции стандарта\r
    function transfer(address to, uint256 value) external returns (bool) {\r
        _transfer(msg.sender, to, value);\r
        return true;\r
    }\r
\r
    function approve(address spender, uint256 value) external returns (bool) {\r
        allowance[msg.sender][spender] = value;\r
        emit Approval(msg.sender, spender, value);\r
        return true;\r
    }\r
\r
    function transferFrom(address from, address to, uint256 value) external returns (bool) {\r
        uint256 currentAllowance = allowance[from][msg.sender];\r
        require(currentAllowance >= value, "ERC20: insufficient allowance");\r
        // начиная с 0.8.x проверки переполнений/недополнений встроены\r
        allowance[from][msg.sender] = currentAllowance - value;\r
        _transfer(from, to, value);\r
        return true;\r
    }\r
\r
    // Внутренняя передача\r
    function _transfer(address from, address to, uint256 value) internal {\r
        require(to != address(0), "ERC20: transfer to the zero address");\r
        uint256 fromBalance = balanceOf[from];\r
        require(fromBalance >= value, "ERC20: transfer amount exceeds balance");\r
        balanceOf[from] = fromBalance - value;\r
        balanceOf[to] += value;\r
        emit Transfer(from, to, value);\r
    }\r
}\r
"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": false,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
Factory|addr:0x982c57e8b823e50331316bc154bf405a31b8611b|verified:true|block:23733181|tx:0xd5543bb31eac9313e24bcdc8f1bece7ffdb5868c08f9d4d31b828f1735d2ba19|first_check:1762350192

Submitted on: 2025-11-05 14:43:15

Comments

Log in to comment.

No comments yet.