Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xBE4f752cC40D4d4846319A4B0E4b305752457f60
Balance 0 ETH
Nonce 1
Code Size 8683 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

8683 bytes
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d714610390578063a9059cbb146103c0578063bffb691d146103f0578063d07ea4e21461040e578063dd62ed3e1461042a578063f2fde38b1461045a5761014d565b806370a08231146102de578063715018a61461030e578063860a32ec1461031857806389f9a1d3146103365780638da5cb5b1461035457806395d89b41146103725761014d565b80631ab99e12116101155780631ab99e121461020a57806323b872dd14610228578063313ce567146102585780633950935114610276578063404e5129146102a657806342966c68146102c25761014d565b806306fdde0314610152578063095ea7b3146101705780631201cbd0146101a057806316c02129146101bc57806318160ddd146101ec575b600080fd5b61015a610476565b6040516101679190611da9565b60405180910390f35b61018a60048036038101906101859190611765565b610508565b6040516101979190611d8e565b60405180910390f35b6101ba60048036038101906101b591906117a1565b610526565b005b6101d660048036038101906101d19190611675565b6105bf565b6040516101e39190611d8e565b60405180910390f35b6101f46105df565b6040516102019190611f6b565b60405180910390f35b6102126105e9565b60405161021f9190611f6b565b60405180910390f35b610242600480360381019061023d91906116da565b6105ef565b60405161024f9190611d8e565b60405180910390f35b6102606106f0565b60405161026d9190611f86565b60405180910390f35b610290600480360381019061028b9190611765565b6106f9565b60405161029d9190611d8e565b60405180910390f35b6102c060048036038101906102bb9190611729565b6107a5565b005b6102dc60048036038101906102d79190611819565b61087c565b005b6102f860048036038101906102f39190611675565b610889565b6040516103059190611f6b565b60405180910390f35b6103166108d2565b005b61032061095a565b60405161032d9190611d8e565b60405180910390f35b61033e61096d565b60405161034b9190611f6b565b60405180910390f35b61035c610973565b6040516103699190611d73565b60405180910390f35b61037a61099c565b6040516103879190611da9565b60405180910390f35b6103aa60048036038101906103a59190611765565b610a2e565b6040516103b79190611d8e565b60405180910390f35b6103da60048036038101906103d59190611765565b610b22565b6040516103e79190611d8e565b60405180910390f35b6103f8610b40565b6040516104059190611d8e565b60405180910390f35b610428600480360381019061042391906117ca565b610b53565b005b610444600480360381019061043f919061169e565b610bfc565b6040516104519190611f6b565b60405180910390f35b610474600480360381019061046f9190611675565b610c83565b005b606060048054610485906120cf565b80601f01602080910402602001604051908101604052809291908181526020018280546104b1906120cf565b80156104fe5780601f106104d3576101008083540402835291602001916104fe565b820191906000526020600020905b8154815290600101906020018083116104e157829003601f168201915b5050505050905090565b600061051c610515610d7b565b8484610d83565b6001905092915050565b61052e610d7b565b73ffffffffffffffffffffffffffffffffffffffff1661054c610973565b73ffffffffffffffffffffffffffffffffffffffff16146105a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059990611eab565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b60085481565b60006105fc848484610f4e565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610647610d7b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be90611e8b565b60405180910390fd5b6106e4856106d3610d7b565b85846106df9190612013565b610d83565b60019150509392505050565b60006012905090565b600061079b610706610d7b565b848460026000610714610d7b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107969190611fbd565b610d83565b6001905092915050565b6107ad610d7b565b73ffffffffffffffffffffffffffffffffffffffff166107cb610973565b73ffffffffffffffffffffffffffffffffffffffff1614610821576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081890611eab565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61088633826111d0565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108da610d7b565b73ffffffffffffffffffffffffffffffffffffffff166108f8610973565b73ffffffffffffffffffffffffffffffffffffffff161461094e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094590611eab565b60405180910390fd5b61095860006113a6565b565b600660009054906101000a900460ff1681565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109ab906120cf565b80601f01602080910402602001604051908101604052809291908181526020018280546109d7906120cf565b8015610a245780601f106109f957610100808354040283529160200191610a24565b820191906000526020600020905b815481529060010190602001808311610a0757829003601f168201915b5050505050905090565b60008060026000610a3d610d7b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190611f2b565b60405180910390fd5b610b17610b05610d7b565b858584610b129190612013565b610d83565b600191505092915050565b6000610b36610b2f610d7b565b8484610f4e565b6001905092915050565b600a60009054906101000a900460ff1681565b610b5b610d7b565b73ffffffffffffffffffffffffffffffffffffffff16610b79610973565b73ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690611eab565b60405180910390fd5b82600660006101000a81548160ff0219169083151502179055508160078190555080600881905550505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c8b610d7b565b73ffffffffffffffffffffffffffffffffffffffff16610ca9610973565b73ffffffffffffffffffffffffffffffffffffffff1614610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf690611eab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690611e0b565b60405180910390fd5b610d78816113a6565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90611f0b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a90611e2b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f419190611f6b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590611eeb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102590611dcb565b60405180910390fd5b61103983838361146a565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790611e4b565b60405180910390fd5b81816110cc9190612013565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115e9190611fbd565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111c29190611f6b565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123790611ecb565b60405180910390fd5b61124c8260008361146a565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90611deb565b60405180910390fd5b81816112df9190612013565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546113349190612013565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113999190611f6b565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a60009054906101000a900460ff161561156357600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115235750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155990611f4b565b60405180910390fd5b5b600660009054906101000a900460ff1680156115b25750611582610973565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561163157600754816115c484610889565b6115ce9190611fbd565b111580156115f15750600854816115e484610889565b6115ee9190611fbd565b10155b611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790611e6b565b60405180910390fd5b5b505050565b60008135905061164581612170565b92915050565b60008135905061165a81612187565b92915050565b60008135905061166f8161219e565b92915050565b60006020828403121561168757600080fd5b600061169584828501611636565b91505092915050565b600080604083850312156116b157600080fd5b60006116bf85828601611636565b92505060206116d085828601611636565b9150509250929050565b6000806000606084860312156116ef57600080fd5b60006116fd86828701611636565b935050602061170e86828701611636565b925050604061171f86828701611660565b9150509250925092565b6000806040838503121561173c57600080fd5b600061174a85828601611636565b925050602061175b8582860161164b565b9150509250929050565b6000806040838503121561177857600080fd5b600061178685828601611636565b925050602061179785828601611660565b9150509250929050565b6000602082840312156117b357600080fd5b60006117c18482850161164b565b91505092915050565b6000806000606084860312156117df57600080fd5b60006117ed8682870161164b565b93505060206117fe86828701611660565b925050604061180f86828701611660565b9150509250925092565b60006020828403121561182b57600080fd5b600061183984828501611660565b91505092915050565b61184b81612047565b82525050565b61185a81612059565b82525050565b600061186b82611fa1565b6118758185611fac565b935061188581856020860161209c565b61188e8161215f565b840191505092915050565b60006118a6602383611fac565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061190c602283611fac565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611972602683611fac565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006119d8602283611fac565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a3e602683611fac565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611aa4600683611fac565b91507f466f7262696400000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000611ae4602883611fac565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611b4a602083611fac565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611b8a602183611fac565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611bf0602583611fac565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611c56602483611fac565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611cbc602583611fac565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611d22600b83611fac565b91507f426c61636b6c69737465640000000000000000000000000000000000000000006000830152602082019050919050565b611d5e81612085565b82525050565b611d6d8161208f565b82525050565b6000602082019050611d886000830184611842565b92915050565b6000602082019050611da36000830184611851565b92915050565b60006020820190508181036000830152611dc38184611860565b905092915050565b60006020820190508181036000830152611de481611899565b9050919050565b60006020820190508181036000830152611e04816118ff565b9050919050565b60006020820190508181036000830152611e2481611965565b9050919050565b60006020820190508181036000830152611e44816119cb565b9050919050565b60006020820190508181036000830152611e6481611a31565b9050919050565b60006020820190508181036000830152611e8481611a97565b9050919050565b60006020820190508181036000830152611ea481611ad7565b9050919050565b60006020820190508181036000830152611ec481611b3d565b9050919050565b60006020820190508181036000830152611ee481611b7d565b9050919050565b60006020820190508181036000830152611f0481611be3565b9050919050565b60006020820190508181036000830152611f2481611c49565b9050919050565b60006020820190508181036000830152611f4481611caf565b9050919050565b60006020820190508181036000830152611f6481611d15565b9050919050565b6000602082019050611f806000830184611d55565b92915050565b6000602082019050611f9b6000830184611d64565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611fc882612085565b9150611fd383612085565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200857612007612101565b5b828201905092915050565b600061201e82612085565b915061202983612085565b92508282101561203c5761203b612101565b5b828203905092915050565b600061205282612065565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156120ba57808201518184015260208101905061209f565b838111156120c9576000848401525b50505050565b600060028204905060018216806120e757607f821691505b602082108114156120fb576120fa612130565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b61217981612047565b811461218457600080fd5b50565b61219081612059565b811461219b57600080fd5b50565b6121a781612085565b81146121b257600080fd5b5056fea2646970667358221220ffe9f7dbe06c55767069b9c012a1e0e4ff32fb5200721addb85a00d3905fc2e764736f6c63430008000033

