ETH Price: $2,198.41 (+4.85%)

Contract

0x0e4e7F2AecF408AFF4f82f067677050239bdC58A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Fung Token (FUNG) ($0.0122)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve246201832026-03-09 13:21:356 days ago1773062495IN
FungifyNFT: FUNG Token
0 ETH0.000005670.19332191
Approve246012582026-03-06 21:59:239 days ago1772834363IN
FungifyNFT: FUNG Token
0 ETH0.000002520.04895275
Approve246003962026-03-06 19:06:239 days ago1772823983IN
FungifyNFT: FUNG Token
0 ETH0.000107112.07432682
Approve245996952026-03-06 16:45:359 days ago1772815535IN
FungifyNFT: FUNG Token
0 ETH0.000032970.64176567
Approve245996072026-03-06 16:27:359 days ago1772814455IN
FungifyNFT: FUNG Token
0 ETH0.000117952.28425766
Approve245984902026-03-06 12:43:239 days ago1772801003IN
FungifyNFT: FUNG Token
0 ETH0.000010840.20993275
Approve245974252026-03-06 9:08:479 days ago1772788127IN
FungifyNFT: FUNG Token
0 ETH0.000065642.06834214
Approve245974182026-03-06 9:07:239 days ago1772788043IN
FungifyNFT: FUNG Token
0 ETH0.00000210.06620304
Approve245974152026-03-06 9:06:479 days ago1772788007IN
FungifyNFT: FUNG Token
0 ETH0.000106652.06535782
Approve245947562026-03-06 0:09:599 days ago1772755799IN
FungifyNFT: FUNG Token
0 ETH0.000002370.046199
Approve245942752026-03-05 22:32:2310 days ago1772749943IN
FungifyNFT: FUNG Token
0 ETH0.000006280.12248897
Approve245940032026-03-05 21:36:5910 days ago1772746619IN
FungifyNFT: FUNG Token
0 ETH0.000105862.05004132
Approve245939512026-03-05 21:26:3510 days ago1772745995IN
FungifyNFT: FUNG Token
0 ETH0.000105462.04244099
Approve245760422026-03-03 9:29:2312 days ago1772530163IN
FungifyNFT: FUNG Token
0 ETH0.000005980.18842122
Approve245760302026-03-03 9:26:5912 days ago1772530019IN
FungifyNFT: FUNG Token
0 ETH0.000009750.18898927
Approve245513252026-02-27 22:42:3516 days ago1772232155IN
FungifyNFT: FUNG Token
0 ETH0.000006670.12926148
Approve245513222026-02-27 22:41:5916 days ago1772232119IN
FungifyNFT: FUNG Token
0 ETH0.000107182.07573525
Approve244909432026-02-19 12:38:2324 days ago1771504703IN
FungifyNFT: FUNG Token
0 ETH0.000011890.23025683
Approve244799442026-02-17 23:49:5925 days ago1771372199IN
FungifyNFT: FUNG Token
0 ETH0.000006340.12358893
Approve244541932026-02-14 9:40:3529 days ago1771062035IN
FungifyNFT: FUNG Token
0 ETH0.000107292.07777002
Transfer243729182026-02-03 1:01:3540 days ago1770080495IN
FungifyNFT: FUNG Token
0 ETH0.000012350.21022252
Transfer243729172026-02-03 1:01:2340 days ago1770080483IN
FungifyNFT: FUNG Token
0 ETH0.000016750.28526788
Transfer243729082026-02-03 0:59:3540 days ago1770080375IN
FungifyNFT: FUNG Token
0 ETH0.000006550.11152036
Approve243465122026-01-30 8:33:2344 days ago1769762003IN
FungifyNFT: FUNG Token
0 ETH0.00001830.62482106
Approve240790652025-12-24 1:02:5981 days ago1766538179IN
FungifyNFT: FUNG Token
0 ETH0.000002050.03977528
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FungTokenProxy

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
istanbul EvmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-01-01
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.23;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract Upgradeable is Ownable {
    address public implementation;

    constructor() Ownable(msg.sender) {}
}

