ETH Price: $3,464.21 (-1.21%)
Gas: 3 Gwei

Contract

0xC6ECa979b0d17C348055733bb84E94f5C655CD52
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw190099912024-01-15 4:47:11191 days ago1705294031IN
0xC6ECa979...5C655CD52
0 ETH0.0079053870
Withdraw165187642023-01-30 9:32:11541 days ago1675071131IN
0xC6ECa979...5C655CD52
0 ETH0.0079053870
Withdraw153891122022-08-22 8:00:19702 days ago1661155219IN
0xC6ECa979...5C655CD52
0 ETH0.0085014370
Withdraw152407422022-07-30 0:58:09725 days ago1659142689IN
0xC6ECa979...5C655CD52
0 ETH0.000496225
Withdraw150552982022-07-01 7:31:39754 days ago1656660699IN
0xC6ECa979...5C655CD52
0 ETH0.0010776910
Withdraw150102212022-06-23 0:04:16762 days ago1655942656IN
0xC6ECa979...5C655CD52
0 ETH0.0050647247
Withdraw146359642022-04-22 17:16:57823 days ago1650647817IN
0xC6ECa979...5C655CD52
0 ETH0.0069477870
Withdraw146359622022-04-22 17:16:31823 days ago1650647791IN
0xC6ECa979...5C655CD52
0 ETH0.0070848470
Withdraw146359572022-04-22 17:16:09823 days ago1650647769IN
0xC6ECa979...5C655CD52
0 ETH0.0069123267
Withdraw144732502022-03-28 7:04:16849 days ago1648451056IN
0xC6ECa979...5C655CD52
0 ETH0.0021835822
Withdraw144661482022-03-27 4:41:38850 days ago1648356098IN
0xC6ECa979...5C655CD52
0 ETH0.0069477870
Withdraw144415992022-03-23 8:57:20854 days ago1648025840IN
0xC6ECa979...5C655CD52
0 ETH0.0075438370
Withdraw144399952022-03-23 2:48:29854 days ago1648003709IN
0xC6ECa979...5C655CD52
0 ETH0.0069477870
Withdraw143951932022-03-16 3:31:51861 days ago1647401511IN
0xC6ECa979...5C655CD52
0 ETH0.0069477870
Withdraw143951902022-03-16 3:31:01861 days ago1647401461IN
0xC6ECa979...5C655CD52
0 ETH0.0070848470
Withdraw143845542022-03-14 11:49:44862 days ago1647258584IN
0xC6ECa979...5C655CD52
0 ETH0.0041152433.88459154
Withdraw143080552022-03-02 14:05:39874 days ago1646229939IN
0xC6ECa979...5C655CD52
0 ETH0.0046649347
Withdraw142729472022-02-25 3:45:47880 days ago1645760747IN
0xC6ECa979...5C655CD52
0 ETH0.0059988360.43919244
Withdraw142674072022-02-24 7:18:58881 days ago1645687138IN
0xC6ECa979...5C655CD52
0 ETH0.0075438370
Withdraw142490682022-02-21 11:02:53883 days ago1645441373IN
0xC6ECa979...5C655CD52
0 ETH0.0079053870
Withdraw142333312022-02-19 0:37:59886 days ago1645231079IN
0xC6ECa979...5C655CD52
0 ETH0.0069477870
Withdraw142285322022-02-18 6:47:30887 days ago1645166850IN
0xC6ECa979...5C655CD52
0 ETH0.0055869256.28918166
Withdraw142222552022-02-17 7:14:36888 days ago1645082076IN
0xC6ECa979...5C655CD52
0 ETH0.0032330730
Withdraw142168112022-02-16 11:18:26888 days ago1645010306IN
0xC6ECa979...5C655CD52
0 ETH0.0009636330
Withdraw142168112022-02-16 11:18:26888 days ago1645010306IN
0xC6ECa979...5C655CD52
0 ETH0.0009636330
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Upgradeable

Compiler Version
v0.6.2+commit.bacdbe57

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-03-25
*/

/**
 *Submitted for verification at Etherscan.io on 2020-11-18
*/

/**
 *Submitted for verification at Etherscan.io on 2020-09-11
*/

pragma solidity >=0.6.0;


