ETH Price: $2,065.72 (-1.53%)

Contract

0xac6705BC7f6a35eb194bdB89066049D6f1B0B1b5
Transaction Hash
Method
Block
From
To
Approve1335731262025-03-23 15:50:292 days ago1742745029IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000185810.00029972
Approve1334993932025-03-21 22:52:433 days ago1742597563IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000127290.00030036
Approve1334993822025-03-21 22:52:213 days ago1742597541IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000190290.00029955
Approve1334993812025-03-21 22:52:193 days ago1742597539IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000189190.00029923
Approve1334181532025-03-20 1:44:435 days ago1742435083IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000092710.00010668
Approve1334136982025-03-19 23:16:135 days ago1742426173IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000102050.00011633
Approve1330469272025-03-11 11:30:3114 days ago1741692631IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000001418420.00059336
Approve1327729102025-03-05 3:16:3720 days ago1741144597IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000272350.00010088
Approve1327190062025-03-03 21:19:4921 days ago1741036789IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000004431570.00010101
Approve1324259622025-02-25 2:31:4128 days ago1740450701IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000012099820.00071214
Approve1320910682025-02-17 8:28:3336 days ago1739780913IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000342880.00010057
Approve1320650002025-02-16 17:59:3737 days ago1739728777IN
0xac6705BC...6f1B0B1b5
0 ETH0.000000148660.00100119
Approve1320351022025-02-16 1:23:0137 days ago1739668981IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000099590.000101
Approve1320345442025-02-16 1:04:2537 days ago1739667865IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000108530.00010073
Approve1317801412025-02-10 3:44:1943 days ago1739159059IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000131830.00011132
Approve1317514422025-02-09 11:47:4144 days ago1739101661IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000100480.00010099
Approve1317444292025-02-09 7:53:5544 days ago1739087635IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000222990.00030107
Approve1317155642025-02-08 15:51:4545 days ago1739029905IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000003197650.00010459
Approve1316371092025-02-06 20:16:3546 days ago1738872995IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000600890.00010094
Approve1316084652025-02-06 4:21:4747 days ago1738815707IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000130180.00010088
Approve1316039372025-02-06 1:50:5147 days ago1738806651IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000000131280.00010166
Approve1315919932025-02-05 19:12:4347 days ago1738782763IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000005208340.00100069
Approve1315900792025-02-05 18:08:5548 days ago1738778935IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000005873940.00110063
Approve1314926492025-02-03 12:01:1550 days ago1738584075IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000001065230.00121158
Approve1308902472025-01-20 13:21:1164 days ago1737379271IN
0xac6705BC...6f1B0B1b5
0 ETH0.0000007153270.00010061
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
1075562052023-07-30 9:59:47604 days ago1690711187
0xac6705BC...6f1B0B1b5
0 ETH
View All Internal Transactions

Loading...
Loading

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

Contract Name:
EIP173Proxy

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 2 : EIP173Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.4;

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 ProxyAdminTransferred(
        address indexed previousAdmin,
        address indexed newAdmin
    );

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

    constructor(
        address implementationAddress,
        address adminAddress,
        bytes memory data
    ) payable {
        _setImplementation(implementationAddress, data);
        _setProxyAdmin(adminAddress);
    }

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

    function proxyAdmin() external view returns (address) {
        return _proxyAdmin();
    }

    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 transferProxyAdmin(address newAdmin) external onlyProxyAdmin {
        _setProxyAdmin(newAdmin);
    }

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

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

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

    modifier onlyProxyAdmin() {
        require(msg.sender == _proxyAdmin(), "NOT_AUTHORIZED");
        _;
    }

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

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

    function _setProxyAdmin(address newAdmin) internal {
        address previousAdmin = _proxyAdmin();
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(
                0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103,
                newAdmin
            )
        }
        emit ProxyAdminTransferred(previousAdmin, newAdmin);
    }
}

File 2 of 2 : Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.4;

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

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

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

    // prettier-ignore
    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": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 1
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"adminAddress","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"ProxyAdminTransferred","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":"proxyAdmin","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":"newAdmin","type":"address"}],"name":"transferProxyAdmin","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

0x60806040526004361061004e5760003560e01c806301ffc9a71461009b5780633659cfe6146100d05780633e47158c146100f05780634f1ef2861461011d5780638356ca4f1461013057610091565b366100915760405162461bcd60e51b815260206004820152600e60248201526d115512115497d491529150d5115160921b60448201526064015b60405180910390fd5b610099610150565b005b3480156100a757600080fd5b506100bb6100b63660046105a9565b610189565b60405190151581526020015b60405180910390f35b3480156100dc57600080fd5b506100996100eb3660046104f2565b61027e565b3480156100fc57600080fd5b506101056102d2565b6040516001600160a01b0390911681526020016100c7565b61009961012b36600461050c565b6102e1565b34801561013c57600080fd5b5061009961014b3660046104f2565b61035e565b6000805160206106538339815191525460003681823780813683855af491503d8082833e82801561017f578183f35b8183fd5b50505050565b60006301ffc9a760e01b6001600160e01b0319831614806101ba57506307f5828d60e41b6001600160e01b03198316145b156101c757506001919050565b6001600160e01b031980831614156101e157506000919050565b600080516020610653833981519152546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b038216906301ffc9a79060240160206040518083038186803b15801561023a57600080fd5b505afa92505050801561026a575060408051601f3d908101601f1916820190925261026791810190610589565b60015b6102775750600092915050565b9392505050565b61028661039f565b6001600160a01b0316336001600160a01b0316146102b65760405162461bcd60e51b81526004016100889061060a565b6102cf81604051806020016040528060008152506103b2565b50565b60006102dc61039f565b905090565b6102e961039f565b6001600160a01b0316336001600160a01b0316146103195760405162461bcd60e51b81526004016100889061060a565b6103598383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103b292505050565b505050565b61036661039f565b6001600160a01b0316336001600160a01b0316146103965760405162461bcd60e51b81526004016100889061060a565b6102cf81610475565b6000805160206106338339815191525490565b6000805160206106538339815191528054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a3815115610359576000836001600160a01b03168360405161042191906105d1565b600060405180830381855af49150503d806000811461045c576040519150601f19603f3d011682016040523d82523d6000602084013e610461565b606091505b5050905080610183573d806000803e806000fd5b600061047f61039f565b90508160008051602061063383398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80356001600160a01b03811681146104ed57600080fd5b919050565b600060208284031215610503578081fd5b610277826104d6565b600080600060408486031215610520578182fd5b610529846104d6565b925060208401356001600160401b0380821115610544578384fd5b818601915086601f830112610557578384fd5b813581811115610565578485fd5b876020828501011115610576578485fd5b6020830194508093505050509250925092565b60006020828403121561059a578081fd5b81518015158114610277578182fd5b6000602082840312156105ba578081fd5b81356001600160e01b031981168114610277578182fd5b60008251815b818110156105f157602081860181015185830152016105d7565b818111156105ff5782828501525b509190910192915050565b6020808252600e908201526d1393d517d055551213d49256915160921b60408201526060019056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220730effc08e7ae1c19f69ae08dd52de483b649ded49db9428e4ced9875431474364736f6c63430008040033

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
[ 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.