ETH Price: $2,448.89 (+2.24%)

Contract

0x77784f96C936042A3ADB1dD29C91a55EB2A4219f
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Remove Liquidity198841432024-05-16 17:51:35111 days ago1715881895IN
Solidly: Router
0 ETH0.002041857.94973197
Remove Liquidity198793142024-05-16 1:39:23111 days ago1715823563IN
Solidly: Router
0 ETH0.000138354.78510431
Remove Liquidity198317022024-05-09 9:50:47118 days ago1715248247IN
Solidly: Router
0 ETH0.000847474.3620115
Remove Liquidity196452572024-04-13 7:46:35144 days ago1712994395IN
Solidly: Router
0 ETH0.0029458312.009754
Remove Liquidity195558882024-03-31 19:17:35157 days ago1711912655IN
Solidly: Router
0 ETH0.005781225.335394
Remove Liquidity195558822024-03-31 19:16:23157 days ago1711912583IN
Solidly: Router
0 ETH0.0058207225.654636
Remove Liquidity194780492024-03-20 19:40:23168 days ago1710963623IN
Solidly: Router
0 ETH0.0078665334.47467351
Remove Liquidity194704872024-03-19 18:10:47169 days ago1710871847IN
Solidly: Router
0 ETH0.0115506947.338896
Remove Liquidity192879052024-02-23 4:27:11194 days ago1708662431IN
Solidly: Router
0 ETH0.008583434.769627
Remove Liquidity192397832024-02-16 10:11:35201 days ago1708078295IN
Solidly: Router
0 ETH0.006077724.90864335
Remove Liquidity192253012024-02-14 9:25:11203 days ago1707902711IN
Solidly: Router
0 ETH0.0080621130
Remove Liquidity192252942024-02-14 9:23:47203 days ago1707902627IN
Solidly: Router
0 ETH0.0007062924.377852
Remove Liquidity192239032024-02-14 4:43:23203 days ago1707885803IN
Solidly: Router
0 ETH0.0008667715.78028753
Remove Liquidity192238702024-02-14 4:36:47203 days ago1707885407IN
Solidly: Router
0 ETH0.0009132516.61917884
Swap Exact Token...191571082024-02-04 19:45:35213 days ago1707075935IN
Solidly: Router
0 ETH0.0039449714.661393
Remove Liquidity191570362024-02-04 19:30:59213 days ago1707075059IN
Solidly: Router
0 ETH0.0040007217.979153
Swap Exact Token...190357262024-01-18 19:07:11230 days ago1705604831IN
Solidly: Router
0 ETH0.0076545138.09143508
Remove Liquidity190357192024-01-18 19:05:47230 days ago1705604747IN
Solidly: Router
0 ETH0.0097535137.17054159
Remove Liquidity190216132024-01-16 19:43:11232 days ago1705434191IN
Solidly: Router
0 ETH0.0078752434.482007
Remove Liquidity189416132024-01-05 14:17:59243 days ago1704464279IN
Solidly: Router
0 ETH0.0076677630.39072638
Remove Liquidity189415772024-01-05 14:10:47243 days ago1704463847IN
Solidly: Router
0 ETH0.0072634932.67019741
Remove Liquidity189415612024-01-05 14:07:35243 days ago1704463655IN
Solidly: Router
0 ETH0.0017697132.2752158
Remove Liquidity189414992024-01-05 13:55:11243 days ago1704462911IN
Solidly: Router
0 ETH0.0063644523.97999583
Remove Liquidity189377682024-01-05 1:18:47243 days ago1704417527IN
Solidly: Router
0 ETH0.0050215521.98821137
Remove Liquidity189377582024-01-05 1:16:47243 days ago1704417407IN
Solidly: Router
0 ETH0.0005420118.653537
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
205379502024-08-16 1:38:3519 days ago1723772315
0x77784f96...EB2A4219f
0 ETH
205379502024-08-16 1:38:3519 days ago1723772315
0x77784f96...EB2A4219f
0 ETH
205379502024-08-16 1:38:3519 days ago1723772315
0x77784f96...EB2A4219f
0 ETH
205379502024-08-16 1:38:3519 days ago1723772315
0x77784f96...EB2A4219f
0 ETH
205379502024-08-16 1:38:3519 days ago1723772315
0x77784f96...EB2A4219f
0 ETH
205379502024-08-16 1:38:3519 days ago1723772315
0x77784f96...EB2A4219f
0 ETH
205379502024-08-16 1:38:3519 days ago1723772315
0x77784f96...EB2A4219f
0 ETH
205379502024-08-16 1:38:3519 days ago1723772315
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
203956222024-07-27 4:53:5939 days ago1722056039
0x77784f96...EB2A4219f
0 ETH
202216162024-07-02 21:49:5964 days ago1719956999
0x77784f96...EB2A4219f
0 ETH
202216162024-07-02 21:49:5964 days ago1719956999
0x77784f96...EB2A4219f
0 ETH
View All Internal Transactions
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  ]

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.