ETH Price: $3,046.68 (+2.22%)
Gas: 1 Gwei

Contract

0xF0124876646C880827Efe9D5321aE663d0044CFc
 

Overview

ETH Balance

0.00705013395815105 ETH

Eth Value

$21.48 (@ $3,046.68/ETH)

Token Holdings

Transaction Hash
Method
Block
From
To
Value
Execute Meta Tra...200758252024-06-12 12:43:4724 days ago1718196227IN
0xF0124876...3d0044CFc
0 ETH0.0017054241.48540603
Execute Meta Tra...200758242024-06-12 12:43:3524 days ago1718196215IN
0xF0124876...3d0044CFc
0 ETH0.0016557240.2765417
Execute Meta Tra...200758242024-06-12 12:43:3524 days ago1718196215IN
0xF0124876...3d0044CFc
0 ETH0.0016557240.2765417
Execute Meta Tra...200758242024-06-12 12:43:3524 days ago1718196215IN
0xF0124876...3d0044CFc
0 ETH0.0016557240.2765417
Execute Meta Tra...200758242024-06-12 12:43:3524 days ago1718196215IN
0xF0124876...3d0044CFc
0 ETH0.0016691440.602896
Execute Meta Tra...200758242024-06-12 12:43:3524 days ago1718196215IN
0xF0124876...3d0044CFc
0 ETH0.0016691440.602896
Execute Meta Tra...200758242024-06-12 12:43:3524 days ago1718196215IN
0xF0124876...3d0044CFc
0 ETH0.0037312440.602896
Deposit200758202024-06-12 12:42:4724 days ago1718196167IN
0xF0124876...3d0044CFc
0.00000005 ETH0.0043298942.46827738
Execute Meta Tra...200757632024-06-12 12:31:1124 days ago1718195471IN
0xF0124876...3d0044CFc
0 ETH0.0011429927.80402217
Execute Meta Tra...200757622024-06-12 12:30:5924 days ago1718195459IN
0xF0124876...3d0044CFc
0 ETH0.0023738125.83156612
Deposit200757602024-06-12 12:30:3524 days ago1718195435IN
0xF0124876...3d0044CFc
0.00000005 ETH0.0021631720.26277681
Execute Meta Tra...200757202024-06-12 12:22:3524 days ago1718194955IN
0xF0124876...3d0044CFc
0 ETH0.0009365422.78210507
Execute Meta Tra...200757192024-06-12 12:22:2324 days ago1718194943IN
0xF0124876...3d0044CFc
0 ETH0.0010119124.61535856
Execute Meta Tra...200757192024-06-12 12:22:2324 days ago1718194943IN
0xF0124876...3d0044CFc
0 ETH0.0022801924.81277965
Deposit200757162024-06-12 12:21:4724 days ago1718194907IN
0xF0124876...3d0044CFc
0.00000005 ETH0.0020447719.15375205
Execute Meta Tra...200748812024-06-12 9:34:1124 days ago1718184851IN
0xF0124876...3d0044CFc
0 ETH0.0007342317.86063916
Execute Meta Tra...200748802024-06-12 9:33:5924 days ago1718184839IN
0xF0124876...3d0044CFc
0 ETH0.0006782416.49881136
Execute Meta Tra...200748802024-06-12 9:33:5924 days ago1718184839IN
0xF0124876...3d0044CFc
0 ETH0.0015161716.49881136
Deposit200748772024-06-12 9:33:2324 days ago1718184803IN
0xF0124876...3d0044CFc
0.00000005 ETH0.0014464614.18717938
Execute Meta Tra...200748512024-06-12 9:28:1124 days ago1718184491IN
0xF0124876...3d0044CFc
0 ETH0.0004714911.46940372
Execute Meta Tra...200748512024-06-12 9:28:1124 days ago1718184491IN
0xF0124876...3d0044CFc
0 ETH0.0010298911.67280541
Execute Meta Tra...200748502024-06-12 9:27:5924 days ago1718184479IN
0xF0124876...3d0044CFc
0 ETH0.0004849411.79659831
Execute Meta Tra...200748502024-06-12 9:27:5924 days ago1718184479IN
0xF0124876...3d0044CFc
0 ETH0.0010958211.92465357
Deposit200748462024-06-12 9:27:1124 days ago1718184431IN
0xF0124876...3d0044CFc
0.00000005 ETH0.000958819.40420745
Execute Meta Tra...200748162024-06-12 9:21:1124 days ago1718184071IN
0xF0124876...3d0044CFc
0 ETH0.0004648211.30724746
View all transactions

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
191698142024-02-06 14:33:59151 days ago1707230039
0xF0124876...3d0044CFc
0.01358256 ETH
189892162024-01-12 7:05:59176 days ago1705043159
0xF0124876...3d0044CFc
0.01080558 ETH
176896742023-07-14 5:37:59358 days ago1689313079
0xF0124876...3d0044CFc
0.01157823 ETH
175511032023-06-24 18:17:47378 days ago1687630667
0xF0124876...3d0044CFc
0.01031878 ETH
174855962023-06-15 13:32:23387 days ago1686835943
0xF0124876...3d0044CFc
0.01001582 ETH
174806292023-06-14 20:43:59388 days ago1686775439
0xF0124876...3d0044CFc
0.0100986 ETH
172665012023-05-15 16:56:11418 days ago1684169771
0xF0124876...3d0044CFc
0.01509278 ETH
172594392023-05-14 17:00:47419 days ago1684083647
0xF0124876...3d0044CFc
0.01043461 ETH
172517862023-05-13 14:57:23420 days ago1683989843
0xF0124876...3d0044CFc
0.01216266 ETH
172516152023-05-13 14:22:35420 days ago1683987755
0xF0124876...3d0044CFc
0.01251939 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Eterna_KYT_Proxy

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : EternaLockProxy.sol
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.7; 


