S Price: $0.430172 (+0.73%)

Contract

0xf4F00Ec1ABdB951092D6b06E459e7E265f71F938

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deploy Lex Proxi...59210702025-01-30 17:22:0339 days ago1738257723IN
0xf4F00Ec1...65f71F938
0 S0.0642194355
Deploy Lex Proxi...59140392025-01-30 15:58:3439 days ago1738252714IN
0xf4F00Ec1...65f71F938
0 S0.0642200955
Deploy Lex Proxi...54769782025-01-26 16:37:1643 days ago1737909436IN
0xf4F00Ec1...65f71F938
0 S0.0642200955
Deploy Lex Proxi...54765432025-01-26 16:32:0343 days ago1737909123IN
0xf4F00Ec1...65f71F938
0 S0.0642200955
Deploy Lex Proxi...40187872025-01-15 16:25:3454 days ago1736958334IN
0xf4F00Ec1...65f71F938
0 S0.0385320533
Deploy Lex Proxi...39087122025-01-14 19:42:1855 days ago1736883738IN
0xf4F00Ec1...65f71F938
0 S0.0385320533
Deploy Lex Proxi...20209202024-12-30 18:34:3370 days ago1735583673IN
0xf4F00Ec1...65f71F938
0 S0.00128441.1
Deploy Lex Proxi...20203442024-12-30 18:27:0970 days ago1735583229IN
0xf4F00Ec1...65f71F938
0 S0.00128441.1
Deploy Lex Proxi...10231592024-12-21 11:43:5479 days ago1734781434IN
0xf4F00Ec1...65f71F938
0 S0.00128441.1
Deploy Lex Proxi...9307392024-12-20 21:20:5680 days ago1734729656IN
0xf4F00Ec1...65f71F938
0 S0.001340831.1

Parent Transaction Hash Block From To
View All Internal Transactions
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
File 1 of 7 : LexProxiesFactory.sol
// 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));
  }
}

File 2 of 7 : IContractRegistryBase.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.24;

interface IContractRegistryBase {
  function isImplementationValidForProxy(
    bytes32 proxyNameHash,
    address _implementation
  ) external view returns (bool);
}

File 3 of 7 : IGlobalLock.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.24;

interface IGlobalLock {
  function lock() external;
  function freeLock() external;
}

File 4 of 7 : ILynxVersionedContract.sol
// 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);
}

File 5 of 7 : IRegistryV1.sol
// 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);
}

File 6 of 7 : SingleContractDeployerBase.sol
// 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);
}

File 7 of 7 : RegistryBasedProxySingleContractDeployer.sol
// 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);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

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"}]

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


Block Transaction Gas Used Reward
view all blocks ##produced##

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.