AVAX Price: $19.93 (-0.28%)
Gas: 1.2 nAVAX
 

Overview

AVAX Balance

Avalanche C-Chain LogoAvalanche C-Chain LogoAvalanche C-Chain Logo7.683276904178738626 AVAX

AVAX Value

$153.16 (@ $19.93/AVAX)

Multichain Info

Transaction Hash
Method
Block
From
To
Claim607074712025-04-22 2:20:3536 mins ago1745288435IN
0x0efC8Ef8...5Bcc1fA90
0.00314828 AVAX0.000398970.13062654
Claim607054492025-04-22 1:32:121 hr ago1745285532IN
0x0efC8Ef8...5Bcc1fA90
0.02102791 AVAX0.00021380.10688178
Compound607045982025-04-22 1:12:381 hr ago1745284358IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.003880881.12
Claim606939612025-04-21 20:38:406 hrs ago1745267920IN
0x0efC8Ef8...5Bcc1fA90
0.00329276 AVAX0.000901591.60782553
Claim606939352025-04-21 20:38:026 hrs ago1745267882IN
0x0efC8Ef8...5Bcc1fA90
0.00434043 AVAX0.000901531.60772576
Migrate Nodes606869662025-04-21 17:52:259 hrs ago1745257945IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.002357881.60623468
Claim606850172025-04-21 17:05:119 hrs ago1745255111IN
0x0efC8Ef8...5Bcc1fA90
0.00370933 AVAX0.025173827.28922333
Claim606850062025-04-21 17:05:009 hrs ago1745255100IN
0x0efC8Ef8...5Bcc1fA90
0.00374763 AVAX0.024688777.0610445
Claim606850032025-04-21 17:04:539 hrs ago1745255093IN
0x0efC8Ef8...5Bcc1fA90
0.00376798 AVAX0.02097897.17729183
Claim606850012025-04-21 17:04:499 hrs ago1745255089IN
0x0efC8Ef8...5Bcc1fA90
0.00378299 AVAX0.008643417.24453884
Claim606849982025-04-21 17:04:449 hrs ago1745255084IN
0x0efC8Ef8...5Bcc1fA90
0.00379165 AVAX0.005813857.19860397
Claim606849932025-04-21 17:04:399 hrs ago1745255079IN
0x0efC8Ef8...5Bcc1fA90
0.00380636 AVAX0.021924997.13521596
Claim606849902025-04-21 17:04:369 hrs ago1745255076IN
0x0efC8Ef8...5Bcc1fA90
0.00382254 AVAX0.019784266.9470098
Claim606849862025-04-21 17:04:329 hrs ago1745255072IN
0x0efC8Ef8...5Bcc1fA90
0.00383601 AVAX0.011029786.70672738
Claim606849822025-04-21 17:04:289 hrs ago1745255068IN
0x0efC8Ef8...5Bcc1fA90
0.00385996 AVAX0.013868616.81368304
Claim606849792025-04-21 17:04:219 hrs ago1745255061IN
0x0efC8Ef8...5Bcc1fA90
0.00390535 AVAX0.023252666.86692367
Claim606849752025-04-21 17:04:169 hrs ago1745255056IN
0x0efC8Ef8...5Bcc1fA90
0.00391923 AVAX0.031598846.78448677
Claim606849682025-04-21 17:04:089 hrs ago1745255048IN
0x0efC8Ef8...5Bcc1fA90
0.0040007 AVAX0.033570526.96628681
Claim606849662025-04-21 17:04:029 hrs ago1745255042IN
0x0efC8Ef8...5Bcc1fA90
0.00402652 AVAX0.005619896.95845643
Claim606849602025-04-21 17:03:569 hrs ago1745255036IN
0x0efC8Ef8...5Bcc1fA90
0.0041015 AVAX0.003415056.85852431
Claim606849562025-04-21 17:03:519 hrs ago1745255031IN
0x0efC8Ef8...5Bcc1fA90
0.00417084 AVAX0.01886986.95616036
Claim606849512025-04-21 17:03:429 hrs ago1745255022IN
0x0efC8Ef8...5Bcc1fA90
0.00422874 AVAX0.012055186.9559617
Claim606849482025-04-21 17:03:369 hrs ago1745255016IN
0x0efC8Ef8...5Bcc1fA90
0.00425463 AVAX0.022334337.01069588
Claim606849442025-04-21 17:03:289 hrs ago1745255008IN
0x0efC8Ef8...5Bcc1fA90
0.00429196 AVAX0.020677196.65505883
Claim606849412025-04-21 17:03:259 hrs ago1745255005IN
0x0efC8Ef8...5Bcc1fA90
0.00432193 AVAX0.008422696.70754492
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
607074712025-04-22 2:20:3536 mins ago1745288435
0x0efC8Ef8...5Bcc1fA90
0.00314828 AVAX
607054492025-04-22 1:32:121 hr ago1745285532
0x0efC8Ef8...5Bcc1fA90
0.02102791 AVAX
606939612025-04-21 20:38:406 hrs ago1745267920
0x0efC8Ef8...5Bcc1fA90
0.00329276 AVAX
606939352025-04-21 20:38:026 hrs ago1745267882
0x0efC8Ef8...5Bcc1fA90
0.00434043 AVAX
606850172025-04-21 17:05:119 hrs ago1745255111
0x0efC8Ef8...5Bcc1fA90
0.00370933 AVAX
606850062025-04-21 17:05:009 hrs ago1745255100
0x0efC8Ef8...5Bcc1fA90
0.00374763 AVAX
606850032025-04-21 17:04:539 hrs ago1745255093
0x0efC8Ef8...5Bcc1fA90
0.00376798 AVAX
606850012025-04-21 17:04:499 hrs ago1745255089
0x0efC8Ef8...5Bcc1fA90
0.00378299 AVAX
606849982025-04-21 17:04:449 hrs ago1745255084
0x0efC8Ef8...5Bcc1fA90
0.00379165 AVAX
606849932025-04-21 17:04:399 hrs ago1745255079
0x0efC8Ef8...5Bcc1fA90
0.00380636 AVAX
606849902025-04-21 17:04:369 hrs ago1745255076
0x0efC8Ef8...5Bcc1fA90
0.00382254 AVAX
606849862025-04-21 17:04:329 hrs ago1745255072
0x0efC8Ef8...5Bcc1fA90
0.00383601 AVAX
606849822025-04-21 17:04:289 hrs ago1745255068
0x0efC8Ef8...5Bcc1fA90
0.00385996 AVAX
606849792025-04-21 17:04:219 hrs ago1745255061
0x0efC8Ef8...5Bcc1fA90
0.00390535 AVAX
606849752025-04-21 17:04:169 hrs ago1745255056
0x0efC8Ef8...5Bcc1fA90
0.00391923 AVAX
606849682025-04-21 17:04:089 hrs ago1745255048
0x0efC8Ef8...5Bcc1fA90
0.0040007 AVAX
606849662025-04-21 17:04:029 hrs ago1745255042
0x0efC8Ef8...5Bcc1fA90
0.00402652 AVAX
606849602025-04-21 17:03:569 hrs ago1745255036
0x0efC8Ef8...5Bcc1fA90
0.0041015 AVAX
606849562025-04-21 17:03:519 hrs ago1745255031
0x0efC8Ef8...5Bcc1fA90
0.00417084 AVAX
606849512025-04-21 17:03:429 hrs ago1745255022
0x0efC8Ef8...5Bcc1fA90
0.00422874 AVAX
606849482025-04-21 17:03:369 hrs ago1745255016
0x0efC8Ef8...5Bcc1fA90
0.00425463 AVAX
606849442025-04-21 17:03:289 hrs ago1745255008
0x0efC8Ef8...5Bcc1fA90
0.00429196 AVAX
606849412025-04-21 17:03:259 hrs ago1745255005
0x0efC8Ef8...5Bcc1fA90
0.00432193 AVAX
606849392025-04-21 17:03:239 hrs ago1745255003
0x0efC8Ef8...5Bcc1fA90
0.0043521 AVAX
606849352025-04-21 17:03:149 hrs ago1745254994
0x0efC8Ef8...5Bcc1fA90
0.00440273 AVAX
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VaporNodesDiamond

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : VaporNodesDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "clouds/contracts/interfaces/IDiamondCut.sol";
import "clouds/contracts/LDiamond.sol";
import "./libraries/AppStorage.sol";

