Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
316410163 | 37 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
ComptrollerProxy
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
istanbul EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0 /* This file is part of the Enzyme Protocol. (c) Enzyme Council <[email protected]> For the full license information, please view the LICENSE file that was distributed with this source code. */ pragma solidity 0.6.12; import {NonUpgradableProxy} from "../../../../utils/0.6.12/NonUpgradableProxy.sol"; /// @title ComptrollerProxy Contract /// @author Enzyme Council <[email protected]> /// @notice A proxy contract for all ComptrollerProxy instances contract ComptrollerProxy is NonUpgradableProxy { constructor(bytes memory _constructData, address _comptrollerLib) public NonUpgradableProxy(_constructData, _comptrollerLib) {} }
// SPDX-License-Identifier: GPL-3.0 /* This file is part of the Enzyme Protocol. (c) Enzyme Council <[email protected]> For the full license information, please view the LICENSE file that was distributed with this source code. */ pragma solidity 0.6.12; /// @title NonUpgradableProxy Contract /// @author Enzyme Council <[email protected]> /// @notice A proxy contract for use with non-upgradable libs /// @dev The recommended constructor-fallback pattern of a proxy in EIP-1822, updated for solc 0.6.12, /// and using an immutable lib value to save on gas (since not upgradable). /// The EIP-1967 storage slot for the lib is still assigned, /// for ease of referring to UIs that understand the pattern, i.e., Etherscan. abstract contract NonUpgradableProxy { address private immutable CONTRACT_LOGIC; constructor(bytes memory _constructData, address _contractLogic) public { CONTRACT_LOGIC = _contractLogic; assembly { // EIP-1967 slot: `bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)` sstore(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc, _contractLogic) } (bool success, bytes memory returnData) = _contractLogic.delegatecall(_constructData); require(success, string(returnData)); } // solhint-disable-next-line no-complex-fallback fallback() external payable { address contractLogic = CONTRACT_LOGIC; assembly { calldatacopy(0x0, 0x0, calldatasize()) let success := delegatecall(sub(gas(), 10000), contractLogic, 0x0, calldatasize(), 0, 0) let retSz := returndatasize() returndatacopy(0, 0, retSz) switch success case 0 { revert(0, retSz) } default { return(0, retSz) } } } }
{ "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-solc-0.6/contracts/", "@uniswap/v3-core/=lib/uniswap-v3-core/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-solc-0.6/=lib/openzeppelin-solc-0.6/contracts/", "openzeppelin-solc-0.7/=lib/openzeppelin-solc-0.7/contracts/", "openzeppelin-solc-0.8/=lib/openzeppelin-solc-0.8/contracts/", "uniswap-v3-core/=lib/uniswap-v3-core/", "uniswap-v3-core-0.8/=lib/uniswap-v3-core-0.8/", "uniswap-v3-periphery/=lib/uniswap-v3-periphery/contracts/", "uniswap-v3-periphery-0.8/=lib/uniswap-v3-periphery-0.8/contracts/" ], "optimizer": { "enabled": true, "runs": 200, "details": { "yul": false } }, "metadata": { "useLiteralContent": false, "bytecodeHash": "none" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "istanbul", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"bytes","name":"_constructData","type":"bytes"},{"internalType":"address","name":"_comptrollerLib","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]
Contract Creation Code
60a060405234801561001057600080fd5b506040516102e03803806102e08339818101604052604081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b90830190602082018581111561006857600080fd5b825164010000000081118282018810171561008257600080fd5b82525081516020918201929091019080838360005b838110156100af578181015183820152602001610097565b50505050905090810190601f1680156100dc5780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291905050508181806001600160a01b03166080816001600160a01b031660601b81525050807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560006060826001600160a01b0316846040518082805190602001908083835b602083106101705780518252601f199092019160209182019101610151565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101d0576040519150601f19603f3d011682016040523d82523d6000602084013e6101d5565b606091505b50915091508181906102655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561022a578181015183820152602001610212565b50505050905090810190601f1680156102575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050505060805160601c605a6102866000398060065250605a6000f3fe60806040527f00000000000000000000000000000000000000000000000000000000000000003660008037600080366000846127105a03f43d806000803e818015604857816000f35b816000fdfea164736f6c634300060c000a00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003868c0fc34b6ece124c6ab122f6f29e978be66610000000000000000000000000000000000000000000000000000000000000044399ae724000000000000000000000000912ce59144191c1204e64559fe8253a0e49e6548000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040527f0000000000000000000000003868c0fc34b6ece124c6ab122f6f29e978be66613660008037600080366000846127105a03f43d806000803e818015604857816000f35b816000fdfea164736f6c634300060c000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003868c0fc34b6ece124c6ab122f6f29e978be66610000000000000000000000000000000000000000000000000000000000000044399ae724000000000000000000000000912ce59144191c1204e64559fe8253a0e49e6548000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _constructData (bytes): 0x399ae724000000000000000000000000912ce59144191c1204e64559fe8253a0e49e65480000000000000000000000000000000000000000000000000000000000015180
Arg [1] : _comptrollerLib (address): 0x3868C0FC34B6ecE124c6ab122f6f29E978Be6661
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000003868c0fc34b6ece124c6ab122f6f29e978be6661
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000044
Arg [3] : 399ae724000000000000000000000000912ce59144191c1204e64559fe8253a0
Arg [4] : e49e654800000000000000000000000000000000000000000000000000000000
Arg [5] : 0001518000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.