Discover more of Apescan's tools and services in one place.
Contract Source Code:
File 1 of 1 : MHBToken
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract MHBToken { string public name = "MHB"; string public symbol = "ME"; uint8 public decimals = 18; uint256 public totalSupply = 1000000000 * 10**18; // 1 billion tokens with 18 decimals mapping(address => uint256) private balances; mapping(address => mapping(address => uint256)) private allowances; event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); constructor() { balances[msg.sender] = totalSupply; // Assign the entire supply to the contract deployer emit Transfer(address(0), msg.sender, totalSupply); } function balanceOf(address account) public view returns (uint256) { return balances[account]; } function transfer(address recipient, uint256 amount) public returns (bool) { require(balances[msg.sender] >= amount, "Insufficient balance"); balances[msg.sender] -= amount; balances[recipient] += amount; emit Transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) public returns (bool) { allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return allowances[owner][spender]; } function transferFrom( address sender, address recipient, uint256 amount ) public returns (bool) { require(balances[sender] >= amount, "Insufficient balance"); require(allowances[sender][msg.sender] >= amount, "Allowance exceeded"); balances[sender] -= amount; balances[recipient] += amount; allowances[sender][msg.sender] -= amount; emit Transfer(sender, recipient, amount); return true; } }
Please enter a contract address above to load the contract details and source code.
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.