ETH Price: $3,216.38 (+3.71%)
 

Overview

ETH Balance

5,615.602460257171528581 ETH

Eth Value

$18,061,925.23 (@ $3,216.38/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Initialize216613282025-01-19 21:50:1110 days ago1737323411IN
0xA2611F44...ebA9925b5
0 ETH0.0028882698.64287052
Revoke Role189261952024-01-03 10:18:59393 days ago1704277139IN
0xA2611F44...ebA9925b5
0 ETH0.0009894720.51838856
Grant Role189261832024-01-03 10:16:35393 days ago1704276995IN
0xA2611F44...ebA9925b5
0 ETH0.0016780120.07176211
Transfer Proxy O...189261712024-01-03 10:14:11393 days ago1704276851IN
0xA2611F44...ebA9925b5
0 ETH0.0005798220.26650717
Transfer Proxy O...146214352022-04-20 10:47:121016 days ago1650451632IN
0xA2611F44...ebA9925b5
0 ETH0.0010879238.02603417
Renounce Role146214272022-04-20 10:44:081016 days ago1650451448IN
0xA2611F44...ebA9925b5
0 ETH0.0013655129.87743636
Grant Role146214242022-04-20 10:43:511016 days ago1650451431IN
0xA2611F44...ebA9925b5
0 ETH0.0027306832.66332694
Transfer Proxy O...145821822022-04-14 7:22:301022 days ago1649920950IN
0xA2611F44...ebA9925b5
0 ETH0.0012358343.19582142
Renounce Role145821822022-04-14 7:22:301022 days ago1649920950IN
0xA2611F44...ebA9925b5
0 ETH0.001973743.19582142
Renounce Role145821822022-04-14 7:22:301022 days ago1649920950IN
0xA2611F44...ebA9925b5
0 ETH0.0019902943.19582142
Grant Role145821782022-04-14 7:21:261022 days ago1649920886IN
0xA2611F44...ebA9925b5
0 ETH0.003834445.86559427
Grant Role137268332021-12-02 10:27:411155 days ago1638440861IN
0xA2611F44...ebA9925b5
0 ETH0.00962106114.55689985
Update And Call137267622021-12-02 10:12:571155 days ago1638439977IN
0xA2611F44...ebA9925b5
0 ETH0.04191966149.09486644

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
217250702025-01-28 19:19:5941 hrs ago1738091999
0xA2611F44...ebA9925b5
10 ETH
217229732025-01-28 12:17:592 days ago1738066679
0xA2611F44...ebA9925b5
0.002 ETH
217179872025-01-27 19:35:592 days ago1738006559
0xA2611F44...ebA9925b5
0.035 ETH
217150502025-01-27 9:45:113 days ago1737971111
0xA2611F44...ebA9925b5
100 ETH
217039402025-01-25 20:33:474 days ago1737837227
0xA2611F44...ebA9925b5
20.48016516 ETH
216933222025-01-24 8:59:596 days ago1737709199
0xA2611F44...ebA9925b5
0.18 ETH
216837582025-01-23 0:57:477 days ago1737593867
0xA2611F44...ebA9925b5
5 ETH
216704662025-01-21 4:26:119 days ago1737433571
0xA2611F44...ebA9925b5
270 ETH
216693222025-01-21 0:35:119 days ago1737419711
0xA2611F44...ebA9925b5
170 ETH
216281752025-01-15 6:44:3515 days ago1736923475
0xA2611F44...ebA9925b5
7 ETH
216248502025-01-14 19:34:5915 days ago1736883299
0xA2611F44...ebA9925b5
0.544292 ETH
216205322025-01-14 5:08:2316 days ago1736831303
0xA2611F44...ebA9925b5
0.00302682 ETH
216020642025-01-11 15:14:1118 days ago1736608451
0xA2611F44...ebA9925b5
0.549623 ETH
215827772025-01-08 22:34:3521 days ago1736375675
0xA2611F44...ebA9925b5
120 ETH
215769472025-01-08 3:04:1122 days ago1736305451
0xA2611F44...ebA9925b5
0.0013 ETH
215756792025-01-07 22:48:3522 days ago1736290115
0xA2611F44...ebA9925b5
150 ETH
215735222025-01-07 15:34:5922 days ago1736264099
0xA2611F44...ebA9925b5
0.992196 ETH
215632102025-01-06 5:02:1124 days ago1736139731
0xA2611F44...ebA9925b5
1.5 ETH
215447772025-01-03 15:13:3526 days ago1735917215
0xA2611F44...ebA9925b5
0.02 ETH
215438262025-01-03 12:02:1127 days ago1735905731
0xA2611F44...ebA9925b5
0.00001 ETH
215359522025-01-02 9:40:4728 days ago1735810847
0xA2611F44...ebA9925b5
0.33 ETH
215223342024-12-31 12:03:5930 days ago1735646639
0xA2611F44...ebA9925b5
0.0036 ETH
214900232024-12-26 23:48:5934 days ago1735256939
0xA2611F44...ebA9925b5
4.77265628 ETH
214863512024-12-26 11:30:2335 days ago1735212623
0xA2611F44...ebA9925b5
100 ETH
214819532024-12-25 20:44:2335 days ago1735159463
0xA2611F44...ebA9925b5
0.57 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtherPredicateProxy

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
File 1 of 4 : EtherPredicateProxy.sol
pragma solidity 0.6.6;

import {UpgradableProxy} from "../../common/Proxy/UpgradableProxy.sol";

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

File 2 of 4 : IERCProxy.sol
pragma solidity 0.6.6;

interface IERCProxy {
    function proxyType() external pure returns (uint256 proxyTypeId);

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

File 3 of 4 : Proxy.sol
pragma solidity 0.6.6;
import {IERCProxy} from "./IERCProxy.sol";

abstract contract Proxy is IERCProxy {
    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 proxyType() external virtual override pure returns (uint256 proxyTypeId) {
        // Upgradeable proxy
        proxyTypeId = 2;
    }

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

File 4 of 4 : UpgradableProxy.sol
pragma solidity 0.6.6;

import {Proxy} from "./Proxy.sol";

contract UpgradableProxy is Proxy {
    event ProxyUpdated(address indexed _new, address indexed _old);
    event ProxyOwnerUpdate(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 {
        setProxyOwner(msg.sender);
        setImplementation(_proxyTo);
    }

    fallback() external payable {
        delegatedFwd(loadImplementation(), msg.data);
    }

    receive() external payable {
        delegatedFwd(loadImplementation(), msg.data);
    }

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

    function proxyOwner() external view returns(address) {
        return loadProxyOwner();
    }

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

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

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

    function transferProxyOwnership(address newOwner) public onlyProxyOwner {
        require(newOwner != address(0), "ZERO_ADDRESS");
        emit ProxyOwnerUpdate(newOwner, loadProxyOwner());
        setProxyOwner(newOwner);
    }

    function setProxyOwner(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)
        }
    }
    
    function isContract(address _target) internal view returns (bool) {
        if (_target == address(0)) {
            return false;
        }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_proxyTo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_new","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"}],"name":"ProxyOwnerUpdate","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyType","outputs":[{"internalType":"uint256","name":"proxyTypeId","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"updateAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"}],"name":"updateImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506040516108783803806108788339818101604052602081101561003357600080fd5b505180610048336001600160e01b0361006116565b61005a816001600160e01b0361009616565b50506100b8565b604080517f6d617469632e6e6574776f726b2e70726f78792e6f776e6572000000000000008152905190819003601901902055565b6000604051808061085660229139604051908190036022019020929092555050565b61078f806100c76000396000f3fe6080604052600436106100595760003560e01c8063025313a2146100b3578063025b22bc146100e45780634555d5c9146101175780635c60da1b1461013e578063d88ca2c814610153578063f1739cae14610209576100a8565b366100a8576100a661006961023c565b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061026292505050565b005b6100a661006961023c565b3480156100bf57600080fd5b506100c861028a565b604080516001600160a01b039092168252519081900360200190f35b3480156100f057600080fd5b506100a66004803603602081101561010757600080fd5b50356001600160a01b0316610299565b34801561012357600080fd5b5061012c6103d3565b60408051918252519081900360200190f35b34801561014a57600080fd5b506100c86103d8565b6100a66004803603604081101561016957600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561019457600080fd5b8201836020820111156101a657600080fd5b803590602001918460018302840111640100000000831117156101c857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103e2945050505050565b34801561021557600080fd5b506100a66004803603602081101561022c57600080fd5b50356001600160a01b0316610578565b600080600060405180806107386022913960405190819003602201902054935050505090565b600080825160208401856127105a03f43d604051816000823e828015610286578282f35b8282fd5b600061029461066a565b905090565b336102a261066a565b6001600160a01b0316146102e9576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b03811661033c576040805162461bcd60e51b8152602060048201526015602482015274494e56414c49445f50524f58595f4144445245535360581b604482015290519081900360640190fd5b6103458161069c565b6103805760405162461bcd60e51b81526004018080602001828103825260258152602001806107136025913960400191505060405180910390fd5b61038861023c565b6001600160a01b0316816001600160a01b03167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36103d0816106bf565b50565b600290565b600061029461023c565b336103eb61066a565b6001600160a01b031614610432576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b61043b82610299565b60006060306001600160a01b031634846040518082805190602001908083835b6020831061047a5780518252601f19909201916020918201910161045b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146104dc576040519150601f19603f3d011682016040523d82523d6000602084013e6104e1565b606091505b50915091508181906105715760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561053657818101518382015260200161051e565b50505050905090810190601f1680156105635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b3361058161066a565b6001600160a01b0316146105c8576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038116610612576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b7fdbe5fd65bcdbae152f24ab660ea68e72b4d4705b57b16e0caae994e214680ee28161063c61066a565b604080516001600160a01b03938416815291909216602082015281519081900390910190a16103d0816106e1565b604080517836b0ba34b1973732ba3bb7b93597383937bc3c9737bbb732b960391b815290519081900360190190205490565b60006001600160a01b0382166106b4575060006106ba565b50803b15155b919050565b6000604051808061073860229139604051908190036022019020929092555050565b604080517836b0ba34b1973732ba3bb7b93597383937bc3c9737bbb732b960391b815290519081900360190190205556fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e54524143546d617469632e6e6574776f726b2e70726f78792e696d706c656d656e746174696f6ea2646970667358221220f356263e21735ec5d0c831acd3fc8223d5a9819fbcc791590199d91f7d77096464736f6c634300060600336d617469632e6e6574776f726b2e70726f78792e696d706c656d656e746174696f6e0000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100595760003560e01c8063025313a2146100b3578063025b22bc146100e45780634555d5c9146101175780635c60da1b1461013e578063d88ca2c814610153578063f1739cae14610209576100a8565b366100a8576100a661006961023c565b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061026292505050565b005b6100a661006961023c565b3480156100bf57600080fd5b506100c861028a565b604080516001600160a01b039092168252519081900360200190f35b3480156100f057600080fd5b506100a66004803603602081101561010757600080fd5b50356001600160a01b0316610299565b34801561012357600080fd5b5061012c6103d3565b60408051918252519081900360200190f35b34801561014a57600080fd5b506100c86103d8565b6100a66004803603604081101561016957600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561019457600080fd5b8201836020820111156101a657600080fd5b803590602001918460018302840111640100000000831117156101c857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506103e2945050505050565b34801561021557600080fd5b506100a66004803603602081101561022c57600080fd5b50356001600160a01b0316610578565b600080600060405180806107386022913960405190819003602201902054935050505090565b600080825160208401856127105a03f43d604051816000823e828015610286578282f35b8282fd5b600061029461066a565b905090565b336102a261066a565b6001600160a01b0316146102e9576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b03811661033c576040805162461bcd60e51b8152602060048201526015602482015274494e56414c49445f50524f58595f4144445245535360581b604482015290519081900360640190fd5b6103458161069c565b6103805760405162461bcd60e51b81526004018080602001828103825260258152602001806107136025913960400191505060405180910390fd5b61038861023c565b6001600160a01b0316816001600160a01b03167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36103d0816106bf565b50565b600290565b600061029461023c565b336103eb61066a565b6001600160a01b031614610432576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b61043b82610299565b60006060306001600160a01b031634846040518082805190602001908083835b6020831061047a5780518252601f19909201916020918201910161045b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146104dc576040519150601f19603f3d011682016040523d82523d6000602084013e6104e1565b606091505b50915091508181906105715760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561053657818101518382015260200161051e565b50505050905090810190601f1680156105635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b3361058161066a565b6001600160a01b0316146105c8576040805162461bcd60e51b81526020600482015260096024820152682727aa2fa7aba722a960b91b604482015290519081900360640190fd5b6001600160a01b038116610612576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b7fdbe5fd65bcdbae152f24ab660ea68e72b4d4705b57b16e0caae994e214680ee28161063c61066a565b604080516001600160a01b03938416815291909216602082015281519081900390910190a16103d0816106e1565b604080517836b0ba34b1973732ba3bb7b93597383937bc3c9737bbb732b960391b815290519081900360190190205490565b60006001600160a01b0382166106b4575060006106ba565b50803b15155b919050565b6000604051808061073860229139604051908190036022019020929092555050565b604080517836b0ba34b1973732ba3bb7b93597383937bc3c9737bbb732b960391b815290519081900360190190205556fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e54524143546d617469632e6e6574776f726b2e70726f78792e696d706c656d656e746174696f6ea2646970667358221220f356263e21735ec5d0c831acd3fc8223d5a9819fbcc791590199d91f7d77096464736f6c63430006060033

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

0000000000000000000000000000000000000000000000000000000000000000

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

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


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.