contract Upgradeable {
    event Upgrade(
        address indexed sender,
        address indexed from,
        address indexed to
    );

    //https://eips.ethereum.org/EIPS/eip-1967
    //bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
    bytes32
        internal constant IMPLEMENTATION_STORAGE_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
    bytes32
        internal constant AUTHENTICATION_STORAGE_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    constructor(address _authentication, address _implementation) public {
        require(_authentication != address(0), "Upgradeable.constructor.EID00090");
        require(_implementation != address(0), "Upgradeable.constructor.EID00090");
        _setauthentication(_authentication);
        _setimplementation(_implementation);
    }

    modifier auth() {
        require(msg.sender == authentication(), "Upgradeable.auth.EID00001");
        _;
    }

    function authentication() public view returns (address _authentication) {
        bytes32 slot = AUTHENTICATION_STORAGE_SLOT;
        assembly {
            _authentication := sload(slot)
        }
    }

    function implementation() public view returns (address _implementation) {
        bytes32 slot = IMPLEMENTATION_STORAGE_SLOT;
        assembly {
            _implementation := sload(slot)
        }
    }

    function upgrade(address _implementation)
        public
        auth
        returns (address)
    {
        require(_implementation != address(0), "Upgradeable.upgrade.EID00090");
        address from = _setimplementation(_implementation);
        emit Upgrade(msg.sender, from, _implementation);
        return from;
    }

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

    function _setimplementation(address _implementation)
        internal
        returns (address)
    {
        address from = implementation();
        bytes32 slot = IMPLEMENTATION_STORAGE_SLOT;
        assembly {
            sstore(slot, _implementation)
        }
        return from;
    }

    function _setauthentication(address _authentication)
        internal
        returns (address)
    {
        address from = authentication();
        bytes32 slot = AUTHENTICATION_STORAGE_SLOT;
        assembly {
            sstore(slot, _authentication)
        }
        return from;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_authentication","type":"address"},{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Upgrade","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"authentication","outputs":[{"internalType":"address","name":"_authentication","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgrade","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516107143803806107148339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156100f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5570677261646561626c652e636f6e7374727563746f722e454944303030393081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610194576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5570677261646561626c652e636f6e7374727563746f722e454944303030393081525060200191505060405180910390fd5b6101a3826101bb60201b60201c565b506101b38161020360201b60201c565b5050506102ad565b6000806101cc61024b60201b60201c565b905060007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b90508381558192505050919050565b60008061021461027c60201b60201c565b905060007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b90508381558192505050919050565b6000807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b9050805491505090565b6000807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050805491505090565b610458806102bc6000396000f3fe6080604052600436106100385760003560e01c80630900f0101461006b5780635c60da1b146100fc578063b996c1701461015357610039565b5b60006100436101aa565b90503660008037600080366000845af43d6000803e8060008114610066573d6000f35b3d6000fd5b34801561007757600080fd5b506100ba6004803603602081101561008e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010857600080fd5b506101116101aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015f57600080fd5b506101686103af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050805491505090565b60006101e56103af565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610285576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5570677261646561626c652e617574682e45494430303030310000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5570677261646561626c652e757067726164652e45494430303039300000000081525060200191505060405180910390fd5b6000610333836103e0565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c78349fc44add47ae711ddc6e926b7845597c57473e587420693d8d0547845a60405160405180910390a480915050919050565b6000807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b9050805491505090565b6000806103eb6101aa565b905060007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050838155819250505091905056fea2646970667358221220d41d03b31cf9db85101fd6d862e4d16ae947f2f349fad998342eeeb2576107d264736f6c63430006020033000000000000000000000000c9ec0ef264c037795953709e6c2f7ca301a155d100000000000000000000000048c6d852f9fb13dbba1b7d7452d81d4425912abf

Deployed Bytecode

0x6080604052600436106100385760003560e01c80630900f0101461006b5780635c60da1b146100fc578063b996c1701461015357610039565b5b60006100436101aa565b90503660008037600080366000845af43d6000803e8060008114610066573d6000f35b3d6000fd5b34801561007757600080fd5b506100ba6004803603602081101561008e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010857600080fd5b506101116101aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015f57600080fd5b506101686103af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050805491505090565b60006101e56103af565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610285576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5570677261646561626c652e617574682e45494430303030310000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5570677261646561626c652e757067726164652e45494430303039300000000081525060200191505060405180910390fd5b6000610333836103e0565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c78349fc44add47ae711ddc6e926b7845597c57473e587420693d8d0547845a60405160405180910390a480915050919050565b6000807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b9050805491505090565b6000806103eb6101aa565b905060007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050838155819250505091905056fea2646970667358221220d41d03b31cf9db85101fd6d862e4d16ae947f2f349fad998342eeeb2576107d264736f6c63430006020033

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

000000000000000000000000c9ec0ef264c037795953709e6c2f7ca301a155d100000000000000000000000048c6d852f9fb13dbba1b7d7452d81d4425912abf

-----Decoded View---------------
Arg [0] : _authentication (address): 0xc9ec0Ef264C037795953709e6C2f7ca301A155D1
Arg [1] : _implementation (address): 0x48C6d852F9FB13dBba1b7D7452d81D4425912Abf

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c9ec0ef264c037795953709e6c2f7ca301a155d1
Arg [1] : 00000000000000000000000048c6d852f9fb13dbba1b7d7452d81d4425912abf


Deployed Bytecode Sourcemap

172:3055:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2001:23;2027:16;:14;:16::i;:::-;2001:42;;2097:14;2094:1;2091;2078:34;2302:1;2282;2249:14;2229:1;2195:15;2171:5;2140:178;2353:16;2350:1;2347;2332:38;2391:6;2420:1;2415:76;;;;2550:16;2547:1;2540:27;2415:76;2455:16;2452:1;2445:27;1620:334;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1620:334:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1620:334:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1404:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1404:208:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1188:208:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1404;1451:23;1487:12;505:66;1502:27;;1487:42;;1589:4;1583:11;1564:30;;1549:56;;:::o;1620:334::-;1710:7;1114:16;:14;:16::i;:::-;1100:30;;:10;:30;;;1092:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1770:1:::1;1743:29;;:15;:29;;;;1735:70;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;1816:12;1831:35;1850:15;1831:18;:35::i;:::-;1816:50;;1908:15;1882:42;;1902:4;1882:42;;1890:10;1882:42;;;;;;;;;;;;1942:4;1935:11;;;1620:334:::0;;;:::o;1188:208::-;1235:23;1271:12;643:66;1286:27;;1271:42;;1373:4;1367:11;1348:30;;1333:56;;:::o;2612:302::-;2701:7;2726:12;2741:16;:14;:16::i;:::-;2726:31;;2768:12;505:66;2783:27;;2768:42;;2858:15;2852:4;2845:29;2902:4;2895:11;;;;2612:302;;;:::o

Swarm Source

ipfs://d41d03b31cf9db85101fd6d862e4d16ae947f2f349fad998342eeeb2576107d2

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  ]

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.