ETH Price: $2,300.82 (-3.37%)

Contract

0x65218A41Fb92637254B4f8c97448d3dF343A3064
 
Transaction Hash
Method
Block
From
To
Migrate Delegati...207381062024-09-13 0:28:113 days ago1726187291IN
0x65218A41...F343A3064
0 ETH0.000882582.4928562
Migrate Delegati...207335702024-09-12 9:14:234 days ago1726132463IN
0x65218A41...F343A3064
0 ETH0.001547054.36473374
Migrate Delegati...205392752024-08-16 6:03:4731 days ago1723788227IN
0x65218A41...F343A3064
0 ETH0.001252513.48663223
Migrate Delegati...205076842024-08-11 20:13:3535 days ago1723407215IN
0x65218A41...F343A3064
0 ETH0.00255266.78304926
Migrate Delegati...204953422024-08-10 2:51:5937 days ago1723258319IN
0x65218A41...F343A3064
0 ETH0.000669031.97258646
Migrate Delegati...204705682024-08-06 15:57:1141 days ago1722959831IN
0x65218A41...F343A3064
0 ETH0.000630388.61816377
Migrate Delegati...204705672024-08-06 15:56:5941 days ago1722959819IN
0x65218A41...F343A3064
0 ETH0.003095678.6171789
Migrate Delegati...204087012024-07-29 0:41:1149 days ago1722213671IN
0x65218A41...F343A3064
0 ETH0.000438681.22248118
Migrate Delegati...204078152024-07-28 21:43:2349 days ago1722203003IN
0x65218A41...F343A3064
0 ETH0.001234893.43746552
Migrate Delegati...204046192024-07-28 11:02:3550 days ago1722164555IN
0x65218A41...F343A3064
0 ETH0.001336973.72186149
Migrate Delegati...203998122024-07-27 18:56:1150 days ago1722106571IN
0x65218A41...F343A3064
0 ETH0.001599864.25571993
Stake For203742542024-07-24 5:16:4754 days ago1721798207IN
0x65218A41...F343A3064
0 ETH0.002833822.22899734
Unstake Claim203740022024-07-24 4:26:2354 days ago1721795183IN
0x65218A41...F343A3064
0 ETH0.00040262.6626446
Withdraw Rewards203253562024-07-17 9:29:1161 days ago1721208551IN
0x65218A41...F343A3064
0 ETH0.0015591112.90499434
Unstake202728482024-07-10 1:35:3568 days ago1720575335IN
0x65218A41...F343A3064
0 ETH0.000619572.80884416
Stake For202725832024-07-10 0:42:2368 days ago1720572143IN
0x65218A41...F343A3064
0 ETH0.003285242.59920705
Withdraw Rewards202615532024-07-08 11:40:3570 days ago1720438835IN
0x65218A41...F343A3064
0 ETH0.000543434.49804614
Unstake Claim202613882024-07-08 11:07:3570 days ago1720436855IN
0x65218A41...F343A3064
0 ETH0.000914995.75440494
Unstake202606952024-07-08 8:46:5970 days ago1720428419IN
0x65218A41...F343A3064
0 ETH0.001694146.95994248
Withdraw Rewards202606902024-07-08 8:45:5970 days ago1720428359IN
0x65218A41...F343A3064
0 ETH0.00069566.70692942
Withdraw Rewards201614812024-06-24 12:16:1184 days ago1719231371IN
0x65218A41...F343A3064
0 ETH0.000875487.24646549
Approve200358972024-06-06 22:53:47101 days ago1717714427IN
0x65218A41...F343A3064
0 ETH0.0004621116.77608012
Migrate Delegati...199750512024-05-29 10:53:35110 days ago1716980015IN
0x65218A41...F343A3064
0 ETH0.000293459
Withdraw Rewards198886122024-05-17 8:50:59122 days ago1715935859IN
0x65218A41...F343A3064
0 ETH0.0014912312.34310324
Migrate Delegati...198515782024-05-12 4:32:11127 days ago1715488331IN
0x65218A41...F343A3064
0 ETH0.000114533.5127986
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207646622024-09-16 17:27:4737 mins ago1726507667
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
207645092024-09-16 16:56:591 hr ago1726505819
0x65218A41...F343A3064
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StakeManagerProxy

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2023-08-07
*/

pragma solidity ^0.5.2;

/*
 * SPDX-License-Identitifer:    MIT
 */


// See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-897.md

interface ERCProxy {
    function proxyType() external pure returns (uint256 proxyTypeId);
    function implementation() external view returns (address codeAddr);
}



contract DelegateProxyForwarder {
    function delegatedFwd(address _dst, bytes memory _calldata) internal {
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            let result := delegatecall(
                sub(gas, 10000),
                _dst,
                add(_calldata, 0x20),
                mload(_calldata),
                0,
                0
            )
            let size := returndatasize

            let ptr := mload(0x40)
            returndatacopy(ptr, 0, size)

            // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas.
            // if the call returned error data, forward it
            switch result
                case 0 {
                    revert(ptr, size)
                }
                default {
                    return(ptr, size)
                }
        }
    }
    
    function isContract(address _target) internal view returns (bool) {
        if (_target == address(0)) {
            return false;
        }

        uint256 size;
        assembly {
            size := extcodesize(_target)
        }
        return size > 0;
    }
}




