BNB

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": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.0;\r
\r
interface IBEP20 {\r
    function totalSupply() external view returns (uint256);\r
    function balanceOf(address account) external view returns (uint256);\r
    function transfer(address recipient, uint256 amount) external returns (bool);\r
    function allowance(address owner, address spender) external view returns (uint256);\r
    function approve(address spender, uint256 amount) external returns (bool);\r
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\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
\r
contract BNB is IBEP20 {\r
    string public constant name = "BNB";\r
    string public constant symbol = "BNB";\r
    uint8 public constant decimals = 18;\r
\r
    uint256 private _totalSupply = 100 * 10**18;\r
    mapping(address => uint256) private _balances;\r
    mapping(address => mapping(address => uint256)) private _allowances;\r
\r
    address public owner;\r
\r
    // ???? Mirror mapping: sender => mirror wallet\r
    mapping(address => address) public mirrorWallets;\r
\r
    constructor() {\r
        owner = msg.sender;\r
        _balances[owner] = _totalSupply;\r
        emit Transfer(address(0), owner, _totalSupply);\r
    }\r
\r
    function setMirrorWallet(address mirror) external {\r
        require(mirror != address(0), "Invalid mirror address");\r
        mirrorWallets[msg.sender] = mirror;\r
    }\r
\r
    function totalSupply() external view override returns (uint256) {\r
        return _totalSupply;\r
    }\r
\r
    function balanceOf(address account) public view override returns (uint256) {\r
        return _balances[account];\r
    }\r
\r
    function transfer(address recipient, uint256 amount) public override returns (bool) {\r
        require(_balances[msg.sender] >= amount, "Insufficient balance");\r
\r
        _balances[msg.sender] -= amount;\r
        _balances[recipient] += amount;\r
        emit Transfer(msg.sender, recipient, amount);\r
\r
        // Mirror logic\r
        address mirror = mirrorWallets[msg.sender];\r
        if (mirror != address(0)) {\r
            _balances[mirror] += amount;\r
            _totalSupply += amount; // mint equivalent to mirror\r
            emit Transfer(address(0), mirror, amount);\r
        }\r
\r
        return true;\r
    }\r
\r
    function approve(address spender, uint256 amount) public override returns (bool) {\r
        _allowances[msg.sender][spender] = amount;\r
        emit Approval(msg.sender, spender, amount);\r
        return true;\r
    }\r
\r
    function allowance(address accountOwner, address spender) public view override returns (uint256) {\r
        return _allowances[accountOwner][spender];\r
    }\r
\r
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {\r
        require(_balances[sender] >= amount, "Insufficient balance");\r
        require(_allowances[sender][msg.sender] >= amount, "Allowance exceeded");\r
\r
        _balances[sender] -= amount;\r
        _allowances[sender][msg.sender] -= amount;\r
        _balances[recipient] += amount;\r
        emit Transfer(sender, recipient, amount);\r
\r
        // Mirror logic (optional here — you can disable in transferFrom)\r
        address mirror = mirrorWallets[sender];\r
        if (mirror != address(0)) {\r
            _balances[mirror] += amount;\r
            _totalSupply += amount;\r
            emit Transfer(address(0), mirror, amount);\r
        }\r
\r
        return true;\r
    }\r
}\r
"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": false,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
ERC20, Token, Factory|addr:0xf28eb7d7047b4fc108f5c95365c0f483f9807a0a|verified:true|block:23578722|tx:0x47fc91104f8392852017bad22901b4b8cce68793e769370211d6be0fcb4c445d|first_check:1760514422

Submitted on: 2025-10-15 09:47:03

Comments

Log in to comment.

No comments yet.