Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deploy Lex Proxi... | 5921070 | 39 days ago | IN | 0 S | 0.06421943 | ||||
Deploy Lex Proxi... | 5914039 | 39 days ago | IN | 0 S | 0.06422009 | ||||
Deploy Lex Proxi... | 5476978 | 43 days ago | IN | 0 S | 0.06422009 | ||||
Deploy Lex Proxi... | 5476543 | 43 days ago | IN | 0 S | 0.06422009 | ||||
Deploy Lex Proxi... | 4018787 | 54 days ago | IN | 0 S | 0.03853205 | ||||
Deploy Lex Proxi... | 3908712 | 55 days ago | IN | 0 S | 0.03853205 | ||||
Deploy Lex Proxi... | 2020920 | 70 days ago | IN | 0 S | 0.0012844 | ||||
Deploy Lex Proxi... | 2020344 | 70 days ago | IN | 0 S | 0.0012844 | ||||
Deploy Lex Proxi... | 1023159 | 79 days ago | IN | 0 S | 0.0012844 | ||||
Deploy Lex Proxi... | 930739 | 80 days ago | IN | 0 S | 0.00134083 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
LexProxiesFactory
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 {IRegistryV1} from "../../interfaces/IRegistryV1.sol"; import {ILynxVersionedContract} from "../../interfaces/ILynxVersionedContract.sol"; import {RegistryBasedProxySingleContractDeployer} from "../deployers/registryBasedProxies/RegistryBasedProxySingleContractDeployer.sol"; contract LexProxiesFactory is ILynxVersionedContract { // ***** Events ***** event ApprovedCallerSet(address indexed caller, bool indexed isApproved); event LexProxyContractsDeployed( address indexed asset, address indexed caller, address lexPoolProxy, address poolAccountantProxy ); // ***** Structs ***** struct LexProxyContractsStruct { address lexPoolProxy; address poolAccountantProxy; } // ***** Constants (ILynxVersionedContract interface) ***** string public constant CONTRACT_NAME = "LexProxiesFactory"; string public constant CONTRACT_VERSION = "100"; // 0.10 // ***** Immutable ***** string public constant LEX_PROXIES_DEPLOYER_ROLE_KEY = "LEX_PROXIES_DEPLOYER_ROLE"; /** * @notice System Registry */ address public immutable registry; address public immutable lexPoolProxyDeployer; address public immutable poolAccountantProxyDeployer; // ***** Storage ***** mapping(address => LexProxyContractsStruct) public lexContractsForAsset; address[] public allAssetsDeployedFor; // ***** Views (ILynxVersionedContract interface) ***** function getContractName() external pure override returns (string memory) { return CONTRACT_NAME; } function getContractVersion() external pure override returns (string memory) { return CONTRACT_VERSION; } // ***** Views ***** function getLexProxyContractsForChip( address _asset ) public view returns (LexProxyContractsStruct memory) { return lexContractsForAsset[_asset]; } function getAllAssetsDeployedFor() public view returns (address[] memory) { return allAssetsDeployedFor; } // ***** Constructor ***** constructor( address _registry, address _lexPoolProxyDeployer, address _poolAccountantProxyDeployer ) { // Sanity validateProxyDeployerContract( _registry, _lexPoolProxyDeployer, "LexPoolProxy" ); validateProxyDeployerContract( _registry, _poolAccountantProxyDeployer, "PoolAccountantProxy" ); // Immutables registry = _registry; lexPoolProxyDeployer = _lexPoolProxyDeployer; poolAccountantProxyDeployer = _poolAccountantProxyDeployer; } // ***** Deployment functions ***** function deployLexProxiesForAsset( address _asset, address _initialAdmin ) public returns (LexProxyContractsStruct memory) { address lexProxiedDeployerRole = IRegistryV1(registry) .getDynamicRoleAddress(LEX_PROXIES_DEPLOYER_ROLE_KEY); require(msg.sender == lexProxiedDeployerRole, "NOT_AUTHORIZED_DEPLOYER"); // Sanity require( lexContractsForAsset[_asset].lexPoolProxy == address(0), "ALREADY_DEPLOYED_FOR_ASSET" ); // Deploy the Lex Proxies address freshLexPoolProxy = RegistryBasedProxySingleContractDeployer( lexPoolProxyDeployer ).deployRegistryProxy(_initialAdmin); address freshPoolAccountantProxy = RegistryBasedProxySingleContractDeployer( poolAccountantProxyDeployer ).deployRegistryProxy(_initialAdmin); // Store the Lex Proxies LexProxyContractsStruct memory lexProxies = LexProxyContractsStruct( freshLexPoolProxy, freshPoolAccountantProxy ); lexContractsForAsset[_asset] = lexProxies; // Add to all assets array allAssetsDeployedFor.push(_asset); // Emit event emit LexProxyContractsDeployed( _asset, msg.sender, freshLexPoolProxy, freshPoolAccountantProxy ); return lexProxies; } // ***** Utils ***** /** * @notice validates the deployer contract is the one we expect */ function validateProxyDeployerContract( address _ownRegistry, address _deployerContract, string memory expectedName ) internal { // Sanity -- Ensure the deployer is connected to the same registry require( _ownRegistry == RegistryBasedProxySingleContractDeployer(_deployerContract).registry(), "REGISTRY_MISMATCH" ); // Sanity -- Ensure the deployer deploys what we expect string memory deployedContractName = RegistryBasedProxySingleContractDeployer( _deployerContract ).DEPLOYED_CONTRACT_NAME(); require( compareStrings(deployedContractName, expectedName), "WRONG_DEPLOYER_CONTRACT" ); } /** * @notice Util function for string comparison */ function compareStrings( string memory a, string memory b ) public pure returns (bool) { return keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)); } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; interface IContractRegistryBase { function isImplementationValidForProxy( bytes32 proxyNameHash, address _implementation ) external view returns (bool); }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; interface IGlobalLock { function lock() external; function freeLock() external; }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; interface ILynxVersionedContract { /** * @notice Returns the name of the contract */ function getContractName() external view returns (string memory); /** * @notice Returns the version of the contract * @dev units are scaled by 1000 (1,000 = 1.00, 1,120 = 1.12) */ function getContractVersion() external view returns (string memory); }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; import "../../AdministrationContracts/IContractRegistryBase.sol"; import "./IGlobalLock.sol"; interface IRegistryV1Functionality is IContractRegistryBase, IGlobalLock { // **** Locking mechanism **** function isTradersPortalAndLocker( address _address ) external view returns (bool); function isTriggersAndLocker(address _address) external view returns (bool); function isTradersPortalOrTriggersAndLocker( address _address ) external view returns (bool); } interface IRegistryV1 is IRegistryV1Functionality { // **** Public Storage params **** function feesManagers(address asset) external view returns (address); function orderBook() external view returns (address); function tradersPortal() external view returns (address); function triggers() external view returns (address); function tradeIntentsVerifier() external view returns (address); function liquidityIntentsVerifier() external view returns (address); function chipsIntentsVerifier() external view returns (address); function lexProxiesFactory() external view returns (address); function chipsFactory() external view returns (address); /** * @return An array of all supported trading floors */ function getAllSupportedTradingFloors() external view returns (address[] memory); /** * @return An array of all supported settlement assets */ function getSettlementAssetsForTradingFloor( address _tradingFloor ) external view returns (address[] memory); /** * @return The spender role address that is set for this chip */ function getValidSpenderTargetForChipByRole( address chip, string calldata role ) external view returns (address); /** * @return the address of the valid 'burnHandler' for the chip */ function validBurnHandlerForChip( address chip ) external view returns (address); /** * @return The address matching for the given role */ function getDynamicRoleAddress( string calldata _role ) external view returns (address); }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; import {ILynxVersionedContract} from "../../../interfaces/ILynxVersionedContract.sol"; abstract contract SingleContractDeployerBase is ILynxVersionedContract { // ***** Events ***** event FactoryRoleSet( address indexed previousFactoryRole, address indexed newFactoryRole ); event ContractDeployed(address indexed newContract); // ***** Immutable ***** // For readability only, should not use this value for on-chain logic string public DEPLOYED_CONTRACT_NAME; string public DEPLOYED_CONTRACT_VERSION; // ***** Storage ***** address[] public allDeployedContracts; // contract address => was deployed by this contract mapping(address => bool) public wasDeployedFromHere; // ***** Modifiers ***** modifier onlyFactoryRole() { require(msg.sender == getFactoryRole(), "NOT_FACTORY_ROLE"); _; } // ***** Views ***** function getDeployedContractName() external view returns (string memory) { return DEPLOYED_CONTRACT_NAME; } function getAllDeployedContractsAddresses() external view returns (address[] memory) { return allDeployedContracts; } // ***** Public Virtual Views ***** function getFactoryRole() public virtual returns (address); // ***** Constructor ***** constructor( string memory _deployedContractName, string memory _deployedContractVersion ) { DEPLOYED_CONTRACT_NAME = _deployedContractName; DEPLOYED_CONTRACT_VERSION = _deployedContractVersion; } // ***** Deployer Functions ***** function deploySingleContract( bytes calldata payload ) public onlyFactoryRole returns (address) { address deployedContract = deploySingleContractInternal(payload); onContractDeployed(deployedContract); return deployedContract; } // ***** Internal Functions ***** function onContractDeployed(address _deployedContract) internal { // Sanity require(!wasDeployedFromHere[_deployedContract], "HANDLER_ALREADY_CALLED"); // State allDeployedContracts.push(_deployedContract); wasDeployedFromHere[_deployedContract] = true; // Events emit ContractDeployed(_deployedContract); } // ***** Internal Virtual Functions ***** function deploySingleContractInternal( bytes calldata payload ) internal virtual returns (address); }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.24; import {SingleContractDeployerBase} from "../baseContracts/SingleContractDeployerBase.sol"; abstract contract RegistryBasedProxySingleContractDeployer is SingleContractDeployerBase { // ***** Storage ***** /** * @notice System Registry */ address public immutable registry; // ***** Constructor ***** constructor( address _registry, string memory _deployedContractName, string memory _deployedContractVersion ) SingleContractDeployerBase(_deployedContractName, _deployedContractVersion) { registry = _registry; } // ***** Deployment functions ***** /** * @notice Specific deploy function */ function deployRegistryProxy( address _initialAdmin ) external onlyFactoryRole returns (address) { address deployedContract = deployRegistryProxyInternal(_initialAdmin); // Call base hook onContractDeployed(deployedContract); return deployedContract; } // ***** Internal override functions ***** /** * @notice Implements the 'SingleContractDeployerBase' generic deploy function */ function deploySingleContractInternal( bytes calldata payload ) internal override returns (address) { // Check payload length - address is exactly 32 bytes with encodePacked require(payload.length == 32, "INVALID_PAYLOAD_LENGTH"); // Convert bytes to address address initialAdminParam = abi.decode(payload, (address)); require(initialAdminParam != address(0), "INVALID_INITIAL_ADMIN"); // Continue in the specific deployment function return deployRegistryProxyInternal(initialAdminParam); } // ***** Internal virtual functions ***** /** * @notice Virtual function to allow deployment of a specific Registry Proxy */ function deployRegistryProxyInternal( address _initialAdmin ) internal virtual returns (address); }
{ "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
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_lexPoolProxyDeployer","type":"address"},{"internalType":"address","name":"_poolAccountantProxyDeployer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"bool","name":"isApproved","type":"bool"}],"name":"ApprovedCallerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"lexPoolProxy","type":"address"},{"indexed":false,"internalType":"address","name":"poolAccountantProxy","type":"address"}],"name":"LexProxyContractsDeployed","type":"event"},{"inputs":[],"name":"CONTRACT_NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CONTRACT_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEX_PROXIES_DEPLOYER_ROLE_KEY","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allAssetsDeployedFor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"a","type":"string"},{"internalType":"string","name":"b","type":"string"}],"name":"compareStrings","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_initialAdmin","type":"address"}],"name":"deployLexProxiesForAsset","outputs":[{"components":[{"internalType":"address","name":"lexPoolProxy","type":"address"},{"internalType":"address","name":"poolAccountantProxy","type":"address"}],"internalType":"struct LexProxiesFactory.LexProxyContractsStruct","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllAssetsDeployedFor","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getContractVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_asset","type":"address"}],"name":"getLexProxyContractsForChip","outputs":[{"components":[{"internalType":"address","name":"lexPoolProxy","type":"address"},{"internalType":"address","name":"poolAccountantProxy","type":"address"}],"internalType":"struct LexProxiesFactory.LexProxyContractsStruct","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lexContractsForAsset","outputs":[{"internalType":"address","name":"lexPoolProxy","type":"address"},{"internalType":"address","name":"poolAccountantProxy","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lexPoolProxyDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolAccountantProxyDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60e06040523480156200001157600080fd5b5060405162000f5038038062000f508339810160408190526200003491620002d7565b6200006b83836040518060400160405280600c81526020016b4c6578506f6f6c50726f787960a01b815250620000d160201b60201c565b620000b383826040518060400160405280601381526020017f506f6f6c4163636f756e74616e7450726f787900000000000000000000000000815250620000d160201b60201c565b6001600160a01b0392831660805290821660a0521660c05262000458565b816001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000110573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000136919062000321565b6001600160a01b0316836001600160a01b031614620001905760405162461bcd60e51b81526020600482015260116024820152700a48a8e92a6a8a4b2be9a92a69a82a8869607b1b60448201526064015b60405180910390fd5b6000826001600160a01b031663b04212c36040518163ffffffff1660e01b8152600401600060405180830381865afa158015620001d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620001fb919081019062000382565b90506200020981836200025d565b620002575760405162461bcd60e51b815260206004820152601760248201527f57524f4e475f4445504c4f5945525f434f4e5452414354000000000000000000604482015260640162000187565b50505050565b6000816040516020016200027291906200043a565b60405160208183030381529060405280519060200120836040516020016200029b91906200043a565b6040516020818303038152906040528051906020012014905092915050565b80516001600160a01b0381168114620002d257600080fd5b919050565b600080600060608486031215620002ed57600080fd5b620002f884620002ba565b92506200030860208501620002ba565b91506200031860408501620002ba565b90509250925092565b6000602082840312156200033457600080fd5b6200033f82620002ba565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003795781810151838201526020016200035f565b50506000910152565b6000602082840312156200039557600080fd5b81516001600160401b0380821115620003ad57600080fd5b818401915084601f830112620003c257600080fd5b815181811115620003d757620003d762000346565b604051601f8201601f19908116603f0116810190838211818310171562000402576200040262000346565b816040528281528760208487010111156200041c57600080fd5b6200042f8360208301602088016200035c565b979650505050505050565b600082516200044e8184602087016200035c565b9190910192915050565b60805160a05160c051610ab36200049d6000396000818161020e015261064601526000818161016601526105b20152600081816102bb01526104550152610ab36000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636eb4cc801161008c5780638aa10435116100665780638aa10435146102f0578063be8db40d1461030f578063bed34bba14610347578063f5f5ba721461036a57600080fd5b80636eb4cc80146102605780637b103999146102b657806388b2fc7d146102dd57600080fd5b806338b90333116100c857806338b90333146101a057806342284cf7146101cf57806348fec04514610209578063614d08f81461023057600080fd5b8063047deb50146100ef5780630ba9182a1461010d5780630f81729d14610161575b600080fd5b6100f7610397565b604051610104919061080b565b60405180910390f35b61014161011b366004610870565b600060208190529081526040902080546001909101546001600160a01b03918216911682565b604080516001600160a01b03938416815292909116602083015201610104565b6101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610104565b6101c26040518060400160405280600381526020016203130360ec1b81525081565b60405161010491906108b8565b6101e26101dd3660046108eb565b6103f9565b6040805182516001600160a01b039081168252602093840151169281019290925201610104565b6101887f000000000000000000000000000000000000000000000000000000000000000081565b6101c2604051806040016040528060118152602001704c657850726f78696573466163746f727960781b81525081565b6101e261026e366004610870565b604080518082018252600080825260209182018190526001600160a01b0393841681528082528290208251808401909352805484168352600101549092169181019190915290565b6101887f000000000000000000000000000000000000000000000000000000000000000081565b6101886102eb366004610924565b610788565b60408051808201909152600381526203130360ec1b60208201526101c2565b6101c2604051806040016040528060198152602001784c45585f50524f584945535f4445504c4f5945525f524f4c4560381b81525081565b61035a6103553660046109e0565b6107b2565b6040519015158152602001610104565b6040805180820190915260118152704c657850726f78696573466163746f727960781b60208201526101c2565b606060018054806020026020016040519081016040528092919081815260200182805480156103ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103d1575b5050505050905090565b604080518082019091526000808252602082015260408051808201825260198152784c45585f50524f584945535f4445504c4f5945525f524f4c4560381b60208201529051632c652ce760e11b81526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916358ca59ce91610488916004016108b8565b602060405180830381865afa1580156104a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c99190610a44565b9050336001600160a01b038216146105285760405162461bcd60e51b815260206004820152601760248201527f4e4f545f415554484f52495a45445f4445504c4f59455200000000000000000060448201526064015b60405180910390fd5b6001600160a01b0384811660009081526020819052604090205416156105905760405162461bcd60e51b815260206004820152601a60248201527f414c52454144595f4445504c4f5945445f464f525f4153534554000000000000604482015260640161051f565b604051633826aa1d60e11b81526001600160a01b0384811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063704d543a906024016020604051808303816000875af11580156105fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106219190610a44565b604051633826aa1d60e11b81526001600160a01b0386811660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063704d543a906024016020604051808303816000875af115801561068f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b39190610a44565b6040805180820182526001600160a01b0385811680835284821660208085018281528d85166000818152808452888120885181549089166001600160a01b03199182161782559351600191820180549190991690851617909755865480880188559690527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69095018054909116851790558551928352820152939450909233927fbbb548d9546d9a49b0fcc3424dba2480c9061500fb30bda56ad0a01550dd53f6910160405180910390a39695505050505050565b6001818154811061079857600080fd5b6000918252602090912001546001600160a01b0316905081565b6000816040516020016107c59190610a61565b60405160208183030381529060405280519060200120836040516020016107ec9190610a61565b6040516020818303038152906040528051906020012014905092915050565b6020808252825182820181905260009190848201906040850190845b8181101561084c5783516001600160a01b031683529284019291840191600101610827565b50909695505050505050565b6001600160a01b038116811461086d57600080fd5b50565b60006020828403121561088257600080fd5b813561088d81610858565b9392505050565b60005b838110156108af578181015183820152602001610897565b50506000910152565b60208152600082518060208401526108d7816040850160208701610894565b601f01601f19169190910160400192915050565b600080604083850312156108fe57600080fd5b823561090981610858565b9150602083013561091981610858565b809150509250929050565b60006020828403121561093657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261096457600080fd5b813567ffffffffffffffff8082111561097f5761097f61093d565b604051601f8301601f19908116603f011681019082821181831017156109a7576109a761093d565b816040528381528660208588010111156109c057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156109f357600080fd5b823567ffffffffffffffff80821115610a0b57600080fd5b610a1786838701610953565b93506020850135915080821115610a2d57600080fd5b50610a3a85828601610953565b9150509250929050565b600060208284031215610a5657600080fd5b815161088d81610858565b60008251610a73818460208701610894565b919091019291505056fea26469706673582212207b91babdae89f9153d3622291b6e8ed1c8f5b20c7511ecb94232e3c58ce8c35b64736f6c634300081800330000000000000000000000004cf3d61165a6be8ff741320ad27cab57fae5c207000000000000000000000000978c032a210240c47b107e20eac61a5c9f9b53b1000000000000000000000000f3fee048fea99e110fd84a34b580acb87738eb5d
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636eb4cc801161008c5780638aa10435116100665780638aa10435146102f0578063be8db40d1461030f578063bed34bba14610347578063f5f5ba721461036a57600080fd5b80636eb4cc80146102605780637b103999146102b657806388b2fc7d146102dd57600080fd5b806338b90333116100c857806338b90333146101a057806342284cf7146101cf57806348fec04514610209578063614d08f81461023057600080fd5b8063047deb50146100ef5780630ba9182a1461010d5780630f81729d14610161575b600080fd5b6100f7610397565b604051610104919061080b565b60405180910390f35b61014161011b366004610870565b600060208190529081526040902080546001909101546001600160a01b03918216911682565b604080516001600160a01b03938416815292909116602083015201610104565b6101887f000000000000000000000000978c032a210240c47b107e20eac61a5c9f9b53b181565b6040516001600160a01b039091168152602001610104565b6101c26040518060400160405280600381526020016203130360ec1b81525081565b60405161010491906108b8565b6101e26101dd3660046108eb565b6103f9565b6040805182516001600160a01b039081168252602093840151169281019290925201610104565b6101887f000000000000000000000000f3fee048fea99e110fd84a34b580acb87738eb5d81565b6101c2604051806040016040528060118152602001704c657850726f78696573466163746f727960781b81525081565b6101e261026e366004610870565b604080518082018252600080825260209182018190526001600160a01b0393841681528082528290208251808401909352805484168352600101549092169181019190915290565b6101887f0000000000000000000000004cf3d61165a6be8ff741320ad27cab57fae5c20781565b6101886102eb366004610924565b610788565b60408051808201909152600381526203130360ec1b60208201526101c2565b6101c2604051806040016040528060198152602001784c45585f50524f584945535f4445504c4f5945525f524f4c4560381b81525081565b61035a6103553660046109e0565b6107b2565b6040519015158152602001610104565b6040805180820190915260118152704c657850726f78696573466163746f727960781b60208201526101c2565b606060018054806020026020016040519081016040528092919081815260200182805480156103ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103d1575b5050505050905090565b604080518082019091526000808252602082015260408051808201825260198152784c45585f50524f584945535f4445504c4f5945525f524f4c4560381b60208201529051632c652ce760e11b81526000916001600160a01b037f0000000000000000000000004cf3d61165a6be8ff741320ad27cab57fae5c20716916358ca59ce91610488916004016108b8565b602060405180830381865afa1580156104a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c99190610a44565b9050336001600160a01b038216146105285760405162461bcd60e51b815260206004820152601760248201527f4e4f545f415554484f52495a45445f4445504c4f59455200000000000000000060448201526064015b60405180910390fd5b6001600160a01b0384811660009081526020819052604090205416156105905760405162461bcd60e51b815260206004820152601a60248201527f414c52454144595f4445504c4f5945445f464f525f4153534554000000000000604482015260640161051f565b604051633826aa1d60e11b81526001600160a01b0384811660048301526000917f000000000000000000000000978c032a210240c47b107e20eac61a5c9f9b53b19091169063704d543a906024016020604051808303816000875af11580156105fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106219190610a44565b604051633826aa1d60e11b81526001600160a01b0386811660048301529192506000917f000000000000000000000000f3fee048fea99e110fd84a34b580acb87738eb5d169063704d543a906024016020604051808303816000875af115801561068f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b39190610a44565b6040805180820182526001600160a01b0385811680835284821660208085018281528d85166000818152808452888120885181549089166001600160a01b03199182161782559351600191820180549190991690851617909755865480880188559690527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69095018054909116851790558551928352820152939450909233927fbbb548d9546d9a49b0fcc3424dba2480c9061500fb30bda56ad0a01550dd53f6910160405180910390a39695505050505050565b6001818154811061079857600080fd5b6000918252602090912001546001600160a01b0316905081565b6000816040516020016107c59190610a61565b60405160208183030381529060405280519060200120836040516020016107ec9190610a61565b6040516020818303038152906040528051906020012014905092915050565b6020808252825182820181905260009190848201906040850190845b8181101561084c5783516001600160a01b031683529284019291840191600101610827565b50909695505050505050565b6001600160a01b038116811461086d57600080fd5b50565b60006020828403121561088257600080fd5b813561088d81610858565b9392505050565b60005b838110156108af578181015183820152602001610897565b50506000910152565b60208152600082518060208401526108d7816040850160208701610894565b601f01601f19169190910160400192915050565b600080604083850312156108fe57600080fd5b823561090981610858565b9150602083013561091981610858565b809150509250929050565b60006020828403121561093657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261096457600080fd5b813567ffffffffffffffff8082111561097f5761097f61093d565b604051601f8301601f19908116603f011681019082821181831017156109a7576109a761093d565b816040528381528660208588010111156109c057600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156109f357600080fd5b823567ffffffffffffffff80821115610a0b57600080fd5b610a1786838701610953565b93506020850135915080821115610a2d57600080fd5b50610a3a85828601610953565b9150509250929050565b600060208284031215610a5657600080fd5b815161088d81610858565b60008251610a73818460208701610894565b919091019291505056fea26469706673582212207b91babdae89f9153d3622291b6e8ed1c8f5b20c7511ecb94232e3c58ce8c35b64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004cf3d61165a6be8ff741320ad27cab57fae5c207000000000000000000000000978c032a210240c47b107e20eac61a5c9f9b53b1000000000000000000000000f3fee048fea99e110fd84a34b580acb87738eb5d
-----Decoded View---------------
Arg [0] : _registry (address): 0x4CF3d61165a6Be8FF741320ad27Cab57faE5c207
Arg [1] : _lexPoolProxyDeployer (address): 0x978C032A210240c47B107e20eAc61A5C9f9b53b1
Arg [2] : _poolAccountantProxyDeployer (address): 0xf3FeE048FEa99E110fd84a34B580ACB87738EB5d
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000004cf3d61165a6be8ff741320ad27cab57fae5c207
Arg [1] : 000000000000000000000000978c032a210240c47b107e20eac61a5c9f9b53b1
Arg [2] : 000000000000000000000000f3fee048fea99e110fd84a34b580acb87738eb5d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.