Mumbai Testnet

Contract

0x3AC05161b76a35c1c28dC99Aa01BEd7B24cEA3bf
Transaction Hash
Method
Block
From
To
Value
Transfer443022082024-01-02 10:31:20145 days ago1704191480IN
0x3AC05161...B24cEA3bf
250 MATIC0.000031581.50000001
Transfer420066372023-11-04 14:58:55204 days ago1699109935IN
0x3AC05161...B24cEA3bf
100 MATIC0.000037681.78961199
Gas Refund419619272023-11-03 10:11:54205 days ago1699006314IN
0x3AC05161...B24cEA3bf
0 MATIC0.000067611.50000001
Gas Refund419619142023-11-03 10:11:26205 days ago1699006286IN
0x3AC05161...B24cEA3bf
0 MATIC0.000067611.50000001
Gas Refund419619022023-11-03 10:11:00205 days ago1699006260IN
0x3AC05161...B24cEA3bf
0 MATIC0.0018202440.38071201
Gas Refund419618882023-11-03 10:10:32205 days ago1699006232IN
0x3AC05161...B24cEA3bf
0 MATIC0.000067611.50000001
Gas Refund419618512023-11-03 10:09:12205 days ago1699006152IN
0x3AC05161...B24cEA3bf
0 MATIC0.000073451.62960001
Gas Refund419618332023-11-03 10:08:34205 days ago1699006114IN
0x3AC05161...B24cEA3bf
0 MATIC0.000067591.50000001
Gas Refund419566862023-11-03 6:59:46205 days ago1698994786IN
0x3AC05161...B24cEA3bf
0 MATIC0.000067611.50000001
Gas Refund419566722023-11-03 6:59:18205 days ago1698994758IN
0x3AC05161...B24cEA3bf
0 MATIC0.000067591.50000001
Gas Refund419566362023-11-03 6:58:00205 days ago1698994680IN
0x3AC05161...B24cEA3bf
0 MATIC0.000050961.50000001
Transfer419264422023-11-02 11:35:35206 days ago1698924935IN
0x3AC05161...B24cEA3bf
100 MATIC0.000031581.50000001
Transfer417426832023-10-28 9:31:55211 days ago1698485515IN
0x3AC05161...B24cEA3bf
0 MATIC0.000115672.70569713
Transfer414708492023-10-21 14:30:07218 days ago1697898607IN
0x3AC05161...B24cEA3bf
0 MATIC0.000066161.54812001
Transfer414707752023-10-21 14:27:29218 days ago1697898449IN
0x3AC05161...B24cEA3bf
0 MATIC0.000066121.54676856
Transfer414707632023-10-21 14:27:03218 days ago1697898423IN
0x3AC05161...B24cEA3bf
0 MATIC0.000065511.53295928
Add Manager359927942023-05-24 15:22:12368 days ago1684941732IN
0x3AC05161...B24cEA3bf
0 MATIC0.00009581.00000002
Remove Manager359927612023-05-24 15:21:02368 days ago1684941662IN
0x3AC05161...B24cEA3bf
0 MATIC0.000035791.00000002
Add Manager359894892023-05-24 13:17:56368 days ago1684934276IN
0x3AC05161...B24cEA3bf
0 MATIC0.00009581.00000002
Upgrade To359882202023-05-24 12:31:30368 days ago1684931490IN
0x3AC05161...B24cEA3bf
0 MATIC0.00004581.50000002
Transfer348468292023-04-26 10:18:57396 days ago1682504337IN
0x3AC05161...B24cEA3bf
200 MATIC0.000051052.42500001
Transfer346545632023-04-21 16:49:33401 days ago1682095773IN
0x3AC05161...B24cEA3bf
1.5 MATIC0.000051052.42500001
Add Manager346453362023-04-21 11:22:45401 days ago1682076165IN
0x3AC05161...B24cEA3bf
0 MATIC0.000095751.00000001
Upgrade To346421752023-04-21 9:30:47401 days ago1682069447IN
0x3AC05161...B24cEA3bf
0 MATIC0.000076312.50000001
Transfer Ownersh...318801992023-02-09 13:25:49472 days ago1675949149IN
0x3AC05161...B24cEA3bf
0 MATIC0.000042761.50000001
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To Value
478240562024-04-03 17:53:0753 days ago1712166787
0x3AC05161...B24cEA3bf
0.00147525 MATIC
478240302024-04-03 17:52:1153 days ago1712166731
0x3AC05161...B24cEA3bf
0.00143303 MATIC
478238422024-04-03 17:45:3353 days ago1712166333
0x3AC05161...B24cEA3bf
0.00093281 MATIC
478238142024-04-03 17:44:3353 days ago1712166273
0x3AC05161...B24cEA3bf
0.00067414 MATIC
478237732024-04-03 17:43:0553 days ago1712166185
0x3AC05161...B24cEA3bf
0.0007195 MATIC
478237442024-04-03 17:42:0553 days ago1712166125
0x3AC05161...B24cEA3bf
0.00214127 MATIC
478237172024-04-03 17:41:0753 days ago1712166067
0x3AC05161...B24cEA3bf
0.00125622 MATIC
478236922024-04-03 17:40:1353 days ago1712166013
0x3AC05161...B24cEA3bf
0.00102031 MATIC
478235332024-04-03 17:34:3553 days ago1712165675
0x3AC05161...B24cEA3bf
0.00047715 MATIC
478235012024-04-03 17:33:2753 days ago1712165607
0x3AC05161...B24cEA3bf
0.00050354 MATIC
478234752024-04-03 17:32:3353 days ago1712165553
0x3AC05161...B24cEA3bf
0.00037292 MATIC
478234222024-04-03 17:30:3953 days ago1712165439
0x3AC05161...B24cEA3bf
0.0008973 MATIC
478226992024-04-03 17:05:0353 days ago1712163903
0x3AC05161...B24cEA3bf
0.00029558 MATIC
478212212024-04-03 16:12:4353 days ago1712160763
0x3AC05161...B24cEA3bf
0.00031669 MATIC
478090402024-04-03 8:43:4553 days ago1712133825
0x3AC05161...B24cEA3bf
0.00043577 MATIC
478089122024-04-03 8:38:4153 days ago1712133521
0x3AC05161...B24cEA3bf
0.00028847 MATIC
478088792024-04-03 8:37:2953 days ago1712133449
0x3AC05161...B24cEA3bf
0.00028847 MATIC
478083732024-04-03 8:17:5953 days ago1712132279
0x3AC05161...B24cEA3bf
0.00035551 MATIC
478081122024-04-03 8:08:4553 days ago1712131725
0x3AC05161...B24cEA3bf
0.00064089 MATIC
478080772024-04-03 8:07:2953 days ago1712131649
0x3AC05161...B24cEA3bf
0.00049983 MATIC
478079862024-04-03 8:04:1753 days ago1712131457
0x3AC05161...B24cEA3bf
0.00037775 MATIC
478078442024-04-03 7:59:1553 days ago1712131155
0x3AC05161...B24cEA3bf
0.00034031 MATIC
478077902024-04-03 7:57:1553 days ago1712131035
0x3AC05161...B24cEA3bf
0.00033896 MATIC
477334822024-04-01 9:47:5755 days ago1711964877
0x3AC05161...B24cEA3bf
0.00046355 MATIC
477324342024-04-01 9:07:3655 days ago1711962456
0x3AC05161...B24cEA3bf
0.00390851 MATIC
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x0d738c7f...5C71042Fa
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
EIP173ProxyWithReceive

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 3 : EIP173ProxyWithReceive.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./EIP173Proxy.sol";