Verified Source Code Partial Match

Compiler: v0.8.0+commit.c7dfd78e EVM: istanbul Optimization: No
GucciToken.sol 279 lines
// SPDX-License-Identifier: MIT
/*
   ______   __    __   ______    ______   ______        ________   ______   __    __  ________  __    __ 
 /      \ |  \  |  \ /      \  /      \ |      \      |        \ /      \ |  \  /  \|        \|  \  |  \
|  $$$$$$\| $$  | $$|  $$$$$$\|  $$$$$$\ \$$$$$$       \$$$$$$$$|  $$$$$$\| $$ /  $$| $$$$$$$$| $$\ | $$
| $$ __\$$| $$  | $$| $$   \$$| $$   \$$  | $$           | $$   | $$  | $$| $$/  $$ | $$__    | $$$\| $$
| $$|    \| $$  | $$| $$      | $$        | $$           | $$   | $$  | $$| $$  $$  | $$  \   | $$$$\ $$
| $$ \$$$$| $$  | $$| $$   __ | $$   __   | $$           | $$   | $$  | $$| $$$$$\  | $$$$$   | $$\$$ $$
| $$__| $$| $$__/ $$| $$__/  \| $$__/  \ _| $$_          | $$   | $$__/ $$| $$ \$$\ | $$_____ | $$ \$$$$
 \$$    $$ \$$    $$ \$$    $$ \$$    $$|   $$ \         | $$    \$$    $$| $$  \$$\| $$     \| $$  \$$$
  \$$$$$$   \$$$$$$   \$$$$$$   \$$$$$$  \$$$$$$          \$$     \$$$$$$  \$$   \$$ \$$$$$$$$ \$$   \$$

      Website: https://guccitoken.vip/
      Twitter: https://twitter.com/Gucci_Ethereum/

*/