contract Proxy is Upgradeable {

    constructor(address impl_) {
        replaceImplementation(impl_);
    }

    fallback() external payable {
        assembly {
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(gas(), sload(implementation.slot), 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch result
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }

    function replaceImplementation(address impl_) public onlyOwner {
        implementation = impl_;
    }
}

contract FungTokenProxy is Proxy {
    constructor(address impl_) Proxy(impl_) {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"impl_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"impl_","type":"address"}],"name":"replaceImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516103de3803806103de83398101604081905261002f9161011a565b80338061005757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61006081610071565b5061006a816100c1565b505061014a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100c96100eb565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146101185760405163118cdaa760e01b815233600482015260240161004e565b565b60006020828403121561012c57600080fd5b81516001600160a01b038116811461014357600080fd5b9392505050565b610285806101596000396000f3fe60806040526004361061004a5760003560e01c80635c60da1b14610072578063715018a6146100ae5780638da5cb5b146100c3578063d69efdc5146100e1578063f2fde38b14610101575b36600080376000803660006001545af43d6000803e80801561006b573d6000f35b3d6000fd5b005b34801561007e57600080fd5b50600154610092906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100ba57600080fd5b50610070610121565b3480156100cf57600080fd5b506000546001600160a01b0316610092565b3480156100ed57600080fd5b506100706100fc36600461021f565b610135565b34801561010d57600080fd5b5061007061011c36600461021f565b61015f565b6101296101a2565b61013360006101cf565b565b61013d6101a2565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6101676101a2565b6001600160a01b03811661019657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61019f816101cf565b50565b6000546001600160a01b031633146101335760405163118cdaa760e01b815233600482015260240161018d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561023157600080fd5b81356001600160a01b038116811461024857600080fd5b939250505056fea2646970667358221220cbd60be925f0750716b6168dd82ca343d4cb5637742b4c337e67d03ea354ee7064736f6c6343000817003300000000000000000000000039022b55287c5eb9f87cdf119bb43423faa41b83

Deployed Bytecode

0x60806040526004361061004a5760003560e01c80635c60da1b14610072578063715018a6146100ae5780638da5cb5b146100c3578063d69efdc5146100e1578063f2fde38b14610101575b36600080376000803660006001545af43d6000803e80801561006b573d6000f35b3d6000fd5b005b34801561007e57600080fd5b50600154610092906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100ba57600080fd5b50610070610121565b3480156100cf57600080fd5b506000546001600160a01b0316610092565b3480156100ed57600080fd5b506100706100fc36600461021f565b610135565b34801561010d57600080fd5b5061007061011c36600461021f565b61015f565b6101296101a2565b61013360006101cf565b565b61013d6101a2565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6101676101a2565b6001600160a01b03811661019657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61019f816101cf565b50565b6000546001600160a01b031633146101335760405163118cdaa760e01b815233600482015260240161018d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561023157600080fd5b81356001600160a01b038116811461024857600080fd5b939250505056fea2646970667358221220cbd60be925f0750716b6168dd82ca343d4cb5637742b4c337e67d03ea354ee7064736f6c63430008170033

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

00000000000000000000000039022b55287c5eb9f87cdf119bb43423faa41b83

-----Decoded View---------------
Arg [0] : impl_ (address): 0x39022b55287C5eB9F87CdF119bb43423FaA41B83

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000039022b55287c5eb9f87cdf119bb43423faa41b83


Deployed Bytecode Sourcemap

4602:85:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:14;4163:1;4160;4147:34;4279:1;4276;4260:14;4257:1;4235:19;4229:26;4222:5;4209:72;4316:16;4313:1;4310;4295:38;4354:6;4374:38;;;;4446:16;4443:1;4436:27;4374:38;4393:16;4390:1;4383:27;4347:118;;3882:29;;;;;;;;;;-1:-1:-1;3882:29:0;;;;-1:-1:-1;;;;;3882:29:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;3882:29:0;;;;;;;3007:103;;;;;;;;;;;;;:::i;2332:87::-;;;;;;;;;;-1:-1:-1;2378:7:0;2405:6;-1:-1:-1;;;;;2405:6:0;2332:87;;4491:104;;;;;;;;;;-1:-1:-1;4491:104:0;;;;;:::i;:::-;;:::i;3265:220::-;;;;;;;;;;-1:-1:-1;3265:220:0;;;;;:::i;:::-;;:::i;3007:103::-;2218:13;:11;:13::i;:::-;3072:30:::1;3099:1;3072:18;:30::i;:::-;3007:103::o:0;4491:104::-;2218:13;:11;:13::i;:::-;4565:14:::1;:22:::0;;-1:-1:-1;;;;;;4565:22:0::1;-1:-1:-1::0;;;;;4565:22:0;;;::::1;::::0;;;::::1;::::0;;4491:104::o;3265:220::-;2218:13;:11;:13::i;:::-;-1:-1:-1;;;;;3350:22:0;::::1;3346:93;;3396:31;::::0;-1:-1:-1;;;3396:31:0;;3424:1:::1;3396:31;::::0;::::1;160:51:1::0;133:18;;3396:31:0::1;;;;;;;;3346:93;3449:28;3468:8;3449:18;:28::i;:::-;3265:220:::0;:::o;2497:166::-;2378:7;2405:6;-1:-1:-1;;;;;2405:6:0;687:10;2557:23;2553:103;;2604:40;;-1:-1:-1;;;2604:40:0;;687:10;2604:40;;;160:51:1;133:18;;2604:40:0;14:203:1;3645:191:0;3719:16;3738:6;;-1:-1:-1;;;;;3755:17:0;;;-1:-1:-1;;;;;;3755:17:0;;;;;;3788:40;;3738:6;;;;;;;3788:40;;3719:16;3788:40;3708:128;3645:191;:::o;222:286:1:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:1;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:1:o

Swarm Source

ipfs://cbd60be925f0750716b6168dd82ca343d4cb5637742b4c337e67d03ea354ee70

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.