Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
6.077309757817024693 LToken
Holders
48
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000007173872316294 LTokenValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
LPoolDelegator
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.7.6; import "../Adminable.sol"; import "../DelegatorInterface.sol"; /** * @title Compound's LPoolDelegator Contract * LTokens which wrap an EIP-20 underlying and delegate to an implementation * @author Compound */ contract LPoolDelegator is DelegatorInterface, Adminable { constructor() { admin = msg.sender; } function initialize(address underlying_, bool isWethPool_, address contoller_, uint256 baseRatePerYear, uint256 multiplierPerYear, uint256 jumpMultiplierPerYear, uint256 kink_, uint initialExchangeRateMantissa_, string memory name_, string memory symbol_, uint8 decimals_, address payable admin_, address implementation_) external onlyAdmin { require(implementation == address(0), "initialize once"); // Creator of the contract is admin during initialization // First delegate gets to initialize the delegator (i.e. storage contract) delegateTo(implementation_, abi.encodeWithSignature("initialize(address,bool,address,uint256,uint256,uint256,uint256,uint256,string,string,uint8)", underlying_, isWethPool_, contoller_, baseRatePerYear, multiplierPerYear, jumpMultiplierPerYear, kink_, initialExchangeRateMantissa_, name_, symbol_, decimals_)); implementation = implementation_; // Set the proper admin now that initialization is done admin = admin_; } /** * Called by the admin to update the implementation of the delegator * @param implementation_ The address of the new implementation for delegation */ function setImplementation(address implementation_) public override onlyAdmin { address oldImplementation = implementation; implementation = implementation_; emit NewImplementation(oldImplementation, implementation); } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.7.6; abstract contract DelegatorInterface { /** * Implementation address for this contract */ address public implementation; /** * Emitted when implementation is changed */ event NewImplementation(address oldImplementation, address newImplementation); /** * Called by the admin to update the implementation of the delegator * @param implementation_ The address of the new implementation for delegation */ function setImplementation(address implementation_) public virtual; /** * Internal method to delegate execution to another contract * @dev It returns to the external caller whatever the implementation returns or forwards reverts * @param callee The contract to delegatecall * @param data The raw data to delegatecall * @return The returned bytes from the delegatecall */ function delegateTo(address callee, bytes memory data) internal returns (bytes memory) { (bool success, bytes memory returnData) = callee.delegatecall(data); assembly { if eq(success, 0) {revert(add(returnData, 0x20), returndatasize())} } return returnData; } /** * Delegates execution to the implementation contract * @dev It returns to the external caller whatever the implementation returns or forwards reverts * @param data The raw data to delegatecall * @return The returned bytes from the delegatecall */ function delegateToImplementation(bytes memory data) public returns (bytes memory) { return delegateTo(implementation, data); } /** * Delegates execution to an implementation contract * @dev It returns to the external caller whatever the implementation returns or forwards reverts * There are an additional 2 prefix uints from the wrapper returndata, which we ignore since we make an extra hop. * @param data The raw data to delegatecall * @return The returned bytes from the delegatecall */ function delegateToViewImplementation(bytes memory data) public view returns (bytes memory) { (bool success, bytes memory returnData) = address(this).staticcall(abi.encodeWithSignature("delegateToImplementation(bytes)", data)); assembly { if eq(success, 0) {revert(add(returnData, 0x20), returndatasize())} } return abi.decode(returnData, (bytes)); } /** * Delegates execution to an implementation contract * @dev It returns to the external caller whatever the implementation returns or forwards reverts */ fallback() external payable { _fallback(); } receive() external payable { _fallback(); } function _fallback() internal { // delegate all other functions to current implementation if (msg.data.length > 0) { (bool success,) = implementation.delegatecall(msg.data); assembly { let free_mem_ptr := mload(0x40) returndatacopy(free_mem_ptr, 0, returndatasize()) switch success case 0 {revert(free_mem_ptr, returndatasize())} default {return (free_mem_ptr, returndatasize())} } } } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.7.6; abstract contract Adminable { address payable public admin; address payable public pendingAdmin; address payable public developer; event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin); event NewAdmin(address oldAdmin, address newAdmin); constructor () { developer = msg.sender; } modifier onlyAdmin() { require(msg.sender == admin, "caller must be admin"); _; } modifier onlyAdminOrDeveloper() { require(msg.sender == admin || msg.sender == developer, "caller must be admin or developer"); _; } function setPendingAdmin(address payable newPendingAdmin) external virtual onlyAdmin { // Save current value, if any, for inclusion in log address oldPendingAdmin = pendingAdmin; // Store pendingAdmin with value newPendingAdmin pendingAdmin = newPendingAdmin; // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin) emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin); } function acceptAdmin() external virtual { require(msg.sender == pendingAdmin, "only pendingAdmin can accept admin"); // Save current values for inclusion in log address oldAdmin = admin; address oldPendingAdmin = pendingAdmin; // Store admin with value pendingAdmin admin = pendingAdmin; // Clear the pending value pendingAdmin = address(0); emit NewAdmin(oldAdmin, admin); emit NewPendingAdmin(oldPendingAdmin, pendingAdmin); } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"delegateToImplementation","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"delegateToViewImplementation","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developer","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"underlying_","type":"address"},{"internalType":"bool","name":"isWethPool_","type":"bool"},{"internalType":"address","name":"contoller_","type":"address"},{"internalType":"uint256","name":"baseRatePerYear","type":"uint256"},{"internalType":"uint256","name":"multiplierPerYear","type":"uint256"},{"internalType":"uint256","name":"jumpMultiplierPerYear","type":"uint256"},{"internalType":"uint256","name":"kink_","type":"uint256"},{"internalType":"uint256","name":"initialExchangeRateMantissa_","type":"uint256"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address payable","name":"admin_","type":"address"},{"internalType":"address","name":"implementation_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newPendingAdmin","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b5060038054336001600160a01b03199182168117909255600180549091169091179055610ddf806100426000396000f3fe6080604052600436106100955760003560e01c80635c60da1b116100595780635c60da1b146102fc5780639d867f8014610311578063ca4b208b146104a4578063d784d426146104b9578063f851a440146104ec576100a4565b80630933c1ed146100ac5780630e18b681146101d257806326782247146101e75780634487152f146102185780634dd18bf5146102c9576100a4565b366100a4576100a2610501565b005b6100a2610501565b3480156100b857600080fd5b5061015d600480360360208110156100cf57600080fd5b810190602081018135600160201b8111156100e957600080fd5b8201836020820111156100fb57600080fd5b803590602001918460018302840111600160201b8311171561011c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061058c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019757818101518382015260200161017f565b50505050905090810190601f1680156101c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101de57600080fd5b506100a26105ab565b3480156101f357600080fd5b506101fc6106ab565b604080516001600160a01b039092168252519081900360200190f35b34801561022457600080fd5b5061015d6004803603602081101561023b57600080fd5b810190602081018135600160201b81111561025557600080fd5b82018360208201111561026757600080fd5b803590602001918460018302840111600160201b8311171561028857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106ba945050505050565b3480156102d557600080fd5b506100a2600480360360208110156102ec57600080fd5b50356001600160a01b03166108d8565b34801561030857600080fd5b506101fc610991565b34801561031d57600080fd5b506100a260048036036101a081101561033557600080fd5b6001600160a01b038235811692602081013515159260408201359092169160608201359160808101359160a08201359160c08101359160e082013591908101906101208101610100820135600160201b81111561039157600080fd5b8201836020820111156103a357600080fd5b803590602001918460018302840111600160201b831117156103c457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561041657600080fd5b82018360208201111561042857600080fd5b803590602001918460018302840111600160201b8311171561044957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff8335169350506001600160a01b036020830135811692604001351690506109a0565b3480156104b057600080fd5b506101fc610bf0565b3480156104c557600080fd5b506100a2600480360360208110156104dc57600080fd5b50356001600160a01b0316610bff565b3480156104f857600080fd5b506101fc610cb7565b361561058a57600080546040516001600160a01b0390911690829036908083838082843760405192019450600093509091505080830381855af49150503d806000811461056a576040519150601f19603f3d011682016040523d82523d6000602084013e61056f565b606091505b505090506040513d6000823e818015610586573d82f35b3d82fd5b565b6000546060906105a5906001600160a01b031683610cc6565b92915050565b6002546001600160a01b031633146105f45760405162461bcd60e51b8152600401808060200182810382526022815260200180610d886022913960400191505060405180910390fd5b60018054600280546001600160a01b038082166001600160a01b031980861682179687905590921690925560408051938316808552949092166020840152815190927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a1600254604080516001600160a01b038085168252909216602083015280517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99281900390910190a15050565b6002546001600160a01b031681565b6060600080306001600160a01b0316846040516024018080602001828103825283818151815260200191508051906020019080838360005b8381101561070a5781810151838201526020016106f2565b50505050905090810190601f1680156107375780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b0316630933c1ed60e01b178152905182519295509350839250908083835b602083106107925780518252601f199092019160209182019101610773565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146107f2576040519150601f19603f3d011682016040523d82523d6000602084013e6107f7565b606091505b5091509150600082141561080c573d60208201fd5b80806020019051602081101561082157600080fd5b8101908080516040519392919084600160201b82111561084057600080fd5b90830190602082018581111561085557600080fd5b8251600160201b81118282018810171561086e57600080fd5b82525081516020918201929091019080838360005b8381101561089b578181015183820152602001610883565b50505050905090810190601f1680156108c85780820380516001836020036101000a031916815260200191505b5060405250505092505050919050565b6001546001600160a01b0316331461092e576040805162461bcd60e51b815260206004820152601460248201527331b0b63632b91036bab9ba1031329030b236b4b760611b604482015290519081900360640190fd5b600280546001600160a01b038381166001600160a01b0319831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b6000546001600160a01b031681565b6001546001600160a01b031633146109f6576040805162461bcd60e51b815260206004820152601460248201527331b0b63632b91036bab9ba1031329030b236b4b760611b604482015290519081900360640190fd5b6000546001600160a01b031615610a46576040805162461bcd60e51b815260206004820152600f60248201526e696e697469616c697a65206f6e636560881b604482015290519081900360640190fd5b610bb3818e8e8e8e8e8e8e8e8e8e8e604051602401808c6001600160a01b031681526020018b151581526020018a6001600160a01b0316815260200189815260200188815260200187815260200186815260200185815260200180602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b83811015610ae6578181015183820152602001610ace565b50505050905090810190601f168015610b135780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610b46578181015183820152602001610b2e565b50505050905090810190601f168015610b735780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03166319134c6d60e31b1790529d50610cc69c50505050505050505050505050565b50600080546001600160a01b039283166001600160a01b031991821617909155600180549390921692169190911790555050505050505050505050565b6003546001600160a01b031681565b6001546001600160a01b03163314610c55576040805162461bcd60e51b815260206004820152601460248201527331b0b63632b91036bab9ba1031329030b236b4b760611b604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b0319831617928390556040805192821680845293909116602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a15050565b6001546001600160a01b031681565b6060600080846001600160a01b0316846040518082805190602001908083835b60208310610d055780518252601f199092019160209182019101610ce6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610d65576040519150601f19603f3d011682016040523d82523d6000602084013e610d6a565b606091505b50915091506000821415610d7f573d60208201fd5b94935050505056fe6f6e6c792070656e64696e6741646d696e2063616e206163636570742061646d696ea2646970667358221220c492dce528296adbf1260a27d2220e6da609842a20d7dff7c98d00e3c81e792964736f6c63430007060033
Deployed Bytecode
0x6080604052600436106100955760003560e01c80635c60da1b116100595780635c60da1b146102fc5780639d867f8014610311578063ca4b208b146104a4578063d784d426146104b9578063f851a440146104ec576100a4565b80630933c1ed146100ac5780630e18b681146101d257806326782247146101e75780634487152f146102185780634dd18bf5146102c9576100a4565b366100a4576100a2610501565b005b6100a2610501565b3480156100b857600080fd5b5061015d600480360360208110156100cf57600080fd5b810190602081018135600160201b8111156100e957600080fd5b8201836020820111156100fb57600080fd5b803590602001918460018302840111600160201b8311171561011c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061058c945050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019757818101518382015260200161017f565b50505050905090810190601f1680156101c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101de57600080fd5b506100a26105ab565b3480156101f357600080fd5b506101fc6106ab565b604080516001600160a01b039092168252519081900360200190f35b34801561022457600080fd5b5061015d6004803603602081101561023b57600080fd5b810190602081018135600160201b81111561025557600080fd5b82018360208201111561026757600080fd5b803590602001918460018302840111600160201b8311171561028857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106ba945050505050565b3480156102d557600080fd5b506100a2600480360360208110156102ec57600080fd5b50356001600160a01b03166108d8565b34801561030857600080fd5b506101fc610991565b34801561031d57600080fd5b506100a260048036036101a081101561033557600080fd5b6001600160a01b038235811692602081013515159260408201359092169160608201359160808101359160a08201359160c08101359160e082013591908101906101208101610100820135600160201b81111561039157600080fd5b8201836020820111156103a357600080fd5b803590602001918460018302840111600160201b831117156103c457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561041657600080fd5b82018360208201111561042857600080fd5b803590602001918460018302840111600160201b8311171561044957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff8335169350506001600160a01b036020830135811692604001351690506109a0565b3480156104b057600080fd5b506101fc610bf0565b3480156104c557600080fd5b506100a2600480360360208110156104dc57600080fd5b50356001600160a01b0316610bff565b3480156104f857600080fd5b506101fc610cb7565b361561058a57600080546040516001600160a01b0390911690829036908083838082843760405192019450600093509091505080830381855af49150503d806000811461056a576040519150601f19603f3d011682016040523d82523d6000602084013e61056f565b606091505b505090506040513d6000823e818015610586573d82f35b3d82fd5b565b6000546060906105a5906001600160a01b031683610cc6565b92915050565b6002546001600160a01b031633146105f45760405162461bcd60e51b8152600401808060200182810382526022815260200180610d886022913960400191505060405180910390fd5b60018054600280546001600160a01b038082166001600160a01b031980861682179687905590921690925560408051938316808552949092166020840152815190927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92908290030190a1600254604080516001600160a01b038085168252909216602083015280517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99281900390910190a15050565b6002546001600160a01b031681565b6060600080306001600160a01b0316846040516024018080602001828103825283818151815260200191508051906020019080838360005b8381101561070a5781810151838201526020016106f2565b50505050905090810190601f1680156107375780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b0316630933c1ed60e01b178152905182519295509350839250908083835b602083106107925780518252601f199092019160209182019101610773565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146107f2576040519150601f19603f3d011682016040523d82523d6000602084013e6107f7565b606091505b5091509150600082141561080c573d60208201fd5b80806020019051602081101561082157600080fd5b8101908080516040519392919084600160201b82111561084057600080fd5b90830190602082018581111561085557600080fd5b8251600160201b81118282018810171561086e57600080fd5b82525081516020918201929091019080838360005b8381101561089b578181015183820152602001610883565b50505050905090810190601f1680156108c85780820380516001836020036101000a031916815260200191505b5060405250505092505050919050565b6001546001600160a01b0316331461092e576040805162461bcd60e51b815260206004820152601460248201527331b0b63632b91036bab9ba1031329030b236b4b760611b604482015290519081900360640190fd5b600280546001600160a01b038381166001600160a01b0319831681179093556040805191909216808252602082019390935281517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9929181900390910190a15050565b6000546001600160a01b031681565b6001546001600160a01b031633146109f6576040805162461bcd60e51b815260206004820152601460248201527331b0b63632b91036bab9ba1031329030b236b4b760611b604482015290519081900360640190fd5b6000546001600160a01b031615610a46576040805162461bcd60e51b815260206004820152600f60248201526e696e697469616c697a65206f6e636560881b604482015290519081900360640190fd5b610bb3818e8e8e8e8e8e8e8e8e8e8e604051602401808c6001600160a01b031681526020018b151581526020018a6001600160a01b0316815260200189815260200188815260200187815260200186815260200185815260200180602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b83811015610ae6578181015183820152602001610ace565b50505050905090810190601f168015610b135780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610b46578181015183820152602001610b2e565b50505050905090810190601f168015610b735780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03166319134c6d60e31b1790529d50610cc69c50505050505050505050505050565b50600080546001600160a01b039283166001600160a01b031991821617909155600180549390921692169190911790555050505050505050505050565b6003546001600160a01b031681565b6001546001600160a01b03163314610c55576040805162461bcd60e51b815260206004820152601460248201527331b0b63632b91036bab9ba1031329030b236b4b760611b604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b0319831617928390556040805192821680845293909116602083015280517fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9281900390910190a15050565b6001546001600160a01b031681565b6060600080846001600160a01b0316846040518082805190602001908083835b60208310610d055780518252601f199092019160209182019101610ce6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610d65576040519150601f19603f3d011682016040523d82523d6000602084013e610d6a565b606091505b50915091506000821415610d7f573d60208201fd5b94935050505056fe6f6e6c792070656e64696e6741646d696e2063616e206163636570742061646d696ea2646970667358221220c492dce528296adbf1260a27d2220e6da609842a20d7dff7c98d00e3c81e792964736f6c63430007060033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.