ERC-20
Overview
Max Total Supply
10,000.118180582445773281 lxengine_chip_AG
Holders
3
Market
Price
-
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.009999908180674265 lxengine_chip_AGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x0720F766...9217EccE4 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
LexPoolProxy
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; import "../../../AdministrationContracts/AcceptableRegistryImplementationClaimableAdmin.sol"; /** * @title LexPoolProxy * @dev Used as the upgradable lex pool of the Lynx platform */ contract LexPoolProxy is AcceptableRegistryImplementationClaimableAdmin { constructor( address _registry, address _initialAdmin ) AcceptableRegistryImplementationClaimableAdmin( _registry, "LexPool", _initialAdmin ) {} }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; import "./AcceptableImplementationClaimableAdminStorage.sol"; /** * @title SafeUpgradeableClaimableAdmin * @dev based on Compound's Unitroller * https://github.com/compound-finance/compound-protocol/blob/a3214f67b73310d547e00fc578e8355911c9d376/contracts/Unitroller.sol */ contract AcceptableImplementationClaimableAdmin is AcceptableImplementationClaimableAdminStorage { /** * @notice Emitted when pendingImplementation is changed */ event NewPendingImplementation( address oldPendingImplementation, address newPendingImplementation ); /** * @notice Emitted when pendingImplementation is accepted, which means delegation implementation is updated */ event NewImplementation(address oldImplementation, address newImplementation); /** * @notice Emitted when pendingAdmin is changed */ event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin); /** * @notice Emitted when pendingAdmin is accepted, which means admin is updated */ event NewAdmin(address oldAdmin, address newAdmin); /*** Admin Functions ***/ function _setPendingImplementation(address newPendingImplementation) public { require(msg.sender == admin, "not admin"); require( approvePendingImplementationInternal(newPendingImplementation), "INVALID_IMPLEMENTATION" ); address oldPendingImplementation = pendingImplementation; pendingImplementation = newPendingImplementation; emit NewPendingImplementation( oldPendingImplementation, pendingImplementation ); } /** * @notice Accepts new implementation. msg.sender must be pendingImplementation * @dev Admin function for new implementation to accept it's role as implementation */ function _acceptImplementation() public returns (uint) { // Check caller is pendingImplementation and pendingImplementation ≠ address(0) require( msg.sender == pendingImplementation && pendingImplementation != address(0), "Not the EXISTING pending implementation" ); // Save current values for inclusion in log address oldImplementation = implementation; address oldPendingImplementation = pendingImplementation; implementation = pendingImplementation; pendingImplementation = address(0); emit NewImplementation(oldImplementation, implementation); emit NewPendingImplementation( oldPendingImplementation, pendingImplementation ); return 0; } /** * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer. * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer. * @param newPendingAdmin New pending admin. */ function _setPendingAdmin(address newPendingAdmin) public { // Check caller = admin require(msg.sender == admin, "Not Admin"); // 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); } /** * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin * @dev Admin function for pending admin to accept role and update admin */ function _acceptAdmin() public { // Check caller is pendingAdmin and pendingAdmin ≠ address(0) require( msg.sender == pendingAdmin && pendingAdmin != address(0), "Not the EXISTING pending 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); } constructor(address _initialAdmin) { admin = _initialAdmin; emit NewAdmin(address(0), _initialAdmin); } /** * @dev Delegates execution to an implementation contract. * It returns to the external caller whatever the implementation returns * or forwards reverts. */ fallback() external payable { // delegate all other functions to current implementation (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()) } } } receive() external payable {} function approvePendingImplementationInternal( address // _implementation ) internal virtual returns (bool) { return true; } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; contract ClaimableAdminStorage { /** * @notice Administrator for this contract */ address public admin; /** * @notice Pending administrator for this contract */ address public pendingAdmin; /*** Modifiers ***/ modifier onlyAdmin() { require(msg.sender == admin, "ONLY_ADMIN"); _; } /*** Constructor ***/ constructor() { // Set admin to caller admin = msg.sender; } } contract AcceptableImplementationClaimableAdminStorage is ClaimableAdminStorage { /** * @notice Active logic */ address public implementation; /** * @notice Pending logic */ address public pendingImplementation; } contract AcceptableRegistryImplementationClaimableAdminStorage is AcceptableImplementationClaimableAdminStorage { /** * @notice System Registry */ address public registry; }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; import "./AcceptableImplementationClaimableAdmin.sol"; import "./IContractRegistryBase.sol"; /** * @title AcceptableRegistryImplementationClaimableAdmin */ contract AcceptableRegistryImplementationClaimableAdmin is AcceptableImplementationClaimableAdmin, AcceptableRegistryImplementationClaimableAdminStorage { bytes32 public immutable CONTRACT_NAME_HASH; constructor( address _registry, string memory proxyName, address _initialAdmin ) AcceptableImplementationClaimableAdmin(_initialAdmin) { registry = _registry; CONTRACT_NAME_HASH = keccak256(abi.encodePacked(proxyName)); } function approvePendingImplementationInternal( address _implementation ) internal view override returns (bool) { return IContractRegistryBase(registry).isImplementationValidForProxy( CONTRACT_NAME_HASH, _implementation ); } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; interface IContractRegistryBase { function isImplementationValidForProxy( bytes32 proxyNameHash, address _implementation ) external view returns (bool); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_initialAdmin","type":"address"}],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"NewPendingImplementation","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"CONTRACT_NAME_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_acceptImplementation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"_setPendingImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234801561001057600080fd5b5060405161095338038061095383398101604081905261002f91610120565b604080518082018252600781526613195e141bdbdb60ca1b602080830191909152600080546001600160a01b031990811633909116176001600160a01b03861690811782558451918252918101919091528492849182917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc910160405180910390a150600480546001600160a01b0319166001600160a01b0385161790556040516100de908390602001610153565b60408051601f198184030181529190528051602090910120608052506101829350505050565b80516001600160a01b038116811461011b57600080fd5b919050565b6000806040838503121561013357600080fd5b61013c83610104565b915061014a60208401610104565b90509250929050565b6000825160005b81811015610174576020818601810151858301520161015a565b506000920191825250919050565b6080516107af6101a4600039600081816101a8015261068b01526107af6000f3fe6080604052600436106100955760003560e01c8063b71d1a0c11610059578063b71d1a0c146101f8578063c1e8033414610218578063e992a0411461022d578063e9c714f21461024d578063f851a440146102625761009c565b80632678224714610119578063396f7b23146101565780635c60da1b1461017657806368c63188146101965780637b103999146101d85761009c565b3661009c57005b6002546040516000916001600160a01b0316906100bc9083903690610717565b600060405180830381855af49150503d80600081146100f7576040519150601f19603f3d011682016040523d82523d6000602084013e6100fc565b606091505b505090506040513d6000823e818015610113573d82f35b3d82fd5b005b34801561012557600080fd5b50600154610139906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561016257600080fd5b50600354610139906001600160a01b031681565b34801561018257600080fd5b50600254610139906001600160a01b031681565b3480156101a257600080fd5b506101ca7f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161014d565b3480156101e457600080fd5b50600454610139906001600160a01b031681565b34801561020457600080fd5b50610117610213366004610727565b610282565b34801561022457600080fd5b506101ca61032f565b34801561023957600080fd5b50610117610248366004610727565b61046c565b34801561025957600080fd5b5061011761055a565b34801561026e57600080fd5b50600054610139906001600160a01b031681565b6000546001600160a01b031633146102cd5760405162461bcd60e51b81526020600482015260096024820152682737ba1020b236b4b760b91b60448201526064015b60405180910390fd5b600180546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991015b60405180910390a15050565b6003546000906001600160a01b03163314801561035657506003546001600160a01b031615155b6103b25760405162461bcd60e51b815260206004820152602760248201527f4e6f7420746865204558495354494e472070656e64696e6720696d706c656d65604482015266373a30ba34b7b760c91b60648201526084016102c4565b60028054600380546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a1600354604080516001600160a01b03808516825290921660208301527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d815910160405180910390a160009250505090565b6000546001600160a01b031633146104b25760405162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b60448201526064016102c4565b6104bb81610678565b6105005760405162461bcd60e51b815260206004820152601660248201527524a72b20a624a22fa4a6a82622a6a2a72a20aa24a7a760511b60448201526064016102c4565b600380546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159101610323565b6001546001600160a01b03163314801561057e57506001546001600160a01b031615155b6105ca5760405162461bcd60e51b815260206004820152601e60248201527f4e6f7420746865204558495354494e472070656e64696e672061646d696e000060448201526064016102c4565b60008054600180546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc910160405180910390a1600154604080516001600160a01b03808516825290921660208301527fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99101610323565b60048054604051631e58694360e01b81527f0000000000000000000000000000000000000000000000000000000000000000928101929092526001600160a01b038381166024840152600092911690631e58694390604401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107119190610757565b92915050565b8183823760009101908152919050565b60006020828403121561073957600080fd5b81356001600160a01b038116811461075057600080fd5b9392505050565b60006020828403121561076957600080fd5b8151801515811461075057600080fdfea26469706673582212200d94f443e05d3b01558490e812d61a9db7d111cd3ec9e83654a6806951e0515964736f6c634300081800330000000000000000000000004cf3d61165a6be8ff741320ad27cab57fae5c2070000000000000000000000009582763b2376e25a5a70e45bb28613ccbdd3ef9f
Deployed Bytecode
0x6080604052600436106100955760003560e01c8063b71d1a0c11610059578063b71d1a0c146101f8578063c1e8033414610218578063e992a0411461022d578063e9c714f21461024d578063f851a440146102625761009c565b80632678224714610119578063396f7b23146101565780635c60da1b1461017657806368c63188146101965780637b103999146101d85761009c565b3661009c57005b6002546040516000916001600160a01b0316906100bc9083903690610717565b600060405180830381855af49150503d80600081146100f7576040519150601f19603f3d011682016040523d82523d6000602084013e6100fc565b606091505b505090506040513d6000823e818015610113573d82f35b3d82fd5b005b34801561012557600080fd5b50600154610139906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561016257600080fd5b50600354610139906001600160a01b031681565b34801561018257600080fd5b50600254610139906001600160a01b031681565b3480156101a257600080fd5b506101ca7f3dce49aa7b2562381b9553ec6d9dc264b8c03da67023755db0dac41c1971d94e81565b60405190815260200161014d565b3480156101e457600080fd5b50600454610139906001600160a01b031681565b34801561020457600080fd5b50610117610213366004610727565b610282565b34801561022457600080fd5b506101ca61032f565b34801561023957600080fd5b50610117610248366004610727565b61046c565b34801561025957600080fd5b5061011761055a565b34801561026e57600080fd5b50600054610139906001600160a01b031681565b6000546001600160a01b031633146102cd5760405162461bcd60e51b81526020600482015260096024820152682737ba1020b236b4b760b91b60448201526064015b60405180910390fd5b600180546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991015b60405180910390a15050565b6003546000906001600160a01b03163314801561035657506003546001600160a01b031615155b6103b25760405162461bcd60e51b815260206004820152602760248201527f4e6f7420746865204558495354494e472070656e64696e6720696d706c656d65604482015266373a30ba34b7b760c91b60648201526084016102c4565b60028054600380546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a1600354604080516001600160a01b03808516825290921660208301527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d815910160405180910390a160009250505090565b6000546001600160a01b031633146104b25760405162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b60448201526064016102c4565b6104bb81610678565b6105005760405162461bcd60e51b815260206004820152601660248201527524a72b20a624a22fa4a6a82622a6a2a72a20aa24a7a760511b60448201526064016102c4565b600380546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d8159101610323565b6001546001600160a01b03163314801561057e57506001546001600160a01b031615155b6105ca5760405162461bcd60e51b815260206004820152601e60248201527f4e6f7420746865204558495354494e472070656e64696e672061646d696e000060448201526064016102c4565b60008054600180546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc910160405180910390a1600154604080516001600160a01b03808516825290921660208301527fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a99101610323565b60048054604051631e58694360e01b81527f3dce49aa7b2562381b9553ec6d9dc264b8c03da67023755db0dac41c1971d94e928101929092526001600160a01b038381166024840152600092911690631e58694390604401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107119190610757565b92915050565b8183823760009101908152919050565b60006020828403121561073957600080fd5b81356001600160a01b038116811461075057600080fd5b9392505050565b60006020828403121561076957600080fd5b8151801515811461075057600080fdfea26469706673582212200d94f443e05d3b01558490e812d61a9db7d111cd3ec9e83654a6806951e0515964736f6c63430008180033
[ 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.