///@notice Proxy implementing EIP173 for ownership management that accept ETH via receive
contract EIP173ProxyWithReceive is EIP173Proxy {
    constructor(
        address implementationAddress,
        address ownerAddress,
        bytes memory data
    ) payable EIP173Proxy(implementationAddress, ownerAddress, data) {}

    receive() external payable override {}
}

File 1 of 3 : EIP173Proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./Proxy.sol";

interface ERC165 {
    function supportsInterface(bytes4 id) external view returns (bool);
}

///@notice Proxy implementing EIP173 for ownership management
contract EIP173Proxy is Proxy {
    // ////////////////////////// EVENTS ///////////////////////////////////////////////////////////////////////

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

    // /////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////////////

    constructor(
        address implementationAddress,
        address ownerAddress,
        bytes memory data
    ) payable {
        _setImplementation(implementationAddress, data);
        _setOwner(ownerAddress);
    }

    // ///////////////////// EXTERNAL ///////////////////////////////////////////////////////////////////////////

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

    function supportsInterface(bytes4 id) external view returns (bool) {
        if (id == 0x01ffc9a7 || id == 0x7f5828d0) {
            return true;
        }
        if (id == 0xFFFFFFFF) {
            return false;
        }

        ERC165 implementation;
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            implementation := sload(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc)
        }

        // Technically this is not standard compliant as ERC-165 require 30,000 gas which that call cannot ensure
        // because it is itself inside `supportsInterface` that might only get 30,000 gas.
        // In practise this is unlikely to be an issue.
        try implementation.supportsInterface(id) returns (bool support) {
            return support;
        } catch {
            return false;
        }
    }

    function transferOwnership(address newOwner) external onlyOwner {
        _setOwner(newOwner);
    }

    function upgradeTo(address newImplementation) external onlyOwner {
        _setImplementation(newImplementation, "");
    }

    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable onlyOwner {
        _setImplementation(newImplementation, data);
    }

    // /////////////////////// MODIFIERS ////////////////////////////////////////////////////////////////////////

    modifier onlyOwner() {
        require(msg.sender == _owner(), "NOT_AUTHORIZED");
        _;
    }

    // ///////////////////////// INTERNAL //////////////////////////////////////////////////////////////////////

    function _owner() internal view returns (address adminAddress) {
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            adminAddress := sload(0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103)
        }
    }

    function _setOwner(address newOwner) internal {
        address previousOwner = _owner();
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103, newOwner)
        }
        emit OwnershipTransferred(previousOwner, newOwner);
    }
}

