AVAX Price: $22.24 (+2.82%)
Gas: 1.8 nAVAX
 

Overview

AVAX Balance

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

AVAX Value

$170.85 (@ $22.24/AVAX)

Multichain Info

Transaction Hash
Method
Block
From
To
Claim608027272025-04-23 15:03:034 mins ago1745420583IN
0x0efC8Ef8...5Bcc1fA90
0.00166381 AVAX0.000414461.64419918
Claim607961762025-04-23 12:33:412 hrs ago1745411621IN
0x0efC8Ef8...5Bcc1fA90
0.00005875 AVAX0.000524521.62354793
Claim607948052025-04-23 12:03:123 hrs ago1745409792IN
0x0efC8Ef8...5Bcc1fA90
0.00345344 AVAX0.000765271.61765155
Compound607821202025-04-23 7:13:017 hrs ago1745392381IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.000347691.61112058
Claim607821102025-04-23 7:12:497 hrs ago1745392369IN
0x0efC8Ef8...5Bcc1fA90
0.00129961 AVAX0.000612611.61397543
Claim607821002025-04-23 7:12:317 hrs ago1745392351IN
0x0efC8Ef8...5Bcc1fA90
0.03896847 AVAX0.000775891.61463276
Compound607755472025-04-23 4:43:4610 hrs ago1745383426IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.000371661.61203991
Claim607726742025-04-23 3:35:5811 hrs ago1745379358IN
0x0efC8Ef8...5Bcc1fA90
0.00322219 AVAX0.000475811.60920662
Compound607658942025-04-23 1:01:4514 hrs ago1745370105IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.001093141.1
Compound607657532025-04-23 0:58:2914 hrs ago1745369909IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.001093141.1
Compound607641222025-04-23 0:22:5214 hrs ago1745367772IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.004055061.68912077
Claim607611452025-04-22 23:16:5815 hrs ago1745363818IN
0x0efC8Ef8...5Bcc1fA90
0.00086981 AVAX0.000550981.62347538
Claim607440042025-04-22 16:58:4522 hrs ago1745341125IN
0x0efC8Ef8...5Bcc1fA90
0.00090427 AVAX0.000142241.60754055
Claim607438922025-04-22 16:56:0722 hrs ago1745340967IN
0x0efC8Ef8...5Bcc1fA90
0.00090427 AVAX0.000142321.60837427
Claim607438662025-04-22 16:55:2622 hrs ago1745340926IN
0x0efC8Ef8...5Bcc1fA90
0.00090427 AVAX0.001381211.59912439
Increase Node Am...607273752025-04-22 10:27:5228 hrs ago1745317672IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.001900741.60703308
Increase Node Am...607273062025-04-22 10:26:1228 hrs ago1745317572IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.001902311.6083964
Claim607270792025-04-22 10:20:5128 hrs ago1745317251IN
0x0efC8Ef8...5Bcc1fA90
0.01417648 AVAX0.003497191.60934184
Compound607181912025-04-22 6:52:0232 hrs ago1745304722IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.000946831.61850957
Increase Node Am...607164362025-04-22 6:10:4832 hrs ago1745302248IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.000196791.63716002
Increase Node Am...607163912025-04-22 6:09:5932 hrs ago1745302199IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.000193961.61343293
Compound607131762025-04-22 4:47:4934 hrs ago1745297269IN
0x0efC8Ef8...5Bcc1fA90
0 AVAX0.002017461.62382976
Claim607124662025-04-22 4:28:5834 hrs ago1745296138IN
0x0efC8Ef8...5Bcc1fA90
0.01585277 AVAX0.001474511.64889051
Claim607074712025-04-22 2:20:3536 hrs ago1745288435IN
0x0efC8Ef8...5Bcc1fA90
0.00314828 AVAX0.000398970.13062654
Claim607054492025-04-22 1:32:1237 hrs ago1745285532IN
0x0efC8Ef8...5Bcc1fA90
0.02102791 AVAX0.00021380.10688178
VIEW ADVANCED FILTER

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
608027272025-04-23 15:03:034 mins ago1745420583
0x0efC8Ef8...5Bcc1fA90
0.00166381 AVAX
607961762025-04-23 12:33:412 hrs ago1745411621
0x0efC8Ef8...5Bcc1fA90
0.00005875 AVAX
607948052025-04-23 12:03:123 hrs ago1745409792
0x0efC8Ef8...5Bcc1fA90
0.00345344 AVAX
607821102025-04-23 7:12:497 hrs ago1745392369
0x0efC8Ef8...5Bcc1fA90
0.00129961 AVAX
607821002025-04-23 7:12:317 hrs ago1745392351
0x0efC8Ef8...5Bcc1fA90
0.03896847 AVAX
607726742025-04-23 3:35:5811 hrs ago1745379358
0x0efC8Ef8...5Bcc1fA90
0.00322219 AVAX
607611452025-04-22 23:16:5815 hrs ago1745363818
0x0efC8Ef8...5Bcc1fA90
0.00086981 AVAX
607438662025-04-22 16:55:2622 hrs ago1745340926
0x0efC8Ef8...5Bcc1fA90
0.00090427 AVAX
607270792025-04-22 10:20:5128 hrs ago1745317251
0x0efC8Ef8...5Bcc1fA90
0.01417648 AVAX
607124662025-04-22 4:28:5834 hrs ago1745296138
0x0efC8Ef8...5Bcc1fA90
0.01585277 AVAX
607074712025-04-22 2:20:3536 hrs ago1745288435
0x0efC8Ef8...5Bcc1fA90
0.00314828 AVAX
607054492025-04-22 1:32:1237 hrs ago1745285532
0x0efC8Ef8...5Bcc1fA90
0.02102791 AVAX
606939612025-04-21 20:38:4042 hrs ago1745267920
0x0efC8Ef8...5Bcc1fA90
0.00329276 AVAX
606939352025-04-21 20:38:0242 hrs ago1745267882
0x0efC8Ef8...5Bcc1fA90
0.00434043 AVAX
606850172025-04-21 17:05:1146 hrs ago1745255111
0x0efC8Ef8...5Bcc1fA90
0.00370933 AVAX
606850062025-04-21 17:05:0046 hrs ago1745255100
0x0efC8Ef8...5Bcc1fA90
0.00374763 AVAX
606850032025-04-21 17:04:5346 hrs ago1745255093
0x0efC8Ef8...5Bcc1fA90
0.00376798 AVAX
606850012025-04-21 17:04:4946 hrs ago1745255089
0x0efC8Ef8...5Bcc1fA90
0.00378299 AVAX
606849982025-04-21 17:04:4446 hrs ago1745255084
0x0efC8Ef8...5Bcc1fA90
0.00379165 AVAX
606849932025-04-21 17:04:3946 hrs ago1745255079
0x0efC8Ef8...5Bcc1fA90
0.00380636 AVAX
606849902025-04-21 17:04:3646 hrs ago1745255076
0x0efC8Ef8...5Bcc1fA90
0.00382254 AVAX
606849862025-04-21 17:04:3246 hrs ago1745255072
0x0efC8Ef8...5Bcc1fA90
0.00383601 AVAX
606849822025-04-21 17:04:2846 hrs ago1745255068
0x0efC8Ef8...5Bcc1fA90
0.00385996 AVAX
606849792025-04-21 17:04:2146 hrs ago1745255061
0x0efC8Ef8...5Bcc1fA90
0.00390535 AVAX
606849752025-04-21 17:04:1646 hrs ago1745255056
0x0efC8Ef8...5Bcc1fA90
0.00391923 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.