ETH Price: $3,352.41 (-1.08%)

Contract

0x77780aA5e04e0EB5004767352748399d9D6eAee0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update_period214829472024-12-26 0:04:353 days ago1735171475IN
0x77780aA5...d9D6eAee0
0 ETH0.003017495.89454939
Update_period214328732024-12-19 0:04:1110 days ago1734566651IN
0x77780aA5...d9D6eAee0
0 ETH0.0101739219.8743329
Update_period213827112024-12-12 0:01:4717 days ago1733961707IN
0x77780aA5...d9D6eAee0
0 ETH0.0090027417.58646972
Update_period213325902024-12-05 0:02:2324 days ago1733356943IN
0x77780aA5...d9D6eAee0
0 ETH0.0106458220.79616919
Update_period212825492024-11-28 0:05:2331 days ago1732752323IN
0x77780aA5...d9D6eAee0
0 ETH0.0200200939.10839112
Update_period212324182024-11-21 0:06:3538 days ago1732147595IN
0x77780aA5...d9D6eAee0
0 ETH0.006187412.08682843
Update_period211822222024-11-14 0:01:5945 days ago1731542519IN
0x77780aA5...d9D6eAee0
0 ETH0.0165780132.3844382
Update_period211320622024-11-07 0:02:2352 days ago1730937743IN
0x77780aA5...d9D6eAee0
0 ETH0.0075722514.79207563
Update_period210818992024-10-31 0:00:5959 days ago1730332859IN
0x77780aA5...d9D6eAee0
0 ETH0.004875749.52456668
Update_period210317552024-10-24 0:04:2366 days ago1729728263IN
0x77780aA5...d9D6eAee0
0 ETH0.003743157.31208465
Update_period209815922024-10-17 0:06:2373 days ago1729123583IN
0x77780aA5...d9D6eAee0
0 ETH0.0079300815.49107617
Update_period209314952024-10-10 0:02:3580 days ago1728518555IN
0x77780aA5...d9D6eAee0
0 ETH0.004497568.78580592
Update_period208812712024-10-03 0:02:1187 days ago1727913731IN
0x77780aA5...d9D6eAee0
0 ETH0.004589798.96596544
Update_period208310662024-09-26 0:01:1194 days ago1727308871IN
0x77780aA5...d9D6eAee0
0 ETH0.007918615.4686446
Update_period207809212024-09-19 0:00:59101 days ago1726704059IN
0x77780aA5...d9D6eAee0
0 ETH0.00373627.29852111
Update_period207308172024-09-12 0:01:11108 days ago1726099271IN
0x77780aA5...d9D6eAee0
0 ETH0.001279022.49851089
Update_period206806662024-09-05 0:00:47115 days ago1725494447IN
0x77780aA5...d9D6eAee0
0 ETH0.001902663.71676534
Update_period206305372024-08-29 0:02:11122 days ago1724889731IN
0x77780aA5...d9D6eAee0
0 ETH0.000651651.27297902
Update_period205804352024-08-22 0:01:11129 days ago1724284871IN
0x77780aA5...d9D6eAee0
0 ETH0.000460720.9
Update_period205303142024-08-15 0:00:59136 days ago1723680059IN
0x77780aA5...d9D6eAee0
0 ETH0.001326512.59128677
Update_period204801492024-08-08 0:01:35143 days ago1723075295IN
0x77780aA5...d9D6eAee0
0 ETH0.001212372.36833105
Update_period204299812024-08-01 0:01:47150 days ago1722470507IN
0x77780aA5...d9D6eAee0
0 ETH0.002257034.40901108
Update_period203798452024-07-25 0:01:23157 days ago1721865683IN
0x77780aA5...d9D6eAee0
0 ETH0.001146082.23882968
Update_period203296952024-07-18 0:01:11164 days ago1721260871IN
0x77780aA5...d9D6eAee0
0 ETH0.00336356.57045445
Update_period202795472024-07-11 0:01:35171 days ago1720656095IN
0x77780aA5...d9D6eAee0
0 ETH0.001440972.8148916
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
163039912022-12-31 9:56:35729 days ago1672480595  Contract Creation0 ETH
Loading...
Loading

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