File 2 of 3 : Proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// EIP-1967
abstract contract Proxy {
    // /////////////////////// EVENTS ///////////////////////////////////////////////////////////////////////////

    event ProxyImplementationUpdated(address indexed previousImplementation, address indexed newImplementation);

    // ///////////////////// EXTERNAL ///////////////////////////////////////////////////////////////////////////

    receive() external payable virtual {
        revert("ETHER_REJECTED"); // explicit reject by default
    }

    fallback() external payable {
        _fallback();
    }

    // ///////////////////////// INTERNAL //////////////////////////////////////////////////////////////////////

    function _fallback() internal {
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            let implementationAddress := sload(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc)
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(gas(), implementationAddress, 0x0, calldatasize(), 0, 0)
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)
            switch success
            case 0 {
                revert(0, retSz)
            }
            default {
                return(0, retSz)
            }
        }
    }

    function _setImplementation(address newImplementation, bytes memory data) internal {
        address previousImplementation;
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            previousImplementation := sload(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc)
        }

        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc, newImplementation)
        }

        emit ProxyImplementationUpdated(previousImplementation, newImplementation);

        if (data.length > 0) {
            (bool success, ) = newImplementation.delegatecall(data);
            if (!success) {
                assembly {
                    // This assembly ensure the revert contains the exact string data
                    let returnDataSize := returndatasize()
                    returndatacopy(0, 0, returnDataSize)
                    revert(0, returnDataSize)
                }
            }
        }
    }
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"ownerAddress","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ProxyImplementationUpdated","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"id","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","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"}]

Deployed Bytecode

0x60806040526004361061005e5760003560e01c80634f1ef286116100435780634f1ef286146100c45780638da5cb5b146100d7578063f2fde38b1461011157610065565b806301ffc9a71461006f5780633659cfe6146100a457610065565b3661006557005b61006d610131565b005b34801561007b57600080fd5b5061008f61008a3660046107a6565b61017c565b60405190151581526020015b60405180910390f35b3480156100b057600080fd5b5061006d6100bf366004610811565b61034a565b61006d6100d236600461082c565b610421565b3480156100e357600080fd5b506100ec61051c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161009b565b34801561011d57600080fd5b5061006d61012c366004610811565b61054b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e828015610172578183f35b8183fd5b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061020f57507f7f5828d0000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b1561021c57506001919050565b7fffffffff00000000000000000000000000000000000000000000000000000000808316141561024e57506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000008416600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa925050508015610336575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610333918101906108af565b60015b6103435750600092915050565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b61041e816040518060200160405280600081525061060a565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016103fc565b6105178383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061060a92505050565b505050565b60006105467fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905090565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610601576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016103fc565b61041e816106f9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80549083905560405173ffffffffffffffffffffffffffffffffffffffff80851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a38151156105175760008373ffffffffffffffffffffffffffffffffffffffff16836040516106a591906108d1565b600060405180830381855af49150503d80600081146106e0576040519150601f19603f3d011682016040523d82523d6000602084013e6106e5565b606091505b5050905080610176573d806000803e806000fd5b60006107237fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b9050817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103558173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000602082840312156107b857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461034357600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461080c57600080fd5b919050565b60006020828403121561082357600080fd5b610343826107e8565b60008060006040848603121561084157600080fd5b61084a846107e8565b9250602084013567ffffffffffffffff8082111561086757600080fd5b818601915086601f83011261087b57600080fd5b81358181111561088a57600080fd5b87602082850101111561089c57600080fd5b6020830194508093505050509250925092565b6000602082840312156108c157600080fd5b8151801515811461034357600080fd5b6000825160005b818110156108f257602081860181015185830152016108d8565b81811115610901576000828501525b50919091019291505056fea264697066735822122051bcaa9438510b4a395002144ebfc9c44089297347bdb504ed9e0aae04634cba64736f6c634300080a0033

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.