Polygon Sponsored slots available. Book your slot here!
Contract Overview
My Name Tag:
Not Available, login to update
Txn Hash |
Method
|
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0x1ed7f7215ab7572bcdb9ac670700994994b5e7a1c67000d5cc338be746b61ba4 | 0x60806040 | 25825772 | 443 days 9 hrs ago | 0x5aa6aec74ee4c47cc25e64f83119185530dba5c2 | IN | Contract Creation | 0 MATIC | 0.008030770012 |
[ Download CSV Export ]
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xB3646e9B6dF463a2dC36de67FFD28cbAb3f8A5cC
Contract Name:
ProtocolFeeReserveProxy
Compiler Version
v0.6.12+commit.27d51765
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 "./utils/ProtocolFeeProxyConstants.sol"; import "./utils/ProxiableProtocolFeeReserveLib.sol"; /// @title ProtocolFeeReserveProxy Contract /// @author Enzyme Council <[email protected]> /// @notice A proxy contract for a protocol fee reserve, slightly modified from EIP-1822 /// @dev Adapted from the recommended implementation of a Proxy in EIP-1822, updated for solc 0.6.12, /// and using the EIP-1967 storage slot for the proxiable implementation. /// See: https://eips.ethereum.org/EIPS/eip-1822 /// See: https://eips.ethereum.org/EIPS/eip-1967 contract ProtocolFeeReserveProxy is ProtocolFeeProxyConstants { constructor(bytes memory _constructData, address _protocolFeeReserveLib) public { // Validate constants require( EIP_1822_PROXIABLE_UUID == bytes32(keccak256("mln.proxiable.protocolFeeReserveLib")), "constructor: Invalid EIP_1822_PROXIABLE_UUID" ); require( EIP_1967_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1), "constructor: Invalid EIP_1967_SLOT" ); require( ProxiableProtocolFeeReserveLib(_protocolFeeReserveLib).proxiableUUID() == EIP_1822_PROXIABLE_UUID, "constructor: _protocolFeeReserveLib not compatible" ); assembly { sstore(EIP_1967_SLOT, _protocolFeeReserveLib) } (bool success, bytes memory returnData) = _protocolFeeReserveLib.delegatecall( _constructData ); require(success, string(returnData)); } fallback() external payable { assembly { let contractLogic := sload(EIP_1967_SLOT) 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) } } } }
// 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 ProtocolFeeProxyConstants Contract /// @author Enzyme Council <[email protected]> /// @notice Constant values used in ProtocolFee proxy-related contracts abstract contract ProtocolFeeProxyConstants { // `bytes32(keccak256('mln.proxiable.protocolFeeReserveLib'))` bytes32 internal constant EIP_1822_PROXIABLE_UUID = 0xbc966524590ce702cc9340e80d86ea9095afa6b8eecbb5d6213f576332239181; // `bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)` bytes32 internal constant EIP_1967_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; }
// 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. */ import "./ProtocolFeeProxyConstants.sol"; pragma solidity 0.6.12; /// @title ProxiableProtocolFeeReserveLib Contract /// @author Enzyme Council <[email protected]> /// @notice A contract that defines the upgrade behavior for ProtocolFeeReserveLib instances /// @dev The recommended implementation of the target of a proxy according to EIP-1822 and EIP-1967 /// See: https://eips.ethereum.org/EIPS/eip-1822 /// See: https://eips.ethereum.org/EIPS/eip-1967 abstract contract ProxiableProtocolFeeReserveLib is ProtocolFeeProxyConstants { /// @dev Updates the target of the proxy to be the contract at _nextProtocolFeeReserveLib function __updateCodeAddress(address _nextProtocolFeeReserveLib) internal { require( ProxiableProtocolFeeReserveLib(_nextProtocolFeeReserveLib).proxiableUUID() == bytes32(EIP_1822_PROXIABLE_UUID), "__updateCodeAddress: _nextProtocolFeeReserveLib not compatible" ); assembly { sstore(EIP_1967_SLOT, _nextProtocolFeeReserveLib) } } /// @notice Returns a unique bytes32 hash for ProtocolFeeReserveLib instances /// @return uuid_ The bytes32 hash representing the UUID function proxiableUUID() public pure returns (bytes32 uuid_) { return EIP_1822_PROXIABLE_UUID; } }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "details": { "constantOptimizer": true, "cse": true, "deduplicate": true, "jumpdestRemover": true, "orderLiterals": true, "peephole": true, "yul": false }, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"bytes","name":"_constructData","type":"bytes"},{"internalType":"address","name":"_protocolFeeReserveLib","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516103d13803806103d18339818101604052604081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b90830190602082018581111561006857600080fd5b825164010000000081118282018810171561008257600080fd5b82525081516020918201929091019080838360005b838110156100af578181015183820152602001610097565b50505050905090810190601f1680156100dc5780820380516001836020036101000a031916815260200191505b506040526020015191506100ed9050565b7fbc966524590ce702cc9340e80d86ea9095afa6b8eecbb5d6213f57633223918160001b816001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561014a57600080fd5b505afa15801561015e573d6000803e3d6000fd5b505050506040513d602081101561017457600080fd5b5051146101b25760405162461bcd60e51b815260040180806020018281038252603281526020018061039f6032913960400191505060405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5560006060826001600160a01b0316846040518082805190602001908083835b602083106102135780518252601f1990920191602091820191016101f4565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610273576040519150601f19603f3d011682016040523d82523d6000602084013e610278565b606091505b50915091508181906103085760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102cd5781810151838201526020016102b5565b50505050905090810190601f1680156102fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050505060848061031b6000396000f3fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc543660008037600080366000846127105a03f43d806000803e818015604957816000f35b816000fdfea26469706673582212206546d9db02a97fa8bfefacaf3ab76fd3a296019b999bd3e3b654a632a8d99eb764736f6c634300060c0033636f6e7374727563746f723a205f70726f746f636f6c466565526573657276654c6962206e6f7420636f6d70617469626c650000000000000000000000000000000000000000000000000000000000000040000000000000000000000000de4a42052db0fb0e8935c9f3015b8cd56a3ddf43000000000000000000000000000000000000000000000000000000000000002419ab453c000000000000000000000000c80bd25cd46e49277ccb56e751704a6316af30ad00000000000000000000000000000000000000000000000000000000
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.