ETH Price: $2,628.99 (+1.08%)
Gas: 1 Gwei

Token

MicroPets (PETS)
 

Overview

Max Total Supply

4,147,699,664 PETS

Holders

102 (0.00%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH (+3.17%)

Onchain Market Cap

$271,010.70

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

MicroPets is a Software Development Company based in Florida, USA

Market

Volume (24H):$97.34
Market Capitalization:$0.00
Circulating Supply:0.00 PETS
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TransparentUpgradeableProxy

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license, Audited
/**
 *Submitted for verification at Etherscan.io on 2024-04-19
*/

pragma solidity ^0.8.9;

// SPDX-License-Identifier: MIT

abstract contract Proxy {
    fallback() external payable {
        _fallback();
    }

    receive() external payable {
        _fallback();
    }

    function _implementation() internal view virtual returns (address);

    function _delegate(address implementation) internal {
        assembly {
            calldatacopy(0, 0, calldatasize())

            let result := delegatecall(
                gas(),
                implementation,
                0,
                calldatasize(),
                0,
                0
            )
            // Copy the returned data.
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)

            switch result
            // delegatecall returns 0 on error.
            case 0 {
                revert(0, retSz)
            }
            default {
                return(0, retSz)
            }
        }
    }

    function _beforeFallback() internal virtual {}

    function _fallback() internal {
        _beforeFallback();
        _delegate(_implementation());
    }
}

library ZOSLibAddress {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
}

