VoltPay

Description:

ERC20 token contract with Factory capabilities. Standard implementation for fungible tokens on Ethereum.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "VoltPay-Erc.sol": {
      "content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.19;\r
\r
contract VoltPay {\r
    string public name = "VoltPay";\r
    string public symbol = "VLT";\r
    uint8 public constant decimals = 18;\r
\r
    uint256 public totalSupply;\r
\r
    mapping(address => uint256) private _balances;\r
    mapping(address => mapping(address => uint256)) private _allowances;\r
\r
    event Transfer(address indexed from, address indexed to, uint256 value);\r
    event Approval(address indexed owner, address indexed spender, uint256 value);\r
\r
    constructor() {\r
        uint256 initialSupply = 100_000_000 * 10 ** uint256(decimals);\r
        totalSupply = initialSupply;\r
        _balances[msg.sender] = initialSupply;\r
        emit Transfer(address(0), msg.sender, initialSupply);\r
    }\r
\r
    function balanceOf(address account) public view returns (uint256) {\r
        return _balances[account];\r
    }\r
\r
    function transfer(address to, uint256 amount) public returns (bool) {\r
        _transfer(msg.sender, to, amount);\r
        return true;\r
    }\r
\r
    function allowance(address owner, address spender) public view returns (uint256) {\r
        return _allowances[owner][spender];\r
    }\r
\r
    function approve(address spender, uint256 amount) public returns (bool) {\r
        _approve(msg.sender, spender, amount);\r
        return true;\r
    }\r
\r
    function transferFrom(address from, address to, uint256 amount) public returns (bool) {\r
        uint256 currentAllowance = _allowances[from][msg.sender];\r
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");\r
\r
        _transfer(from, to, amount);\r
        _approve(from, msg.sender, currentAllowance - amount);\r
        return true;\r
    }\r
\r
    function _transfer(address from, address to, uint256 amount) internal {\r
        require(from != address(0), "ERC20: transfer from zero address");\r
        require(to != address(0), "ERC20: transfer to zero address");\r
        require(_balances[from] >= amount, "ERC20: insufficient balance");\r
\r
        _balances[from] -= amount;\r
        _balances[to] += amount;\r
\r
        emit Transfer(from, to, amount);\r
    }\r
\r
    function _approve(address owner, address spender, uint256 amount) internal {\r
        require(owner != address(0), "ERC20: approve from zero address");\r
        require(spender != address(0), "ERC20: approve to zero address");\r
\r
        _allowances[owner][spender] = amount;\r
        emit Approval(owner, spender, amount);\r
    }\r
}\r
"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
ERC20, Token, Factory|addr:0x811697523e2260439e544a520cc4959ea20b26d2|verified:true|block:23725023|tx:0x88fa9c61b5a5492600ca2adf491015f200fb28f0718c5f15b42488c478766f90|first_check:1762256784

Submitted on: 2025-11-04 12:46:26

Comments

Log in to comment.

No comments yet.