ERC-20
Overview
Max Total Supply
40.019317 LToken
Holders
6
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
2.810558 LTokenValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xed221bbe...7402B2fA2 The constructor portion of the code might be different and could alter the actual behaviour of the contract
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.