Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0xB0dadbb2AC4e01C7f47bCF48df5e8B8E83cDD372
Balance 0 ETH
Nonce 1
Code Size 5324 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

5324 bytes
0x608060405234801561000f575f80fd5b50600436106100a7575f3560e01c8063395093511161006f578063395093511461016557806370a082311461019557806395d89b41146101c5578063a457c2d7146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610db8565b60405180910390f35b6100e360048036038101906100de9190610e69565b610303565b6040516100f09190610ec1565b60405180910390f35b610101610319565b60405161010e9190610ee9565b60405180910390f35b610131600480360381019061012c9190610f02565b610322565b60405161013e9190610ec1565b60405180910390f35b61014f6103c7565b60405161015c9190610f6d565b60405180910390f35b61017f600480360381019061017a9190610e69565b6103dc565b60405161018c9190610ec1565b60405180910390f35b6101af60048036038101906101aa9190610f86565b610475565b6040516101bc9190610ee9565b60405180910390f35b6101cd6104ba565b6040516101da9190610db8565b60405180910390f35b6101fd60048036038101906101f89190610e69565b61054a565b60405161020a9190610ec1565b60405180910390f35b61022d60048036038101906102289190610e69565b6105e3565b60405161023a9190610ec1565b60405180910390f35b61025d60048036038101906102589190610fb1565b6105f9565b60405161026a9190610ee9565b60405180910390f35b6060600580546102829061101c565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae9061101c565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f61030f33848461067b565b6001905092915050565b5f600454905090565b5f61032e84848461083e565b6103bc84338460015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546103b79190611079565b61067b565b600190509392505050565b5f60075f9054906101000a900460ff16905090565b5f61046b33848460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461046691906110ac565b61067b565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600680546104c99061101c565b80601f01602080910402602001604051908101604052809291908181526020018280546104f59061101c565b80156105405780601f1061051757610100808354040283529160200191610540565b820191905f5260205f20905b81548152906001019060200180831161052357829003601f168201915b5050505050905090565b5f6105d933848460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105d49190611079565b61067b565b6001905092915050565b5f6105ef33848461083e565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e09061114f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e906111dd565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108319190610ee9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a39061126b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361091a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610911906112f9565b60405180910390fd5b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561097e575061097c83610ca6565b155b15610b98575f6064600a5f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109cf9190611317565b6109d99190611385565b90505f4290506201518060025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a2b91906110ac565b811115610ab7575f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b818360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b0191906110ac565b1115610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b399061144b565b60405180910390fd5b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b8e91906110ac565b9250508190555050505b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610be39190611079565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c3591906110ac565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c999190610ee9565b60405180910390a3505050565b5f805f90505b600880549050811015610d3e578273ffffffffffffffffffffffffffffffffffffffff1660088281548110610ce457610ce3611469565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d31576001915050610d43565b8080600101915050610cac565b505f90505b919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d8a82610d48565b610d948185610d52565b9350610da4818560208601610d62565b610dad81610d70565b840191505092915050565b5f6020820190508181035f830152610dd08184610d80565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e0582610ddc565b9050919050565b610e1581610dfb565b8114610e1f575f80fd5b50565b5f81359050610e3081610e0c565b92915050565b5f819050919050565b610e4881610e36565b8114610e52575f80fd5b50565b5f81359050610e6381610e3f565b92915050565b5f8060408385031215610e7f57610e7e610dd8565b5b5f610e8c85828601610e22565b9250506020610e9d85828601610e55565b9150509250929050565b5f8115159050919050565b610ebb81610ea7565b82525050565b5f602082019050610ed45f830184610eb2565b92915050565b610ee381610e36565b82525050565b5f602082019050610efc5f830184610eda565b92915050565b5f805f60608486031215610f1957610f18610dd8565b5b5f610f2686828701610e22565b9350506020610f3786828701610e22565b9250506040610f4886828701610e55565b9150509250925092565b5f60ff82169050919050565b610f6781610f52565b82525050565b5f602082019050610f805f830184610f5e565b92915050565b5f60208284031215610f9b57610f9a610dd8565b5b5f610fa884828501610e22565b91505092915050565b5f8060408385031215610fc757610fc6610dd8565b5b5f610fd485828601610e22565b9250506020610fe585828601610e22565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061103357607f821691505b60208210810361104657611045610fef565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61108382610e36565b915061108e83610e36565b92508282039050818111156110a6576110a561104c565b5b92915050565b5f6110b682610e36565b91506110c183610e36565b92508282019050808211156110d9576110d861104c565b5b92915050565b7f4d554749574152415f4e4f5f4c554646593a20617070726f76652066726f6d205f8201527f746865207a65726f206164647265737300000000000000000000000000000000602082015250565b5f611139603083610d52565b9150611144826110df565b604082019050919050565b5f6020820190508181035f8301526111668161112d565b9050919050565b7f4d554749574152415f4e4f5f4c554646593a20617070726f766520746f2074685f8201527f65207a65726f2061646472657373000000000000000000000000000000000000602082015250565b5f6111c7602e83610d52565b91506111d28261116d565b604082019050919050565b5f6020820190508181035f8301526111f4816111bb565b9050919050565b7f4d554749574152415f4e4f5f4c554646593a207472616e736665722066726f6d5f8201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b5f611255603183610d52565b9150611260826111fb565b604082019050919050565b5f6020820190508181035f83015261128281611249565b9050919050565b7f4d554749574152415f4e4f5f4c554646593a207472616e7366657220746f20745f8201527f6865207a65726f20616464726573730000000000000000000000000000000000602082015250565b5f6112e3602f83610d52565b91506112ee82611289565b604082019050919050565b5f6020820190508181035f830152611310816112d7565b9050919050565b5f61132182610e36565b915061132c83610e36565b925082820261133a81610e36565b915082820484148315176113515761135061104c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61138f82610e36565b915061139a83610e36565b9250826113aa576113a9611358565b5b828204905092915050565b7f4d554749574152415f4e4f5f4c554646593a2063616e6e6f742073656c6c206d5f8201527f6f7265207468616e20313025206f6620796f75722062616c616e63652070657260208201527f2064617900000000000000000000000000000000000000000000000000000000604082015250565b5f611435604483610d52565b9150611440826113b5565b606082019050919050565b5f6020820190508181035f83015261146281611429565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220475d198d0f154084dab4ccb183d0b6d12cdb443d9113926d5792e9da3694d37164736f6c634300081a0033