contract DelegateProxy is ERCProxy, DelegateProxyForwarder {
    function proxyType() external pure returns (uint256 proxyTypeId) {
        // Upgradeable proxy
        proxyTypeId = 2;
    }

    function implementation() external view returns (address);
}



contract UpgradableProxy is DelegateProxy {
    event ProxyUpdated(address indexed _new, address indexed _old);
    event OwnerUpdate(address _new, address _old);

    bytes32 constant IMPLEMENTATION_SLOT = keccak256("matic.network.proxy.implementation");
    bytes32 constant OWNER_SLOT = keccak256("matic.network.proxy.owner");

    constructor(address _proxyTo) public {
        setOwner(msg.sender);
        setImplementation(_proxyTo);
    }

    function() external payable {
        // require(currentContract != 0, "If app code has not been set yet, do not call");
        // Todo: filter out some calls or handle in the end fallback
        delegatedFwd(loadImplementation(), msg.data);
    }

    modifier onlyProxyOwner() {
        require(loadOwner() == msg.sender, "NOT_OWNER");
        _;
    }

    function owner() external view returns(address) {
        return loadOwner();
    }

    function loadOwner() internal view returns(address) {
        address _owner;
        bytes32 position = OWNER_SLOT;
        assembly {
            _owner := sload(position)
        }
        return _owner;
    }

    function implementation() external view returns (address) {
        return loadImplementation();
    }

    function loadImplementation() internal view returns(address) {
        address _impl;
        bytes32 position = IMPLEMENTATION_SLOT;
        assembly {
            _impl := sload(position)
        }
        return _impl;
    }

    function transferOwnership(address newOwner) public onlyProxyOwner {
        require(newOwner != address(0), "ZERO_ADDRESS");
        emit OwnerUpdate(newOwner, loadOwner());
        setOwner(newOwner);
    }

    function setOwner(address newOwner) private {
        bytes32 position = OWNER_SLOT;
        assembly {
            sstore(position, newOwner)
        }
    }

    function updateImplementation(address _newProxyTo) public onlyProxyOwner {
        require(_newProxyTo != address(0x0), "INVALID_PROXY_ADDRESS");
        require(isContract(_newProxyTo), "DESTINATION_ADDRESS_IS_NOT_A_CONTRACT");

        emit ProxyUpdated(_newProxyTo, loadImplementation());
        
        setImplementation(_newProxyTo);
    }

    function updateAndCall(address _newProxyTo, bytes memory data) payable public onlyProxyOwner {
        updateImplementation(_newProxyTo);

        (bool success, bytes memory returnData) = address(this).call.value(msg.value)(data);
        require(success, string(returnData));
    }

    function setImplementation(address _newProxyTo) private {
        bytes32 position = IMPLEMENTATION_SLOT;
        assembly {
            sstore(position, _newProxyTo)
        }
    }
}



contract StakeManagerProxy is UpgradableProxy {
    constructor(address _proxyTo) public UpgradableProxy(_proxyTo) {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_proxyTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_new","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"}],"name":"OwnerUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_new","type":"address"},{"indexed":true,"internalType":"address","name":"_old","type":"address"}],"name":"ProxyUpdated","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxyType","outputs":[{"internalType":"uint256","name":"proxyTypeId","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"updateAndCall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"}],"name":"updateImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516108633803806108638339818101604052602081101561003357600080fd5b505180610048336001600160e01b0361006116565b61005a816001600160e01b0361009616565b50506100b8565b604080517f6d617469632e6e6574776f726b2e70726f78792e6f776e6572000000000000008152905190819003601901902055565b6000604051808061084160229139604051908190036022019020929092555050565b61077a806100c76000396000f3fe6080604052600436106100555760003560e01c8063025b22bc1461009f5780634555d5c9146100d25780635c60da1b146100f95780638da5cb5b1461012a578063d88ca2c81461013f578063f2fde38b146101f5575b61009d610060610228565b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061024e92505050565b005b3480156100ab57600080fd5b5061009d600480360360208110156100c257600080fd5b50356001600160a01b0316610276565b3480156100de57600080fd5b506100e76103b0565b60408051918252519081900360200190f35b34801561010557600080fd5b5061010e6103b5565b604080516001600160a01b039092168252519081900360200190f35b34801561013657600080fd5b5061010e6103c4565b61009d6004803603604081101561015557600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561018057600080fd5b82018360208201111561019257600080fd5b803590602001918460018302840111640100000000831117156101b457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103ce945050505050565b34801561020157600080fd5b5061009d6004803603602081101561021857600080fd5b50356001600160a01b0316610564565b600080600060405180806107246022913960405190819003602201902054935050505090565b600080825160208401856127105a03f43d604051816000823e828015610272578282f35b8282fd5b3361027f610656565b6001600160a01b0316146102c6576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038116610319576040805162461bcd60e51b8152602060048201526015602482015274494e56414c49445f50524f58595f4144445245535360581b604482015290519081900360640190fd5b61032281610688565b61035d5760405162461bcd60e51b81526004018080602001828103825260258152602001806106ff6025913960400191505060405180910390fd5b610365610228565b6001600160a01b0316816001600160a01b03167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36103ad816106ab565b50565b600290565b60006103bf610228565b905090565b60006103bf610656565b336103d7610656565b6001600160a01b03161461041e576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b61042782610276565b60006060306001600160a01b031634846040518082805190602001908083835b602083106104665780518252601f199092019160209182019101610447565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146104c8576040519150601f19603f3d011682016040523d82523d6000602084013e6104cd565b606091505b509150915081819061055d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561052257818101518382015260200161050a565b50505050905090810190601f16801561054f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b3361056d610656565b6001600160a01b0316146105b4576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b0381166105fe576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b7f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a81610628610656565b604080516001600160a01b03938416815291909216602082015281519081900390910190a16103ad816106cd565b604080517836b0ba34b1973732ba3bb7b93597383937bc3c9737bbb732b960391b815290519081900360190190205490565b60006001600160a01b0382166106a0575060006106a6565b50803b15155b919050565b6000604051808061072460229139604051908190036022019020929092555050565b604080517836b0ba34b1973732ba3bb7b93597383937bc3c9737bbb732b960391b815290519081900360190190205556fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e54524143546d617469632e6e6574776f726b2e70726f78792e696d706c656d656e746174696f6ea265627a7a72315820b97221bd667c942466a5afc3f825199cc346876d90257c6fccb3454b4ddd84e864736f6c634300051100326d617469632e6e6574776f726b2e70726f78792e696d706c656d656e746174696f6e00000000000000000000000051aba8b28ed0366665e74c7869deaea926d4c9d8