pragma solidity ^0.8.0;

// Importing required OpenZeppelin contracts
// Context.sol
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// IERC20.sol
interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// IERC20Metadata.sol
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

// Ownable.sol
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// ERC20.sol
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

// GucciToken
contract GucciToken is Ownable, ERC20 {
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    mapping(address => bool) public blacklists;
    bool public blacklistEnabled;

    constructor(uint256 _totalSupply) ERC20("Gucci", "GUCCI") {
        _mint(msg.sender, _totalSupply);
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function setRule(bool _limited, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }

    function setBlacklistEnabled(bool _enabled) external onlyOwner {
        blacklistEnabled = _enabled;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        if (blacklistEnabled) {
            require(!blacklists[to] && !blacklists[from], "Blacklisted");
        }

        if (limited && from != owner()) {
            require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid");
        }
    }

    function burn(uint256 value) external {
        _burn(msg.sender, value);
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
blacklistEnabled 0xbffb691d → bool
blacklists 0x16c02129 → bool
decimals 0x313ce567 → uint8
limited 0x860a32ec → bool
maxHoldingAmount 0x89f9a1d3 → uint256
minHoldingAmount 0x1ab99e12 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 11 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
blacklist 0x404e5129
address _address
bool _isBlacklisting
burn 0x42966c68
uint256 value
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
renounceOwnership 0x715018a6
No parameters
setBlacklistEnabled 0x1201cbd0
bool _enabled
setRule 0xd07ea4e2
bool _limited
uint256 _maxHoldingAmount
uint256 _minHoldingAmount
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

No transactions found for this address