contract BaseUpgradeabilityProxy is Proxy {
    event Upgraded(address indexed implementation);

    bytes32 internal constant IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    function _implementation() internal view override returns (address impl) {
        bytes32 slot = IMPLEMENTATION_SLOT;
        assembly {
            impl := sload(slot)
        }
    }

    function _upgradeTo(address newImplementation) internal {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    function _setImplementation(address newImplementation) internal {
        require(
            ZOSLibAddress.isContract(newImplementation),
            "Cannot set a proxy implementation to a non-contract address"
        );

        bytes32 slot = IMPLEMENTATION_SLOT;

        assembly {
            sstore(slot, newImplementation)
        }
    }
}

contract TransparentUpgradeableProxy is BaseUpgradeabilityProxy {
    //ERC-1967 bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)
    bytes32 internal constant ADMIN_SLOT =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    constructor(
        address logic,
        address newAdmin,
        bytes memory data
    ) payable {
        assert(
            IMPLEMENTATION_SLOT ==
                bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1)
        );
        assert(
            ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1)
        );
        _setAdmin(newAdmin);
        _setImplementation(logic);
        if (data.length > 0) {
            (bool success, ) = logic.delegatecall(data);
            require(success);
        }
    }

    event AdminChanged(address previousAdmin, address newAdmin);

    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    function admin() external ifAdmin returns (address) {
        return _admin();
    }

    function implementation() external ifAdmin returns (address) {
        return _implementation();
    }

    function changeAdmin(address newAdmin) external ifAdmin {
        require(
            newAdmin != address(0),
            "Cannot change the admin of a proxy to the zero address"
        );
        emit AdminChanged(_admin(), newAdmin);
        _setAdmin(newAdmin);
    }

    function upgradeTo(address newImplementation) external ifAdmin {
        _upgradeTo(newImplementation);
    }

    function upgradeToAndCall(address newImplementation, bytes calldata data)
        external
        payable
        ifAdmin
    {
        _upgradeTo(newImplementation);
        (bool success, ) = newImplementation.delegatecall(data);
        require(success);
    }

    function _admin() internal view returns (address adm) {
        bytes32 slot = ADMIN_SLOT;
        assembly {
            adm := sload(slot)
        }
    }

    function _setAdmin(address newAdmin) internal {
        bytes32 slot = ADMIN_SLOT;

        assembly {
            sstore(slot, newAdmin)
        }
    }

    function _beforeFallback() internal override {
        require(
            msg.sender != _admin(),
            "Cannot call fallback function from the proxy admin"
        );
        super._beforeFallback();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"logic","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052604051610989380380610989833981016040819052610022916101f8565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6102c3565b5f8051602061096983398151915214610068576100686102e8565b61009360017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046102c3565b5f80516020610949833981519152146100ae576100ae6102e8565b6100c3825f8051602061094983398151915255565b6100cc83610140565b805115610138575f836001600160a01b0316826040516100ec91906102fc565b5f60405180830381855af49150503d805f8114610124576040519150601f19603f3d011682016040523d82523d5f602084013e610129565b606091505b5050905080610136575f80fd5b505b505050610312565b803b6101b85760405162461bcd60e51b815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000606482015260840160405180910390fd5b5f8051602061096983398151915255565b80516001600160a01b03811681146101df575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f805f6060848603121561020a575f80fd5b610213846101c9565b9250610221602085016101c9565b60408501519092506001600160401b038082111561023d575f80fd5b818601915086601f830112610250575f80fd5b815181811115610262576102626101e4565b604051601f8201601f19908116603f0116810190838211818310171561028a5761028a6101e4565b816040528281528960208487010111156102a2575f80fd5b8260208601602083015e5f6020848301015280955050505050509250925092565b818103818111156102e257634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52600160045260245ffd5b5f82518060208501845e5f920191825250919050565b61062a8061031f5f395ff3fe60806040526004361061004d575f3560e01c80633659cfe6146100645780634f1ef286146100835780635c60da1b146100965780638f283970146100c6578063f851a440146100e55761005c565b3661005c5761005a6100f9565b005b61005a6100f9565b34801561006f575f80fd5b5061005a61007e366004610529565b610133565b61005a610091366004610549565b610165565b3480156100a1575f80fd5b506100aa610204565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d1575f80fd5b5061005a6100e0366004610529565b61025a565b3480156100f0575f80fd5b506100aa61035f565b610101610397565b61013161012c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610418565b565b5f805160206105d5833981519152546001600160a01b0316330361015d5761015a81610437565b50565b61015a6100f9565b5f805160206105d5833981519152546001600160a01b031633036101f75761018c83610437565b5f836001600160a01b031683836040516101a79291906105c5565b5f60405180830381855af49150503d805f81146101df576040519150601f19603f3d011682016040523d82523d5f602084013e6101e4565b606091505b50509050806101f1575f80fd5b50505050565b6101ff6100f9565b505050565b5f61021a5f805160206105d58339815191525490565b6001600160a01b0316330361024f57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102576100f9565b90565b5f805160206105d5833981519152546001600160a01b0316330361015d576001600160a01b0381166102f25760405162461bcd60e51b815260206004820152603660248201527f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f604482015275787920746f20746865207a65726f206164647265737360501b60648201526084015b60405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103285f805160206105d58339815191525490565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a815f805160206105d583398151915255565b5f6103755f805160206105d58339815191525490565b6001600160a01b0316330361024f57505f805160206105d58339815191525490565b5f805160206105d5833981519152546001600160a01b031633036101315760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527137b6903a343290383937bc3c9030b236b4b760711b60648201526084016102e9565b365f80375f80365f845af43d805f803e81801561043357815ff35b815ffd5b61044081610476565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b803b6104ea5760405162461bcd60e51b815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084016102e9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b80356001600160a01b0381168114610524575f80fd5b919050565b5f60208284031215610539575f80fd5b6105428261050e565b9392505050565b5f805f6040848603121561055b575f80fd5b6105648461050e565b9250602084013567ffffffffffffffff80821115610580575f80fd5b818601915086601f830112610593575f80fd5b8135818111156105a1575f80fd5b8760208285010111156105b2575f80fd5b6020830194508093505050509250925092565b818382375f910190815291905056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a2646970667358221220d407dd05b6b50657e8564be7fe7a28a4cf49691414784e27a0cb155035e16e0764736f6c63430008190033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0000000000000000000000006e65e374ea3cf0f5650f2ba9a7d8e5a1a372b37c000000000000000000000000ee5bc415022db9b946c21da60216f21298750c7100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061004d575f3560e01c80633659cfe6146100645780634f1ef286146100835780635c60da1b146100965780638f283970146100c6578063f851a440146100e55761005c565b3661005c5761005a6100f9565b005b61005a6100f9565b34801561006f575f80fd5b5061005a61007e366004610529565b610133565b61005a610091366004610549565b610165565b3480156100a1575f80fd5b506100aa610204565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d1575f80fd5b5061005a6100e0366004610529565b61025a565b3480156100f0575f80fd5b506100aa61035f565b610101610397565b61013161012c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610418565b565b5f805160206105d5833981519152546001600160a01b0316330361015d5761015a81610437565b50565b61015a6100f9565b5f805160206105d5833981519152546001600160a01b031633036101f75761018c83610437565b5f836001600160a01b031683836040516101a79291906105c5565b5f60405180830381855af49150503d805f81146101df576040519150601f19603f3d011682016040523d82523d5f602084013e6101e4565b606091505b50509050806101f1575f80fd5b50505050565b6101ff6100f9565b505050565b5f61021a5f805160206105d58339815191525490565b6001600160a01b0316330361024f57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102576100f9565b90565b5f805160206105d5833981519152546001600160a01b0316330361015d576001600160a01b0381166102f25760405162461bcd60e51b815260206004820152603660248201527f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f604482015275787920746f20746865207a65726f206164647265737360501b60648201526084015b60405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103285f805160206105d58339815191525490565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a815f805160206105d583398151915255565b5f6103755f805160206105d58339815191525490565b6001600160a01b0316330361024f57505f805160206105d58339815191525490565b5f805160206105d5833981519152546001600160a01b031633036101315760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527137b6903a343290383937bc3c9030b236b4b760711b60648201526084016102e9565b365f80375f80365f845af43d805f803e81801561043357815ff35b815ffd5b61044081610476565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b803b6104ea5760405162461bcd60e51b815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084016102e9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b80356001600160a01b0381168114610524575f80fd5b919050565b5f60208284031215610539575f80fd5b6105428261050e565b9392505050565b5f805f6040848603121561055b575f80fd5b6105648461050e565b9250602084013567ffffffffffffffff80821115610580575f80fd5b818601915086601f830112610593575f80fd5b8135818111156105a1575f80fd5b8760208285010111156105b2575f80fd5b6020830194508093505050509250925092565b818382375f910190815291905056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a2646970667358221220d407dd05b6b50657e8564be7fe7a28a4cf49691414784e27a0cb155035e16e0764736f6c63430008190033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006e65e374ea3cf0f5650f2ba9a7d8e5a1a372b37c000000000000000000000000ee5bc415022db9b946c21da60216f21298750c7100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : logic (address): 0x6e65E374eA3cf0F5650F2BA9a7D8E5A1A372b37C
Arg [1] : newAdmin (address): 0xEE5BC415022Db9b946C21DA60216f21298750c71
Arg [2] : data (bytes): 0x

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000006e65e374ea3cf0f5650f2ba9a7d8e5a1a372b37c
Arg [1] : 000000000000000000000000ee5bc415022db9b946c21da60216f21298750c71
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

2417:2506:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;197:11;:9;:11::i;:::-;2417:2506;;132:11;:9;:11::i;3965:111::-;;;;;;;;;;-1:-1:-1;3965:111:0;;;;;:::i;:::-;;:::i;4084:272::-;;;;;;:::i;:::-;;:::i;3566:104::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1217:32:1;;;1199:51;;1187:2;1172:18;3566:104:0;;;;;;;3678:279;;;;;;;;;;-1:-1:-1;3678:279:0;;;;;:::i;:::-;;:::i;3472:86::-;;;;;;;;;;;;;:::i;1052:105::-;1093:17;:15;:17::i;:::-;1121:28;1131:17;1614:66;1850:11;;1689:190;1131:17;1121:9;:28::i;:::-;1052:105::o;3965:111::-;-1:-1:-1;;;;;;;;;;;4496:11:0;-1:-1:-1;;;;;3361:22:0;:10;:22;3357:100;;4039:29:::1;4050:17;4039:10;:29::i;:::-;3965:111:::0;:::o;3357:100::-;3434:11;:9;:11::i;4084:272::-;-1:-1:-1;;;;;;;;;;;4496:11:0;-1:-1:-1;;;;;3361:22:0;:10;:22;3357:100;;4226:29:::1;4237:17;4226:10;:29::i;:::-;4267:12;4285:17;-1:-1:-1::0;;;;;4285:30:0::1;4316:4;;4285:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4266:55;;;4340:7;4332:16;;;::::0;::::1;;4215:141;4084:272:::0;;;:::o;3357:100::-;3434:11;:9;:11::i;:::-;4084:272;;;:::o;3566:104::-;3618:7;3375:8;-1:-1:-1;;;;;;;;;;;4496:11:0;;4364:161;3375:8;-1:-1:-1;;;;;3361:22:0;:10;:22;3357:100;;-1:-1:-1;1614:66:0;1850:11;;3566:104::o;3357:100::-;3434:11;:9;:11::i;:::-;3566:104;:::o;3678:279::-;-1:-1:-1;;;;;;;;;;;4496:11:0;-1:-1:-1;;;;;3361:22:0;:10;:22;3357:100;;-1:-1:-1;;;;;3767:22:0;::::1;3745:126;;;::::0;-1:-1:-1;;;3745:126:0;;1739:2:1;3745:126:0::1;::::0;::::1;1721:21:1::0;1778:2;1758:18;;;1751:30;1817:34;1797:18;;;1790:62;-1:-1:-1;;;1868:18:1;;;1861:52;1930:19;;3745:126:0::1;;;;;;;;;3887:32;3900:8;-1:-1:-1::0;;;;;;;;;;;4496:11:0;;4364:161;3900:8:::1;3887:32;::::0;;-1:-1:-1;;;;;2190:15:1;;;2172:34;;2242:15;;;2237:2;2222:18;;2215:43;2107:18;3887:32:0::1;;;;;;;3930:19;3940:8;-1:-1:-1::0;;;;;;;;;;;4652:22:0;4533:159;3472:86;3515:7;3375:8;-1:-1:-1;;;;;;;;;;;4496:11:0;;4364:161;3375:8;-1:-1:-1;;;;;3361:22:0;:10;:22;3357:100;;-1:-1:-1;;;;;;;;;;;;4496:11:0;;3566:104::o;4700:220::-;-1:-1:-1;;;;;;;;;;;4496:11:0;-1:-1:-1;;;;;4778:22:0;:10;:22;4756:122;;;;-1:-1:-1;;;4756:122:0;;2471:2:1;4756:122:0;;;2453:21:1;2510:2;2490:18;;;2483:30;2549:34;2529:18;;;2522:62;-1:-1:-1;;;2600:18:1;;;2593:48;2658:19;;4756:122:0;2269:414:1;299:691:0;405:14;402:1;399;386:34;611:1;591;558:14;538:1;505:14;481:5;450:177;694:16;745:5;742:1;739;724:27;774:6;843:57;;;;951:5;948:1;941:16;843:57;879:5;876:1;869:16;1887:155;1954:37;1973:17;1954:18;:37::i;:::-;2007:27;;-1:-1:-1;;;;;2007:27:0;;;;;;;;1887:155;:::o;2050:360::-;1382:20;;2125:152;;;;-1:-1:-1;;;2125:152:0;;2890:2:1;2125:152:0;;;2872:21:1;2929:2;2909:18;;;2902:30;2968:34;2948:18;;;2941:62;3039:29;3019:18;;;3012:57;3086:19;;2125:152:0;2688:423:1;2125:152:0;1614:66;2361:31;2050:360::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;383:665::-;462:6;470;478;531:2;519:9;510:7;506:23;502:32;499:52;;;547:1;544;537:12;499:52;570:29;589:9;570:29;:::i;:::-;560:39;;650:2;639:9;635:18;622:32;673:18;714:2;706:6;703:14;700:34;;;730:1;727;720:12;700:34;768:6;757:9;753:22;743:32;;813:7;806:4;802:2;798:13;794:27;784:55;;835:1;832;825:12;784:55;875:2;862:16;901:2;893:6;890:14;887:34;;;917:1;914;907:12;887:34;962:7;957:2;948:6;944:2;940:15;936:24;933:37;930:57;;;983:1;980;973:12;930:57;1014:2;1010;1006:11;996:21;;1036:6;1026:16;;;;;383:665;;;;;:::o;1261:271::-;1444:6;1436;1431:3;1418:33;1400:3;1470:16;;1495:13;;;1470:16;1261:271;-1:-1:-1;1261:271:1:o

Swarm Source

ipfs://d407dd05b6b50657e8564be7fe7a28a4cf49691414784e27a0cb155035e16e07
Loading...
Loading
Loading...
Loading
[ 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.