Deployed Bytecode

0x6080604052600436106100555760003560e01c8063025b22bc1461009f5780634555d5c9146100d25780635c60da1b146100f95780638da5cb5b1461012a578063d88ca2c81461013f578063f2fde38b146101f5575b61009d610060610228565b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061024e92505050565b005b3480156100ab57600080fd5b5061009d600480360360208110156100c257600080fd5b50356001600160a01b0316610276565b3480156100de57600080fd5b506100e76103b0565b60408051918252519081900360200190f35b34801561010557600080fd5b5061010e6103b5565b604080516001600160a01b039092168252519081900360200190f35b34801561013657600080fd5b5061010e6103c4565b61009d6004803603604081101561015557600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561018057600080fd5b82018360208201111561019257600080fd5b803590602001918460018302840111640100000000831117156101b457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103ce945050505050565b34801561020157600080fd5b5061009d6004803603602081101561021857600080fd5b50356001600160a01b0316610564565b600080600060405180806107246022913960405190819003602201902054935050505090565b600080825160208401856127105a03f43d604051816000823e828015610272578282f35b8282fd5b3361027f610656565b6001600160a01b0316146102c6576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038116610319576040805162461bcd60e51b8152602060048201526015602482015274494e56414c49445f50524f58595f4144445245535360581b604482015290519081900360640190fd5b61032281610688565b61035d5760405162461bcd60e51b81526004018080602001828103825260258152602001806106ff6025913960400191505060405180910390fd5b610365610228565b6001600160a01b0316816001600160a01b03167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36103ad816106ab565b50565b600290565b60006103bf610228565b905090565b60006103bf610656565b336103d7610656565b6001600160a01b03161461041e576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b61042782610276565b60006060306001600160a01b031634846040518082805190602001908083835b602083106104665780518252601f199092019160209182019101610447565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146104c8576040519150601f19603f3d011682016040523d82523d6000602084013e6104cd565b606091505b509150915081819061055d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561052257818101518382015260200161050a565b50505050905090810190601f16801561054f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b3361056d610656565b6001600160a01b0316146105b4576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b0381166105fe576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b7f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a81610628610656565b604080516001600160a01b03938416815291909216602082015281519081900390910190a16103ad816106cd565b604080517836b0ba34b1973732ba3bb7b93597383937bc3c9737bbb732b960391b815290519081900360190190205490565b60006001600160a01b0382166106a0575060006106a6565b50803b15155b919050565b6000604051808061072460229139604051908190036022019020929092555050565b604080517836b0ba34b1973732ba3bb7b93597383937bc3c9737bbb732b960391b815290519081900360190190205556fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e54524143546d617469632e6e6574776f726b2e70726f78792e696d706c656d656e746174696f6ea265627a7a72315820b97221bd667c942466a5afc3f825199cc346876d90257c6fccb3454b4ddd84e864736f6c63430005110032

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

00000000000000000000000051aba8b28ed0366665e74c7869deaea926d4c9d8

-----Decoded View---------------
Arg [0] : _proxyTo (address): 0x51abA8b28eD0366665e74C7869DeaEa926d4C9d8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000051aba8b28ed0366665e74c7869deaea926d4c9d8


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.