error VaporNodesDiamond__InvalidFunction();

/// @title VaporNodesDiamond
/// @author Modified from Nick Mudge: https://github.com/mudgen/diamond-3-hardhat
/// @notice Main contract of the diamond
/// @dev Utilizes 'IDiamondCut', 'LDiamond' and 'AppStorage'
contract VaporNodesDiamond {
    ///////////////////
    /// APP STORAGE ///
    ///////////////////

    AppStorage s;

    /////////////
    /// LOGIC ///
    /////////////

    constructor(address _owner, address _diamondCutFacet) payable {
        LDiamond.updateContractOwner(_owner);

        IDiamondCut.FacetCut[] memory cut = new IDiamondCut.FacetCut[](1);

        bytes4[] memory functionSelectors = new bytes4[](1);

        functionSelectors[0] = IDiamondCut.diamondCut.selector;
        cut[0] = IDiamondCut.FacetCut({
            facetAddress: _diamondCutFacet,
            action: IDiamondCut.FacetCutAction.Add,
            functionSelectors: functionSelectors
        });

        LDiamond.diamondCut(cut, address(0), "");

        s.deployedAt = block.timestamp;
    }

    fallback() external payable {
        LDiamond.DiamondStorage storage ds;

        bytes32 position = LDiamond.DIAMOND_STORAGE_POSITION;

        assembly {
            ds.slot := position
        }

        address facet = ds.selectorToFacetAndPosition[msg.sig].facetAddress;

        if (facet == address(0)) revert VaporNodesDiamond__InvalidFunction();

        assembly {
            calldatacopy(0, 0, calldatasize())

            let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0)

            returndatacopy(0, 0, returndatasize())

            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    receive() external payable {}
}

File 2 of 4 : AppStorage.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

////////////
/// NODE ///
////////////

struct Node {
    string name;
    ///
    uint256 creation;
    uint256 lastClaimTime;
    ///
    uint256 amount;
    uint256 rewardPaid;
    ///
    bool active;
}

///////////////
/// ROYALTY ///
///////////////

struct RoyaltyInfo {
    address recipient;
    uint256 bps;
}

////////////
/// MATH ///
////////////

enum Rounding {
    Down,
    Up,
    Zero
}

///////////////////
/// APP STORAGE ///
///////////////////

struct AppStorage {
    ////////////////////
    /// AUTHORIZABLE ///
    ////////////////////
    mapping(address => bool) authorized;
    ////////////////
    /// PAUSABLE ///
    ////////////////
    bool paused;
    ///////////////
    /// REWARDS ///
    ///////////////
    uint256 accumulatedRewardPerShare;
    uint256 ACCUMULATED_REWARD_PER_SHARE_PRECISION;
    uint256 lastRewardBalance;
    ///////////////
    /// GENERAL ///
    ///////////////
    address vpnd;
    address wavax;
    address stratosphere;
    address rewardsPool;
    address nodeStorage;
    address treasury;
    address referralController;
    ///
    uint256 deployedAt;
    uint256 tvl;
    uint256 balance; // TODO: Do we need this? Seems duplicated of 'lastRewardBalance'
    uint256 dailyReception;
    uint256 txCounter;
    mapping(uint256 => uint256) balances;
    mapping(uint256 => uint256) dailyReceptions;
    /////////////
    /// NODES ///
    /////////////
    uint256 minNodeAmount;
    uint256 maxNodesPerWallet;
    mapping(uint256 => Node) nodeByTokenId;
    /////////////////
    /// MIGRATION ///
    /////////////////
    uint256 totalNodesCreated;
    uint256 totalNodesMigrated;
    mapping(address => bool) alreadyMigrated;
    /////////////
    /// TAXES ///
    /////////////
    uint256 claimFee;
    uint256 compoundFee;
    uint256 depositFee;
    uint256 quoteSlippagePct;
    address dexRouter;
    //////////////
    /// ERC721 ///
    //////////////
    string baseURI;
    string name;
    string symbol;
    bool isTransferable;
    mapping(address => uint256) tokenBalances;
    mapping(uint256 => address) tokenOwners;
    mapping(uint256 => address) tokenApprovals;
    mapping(address => mapping(address => bool)) operatorApprovals;
    /////////////////////////
    /// ERC721 ENUMERABLE ///
    /////////////////////////
    mapping(address => mapping(uint256 => uint256)) ownedTokens;
    mapping(uint256 => uint256) ownedTokensIndex;
    uint256[] allTokens;
    mapping(uint256 => uint256) allTokensIndex;
    /////////////////
    /// ROYALTIES ///
    /////////////////
    address royaltyRecipient;
    uint16 royaltyBps;
    mapping(uint256 => RoyaltyInfo) royaltyInfoForToken;
}

File 3 of 4 : LDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "./interfaces/IDiamondCut.sol";

error IDiamondCut__AddressMustBeZero();
error IDiamondCut__FunctionAlreadyExists();
error IDiamondCut__ImmutableFunction();
error IDiamondCut__IncorrectAction();
error IDiamondCut__InexistentFacetCode();
error IDiamondCut__InexistentFunction();
error IDiamondCut__InvalidAddressZero();
error IDiamondCut__InvalidReplacementWithSameFunction();
error IDiamondCut__NoSelectors();

error LDiamond__InitializationFailed(
  address _initializationContractAddress,
  bytes _data
);
error LDiamond__OnlyOwner();

/// @title LDiamond
/// @author mektigboy
/// @author Modified from Nick Mudge: https://github.com/mudgen/diamond-3-hardhat
/// @notice Diamond library
/// @dev EIP-2535 "Diamond" standard
library LDiamond {
  //////////////
  /// EVENTS ///
  //////////////

  event DiamondCut(IDiamondCut.FacetCut[] _cut, address _init, bytes _data);

  event OwnershipTransferred(
    address indexed pastOwner,
    address indexed newOwner
  );

  ///////////////
  /// STORAGE ///
  ///////////////

  bytes32 constant DIAMOND_STORAGE_POSITION =
    keccak256("diamond.standard.diamond.storage");

  struct FacetAddressAndPosition {
    /// @notice Facet address
    address facetAddress;
    /// @notice Facet position in 'facetFunctionSelectors.functionSelectors' array
    uint96 functionSelectorPosition;
  }

  struct FacetFunctionSelectors {
    /// @notice Function selectors
    bytes4[] functionSelectors;
    /// @notice Position of 'facetAddress' in 'facetAddresses' array
    uint256 facetAddressPosition;
  }

  struct DiamondStorage {
    /// @notice Position of selector in 'facetFunctionSelectors.selectors' array
    mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition;
    /// @notice Facet addresses to function selectors
    mapping(address => FacetFunctionSelectors) facetFunctionSelectors;
    /// @notice Facet addresses
    address[] facetAddresses;
    /// @notice Query if contract implements an interface
    mapping(bytes4 => bool) supportedInterfaces;
    /// @notice Owner of contract
    address owner;
  }

  /////////////
  /// LOGIC ///
  /////////////

  /// @notice ...
  function diamondStorage() internal pure returns (DiamondStorage storage ds) {
    bytes32 position = DIAMOND_STORAGE_POSITION;

    assembly {
      ds.slot := position
    }
  }

  /// @notice ...
  /// @param _owner New owner
  function updateContractOwner(address _owner) internal {
    DiamondStorage storage ds = diamondStorage();

    address oldOwner = ds.owner;

    ds.owner = _owner;

    emit OwnershipTransferred(oldOwner, _owner);
  }

  /// @notice ...
  function contractOwner() internal view returns (address owner_) {
    owner_ = diamondStorage().owner;
  }

  /// @notice ...
  function enforceIsOwner() internal view {
    if (diamondStorage().owner != msg.sender) revert LDiamond__OnlyOwner();
  }

  /// @notice ...
  /// @param _cut ...
  /// @param _init ...
  /// @param _data ...
  function diamondCut(
    IDiamondCut.FacetCut[] memory _cut,
    address _init,
    bytes memory _data
  ) internal {
    for (uint256 facetIndex; facetIndex < _cut.length; ++facetIndex) {
      IDiamondCut.FacetCutAction action = _cut[facetIndex].action;

      if (action == IDiamondCut.FacetCutAction.Add) {
        addFunctions(
          _cut[facetIndex].facetAddress,
          _cut[facetIndex].functionSelectors
        );
      } else if (action == IDiamondCut.FacetCutAction.Replace) {
        replaceFunctions(
          _cut[facetIndex].facetAddress,
          _cut[facetIndex].functionSelectors
        );
      } else if (action == IDiamondCut.FacetCutAction.Remove) {
        removeFunctions(
          _cut[facetIndex].facetAddress,
          _cut[facetIndex].functionSelectors
        );
      } else {
        revert IDiamondCut__IncorrectAction();
      }
    }

    emit DiamondCut(_cut, _init, _data);

    initializeDiamondCut(_init, _data);
  }

  /// @notice ...
  /// @param _facet Facet address
  /// @param _selectors Facet selectors
  function addFunctions(address _facet, bytes4[] memory _selectors) internal {
    if (_selectors.length == 0) revert IDiamondCut__NoSelectors();

    DiamondStorage storage ds = diamondStorage();

    if (_facet == address(0)) revert IDiamondCut__InvalidAddressZero();

    uint96 selectorPosition = uint96(
      ds.facetFunctionSelectors[_facet].functionSelectors.length
    );

    /// @notice Add new facet address if it does not exists already

    if (selectorPosition == 0) {
      addFacet(ds, _facet);
    }

    for (
      uint256 selectorIndex;
      selectorIndex < _selectors.length;
      ++selectorIndex
    ) {
      bytes4 selector = _selectors[selectorIndex];
      address oldFacetAddress = ds
        .selectorToFacetAndPosition[selector]
        .facetAddress;

      if (oldFacetAddress != address(0))
        revert IDiamondCut__FunctionAlreadyExists();

      addFunction(ds, selector, selectorPosition, _facet);

      ++selectorPosition;
    }
  }

  /// @notice ...
  /// @param _facet Facet address
  /// @param _selectors Facet selectors
  function replaceFunctions(address _facet, bytes4[] memory _selectors)
    internal
  {
    if (_selectors.length == 0) revert IDiamondCut__NoSelectors();

    DiamondStorage storage ds = diamondStorage();

    if (_facet == address(0)) revert IDiamondCut__InvalidAddressZero();

    uint96 selectorPosition = uint96(
      ds.facetFunctionSelectors[_facet].functionSelectors.length
    );

    /// @notice Add new facet address if it does not exists already

    if (selectorPosition == 0) {
      addFacet(ds, _facet);
    }
    for (
      uint256 selectorIndex;
      selectorIndex < _selectors.length;
      ++selectorIndex
    ) {
      bytes4 selector = _selectors[selectorIndex];
      address oldFacetAddress = ds
        .selectorToFacetAndPosition[selector]
        .facetAddress;

      if (oldFacetAddress == _facet)
        revert IDiamondCut__InvalidReplacementWithSameFunction();

      removeFunction(ds, oldFacetAddress, selector);
      addFunction(ds, selector, selectorPosition, _facet);

      ++selectorPosition;
    }
  }

  /// @notice ...
  /// @param _facet Facet address
  /// @param _selectors Facet selectors
  function removeFunctions(address _facet, bytes4[] memory _selectors)
    internal
  {
    if (_selectors.length == 0) revert IDiamondCut__NoSelectors();

    DiamondStorage storage ds = diamondStorage();

    if (_facet != address(0)) revert IDiamondCut__AddressMustBeZero();

    for (
      uint256 selectorIndex;
      selectorIndex < _selectors.length;
      ++selectorIndex
    ) {
      bytes4 selector = _selectors[selectorIndex];
      address oldFacetAddress = ds
        .selectorToFacetAndPosition[selector]
        .facetAddress;

      removeFunction(ds, oldFacetAddress, selector);
    }
  }

  /// @notice ...
  /// @param ds DiamondStorage
  /// @param _facet Facet address
  function addFacet(DiamondStorage storage ds, address _facet) internal {
    enforceHasContractCode(_facet);

    ds.facetFunctionSelectors[_facet].facetAddressPosition = ds
      .facetAddresses
      .length;
    ds.facetAddresses.push(_facet);
  }

  /// @notice ...
  /// @param ds DiamondStorage
  /// @param _selector Facet selector
  /// @param _positon Selector position
  /// @param _facet Facet address
  function addFunction(
    DiamondStorage storage ds,
    bytes4 _selector,
    uint96 _positon,
    address _facet
  ) internal {
    ds
      .selectorToFacetAndPosition[_selector]
      .functionSelectorPosition = _positon;
    ds.facetFunctionSelectors[_facet].functionSelectors.push(_selector);
    ds.selectorToFacetAndPosition[_selector].facetAddress = _facet;
  }

  /// @notice ...
  /// @param ds DiamondStorage
  /// @param _facet Facet address
  /// @param _selector Facet address
  function removeFunction(
    DiamondStorage storage ds,
    address _facet,
    bytes4 _selector
  ) internal {
    if (_facet == address(0)) revert IDiamondCut__InexistentFunction();

    /// @notice An immutable function is defined directly in diamond
    if (_facet == address(this)) revert IDiamondCut__ImmutableFunction();

    /// @notice Replaces selector with last selector, then deletes last selector
    uint256 selectorPosition = ds
      .selectorToFacetAndPosition[_selector]
      .functionSelectorPosition;
    uint256 lastSelectorPosition = ds
      .facetFunctionSelectors[_facet]
      .functionSelectors
      .length - 1;

    /// @notice Replaces '_selector' with 'lastSelector' if not they are not the same
    if (selectorPosition != lastSelectorPosition) {
      bytes4 lastSelector = ds.facetFunctionSelectors[_facet].functionSelectors[
        lastSelectorPosition
      ];
      ds.facetFunctionSelectors[_facet].functionSelectors[
        selectorPosition
      ] = lastSelector;
      ds
        .selectorToFacetAndPosition[lastSelector]
        .functionSelectorPosition = uint96(selectorPosition);
    }

    /// @notice Deletes last selector

    ds.facetFunctionSelectors[_facet].functionSelectors.pop();

    delete ds.selectorToFacetAndPosition[_selector];

    /// @notice Deletes facet address if there are no more selectors for facet address
    if (lastSelectorPosition == 0) {
      /// @notice Replaces facet address with last facet address, deletes last facet address
      uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1;
      uint256 facetAddressPosition = ds
        .facetFunctionSelectors[_facet]
        .facetAddressPosition;

      if (facetAddressPosition != lastFacetAddressPosition) {
        address lastFacetAddress = ds.facetAddresses[lastFacetAddressPosition];
        ds.facetAddresses[facetAddressPosition] = lastFacetAddress;
        ds
          .facetFunctionSelectors[lastFacetAddress]
          .facetAddressPosition = facetAddressPosition;
      }

      ds.facetAddresses.pop();

      delete ds.facetFunctionSelectors[_facet].facetAddressPosition;
    }
  }

  /// @notice ...
  /// @param _init ...
  /// @param _data ...
  function initializeDiamondCut(address _init, bytes memory _data) internal {
    if (_init == address(0)) {
      return;
    }

    enforceHasContractCode(_init);

    (bool success, bytes memory error) = _init.delegatecall(_data);

    if (!success) {
      if (error.length > 0) {
        /// @solidity memory-safe-assembly
        assembly {
          let dataSize := mload(error)

          revert(add(32, error), dataSize)
        }
      } else {
        revert LDiamond__InitializationFailed(_init, _data);
      }
    }
  }

  /// @notice ...
  /// @param _contract Contract address
  function enforceHasContractCode(address _contract) internal view {
    uint256 contractSize;

    assembly {
      contractSize := extcodesize(_contract)
    }

    if (contractSize == 0) revert IDiamondCut__InexistentFacetCode();
  }
}

File 4 of 4 : IDiamondCut.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/// @title IDiamondCut
/// @author mektigboy
/// @author Modified from Nick Mudge: https://github.com/mudgen/diamond-3-hardhat
/// @dev EIP-2535 "Diamond" standard
interface IDiamondCut {
    //////////////
    /// EVENTS ///
    //////////////

    event DiamondCut(FacetCut[] _cut, address _init, bytes _data);

    ///////////////
    /// STORAGE ///
    ///////////////

    /// ACTIONS

    /// Add     - 0
    /// Replace - 1
    /// Remove  - 2

    enum FacetCutAction {
        Add,
        Replace,
        Remove
    }

    struct FacetCut {
        address facetAddress;
        FacetCutAction action;
        bytes4[] functionSelectors;
    }

    /// @param _cut Facet addreses and function selectors
    /// @param _init Address of contract or facet to execute _data
    /// @param _data Function call, includes function selector and arguments
    function diamondCut(
        FacetCut[] calldata _cut,
        address _init,
        bytes calldata _data
    ) external;
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_diamondCutFacet","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"name":"IDiamondCut__AddressMustBeZero","type":"error"},{"inputs":[],"name":"IDiamondCut__FunctionAlreadyExists","type":"error"},{"inputs":[],"name":"IDiamondCut__ImmutableFunction","type":"error"},{"inputs":[],"name":"IDiamondCut__IncorrectAction","type":"error"},{"inputs":[],"name":"IDiamondCut__InexistentFacetCode","type":"error"},{"inputs":[],"name":"IDiamondCut__InexistentFunction","type":"error"},{"inputs":[],"name":"IDiamondCut__InvalidAddressZero","type":"error"},{"inputs":[],"name":"IDiamondCut__InvalidReplacementWithSameFunction","type":"error"},{"inputs":[],"name":"IDiamondCut__NoSelectors","type":"error"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"LDiamond__InitializationFailed","type":"error"},{"inputs":[],"name":"VaporNodesDiamond__InvalidFunction","type":"error"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

6080604052604051620037b6380380620037b6833981810160405281019062000029919062001717565b6200003f826200020160201b6200015e1760201c565b6000600167ffffffffffffffff8111156200005f576200005e6200175e565b5b6040519080825280602002602001820160405280156200009c57816020015b6200008862001661565b8152602001906001900390816200007e5790505b5090506000600167ffffffffffffffff811115620000bf57620000be6200175e565b5b604051908082528060200260200182016040528015620000ee5781602001602082028036833780820191505090505b509050631f931c1c60e01b8160008151811062000110576200010f6200178d565b5b60200260200101907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505060405180606001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001600060028111156200019a5762000199620017bc565b5b81526020018281525082600081518110620001ba57620001b96200178d565b5b6020026020010181905250620001ed82600060405180602001604052806000815250620002e060201b620002351760201c565b426000600c01819055505050505062001d33565b6000620002136200055760201b60201c565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60005b8351811015620005025760008482815181106200030557620003046200178d565b5b6020026020010151602001519050600060028111156200032a5762000329620017bc565b5b81600281111562000340576200033f620017bc565b5b03620003a0576200039a85838151811062000360576200035f6200178d565b5b6020026020010151600001518684815181106200038257620003816200178d565b5b6020026020010151604001516200058460201b60201c565b620004ed565b60016002811115620003b757620003b6620017bc565b5b816002811115620003cd57620003cc620017bc565b5b036200042d5762000427858381518110620003ed57620003ec6200178d565b5b6020026020010151600001518684815181106200040f576200040e6200178d565b5b6020026020010151604001516200080160201b60201c565b620004ec565b600280811115620004435762000442620017bc565b5b816002811115620004595762000458620017bc565b5b03620004b957620004b38583815181106200047957620004786200178d565b5b6020026020010151600001518684815181106200049b576200049a6200178d565b5b60200260200101516040015162000a9060201b60201c565b620004eb565b6040517ff51092d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b5080620004fa9062001824565b9050620002e3565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673838383604051620005389392919062001b9e565b60405180910390a162000552828262000c2060201b60201c565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b6000815103620005c0576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000620005d26200055760201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200063b576040517f25f4f61600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff1603620006b157620006b0828562000d3a60201b60201c565b5b60005b8351811015620007fa576000848281518110620006d657620006d56200178d565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614620007c2576040517f98aaaded00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620007d68583868a62000e0460201b60201c565b83620007e29062001c01565b9350505080620007f29062001824565b9050620006b4565b5050505050565b60008151036200083d576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006200084f6200055760201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008b8576040517f25f4f61600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036200092e576200092d828562000d3a60201b60201c565b5b60005b835181101562000a895760008482815181106200095357620009526200178d565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000a3e576040517f25a7744900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62000a5185828462000fb160201b60201c565b62000a658583868a62000e0460201b60201c565b8362000a719062001c01565b935050508062000a819062001824565b905062000931565b5050505050565b600081510362000acc576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600062000ade6200055760201b60201c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000b47576040517f2d7466a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b825181101562000c1a57600083828151811062000b6c5762000b6b6200178d565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062000c0484828462000fb160201b60201c565b50508062000c129062001824565b905062000b4a565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16031562000d365762000c67826200161c60201b60201c565b6000808373ffffffffffffffffffffffffffffffffffffffff168360405162000c91919062001c7c565b600060405180830381855af49150503d806000811462000cce576040519150601f19603f3d011682016040523d82523d6000602084013e62000cd3565b606091505b50915091508162000d335760008151111562000cf25780518082602001fd5b83836040517fffdd9bd500000000000000000000000000000000000000000000000000000000815260040162000d2a92919062001c95565b60405180910390fd5b50505b5050565b62000d4b816200161c60201b60201c565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362001018576040517f716f7e6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200107e576040517f1c48b19a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905062001157919062001cc9565b9050808214620012f25760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110620011bc57620011bb6200178d565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106200123b576200123a6200178d565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180548062001349576200134862001d04565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505060008103620016155760006001866002018054905062001436919062001cc9565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508181146200157e576000876002018381548110620014a457620014a36200178d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080886002018381548110620014eb57620014ea6200178d565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b8660020180548062001595576200159462001d04565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000813b9050600081036200165d576040517f72978b6100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160006002811115620016a0576200169f620017bc565b5b8152602001606081525090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620016df82620016b2565b9050919050565b620016f181620016d2565b8114620016fd57600080fd5b50565b6000815190506200171181620016e6565b92915050565b60008060408385031215620017315762001730620016ad565b5b6000620017418582860162001700565b9250506020620017548582860162001700565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600062001831826200181a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620018665762001865620017eb565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b620018a881620016d2565b82525050565b60038110620018c257620018c1620017bc565b5b50565b6000819050620018d582620018ae565b919050565b6000620018e782620018c5565b9050919050565b620018f981620018da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62001962816200192b565b82525050565b600062001976838362001957565b60208301905092915050565b6000602082019050919050565b60006200199c82620018ff565b620019a881856200190a565b9350620019b5836200191b565b8060005b83811015620019ec578151620019d0888262001968565b9750620019dd8362001982565b925050600181019050620019b9565b5085935050505092915050565b600060608301600083015162001a1360008601826200189d565b50602083015162001a286020860182620018ee565b506040830151848203604086015262001a4282826200198f565b9150508091505092915050565b600062001a5d8383620019f9565b905092915050565b6000602082019050919050565b600062001a7f8262001871565b62001a8b81856200187c565b93508360208202850162001a9f856200188d565b8060005b8581101562001ae1578484038952815162001abf858262001a4f565b945062001acc8362001a65565b925060208a0199505060018101905062001aa3565b50829750879550505050505092915050565b62001afe81620016d2565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562001b4057808201518184015260208101905062001b23565b60008484015250505050565b6000601f19601f8301169050919050565b600062001b6a8262001b04565b62001b76818562001b0f565b935062001b8881856020860162001b20565b62001b938162001b4c565b840191505092915050565b6000606082019050818103600083015262001bba818662001a72565b905062001bcb602083018562001af3565b818103604083015262001bdf818462001b5d565b9050949350505050565b60006bffffffffffffffffffffffff82169050919050565b600062001c0e8262001be9565b91506bffffffffffffffffffffffff820362001c2f5762001c2e620017eb565b5b600182019050919050565b600081905092915050565b600062001c528262001b04565b62001c5e818562001c3a565b935062001c7081856020860162001b20565b80840191505092915050565b600062001c8a828462001c45565b915081905092915050565b600060408201905062001cac600083018562001af3565b818103602083015262001cc0818462001b5d565b90509392505050565b600062001cd6826200181a565b915062001ce3836200181a565b925082820390508181111562001cfe5762001cfd620017eb565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b611a738062001d436000396000f3fe60806040523661000b57005b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c9050809150600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610138576040517f2dda0b3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660008037600080366000845af43d6000803e8060008114610159573d6000f35b3d6000fd5b6000610168610459565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60005b835181101561040e576000848281518110610256576102556114c3565b5b602002602001015160200151905060006002811115610278576102776114f2565b5b81600281111561028b5761028a6114f2565b5b036102db576102d68583815181106102a6576102a56114c3565b5b6020026020010151600001518684815181106102c5576102c46114c3565b5b602002602001015160400151610486565b6103fc565b600160028111156102ef576102ee6114f2565b5b816002811115610302576103016114f2565b5b036103525761034d85838151811061031d5761031c6114c3565b5b60200260200101516000015186848151811061033c5761033b6114c3565b5b6020026020010151604001516106de565b6103fb565b600280811115610365576103646114f2565b5b816002811115610378576103776114f2565b5b036103c8576103c3858381518110610393576103926114c3565b5b6020026020010151600001518684815181106103b2576103b16114c3565b5b602002602001015160400151610940565b6103fa565b6040517ff51092d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b50806104079061155a565b9050610238565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673838383604051610442939291906118c6565b60405180910390a16104548282610ab7565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008151036104c1576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006104cb610459565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610533576040517f25f4f61600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036105a05761059f8285610bc0565b5b60005b83518110156106d75760008482815181106105c1576105c06114c3565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ac576040517f98aaaded00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106b88583868a610c82565b836106c290611923565b93505050806106d09061155a565b90506105a3565b5050505050565b6000815103610719576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610723610459565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361078b576040517f25f4f61600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036107f8576107f78285610bc0565b5b60005b8351811015610939576000848281518110610819576108186114c3565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610903576040517f25a7744900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61090e858284610e2f565b61091a8583868a610c82565b8361092490611923565b93505050806109329061155a565b90506107fb565b5050505050565b600081510361097b576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610985610459565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f2d7466a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8251811015610ab1576000838281518110610a0e57610a0d6114c3565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610a9e848284610e2f565b505080610aaa9061155a565b90506109f0565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160315610bbc57610af58261147f565b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610b1d9190611993565b600060405180830381855af49150503d8060008114610b58576040519150601f19603f3d011682016040523d82523d6000602084013e610b5d565b606091505b509150915081610bb957600081511115610b7a5780518082602001fd5b83836040517fffdd9bd5000000000000000000000000000000000000000000000000000000008152600401610bb09291906119aa565b60405180910390fd5b50505b5050565b610bc98161147f565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e95576040517f716f7e6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610efa576040517f1c48b19a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050610fd191906119da565b90508082146111655760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110611032576110316114c3565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106110ae576110ad6114c3565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806111b9576111b8611a0e565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505060008103611478576000600186600201805490506112a391906119da565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508181146113e457600087600201838154811061130d5761130c6114c3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080886002018381548110611351576113506114c3565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b866002018054806113f8576113f7611a0e565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000813b9050600081036114bf576040517f72978b6100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061156582611550565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361159757611596611521565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115f9826115ce565b9050919050565b611609816115ee565b82525050565b600381106116205761161f6114f2565b5b50565b60008190506116318261160f565b919050565b600061164182611623565b9050919050565b61165181611636565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6116b881611683565b82525050565b60006116ca83836116af565b60208301905092915050565b6000602082019050919050565b60006116ee82611657565b6116f88185611662565b935061170383611673565b8060005b8381101561173457815161171b88826116be565b9750611726836116d6565b925050600181019050611707565b5085935050505092915050565b60006060830160008301516117596000860182611600565b50602083015161176c6020860182611648565b506040830151848203604086015261178482826116e3565b9150508091505092915050565b600061179d8383611741565b905092915050565b6000602082019050919050565b60006117bd826115a2565b6117c781856115ad565b9350836020820285016117d9856115be565b8060005b8581101561181557848403895281516117f68582611791565b9450611801836117a5565b925060208a019950506001810190506117dd565b50829750879550505050505092915050565b611830816115ee565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611870578082015181840152602081019050611855565b60008484015250505050565b6000601f19601f8301169050919050565b600061189882611836565b6118a28185611841565b93506118b2818560208601611852565b6118bb8161187c565b840191505092915050565b600060608201905081810360008301526118e081866117b2565b90506118ef6020830185611827565b8181036040830152611901818461188d565b9050949350505050565b60006bffffffffffffffffffffffff82169050919050565b600061192e8261190b565b91506bffffffffffffffffffffffff820361194c5761194b611521565b5b600182019050919050565b600081905092915050565b600061196d82611836565b6119778185611957565b9350611987818560208601611852565b80840191505092915050565b600061199f8284611962565b915081905092915050565b60006040820190506119bf6000830185611827565b81810360208301526119d1818461188d565b90509392505050565b60006119e582611550565b91506119f083611550565b9250828203905081811115611a0857611a07611521565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220db1a19b64b86c62b8c36da2dcdfa8bf01f1f7b96632b6864cce87d9cfddf540464736f6c63430008110033000000000000000000000000c9d96ce8c56b346367c158209e9c92d0e4ab076c000000000000000000000000700e05ed7f2fc719ec81657126bd2d63e2551657

Deployed Bytecode

0x60806040523661000b57005b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c9050809150600082600001600080357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610138576040517f2dda0b3900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660008037600080366000845af43d6000803e8060008114610159573d6000f35b3d6000fd5b6000610168610459565b905060008160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60005b835181101561040e576000848281518110610256576102556114c3565b5b602002602001015160200151905060006002811115610278576102776114f2565b5b81600281111561028b5761028a6114f2565b5b036102db576102d68583815181106102a6576102a56114c3565b5b6020026020010151600001518684815181106102c5576102c46114c3565b5b602002602001015160400151610486565b6103fc565b600160028111156102ef576102ee6114f2565b5b816002811115610302576103016114f2565b5b036103525761034d85838151811061031d5761031c6114c3565b5b60200260200101516000015186848151811061033c5761033b6114c3565b5b6020026020010151604001516106de565b6103fb565b600280811115610365576103646114f2565b5b816002811115610378576103776114f2565b5b036103c8576103c3858381518110610393576103926114c3565b5b6020026020010151600001518684815181106103b2576103b16114c3565b5b602002602001015160400151610940565b6103fa565b6040517ff51092d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b50806104079061155a565b9050610238565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673838383604051610442939291906118c6565b60405180910390a16104548282610ab7565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60008151036104c1576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006104cb610459565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610533576040517f25f4f61600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036105a05761059f8285610bc0565b5b60005b83518110156106d75760008482815181106105c1576105c06114c3565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ac576040517f98aaaded00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106b88583868a610c82565b836106c290611923565b93505050806106d09061155a565b90506105a3565b5050505050565b6000815103610719576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610723610459565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361078b576040517f25f4f61600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905090506000816bffffffffffffffffffffffff16036107f8576107f78285610bc0565b5b60005b8351811015610939576000848281518110610819576108186114c3565b5b602002602001015190506000846000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610903576040517f25a7744900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61090e858284610e2f565b61091a8583868a610c82565b8361092490611923565b93505050806109329061155a565b90506107fb565b5050505050565b600081510361097b576040517f7c21040900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610985610459565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f2d7466a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8251811015610ab1576000838281518110610a0e57610a0d6114c3565b5b602002602001015190506000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610a9e848284610e2f565b505080610aaa9061155a565b90506109f0565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160315610bbc57610af58261147f565b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610b1d9190611993565b600060405180830381855af49150503d8060008114610b58576040519150601f19603f3d011682016040523d82523d6000602084013e610b5d565b606091505b509150915081610bb957600081511115610b7a5780518082602001fd5b83836040517fffdd9bd5000000000000000000000000000000000000000000000000000000008152600401610bb09291906119aa565b60405180910390fd5b50505b5050565b610bc98161147f565b81600201805490508260010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555081600201819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b81846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508360010160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018390806001815401808255809150506001900390600052602060002090600891828204019190066004029091909190916101000a81548163ffffffff021916908360e01c021790555080846000016000857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e95576040517f716f7e6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610efa576040517f1c48b19a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050600060018560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050610fd191906119da565b90508082146111655760008560010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110611032576110316114c3565b5b90600052602060002090600891828204019190066004029054906101000a900460e01b9050808660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000184815481106110ae576110ad6114c3565b5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908360e01c021790555082866000016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b8460010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054806111b9576111b8611a0e565b5b60019003818190600052602060002090600891828204019190066004026101000a81549063ffffffff02191690559055846000016000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff0219169055505060008103611478576000600186600201805490506112a391906119da565b905060008660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508181146113e457600087600201838154811061130d5761130c6114c3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080886002018381548110611351576113506114c3565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818860010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550505b866002018054806113f8576113f7611a0e565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558660010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000905550505b5050505050565b6000813b9050600081036114bf576040517f72978b6100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600061156582611550565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361159757611596611521565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006115f9826115ce565b9050919050565b611609816115ee565b82525050565b600381106116205761161f6114f2565b5b50565b60008190506116318261160f565b919050565b600061164182611623565b9050919050565b61165181611636565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6116b881611683565b82525050565b60006116ca83836116af565b60208301905092915050565b6000602082019050919050565b60006116ee82611657565b6116f88185611662565b935061170383611673565b8060005b8381101561173457815161171b88826116be565b9750611726836116d6565b925050600181019050611707565b5085935050505092915050565b60006060830160008301516117596000860182611600565b50602083015161176c6020860182611648565b506040830151848203604086015261178482826116e3565b9150508091505092915050565b600061179d8383611741565b905092915050565b6000602082019050919050565b60006117bd826115a2565b6117c781856115ad565b9350836020820285016117d9856115be565b8060005b8581101561181557848403895281516117f68582611791565b9450611801836117a5565b925060208a019950506001810190506117dd565b50829750879550505050505092915050565b611830816115ee565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611870578082015181840152602081019050611855565b60008484015250505050565b6000601f19601f8301169050919050565b600061189882611836565b6118a28185611841565b93506118b2818560208601611852565b6118bb8161187c565b840191505092915050565b600060608201905081810360008301526118e081866117b2565b90506118ef6020830185611827565b8181036040830152611901818461188d565b9050949350505050565b60006bffffffffffffffffffffffff82169050919050565b600061192e8261190b565b91506bffffffffffffffffffffffff820361194c5761194b611521565b5b600182019050919050565b600081905092915050565b600061196d82611836565b6119778185611957565b9350611987818560208601611852565b80840191505092915050565b600061199f8284611962565b915081905092915050565b60006040820190506119bf6000830185611827565b81810360208301526119d1818461188d565b90509392505050565b60006119e582611550565b91506119f083611550565b9250828203905081811115611a0857611a07611521565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220db1a19b64b86c62b8c36da2dcdfa8bf01f1f7b96632b6864cce87d9cfddf540464736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c9d96ce8c56b346367c158209e9c92d0e4ab076c000000000000000000000000700e05ed7f2fc719ec81657126bd2d63e2551657

-----Decoded View---------------
Arg [0] : _owner (address): 0xC9D96ce8C56b346367c158209e9c92d0E4ab076C
Arg [1] : _diamondCutFacet (address): 0x700E05ED7f2Fc719ec81657126bd2D63e2551657

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c9d96ce8c56b346367c158209e9c92d0e4ab076c
Arg [1] : 000000000000000000000000700e05ed7f2fc719ec81657126bd2d63e2551657


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  ]
[ 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.