ETH Price: $3,636.03 (-2.40%)

Contract

0x50379f632ca68D36E50cfBC8F78fe16bd1499d1e
 
Transaction Hash
Method
Block
From
To
Approve208631412024-09-30 11:22:3563 days ago1727695355IN
Aave: G-UNI Token
0 ETH0.000414358.07984653
Approve207087542024-09-08 22:04:2384 days ago1725833063IN
Aave: G-UNI Token
0 ETH0.000044081.50534348
Approve207057252024-09-08 11:54:4785 days ago1725796487IN
Aave: G-UNI Token
0 ETH0.000056391.1
Approve206320122024-08-29 4:59:2395 days ago1724907563IN
Aave: G-UNI Token
0 ETH0.000041010.8
Approve206317322024-08-29 4:02:3595 days ago1724904155IN
Aave: G-UNI Token
0 ETH0.000064461.25707407
Approve205083352024-08-11 22:24:23112 days ago1723415063IN
Aave: G-UNI Token
0 ETH0.000030861.05406295
Approve203384872024-07-19 5:28:35136 days ago1721366915IN
Aave: G-UNI Token
0 ETH0.000324486.32900798
Approve203259812024-07-17 11:34:47138 days ago1721216087IN
Aave: G-UNI Token
0 ETH0.000542810.58466429
Approve202890702024-07-12 7:56:47143 days ago1720771007IN
Aave: G-UNI Token
0 ETH0.000201413.92757347
Approve202889642024-07-12 7:35:23143 days ago1720769723IN
Aave: G-UNI Token
0 ETH0.000228774.46211051
Approve202889382024-07-12 7:30:11143 days ago1720769411IN
Aave: G-UNI Token
0 ETH0.000220134.29264638
Approve202800192024-07-11 1:36:11144 days ago1720661771IN
Aave: G-UNI Token
0 ETH0.000143632.80157159
Approve202674932024-07-09 7:37:23146 days ago1720510643IN
Aave: G-UNI Token
0 ETH0.000195463.81158378
Approve202543952024-07-07 11:40:11148 days ago1720352411IN
Aave: G-UNI Token
0 ETH0.000081151.58243846
Approve201818402024-06-27 8:30:23158 days ago1719477023IN
Aave: G-UNI Token
0 ETH0.000220934.30930008
Transfer201709812024-06-25 20:07:35159 days ago1719346055IN
Aave: G-UNI Token
0 ETH0.0017106932.63877431
Approve200401542024-06-07 13:08:47178 days ago1717765727IN
Aave: G-UNI Token
0 ETH0.0006352112.38962755
Approve200103842024-06-03 9:24:47182 days ago1717406687IN
Aave: G-UNI Token
0 ETH0.0008205116
Approve199948282024-06-01 5:17:59184 days ago1717219079IN
Aave: G-UNI Token
0 ETH0.000175635.13815519
Approve199915332024-05-31 18:14:23184 days ago1717179263IN
Aave: G-UNI Token
0 ETH0.0005758611.2293986
Approve199593702024-05-27 6:18:35189 days ago1716790715IN
Aave: G-UNI Token
0 ETH0.000500589.76595276
Approve197835262024-05-02 16:07:23214 days ago1714666043IN
Aave: G-UNI Token
0 ETH0.0010069319.63516906
Approve197403772024-04-26 15:19:47220 days ago1714144787IN
Aave: G-UNI Token
0 ETH0.0006053311.80409805
Approve194748732024-03-20 8:57:35257 days ago1710925055IN
Aave: G-UNI Token
0 ETH0.0015006529.26280203
Approve191486572024-02-03 15:15:47303 days ago1706973347IN
Aave: G-UNI Token
0 ETH0.0010307120.09418106
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213161402024-12-02 16:53:2313 mins ago1733158403
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
213158282024-12-02 15:50:231 hr ago1733154623
0x50379f63...bd1499d1e
0 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xFB3fadDa...1371F24D7
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
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
{
  "optimizer": {
    "enabled": true,
    "runs": 1
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

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