/**
 * @title OwnedUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with basic authorization control functionalities
 */
 
contract Eterna_KYT_Proxy {
    /**
     * @dev Event to show ownership has been transferred
     * @param previousOwner representing the address of the previous owner
     * @param newOwner representing the address of the new owner
     */
    event ProxyOwnershipTransferred(address previousOwner, address newOwner);

    /**
     * @dev This event will be emitted every time the implementation gets upgraded
     * @param implementation representing the address of the upgraded implementation
     */
    event Upgraded(address indexed implementation);

    // Storage position of the address of the maintenance boolean
    bytes32 private constant maintenancePosition = keccak256("com.Eterna.maintenance");
    // Storage position of the address of the current implementation
    bytes32 private constant implementationPosition = keccak256("com.Eterna.implementation");
    // Storage position of the owner of the contract
    bytes32 private constant proxyOwnerPosition = keccak256("com.Eterna.owner");

    /**
     * @dev the constructor sets the original owner of the contract to the sender account.
     */
    constructor() {
        setUpgradeabilityOwner(msg.sender);
    }

    /**
     * @dev Tells if contract is on maintenance
     * @return _maintenance if contract is on maintenance
     */
    function maintenance() public view returns (bool _maintenance) {
        bytes32 position = maintenancePosition;
        assembly {
            _maintenance := sload(position)
        }
    }

    /**
     * @dev Sets if contract is on maintenance
     */
    function setMaintenance(bool _maintenance) external onlyProxyOwner {
        bytes32 position = maintenancePosition;
        assembly {
            sstore(position, _maintenance)
        }
    }

    /**
     * @dev Tells the address of the owner
     * @return owner the address of the owner
     */
    function proxyOwner() public view returns (address owner) {
        bytes32 position = proxyOwnerPosition;
        assembly {
            owner := sload(position)
        }
    }

    /**
     * @dev Sets the address of the owner
     */
    function setUpgradeabilityOwner(address newProxyOwner) internal {
        bytes32 position = proxyOwnerPosition;
        assembly {
            sstore(position, newProxyOwner)
        }
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferProxyOwnership(address newOwner) public onlyProxyOwner {
        require(newOwner != address(0), 'OwnedUpgradeabilityProxy: INVALID');
        emit ProxyOwnershipTransferred(proxyOwner(), newOwner);
        setUpgradeabilityOwner(newOwner);
    }

    /*
     * @dev Allows the proxy owner to upgrade the current version of the proxy.
     * @param implementation representing the address of the new implementation to be set.
     */
    function upgradeTo(address newImplementation) public onlyProxyOwner {
        _upgradeTo(newImplementation);
    }

    /*
     * @dev Allows the proxy owner to upgrade the current version of the proxy and call the new implementation
     * to initialize whatever is needed through a low level call.
     * @param implementation representing the address of the new implementation to be set.
     * @param data represents the msg.data to bet sent in the low level call. This parameter may include the function
     * signature of the implementation to be called with the needed payload
     */
    function upgradeToAndCall(address newImplementation, bytes memory data) payable public onlyProxyOwner {
        upgradeTo(newImplementation);
        (bool success, ) = address(this).call{ value: msg.value }(data);
        require(success, "OwnedUpgradeabilityProxy: INVALID");
    }

    /**
     * @dev Fallback function allowing to perform a delegatecall to the given implementation.
     * This function will return whatever the implementation call returns
     */
    fallback() external payable {
        _fallback();
    }

    receive () external payable {
        _fallback();
    }

    /**
     * @dev Tells the address of the current implementation
     * @return impl address of the current implementation
     */
    function implementation() public view returns (address impl) {
        bytes32 position = implementationPosition;
        assembly {
            impl := sload(position)
        }
    }

    /**
     * @dev Sets the address of the current implementation
     * @param newImplementation address representing the new implementation to be set
     */
    function setImplementation(address newImplementation) internal {
        bytes32 position = implementationPosition;
        assembly {
            sstore(position, newImplementation)
        }
    }

    /**
     * @dev Upgrades the implementation address
     * @param newImplementation representing the address of the new implementation to be set
     */
    function _upgradeTo(address newImplementation) internal {
        address currentImplementation = implementation();
        require(currentImplementation != newImplementation, 'OwnedUpgradeabilityProxy: INVALID');
        setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    function _fallback() internal {
        if (maintenance()) {
            require(msg.sender == proxyOwner(), 'OwnedUpgradeabilityProxy: FORBIDDEN');
        }
        address _impl = implementation();
        require(_impl != address(0), 'OwnedUpgradeabilityProxy: INVALID');
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let result := delegatecall(gas(), _impl, ptr, calldatasize(), 0, 0)
            let size := returndatasize()
            returndatacopy(ptr, 0, size)

            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyProxyOwner() {
        require(msg.sender == proxyOwner(), 'OwnedUpgradeabilityProxy: FORBIDDEN');
        _;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maintenance","outputs":[{"internalType":"bool","name":"_maintenance","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_maintenance","type":"bool"}],"name":"setMaintenance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"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"}]

608060405234801561001057600080fd5b50610039337f249d1ec2874b947fc7138ceeaf45003f8630a6da385e61a9cc9775ce8a6d67b355565b6107ba806100486000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b146100f9578063612f2f371461011b5780636c376cc51461013b578063f1739cae1461017a57610083565b8063025313a21461008b5780633659cfe6146100c65780634f1ef286146100e657610083565b366100835761008161019a565b005b61008161019a565b34801561009757600080fd5b50600080516020610765833981519152545b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100d257600080fd5b506100816100e1366004610575565b61026f565b6100816100f43660046105ad565b6102bb565b34801561010557600080fd5b50600080516020610745833981519152546100a9565b34801561012757600080fd5b5061008161013636600461066f565b610387565b34801561014757600080fd5b507fae35dc687b06acca1eaed6d59da6d9b0dabf7e5e6adb22439cc9574255f21dab5460405190151581526020016100bd565b34801561018657600080fd5b50610081610195366004610575565b6103eb565b7fae35dc687b06acca1eaed6d59da6d9b0dabf7e5e6adb22439cc9574255f21dab541561020a57600080516020610765833981519152546001600160a01b0316336001600160a01b03161461020a5760405162461bcd60e51b815260040161020190610691565b60405180910390fd5b60006102226000805160206107458339815191525490565b90506001600160a01b03811661024a5760405162461bcd60e51b8152600401610201906106d4565b60405136600082376000803683855af43d806000843e81801561026b578184f35b8184fd5b600080516020610765833981519152546001600160a01b0316336001600160a01b0316146102af5760405162461bcd60e51b815260040161020190610691565b6102b8816104c0565b50565b600080516020610765833981519152546001600160a01b0316336001600160a01b0316146102fb5760405162461bcd60e51b815260040161020190610691565b6103048261026f565b6000306001600160a01b0316348360405161031f9190610715565b60006040518083038185875af1925050503d806000811461035c576040519150601f19603f3d011682016040523d82523d6000602084013e610361565b606091505b50509050806103825760405162461bcd60e51b8152600401610201906106d4565b505050565b600080516020610765833981519152546001600160a01b0316336001600160a01b0316146103c75760405162461bcd60e51b815260040161020190610691565b7fae35dc687b06acca1eaed6d59da6d9b0dabf7e5e6adb22439cc9574255f21dab55565b600080516020610765833981519152546001600160a01b0316336001600160a01b03161461042b5760405162461bcd60e51b815260040161020190610691565b6001600160a01b0381166104515760405162461bcd60e51b8152600401610201906106d4565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96104886000805160206107658339815191525490565b604080516001600160a01b03928316815291841660208301520160405180910390a16102b88160008051602061076583398151915255565b60006104d86000805160206107458339815191525490565b9050816001600160a01b0316816001600160a01b03160361050b5760405162461bcd60e51b8152600401610201906106d4565b6105218260008051602061074583398151915255565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b80356001600160a01b038116811461057057600080fd5b919050565b60006020828403121561058757600080fd5b61059082610559565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156105c057600080fd5b6105c983610559565b9150602083013567ffffffffffffffff808211156105e657600080fd5b818501915085601f8301126105fa57600080fd5b81358181111561060c5761060c610597565b604051601f8201601f19908116603f0116810190838211818310171561063457610634610597565b8160405282815288602084870101111561064d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561068157600080fd5b8135801515811461059057600080fd5b60208082526023908201527f4f776e6564557067726164656162696c69747950726f78793a20464f524249446040820152622222a760e91b606082015260800190565b60208082526021908201527f4f776e6564557067726164656162696c69747950726f78793a20494e56414c496040820152601160fa1b606082015260800190565b6000825160005b81811015610736576020818601810151858301520161071c565b50600092019182525091905056fe3852316f7d572d4d4b5d2d20295e8b2ce5502ee8bc9aab3a02fba4be3cd3551c249d1ec2874b947fc7138ceeaf45003f8630a6da385e61a9cc9775ce8a6d67b3a2646970667358221220f4ad4af972d4020c6e1032f5be1b7ea33476b77e496d9e4ce19acb64136dee1c64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b146100f9578063612f2f371461011b5780636c376cc51461013b578063f1739cae1461017a57610083565b8063025313a21461008b5780633659cfe6146100c65780634f1ef286146100e657610083565b366100835761008161019a565b005b61008161019a565b34801561009757600080fd5b50600080516020610765833981519152545b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100d257600080fd5b506100816100e1366004610575565b61026f565b6100816100f43660046105ad565b6102bb565b34801561010557600080fd5b50600080516020610745833981519152546100a9565b34801561012757600080fd5b5061008161013636600461066f565b610387565b34801561014757600080fd5b507fae35dc687b06acca1eaed6d59da6d9b0dabf7e5e6adb22439cc9574255f21dab5460405190151581526020016100bd565b34801561018657600080fd5b50610081610195366004610575565b6103eb565b7fae35dc687b06acca1eaed6d59da6d9b0dabf7e5e6adb22439cc9574255f21dab541561020a57600080516020610765833981519152546001600160a01b0316336001600160a01b03161461020a5760405162461bcd60e51b815260040161020190610691565b60405180910390fd5b60006102226000805160206107458339815191525490565b90506001600160a01b03811661024a5760405162461bcd60e51b8152600401610201906106d4565b60405136600082376000803683855af43d806000843e81801561026b578184f35b8184fd5b600080516020610765833981519152546001600160a01b0316336001600160a01b0316146102af5760405162461bcd60e51b815260040161020190610691565b6102b8816104c0565b50565b600080516020610765833981519152546001600160a01b0316336001600160a01b0316146102fb5760405162461bcd60e51b815260040161020190610691565b6103048261026f565b6000306001600160a01b0316348360405161031f9190610715565b60006040518083038185875af1925050503d806000811461035c576040519150601f19603f3d011682016040523d82523d6000602084013e610361565b606091505b50509050806103825760405162461bcd60e51b8152600401610201906106d4565b505050565b600080516020610765833981519152546001600160a01b0316336001600160a01b0316146103c75760405162461bcd60e51b815260040161020190610691565b7fae35dc687b06acca1eaed6d59da6d9b0dabf7e5e6adb22439cc9574255f21dab55565b600080516020610765833981519152546001600160a01b0316336001600160a01b03161461042b5760405162461bcd60e51b815260040161020190610691565b6001600160a01b0381166104515760405162461bcd60e51b8152600401610201906106d4565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96104886000805160206107658339815191525490565b604080516001600160a01b03928316815291841660208301520160405180910390a16102b88160008051602061076583398151915255565b60006104d86000805160206107458339815191525490565b9050816001600160a01b0316816001600160a01b03160361050b5760405162461bcd60e51b8152600401610201906106d4565b6105218260008051602061074583398151915255565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b80356001600160a01b038116811461057057600080fd5b919050565b60006020828403121561058757600080fd5b61059082610559565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156105c057600080fd5b6105c983610559565b9150602083013567ffffffffffffffff808211156105e657600080fd5b818501915085601f8301126105fa57600080fd5b81358181111561060c5761060c610597565b604051601f8201601f19908116603f0116810190838211818310171561063457610634610597565b8160405282815288602084870101111561064d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561068157600080fd5b8135801515811461059057600080fd5b60208082526023908201527f4f776e6564557067726164656162696c69747950726f78793a20464f524249446040820152622222a760e91b606082015260800190565b60208082526021908201527f4f776e6564557067726164656162696c69747950726f78793a20494e56414c496040820152601160fa1b606082015260800190565b6000825160005b81811015610736576020818601810151858301520161071c565b50600092019182525091905056fe3852316f7d572d4d4b5d2d20295e8b2ce5502ee8bc9aab3a02fba4be3cd3551c249d1ec2874b947fc7138ceeaf45003f8630a6da385e61a9cc9775ce8a6d67b3a2646970667358221220f4ad4af972d4020c6e1032f5be1b7ea33476b77e496d9e4ce19acb64136dee1c64736f6c63430008120033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.