More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 21,564 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Remove Liquidity | 19884143 | 194 days ago | IN | 0 ETH | 0.00204185 | ||||
Remove Liquidity | 19879314 | 194 days ago | IN | 0 ETH | 0.00013835 | ||||
Remove Liquidity | 19831702 | 201 days ago | IN | 0 ETH | 0.00084747 | ||||
Remove Liquidity | 19645257 | 227 days ago | IN | 0 ETH | 0.00294583 | ||||
Remove Liquidity | 19555888 | 240 days ago | IN | 0 ETH | 0.0057812 | ||||
Remove Liquidity | 19555882 | 240 days ago | IN | 0 ETH | 0.00582072 | ||||
Remove Liquidity | 19478049 | 251 days ago | IN | 0 ETH | 0.00786653 | ||||
Remove Liquidity | 19470487 | 252 days ago | IN | 0 ETH | 0.01155069 | ||||
Remove Liquidity | 19287905 | 277 days ago | IN | 0 ETH | 0.0085834 | ||||
Remove Liquidity | 19239783 | 284 days ago | IN | 0 ETH | 0.0060777 | ||||
Remove Liquidity | 19225301 | 286 days ago | IN | 0 ETH | 0.00806211 | ||||
Remove Liquidity | 19225294 | 286 days ago | IN | 0 ETH | 0.00070629 | ||||
Remove Liquidity | 19223903 | 286 days ago | IN | 0 ETH | 0.00086677 | ||||
Remove Liquidity | 19223870 | 286 days ago | IN | 0 ETH | 0.00091325 | ||||
Swap Exact Token... | 19157108 | 296 days ago | IN | 0 ETH | 0.00394497 | ||||
Remove Liquidity | 19157036 | 296 days ago | IN | 0 ETH | 0.00400072 | ||||
Swap Exact Token... | 19035726 | 313 days ago | IN | 0 ETH | 0.00765451 | ||||
Remove Liquidity | 19035719 | 313 days ago | IN | 0 ETH | 0.00975351 | ||||
Remove Liquidity | 19021613 | 315 days ago | IN | 0 ETH | 0.00787524 | ||||
Remove Liquidity | 18941613 | 326 days ago | IN | 0 ETH | 0.00766776 | ||||
Remove Liquidity | 18941577 | 326 days ago | IN | 0 ETH | 0.00726349 | ||||
Remove Liquidity | 18941561 | 326 days ago | IN | 0 ETH | 0.00176971 | ||||
Remove Liquidity | 18941499 | 326 days ago | IN | 0 ETH | 0.00636445 | ||||
Remove Liquidity | 18937768 | 326 days ago | IN | 0 ETH | 0.00502155 | ||||
Remove Liquidity | 18937758 | 326 days ago | IN | 0 ETH | 0.00054201 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19251720 | 282 days ago | 0.0848681 ETH | ||||
19251720 | 282 days ago | 0.0848681 ETH | ||||
19157108 | 296 days ago | 0.02461062 ETH | ||||
19157108 | 296 days ago | 0.02461062 ETH | ||||
19035726 | 313 days ago | 0.18529299 ETH | ||||
19035726 | 313 days ago | 0.18529299 ETH | ||||
18915529 | 330 days ago | 0.0809582 ETH | ||||
18915529 | 330 days ago | 0.0809582 ETH | ||||
18915325 | 330 days ago | 0.15966569 ETH | ||||
18915325 | 330 days ago | 0.15966569 ETH | ||||
18898872 | 332 days ago | 0.50348332 ETH | ||||
18898872 | 332 days ago | 0.50348332 ETH | ||||
18552672 | 380 days ago | 0.11592326 ETH | ||||
18552672 | 380 days ago | 0.11592326 ETH | ||||
18375433 | 405 days ago | 0.01 ETH | ||||
18371243 | 406 days ago | 0.023751 ETH | ||||
18356222 | 408 days ago | 0.06986797 ETH | ||||
18356222 | 408 days ago | 0.06986797 ETH | ||||
18326938 | 412 days ago | 1.02491104 ETH | ||||
18326938 | 412 days ago | 1.02491104 ETH | ||||
18293285 | 417 days ago | 0.07203671 ETH | ||||
18293285 | 417 days ago | 0.07203671 ETH | ||||
18258006 | 422 days ago | 0.02660682 ETH | ||||
18258006 | 422 days ago | 0.02660682 ETH | ||||
18249218 | 423 days ago | 0.5 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
Contract Source Code (Solidity Standard Json-Input format)
// 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(); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "none" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.