Verified Source Code Partial Match

Compiler: v0.8.26+commit.8a97fa7a EVM: cancun Optimization: No
MUGIWARA_NO_LUFFY.sol 159 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract MUGIWARA_NO_LUFFY {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _lastSellTime;
    mapping(address => uint256) private _dailySoldAmount;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address private _owner;

    // List of whitelisted addresses that can sell their entire balance
    address[] private whitelistedAddresses = [
        0xCD2037D16446543A790b4da5bcF5a557dEc58366,
        0x6a89514a504465f1B943DA932Df06C3F37e114B7,
        0x226f1999Bec5A39FDD55A911fAE1b08432a261cE,
        0x1a1e3Dce1EED19Da50B7816525E0710C89aFdBC5,
        0xacA0e87F72B5F4f043bb519646546d9e500389C8,
        0xF7C9b62BC24d770a30Cc60Fc6a07114Ed9a04a36,
        0x215A29C3D3E33f1aBf8ce8d195ef0c07587F760E,
        0xB3fa92C3c94e3D61eA02A6d1b236d6367208965f,
        0xe999c65a516412c696A697745e670595305887fA,
        0x37d93a1FE8fe86A7125Baf3Ea8eFA61b03ef16EA
    ];

    constructor() {
        _name = "MUGIWARA_NO_LUFFY"; // Token name
        _symbol = "MDL"; // Token symbol
        _decimals = 18; // Decimals (standard for ERC20 tokens)
        _owner = msg.sender; // Owner of the contract

        // Total supply of tokens: 1,000,000,000 tokens with 18 decimals
        _totalSupply = 1_000_000_000 * 10**uint256(_decimals);

        // Calculate special amount (4.99% of initial supply for each whitelisted address)
        uint256 specialAmount = (_totalSupply * 499) / 10000;

        // Allocate 4.99% of total supply to the owner and each whitelisted address
        for (uint256 i = 0; i < whitelistedAddresses.length; i++) {
            _balances[whitelistedAddresses[i]] = specialAmount;
            emit Transfer(address(0), whitelistedAddresses[i], specialAmount);
        }

        _balances[_owner] = specialAmount; // Owner also gets 4.99%
        emit Transfer(address(0), _owner, specialAmount);

        // Remaining initial supply to the contract deployer minus allocations
        _balances[msg.sender] = _totalSupply - (specialAmount * (whitelistedAddresses.length + 1));
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] - subtractedValue);
        return true;
    }

    function _isWhitelisted(address account) internal view returns (bool) {
        for (uint256 i = 0; i < whitelistedAddresses.length; i++) {
            if (whitelistedAddresses[i] == account) {
                return true;
            }
        }
        return false;
    }

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

        if (sender != _owner && !_isWhitelisted(sender)) {
            uint256 maxSellAmount = (_balances[sender] * 10) / 100; // Calculate 10% of sender's balance
            uint256 currentTime = block.timestamp;
            
            if (currentTime > _lastSellTime[sender] + 1 days) {
                _dailySoldAmount[sender] = 0;
                _lastSellTime[sender] = currentTime;
            }

            require(_dailySoldAmount[sender] + amount <= maxSellAmount, "MUGIWARA_NO_LUFFY: cannot sell more than 10% of your balance per day");
            _dailySoldAmount[sender] += amount;
        }

        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

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

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

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

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 5 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address