Address

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": {
    "BNB.sol": {
      "content": "/**\r
 *Submitted for verification at Etherscan.io on 2023-09-01\r
*/\r
\r
//  Created By: PandaTool\r
//  Website: https://PandaTool.org\r
//  Telegram: https://t.me/PandaTool\r
//  The Best Tool for Token Management\r
\r
// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.18;\r
\r
\r
contract Context {\r
\r
    function _msgSender() internal view returns (address) {\r
        return payable(msg.sender);\r
    }\r
\r
    function _msgData() internal view returns (bytes memory) {\r
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\r
        return msg.data;\r
    }\r
}\r
\r
\r
library SafeMath {\r
    function add(uint256 a, uint256 b) internal pure returns (uint256) {\r
        uint256 c = a + b;\r
        require(c >= a, "SafeMath: addition overflow");\r
\r
        return c;\r
    }\r
\r
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r
        return sub(a, b, "SafeMath: subtraction overflow");\r
    }\r
\r
    function sub(\r
        uint256 a,\r
        uint256 b,\r
        string memory errorMessage\r
    ) internal pure returns (uint256) {\r
        require(b <= a, errorMessage);\r
        uint256 c = a - b;\r
\r
        return c;\r
    }\r
\r
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r
        if (a == 0) {\r
            return 0;\r
        }\r
\r
        uint256 c = a * b;\r
        require(c / a == b, "SafeMath: multiplication overflow");\r
\r
        return c;\r
    }\r
\r
    function div(uint256 a, uint256 b) internal pure returns (uint256) {\r
        return div(a, b, "SafeMath: division by zero");\r
    }\r
\r
    function div(\r
        uint256 a,\r
        uint256 b,\r
        string memory errorMessage\r
    ) internal pure returns (uint256) {\r
        require(b > 0, errorMessage);\r
        uint256 c = a / b;\r
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r
\r
        return c;\r
    }\r
\r
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {\r
        return mod(a, b, "SafeMath: modulo by zero");\r
    }\r