Contract Name:
SolidlyProxy

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : SolidlyProxy.sol
// SPDX-License-Identifier: BUSL
pragma solidity 0.8.11;

/**
 * @title Solidly+ governance killable proxy
 * @author Solidly+
 * @notice EIP-1967 upgradeable proxy with the ability to kill governance and render the contract immutable
 */
contract SolidlyProxy {
    bytes32 constant IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; // keccak256('eip1967.proxy.implementation'), actually used for interface so etherscan picks up the interface
    bytes32 constant LOGIC_SLOT =
        0x5942be825425c77e56e4bce97986794ab0f100954e40fc1390ae0e003710a3ab; // keccak256('LOGIC') - 1, actual logic implementation
    bytes32 constant GOVERNANCE_SLOT =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; // keccak256('eip1967.proxy.admin')
    bytes32 constant INITIALIZED_SLOT =
        0x834ce84547018237034401a09067277cdcbe7bbf7d7d30f6b382b0a102b7b4a3; // keccak256('eip1967.proxy.initialized')

    /**
     * @notice Reverts if msg.sender is not governance
     */
    modifier onlyGovernance() {
        require(msg.sender == governanceAddress(), "Only governance");
        _;
    }

    /**
     * @notice Reverts if contract is already initialized
     * @dev Used by implementations to ensure initialize() is only called once
     */
    modifier notInitialized() {
        bool initialized;
        assembly {
            initialized := sload(INITIALIZED_SLOT)
            if eq(initialized, 1) {
                revert(0, 0)
            }
            sstore(INITIALIZED_SLOT, 1)
        }
        _;
    }

    /**
     * @notice Sets up deployer as a proxy governance
     */
    constructor() {
        address _governanceAddress = msg.sender;
        assembly {
            sstore(GOVERNANCE_SLOT, _governanceAddress)
        }
    }

    /**
     * @notice Detect whether or not governance is killed
     * @return Return true if governance is killed, false if not
     * @dev If governance is killed this contract becomes immutable
     */
    function governanceIsKilled() public view returns (bool) {
        return governanceAddress() == address(0);
    }

    /**
     * @notice Kill governance, making this contract immutable
     * @dev Only governance can kil governance
     */
    function killGovernance() external onlyGovernance {
        updateGovernanceAddress(address(0));
    }

    /**
     * @notice Update implementation address
     * @param _interfaceAddress Address of the new interface
     * @dev Only governance can update implementation
     */
    function updateInterfaceAddress(address _interfaceAddress)
        external
        onlyGovernance
    {
        assembly {
            sstore(IMPLEMENTATION_SLOT, _interfaceAddress)
        }
    }

    /**
     * @notice Actually updates interface, kept for etherscan pattern recognition
     * @param _implementationAddress Address of the new implementation
     * @dev Only governance can update implementation
     */
    function updateImplementationAddress(address _implementationAddress)
        external
        onlyGovernance
    {
        assembly {
            sstore(IMPLEMENTATION_SLOT, _implementationAddress)
        }
    }

    /**
     * @notice Update implementation address
     * @param _logicAddress Address of the new implementation
     * @dev Only governance can update implementation
     */
    function updateLogicAddress(address _logicAddress) external onlyGovernance {
        assembly {
            sstore(LOGIC_SLOT, _logicAddress)
        }
    }

    /**
     * @notice Update governance address
     * @param _governanceAddress New governance address
     * @dev Only governance can update governance
     */
    function updateGovernanceAddress(address _governanceAddress)
        public
        onlyGovernance
    {
        assembly {
            sstore(GOVERNANCE_SLOT, _governanceAddress)
        }
    }

    /**
     * @notice Fetch the current implementation address
     * @return _implementationAddress Returns the current implementation address
     */
    function implementationAddress()
        public
        view
        returns (address _implementationAddress)
    {
        assembly {
            _implementationAddress := sload(IMPLEMENTATION_SLOT)
        }
    }

    /**
     * @notice Fetch the current implementation address
     * @return _interfaceAddress Returns the current implementation address
     */
    function interfaceAddress()
        public
        view
        virtual
        returns (address _interfaceAddress)
    {
        assembly {
            _interfaceAddress := sload(IMPLEMENTATION_SLOT)
        }
    }

    /**
     * @notice Fetch the current implementation address
     * @return _logicAddress Returns the current implementation address
     */
    function logicAddress()
        public
        view
        virtual
        returns (address _logicAddress)
    {
        assembly {
            _logicAddress := sload(LOGIC_SLOT)
        }
    }

    /**
     * @notice Fetch current governance address
     * @return _governanceAddress Returns current governance address
     */
    function governanceAddress()
        public
        view
        virtual
        returns (address _governanceAddress)
    {
        assembly {
            _governanceAddress := sload(GOVERNANCE_SLOT)
        }
    }

    /**
     * @notice Fallback function that delegatecalls the subimplementation instead of what's in the IMPLEMENTATION_SLOT
     */
    function _delegateCallSubimplmentation() internal virtual {
        assembly {
            let contractLogic := sload(LOGIC_SLOT)
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(
                gas(),
                contractLogic,
                0x0,
                calldatasize(),
                0,
                0
            )
            let returnDataSize := returndatasize()
            returndatacopy(0, 0, returnDataSize)
            switch success
            case 0 {
                revert(0, returnDataSize)
            }
            default {
                return(0, returnDataSize)
            }
        }
    }

    /**
     * @notice Delegatecall fallback proxy
     */
    fallback() external payable virtual {
        _delegateCallSubimplmentation();
    }

    receive() external payable virtual {
        _delegateCallSubimplmentation();
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"governanceAddress","outputs":[{"internalType":"address","name":"_governanceAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceIsKilled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementationAddress","outputs":[{"internalType":"address","name":"_implementationAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"interfaceAddress","outputs":[{"internalType":"address","name":"_interfaceAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"killGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"logicAddress","outputs":[{"internalType":"address","name":"_logicAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governanceAddress","type":"address"}],"name":"updateGovernanceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementationAddress","type":"address"}],"name":"updateImplementationAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_interfaceAddress","type":"address"}],"name":"updateInterfaceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_logicAddress","type":"address"}],"name":"updateLogicAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100955760003560e01c8063b56fbb9711610059578063b56fbb9714610189578063b90d8930146101a9578063b97a231914610155578063cf6126ed146101c9578063eb5ee83a146101c9576100a4565b8063179781c4146100ac578063654ea5e7146100d6578063795053d3146100eb5780639c1fcc4c14610121578063aa8a675414610155576100a4565b366100a4576100a26101e9565b005b6100a26101e9565b3480156100b857600080fd5b506100c1610232565b60405190151581526020015b60405180910390f35b3480156100e257600080fd5b506100a261025a565b3480156100f757600080fd5b50600080516020610423833981519152545b6040516001600160a01b0390911681526020016100cd565b34801561012d57600080fd5b507f5942be825425c77e56e4bce97986794ab0f100954e40fc1390ae0e003710a3ab54610109565b34801561016157600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610109565b34801561019557600080fd5b506100a26101a43660046103c9565b6102af565b3480156101b557600080fd5b506100a26101c43660046103c9565b610313565b3480156101d557600080fd5b506100a26101e43660046103c9565b610365565b7f5942be825425c77e56e4bce97986794ab0f100954e40fc1390ae0e003710a3ab543660008037600080366000845af490503d806000803e81801561022d57816000f35b816000fd5b60008061024b6000805160206104238339815191525490565b6001600160a01b031614905090565b600080516020610423833981519152546001600160a01b0316336001600160a01b0316146102a35760405162461bcd60e51b815260040161029a906103f9565b60405180910390fd5b6102ad6000610313565b565b600080516020610423833981519152546001600160a01b0316336001600160a01b0316146102ef5760405162461bcd60e51b815260040161029a906103f9565b7f5942be825425c77e56e4bce97986794ab0f100954e40fc1390ae0e003710a3ab55565b600080516020610423833981519152546001600160a01b0316336001600160a01b0316146103535760405162461bcd60e51b815260040161029a906103f9565b60008051602061042383398151915255565b600080516020610423833981519152546001600160a01b0316336001600160a01b0316146103a55760405162461bcd60e51b815260040161029a906103f9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000602082840312156103db57600080fd5b81356001600160a01b03811681146103f257600080fd5b9392505050565b6020808252600f908201526e4f6e6c7920676f7665726e616e636560881b60408201526060019056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a164736f6c634300080b000a

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.