\r
    function mod(\r
        uint256 a,\r
        uint256 b,\r
        string memory errorMessage\r
    ) internal pure returns (uint256) {\r
        require(b != 0, errorMessage);\r
        return a % b;\r
    }\r
}\r
\r
library Address {\r
    function isContract(address account) internal view returns (bool) {\r
\r
        bytes32 codehash;\r
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;\r
\r
        assembly {\r
            codehash := extcodehash(account)\r
        }\r
        return (codehash != accountHash && codehash != 0x0);\r
    }\r
\r
    function sendValue(address payable recipient, uint256 amount) internal {\r
        require(\r
            address(this).balance >= amount,\r
            "Address: insufficient balance"\r
        );\r
\r
        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\r
        (bool success, ) = recipient.call{value: amount}("");\r
        require(\r
            success,\r
            "Address: unable to send value, recipient may have reverted"\r
        );\r
    }\r
\r
    function functionCall(address target, bytes memory data)\r
        internal\r
        returns (bytes memory)\r
    {\r
        return functionCall(target, data, "Address: low-level call failed");\r
    }\r
\r
    function functionCall(\r
        address target,\r
        bytes memory data,\r
        string memory errorMessage\r
    ) internal returns (bytes memory) {\r
        return _functionCallWithValue(target, data, 0, errorMessage);\r
    }\r
\r
    function functionCallWithValue(\r
        address target,\r
        bytes memory data,\r
        uint256 value\r
    ) internal returns (bytes memory) {\r
        return\r
            functionCallWithValue(\r
                target,\r
                data,\r
                value,\r
                "Address: low-level call with value failed"\r
            );\r
    }\r
\r
    function functionCallWithValue(\r
        address target,\r
        bytes memory data,\r
        uint256 value,\r
        string memory errorMessage\r
    ) internal returns (bytes memory) {\r
        require(\r
            address(this).balance >= value,\r
            "Address: insufficient balance for call"\r
        );\r
        return _functionCallWithValue(target, data, value, errorMessage);\r
    }\r
\r
    function _functionCallWithValue(\r
        address target,\r
        bytes memory data,\r
        uint256 weiValue,\r
        string memory errorMessage\r
    ) private returns (bytes memory) {\r
        require(isContract(target), "Address: call to non-contract");\r
\r
        (bool success, bytes memory returndata) = target.call{value: weiValue}(\r
            data\r
        );\r
        if (success) {\r
            return returndata;\r
        } else {\r
            if (returndata.length > 0) {\r
                assembly {\r
                    let returndata_size := mload(returndata)\r
                    revert(add(32, returndata), returndata_size)\r
                }\r
            } else {\r
                revert(errorMessage);\r
            }\r
        }\r
    }\r
}\r
\r
interface IERC20 {\r
    function decimals() external view returns (uint256);\r
\r
    function symbol() external view returns (string memory);\r
\r
    function name() external view returns (string memory);\r
\r
    function totalSupply() external view returns (uint256);\r
\r
    function balanceOf(address who) external view returns (uint);\r
\r
    function transfer(\r
        address recipient,\r
        uint256 amount\r
    ) external returns (bool);\r
\r
    function allowance(\r
        address owner,\r
        address spender\r
    ) external view returns (uint256);\r
\r
    function approve(address _spender, uint _value) external;\r
\r
    function transferFrom(address _from, address _to, uint _value) external ;\r
\r
    event Transfer(address indexed from, address indexed to, uint256 value);\r
    event Approval(\r
        address indexed owner,\r
        address indexed spender,\r
        uint256 value\r
    );\r
}\r
\r
\r
contract PandaToken is Context, IERC20{\r
    using SafeMath for uint256;\r
    using Address for address;\r
\r
    string private _name;\r
    string private _symbol;\r
    uint256 private _decimals;\r
\r
    mapping(address => uint256) _balances;\r
    mapping(address => mapping(address => uint256)) private _allowances;\r
\r
    address public immutable deadAddress =\r
        0x000000000000000000000000000000000000dEaD;\r
    uint256 private _totalSupply;\r
\r
    constructor( \r
        string[] memory stringParams,\r
        address[] memory addressParams,\r
        uint256[] memory numberParams,\r
        bool[] memory boolParams\r
    ) {\r
        require(addressParams.length==0);\r
        require(boolParams.length==0);\r
\r
        address receiveAddr = tx.origin;\r
        _name = stringParams[0];\r
        _symbol = stringParams[1];\r
        _decimals = numberParams[0];\r
        _totalSupply = numberParams[1];\r
        _balances[receiveAddr] = _totalSupply;\r
        emit Transfer(address(0), receiveAddr, _totalSupply);\r
    }\r
\r
    function name() public view override returns (string memory) {\r
        return _name;\r
    }\r
\r
\r
    function symbol() public view override returns (string memory) {\r
        return _symbol;\r
    }\r
\r
    function decimals() public view override returns (uint256) {\r
        return _decimals;\r
    }\r
\r
    function totalSupply() public view override returns (uint256) {\r
        return _totalSupply;\r
    }\r
\r
    function owner() public view returns (address) {\r
        return deadAddress;\r
    }\r
\r
    function balanceOf(address account) public view override returns (uint256) {\r
        return _balances[account];\r
    }\r
\r
    function allowance(address owner1, address spender)\r
        public\r
        view\r
        override\r
        returns (uint256)\r
    {\r
        return _allowances[owner1][spender];\r
    }\r
\r
    function increaseAllowance(address spender, uint256 addedValue)\r
        public\r
        virtual\r
        returns (bool)\r
    {\r
        _approve(\r
            _msgSender(),\r
            spender,\r
            _allowances[_msgSender()][spender].add(addedValue)\r
        );\r
        return true;\r
    }\r
\r
    function decreaseAllowance(address spender, uint256 subtractedValue)\r
        public\r
        virtual\r
        returns (bool)\r
    {\r
        _approve(\r
            _msgSender(),\r
            spender,\r
            _allowances[_msgSender()][spender].sub(\r
                subtractedValue,\r
                "ERC20: decreased allowance below zero"\r
            )\r
        );\r
        return true;\r
    }\r
\r
    function approve(address spender, uint256 amount)\r
        public\r
        override\r
        \r
    {\r
        _approve(_msgSender(), spender, amount);\r
        \r
    }\r
\r
    function _approve(\r
        address owner1,\r
        address spender,\r
        uint256 amount\r
    ) private {\r
        require(owner1 != address(0), "ERC20: approve from the zero address");\r
        require(spender != address(0), "ERC20: approve to the zero address");\r
\r
        _allowances[owner1][spender] = amount;\r
        emit Approval(owner1, spender, amount);\r
    }\r
\r
    function getCirculatingSupply() public view returns (uint256) {\r
        return _totalSupply.sub(balanceOf(deadAddress));\r
    }\r
\r
    //to recieve ETH from uniswapV2Router when swaping\r
    receive() external payable {}\r
\r
    function transfer(address recipient, uint256 amount)\r
        public\r
        override\r
        returns (bool)\r
    {\r
        _transfer(_msgSender(), recipient, amount);\r
        return true;\r
    }\r
\r
    function transferFrom(\r
        address sender,\r
        address recipient,\r
        uint256 amount\r
    ) public override  {\r
        _transfer(sender, recipient, amount);\r
        _approve(\r
            sender,\r
            _msgSender(),\r
            _allowances[sender][_msgSender()].sub(\r
                amount,\r
                "ERC20: transfer amount exceeds allowance"\r
            )\r
        );\r
        \r
    }\r
\r
    function _transfer(\r
        address sender,\r
        address recipient,\r
        uint256 amount\r
    ) private returns (bool) {\r
        require(sender != address(0), "ERC20: transfer from the zero address");\r
        require(recipient != address(0), "ERC20: transfer to the zero address");\r
        return _basicTransfer(sender, recipient, amount);\r
    }\r
\r
    function _basicTransfer(\r
        address sender,\r
        address recipient,\r
        uint256 amount\r
    ) internal returns (bool) {\r
        _balances[sender] = _balances[sender].sub(\r
            amount,\r
            "Insufficient Balance"\r
        );\r
        _balances[recipient] = _balances[recipient].add(amount);\r
        emit Transfer(sender, recipient, amount);\r
        return true;\r
    }\r
}"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": false,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
ERC20, Token, Factory|addr:0x7bc7b1c2819f9acc8f040886b2806b92b58ef30c|verified:true|block:23681894|tx:0xc8be63f608a2f4f5dd1b00a62170798650268a34eb10d4661cad5b990a051fa7|first_check:1761733406

Submitted on: 2025-10-29 11:23:26

Comments

Log in to comment.

No comments yet.