ETH Price: $3,369.61 (-1.44%)

Token

Deployyyyer (DEPLOY)
 

Overview

Max Total Supply

1,000,000,000 DEPLOY

Holders

1,140 ( 0.088%)

Market

Price

$0.00 @ 0.000001 ETH (+2.63%)

Onchain Market Cap

$1,804,500.00

Circulating Supply Market Cap

$1,782,876.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 DEPLOY

Value
$0.00
0x4cb28ffc95a59ec26f9d99a4bd2ca405efa3394f
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Decentralized, fully on-chain crypto launchpad, with on chain launches of ERC20 tokens and Staking Pools.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Deployyyyer

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 10 : Deployyyyer.sol
// SPDX-License-Identifier: MIT
/*********************************************************************************************\
* Deployyyyer: https://deployyyyer.io
* Twitter: https://x.com/deployyyyer
* Telegram: https://t.me/Deployyyyer
/*********************************************************************************************/
pragma solidity ^0.8.23;


import { LibDiamond } from "./libraries/LibDiamond.sol";
import { IDiamondCut } from "./interfaces/IDiamondCut.sol";

import "./libraries/LibDiamond.sol";
import "./interfaces/IDiamondLoupe.sol";
import "./interfaces/IDiamondCut.sol";
import "./interfaces/IERC173.sol";
import "./interfaces/IERC165.sol";
import "./interfaces/IERC20.sol";
import { INewToken, IUniswapV2Router02 } from "./interfaces/INewToken.sol";
import "./libraries/LibAppStorage.sol";
//import "hardhat/console.sol";

/// @title Deployyyyer 
/// @notice Diamond Proxy for Deployyyyer
/// @dev 
contract Deployyyyer { 
    AppStorage internal s;
    event Transfer(address indexed from, address indexed to, uint256 value);
    //event Approval(address indexed owner, address indexed spender, uint256 value);
    event FactoryBuilt(string name, string symbol, uint256 supply);
    event TeamSet(INewToken.TeamParams tparams);
    event LaunchCostChanged(uint256 ethCost, uint256 deployyyyerCost);
    event PromoCostChanged(uint256 ethCost, uint256 deployyyyerCost);
    event MinLiquidityChanged(uint256 minLiq);
    event IncreasedLimits(uint256 maxWallet, uint256 maxTx);

    struct ConstructorArgs {
        bool createToken;
        address taxwallet;
        address stakingFacet;
        address presaleFacet;
        address tokenFacet;
        address v2router;
        address team1;
        address team2;
        address team3;
        address marketing;
        address treasury;
        uint256 ethCost;
        uint256 deployyyyerCost;
        uint256 promoCostEth;
        uint256 promoCostDeployyyyer;
        uint256 minLiq;
        address uniswapRouter;
        address sushiswapRouter;
        address pancakeswapRouter;

    }

    /// @notice Constructor of Diamond Proxy for Deployyyyer
    constructor(IDiamondCut.FacetCut[] memory _diamondCut, ConstructorArgs memory _args) {
        if(_args.createToken) {
            emit FactoryBuilt("Deployyyyer", "DEPLOY", 1000000000);
        } else {
            emit FactoryBuilt("Deployyyyer", "DEPLOY", 0);
        }
        LibDiamond.diamondCut(_diamondCut, address(0), new bytes(0));
        //console.log(msg.sender);
        LibDiamond.setContractOwner(msg.sender);

        LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage();

        // adding ERC165 data
        ds.supportedInterfaces[type(IERC165).interfaceId] = true;
        //ds.supportedInterfaces[type(IDiamondCut).interfaceId] = true;
        ds.supportedInterfaces[type(IDiamondLoupe).interfaceId] = true;
        ds.supportedInterfaces[type(IERC173).interfaceId] = true;
        ds.supportedInterfaces[type(IERC20).interfaceId] = true;

        //init appStorage 
        s.stakingFacet = _args.stakingFacet;
        s.presaleFacet = _args.presaleFacet;
        //s.deployyyyer = address(this);

        s.isParent = true;
        s.decimals = 18;
        s.ethCost = _args.ethCost; //2 * 10**s.decimals / 10; //0.2eth
        s.deployyyyerCost = _args.deployyyyerCost; //100000 * 10**s.decimals;
        s.promoCostEth = _args.promoCostEth; //5 * 10**s.decimals / 100; //0.05 eth per hour
        s.promoCostDeployyyyer = _args.promoCostDeployyyyer; //50000 * 10**s.decimals;
        s.minLiq = _args.minLiq; //1 * 10**s.decimals / 10; //0.1eth min
        //s.bridge = address(0);
        emit LaunchCostChanged(s.ethCost, s.deployyyyerCost);
        emit PromoCostChanged(s.promoCostEth, s.promoCostDeployyyyer);
        emit MinLiquidityChanged(s.minLiq);

        s.isFreeTier = false;

        s.taxWallet = payable(_args.taxwallet);
        s.deployyyyerCa = payable(address(this));
        s.tokenFacet = _args.tokenFacet;
        
        s.validRouters[_args.v2router] = true;
        s.validRouters[_args.uniswapRouter] = true;
        s.validRouters[_args.sushiswapRouter] = true;
        s.validRouters[_args.pancakeswapRouter] = true;
        
        if(_args.createToken) {
            
            s.maxBuyTax = 10;
            s.minBuyTax = 2;
            s.taxBuy = s.maxBuyTax; //20%

            
            s.maxSellTax = 10;
            s.minSellTax = 2;
            s.taxSell = s.maxSellTax; //20%
            
            s.initTaxType = 1;
            s.initInterval = 0;
            s.countInterval = 20;

            // Reduction Rules
            s.buyCount = 0; 
            s.name = "Deployyyyer";
            s.symbol = "DEPLOY";
            s.tTotal = 1000000000 * 10**s.decimals; //1b tokens in wei

            // Contract Swap Rules            
            s.taxSwapThreshold = s.tTotal * 1 / 1000; //0.1%
            s.maxTaxSwap = s.tTotal * 1 / 100; //1%
            s.preventSwap = 20;

            s.maxWallet = s.tTotal * 2 / 100;  //2% 
            s.maxTx = s.tTotal * 2 / 100;  //2% 
            s.walletLimited = true;
            s.balances[address(this)] = s.tTotal;

            emit IncreasedLimits(2, 2);

            emit Transfer(address(0), address(this), s.tTotal);

            s.cliffPeriod = 0;
            s.vestingPeriod = 0;

            s.teamShare[_args.team1] = s.tTotal * 4 / 100;
            s.teamShare[_args.team2] = s.tTotal * 3 / 100;
            s.teamShare[_args.team3] = s.tTotal * 3 / 100;
            s.teamShare[_args.marketing] = s.tTotal * 5 / 100; 
            s.teamShare[_args.treasury] = s.tTotal * 5 / 100; 
            s.isExTxLimit[_args.marketing] = true;
            s.isExWaLimit[_args.marketing] = true;
            s.isExTxLimit[_args.treasury] = true;
            s.isExWaLimit[_args.treasury] = true;
            s.isExTxLimit[_args.team1] = true;
            s.isExWaLimit[_args.team1] = true;
            s.isExTxLimit[_args.team2] = true;
            s.isExWaLimit[_args.team2] = true;
            s.isExTxLimit[_args.team3] = true;
            s.isExWaLimit[_args.team3] = true;

            emit TeamSet(INewToken.TeamParams(_args.team1, 4, s.cliffPeriod, s.vestingPeriod, true)); 
            emit TeamSet(INewToken.TeamParams(_args.team2, 3, s.cliffPeriod, s.vestingPeriod, true)); 
            emit TeamSet(INewToken.TeamParams(_args.team3, 3, s.cliffPeriod, s.vestingPeriod, true)); 
            emit TeamSet(INewToken.TeamParams(_args.marketing, 5, s.cliffPeriod, s.vestingPeriod, true));
            emit TeamSet(INewToken.TeamParams(_args.treasury, 5, s.cliffPeriod, s.vestingPeriod, true)); 

            s.teamBalance = s.tTotal * 20 / 100;
            s.uniswapV2Router = IUniswapV2Router02(_args.v2router);
            s.allowances[address(this)][address(s.uniswapV2Router)] = s.tTotal;
            //emit Approval(address(this), address(s.uniswapV2Router), s.tTotal);
            s.launchedTokens[address(this)] = msg.sender; 
        }
        

    }   

    /// @notice fallback
    // Find facet for function that is called and execute the
    // function if a facet is found and return any value.
    fallback() external payable {
        LibDiamond.DiamondStorage storage ds;
        bytes32 position = LibDiamond.DIAMOND_STORAGE_POSITION;
        // get diamond storage
        assembly {
            ds.slot := position
        }
        // get facet from function selector
        address facet = address(bytes20(ds.facets[msg.sig]));
        require(facet != address(0), "S1");
        // Execute external function from facet using delegatecall and return any value.
        assembly {
            // copy function selector and any arguments
            calldatacopy(0, 0, calldatasize())
            // execute function call using the facet
            let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0)
            // get any return value
            returndatacopy(0, 0, returndatasize())
            // return any return value or error back to the caller
            switch result
                case 0 {
                    revert(0, returndatasize())
                }
                default {
                    return(0, returndatasize())
                }
        }
    }

    /// @notice receive
    receive() external payable {}
}

File 2 of 10 : IDiamondCut.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

interface IDiamondCut {
    enum FacetCutAction {Add, Replace, Remove}
    // Add=0, Replace=1, Remove=2

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

    /// @notice Add/replace/remove any number of functions and optionally execute
    ///         a function with delegatecall
    /// @param _diamondCut Contains the facet addresses and function selectors
    /// @param _init The address of the contract or facet to execute _calldata
    /// @param _calldata A function call, including function selector and arguments
    ///                  _calldata is executed with delegatecall on _init
    function diamondCut(
        FacetCut[] calldata _diamondCut,
        address _init,
        bytes calldata _calldata
    ) external;

    event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);
}

File 3 of 10 : IDiamondLoupe.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

// A loupe is a small magnifying glass used to look at diamonds.
// These functions look at diamonds
interface IDiamondLoupe {
    /// These functions are expected to be called frequently
    /// by tools.

    struct Facet {
        address facetAddress;
        bytes4[] functionSelectors;
    }

    /// @notice Gets all facet addresses and their four byte function selectors.
    /// @return facets_ Facet
    function facets() external view returns (Facet[] memory facets_);

    /// @notice Gets all the function selectors supported by a specific facet.
    /// @param _facet The facet address.
    /// @return facetFunctionSelectors_
    function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_);

    /// @notice Get all the facet addresses used by a diamond.
    /// @return facetAddresses_
    function facetAddresses() external view returns (address[] memory facetAddresses_);

    /// @notice Gets the facet that supports the given selector.
    /// @dev If facet is not found return address(0).
    /// @param _functionSelector The function selector.
    /// @return facetAddress_ The facet address.
    function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);
}

File 4 of 10 : IERC165.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

interface IERC165 {
    /// @notice Query if a contract implements an interface
    /// @param interfaceId The interface identifier, as specified in ERC-165
    /// @dev Interface identification is specified in ERC-165. This function
    ///  uses less than 30,000 gas.
    /// @return `true` if the contract implements `interfaceID` and
    ///  `interfaceID` is not 0xffffffff, `false` otherwise
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

File 5 of 10 : IERC173.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

/// @title ERC-173 Contract Ownership Standard
///  Note: the ERC-165 identifier for this interface is 0x7f5828d0
/* is ERC165 */
interface IERC173 {
    /// @dev This emits when ownership of a contract changes.
    //event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /// @notice Get the address of the owner
    /// @return owner_ The address of the owner.
    function owner() external view returns (address owner_);

    /// @notice Set the address of the new owner of the contract
    /// @dev Set _newOwner to address(0) to renounce any ownership.
    /// @param _newOwner The address of the new owner of the contract
    function transferOwnership(address _newOwner) external;
}

File 6 of 10 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;


interface IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address _owner) external view returns (uint256 balance);

    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    ) external returns (bool success);

    function transfer(address _to, uint256 _value) external returns (bool success);

    function approve(address _spender, uint256 _value) external returns (bool success);

    function allowance(address _owner, address _spender) external view returns (uint256 remaining);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 7 of 10 : INewToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;
import { IPresale} from "./IPresale.sol";

interface INewToken {
    struct InitParams {
        address owner;
        address taxWallet;
        address stakingFacet;
        address v2router;
        bool isFreeTier;
        uint256 minLiq; 
        uint256 supply;
        uint256 initTaxType; //0-time,1-buyCount,2-hybrid
        uint256 initInterval; //seconds 0-1 hour(if 1m: 1m, 3m, 6m, 10m)
        uint256 countInterval; //0-100 
        uint256  maxBuyTax; //40%
        uint256  minBuyTax; //0
        uint256  maxSellTax; //40%
        uint256  minSellTax; //0
        uint256  lpTax; //0-90 of buy or sell tax
        uint256 maxWallet;
        uint256 maxTx;
        uint256 preventSwap;
        uint256 maxSwap;
        uint256 taxSwapThreshold;
        string  name;
        string  symbol;
    }
    
    struct TeamParams {
        address team1;
        uint256 team1p; 
        uint256 cliffPeriod; 
        uint256 vestingPeriod;
        bool isAdd;
    }

	function rescueERC20(address _address) external;
	function increaseLimits(uint256 maxwallet, uint256 maxtx) external;
	function startTrading(uint256 lockPeriod, bool shouldBurn, address router) external;
    //require trading and presale not started
    function addPresale(address presale, uint256 percent, IPresale.PresaleParams memory newdetails) external;
    //require caller to be presale address
    function finPresale() external;
    function refPresale() external;
    //requires presale not started and trading not started
    function addTeam(TeamParams memory params) external;
    //what if we remove team out from init?
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);

}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

File 8 of 10 : IPresale.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

interface IPresale {
    struct PresaleParams {
            address owner;
            address token;
            uint256 softcap;
            uint256 hardcap;
            uint256 startTs;
            uint256 finishTs;
            uint256 duration;
            uint256 liqPercent;
            uint256 cliffPeriod;
            uint256 vestingPeriod;
            uint256 status;
            uint256 sold;
            uint256 maxEth;
            uint256 maxBag;
            uint256 fee;
    }

    function transferOwnership(address _newOwner) external;
    function owner() external view returns (address);
    function rescueERC20(address _address) external;
    function setupPresale(PresaleParams memory params) external;
    function buyTokens(uint256 _amount) external payable;
    //should we offer or force token vesting??
    function claimTokens() external;
    function getRefund() external;
    function getPresaleDetails() external view returns(PresaleParams memory); 
    function finishPresale() external; 
    function claimEth() external;
    function getClaimableTokens(address user) external view returns(uint256,uint256,uint256,uint256);
    function refundPresale() external;
}

File 9 of 10 : LibAppStorage.sol
// SPDX-License-Identifier: MIT
/*********************************************************************************************\
* Deployyyyer: https://deployyyyer.io
* Twitter: https://x.com/deployyyyer
* Telegram: https://t.me/Deployyyyer
/*********************************************************************************************/
pragma solidity ^0.8.23;
import {LibDiamond} from "./LibDiamond.sol";
//import {LibMeta} from "./LibMeta.sol";
import {IUniswapV2Factory, IUniswapV2Router02} from "../interfaces/INewToken.sol";



struct AppStorage {
    mapping(address => bool) validRouters; //parentOnly
    mapping(address => bool) allowedTokens; //parentOnly
    //this should be bool too
    mapping(address => address) launchedTokens; //parentOnly
    mapping(address => address) launchedPresale; //parentOnly
    //cost of launch, cost of promo, cost of setting socials is 2xpromoCostEth
    uint256 ethCost; //parentOnly
    uint256 deployyyyerCost; //parentOnly
    uint256 promoCostEth; //parentOnly
    uint256 promoCostDeployyyyer; //parentOnly
    address bridge; //parentOnly

    //mapping of user address to score
    mapping(address => uint256) myScore; //parentOnly

    //+1 for launch, +5 for liquidity add, +50 for lp burn, -100 for lp retrieve
    uint256 cScore; //cScore is transferred with ownership, cScore is deducted on lp retrieve

    
    //address deployyyyer;
    bool isParent;
    uint256 minLiq;
    //this can be a map with share and clain in a structure
    mapping(address => uint256) teamShare;
    mapping(address => uint256) teamClaim;
    
    uint256 teamBalance;

    uint256 cliffPeriod; //min 30days
    uint256 vestingPeriod;//min 1day max 10000 days avg 30days.


    mapping(address => bool)  isExTxLimit; //is excluded from transaction limit
    mapping(address => bool)  isExWaLimit; //is excluded from wallet limit
    mapping (address => uint256)  balances; //ERC20 balance
    mapping (address => mapping (address => uint256))  allowances; //ERC20 balance

    address payable taxWallet; //tax wallet for the token
    address payable deployyyyerCa; //deployyyyer contract address
    address payable stakingContract; //address of staking contract for the token
    address stakingFacet; //facet address, used to launch a staking pool
    address presaleFacet; //facet address, used to launch a presale
    address tokenFacet; //facet address, used to launch a ERC20 token
    uint256 stakingShare; //share of tax sent to its staking pool
    
    
    // Reduction Rules
    uint256  buyCount; 

    uint256 initTaxType; //0-time,1-buyCount,2-hybrid,3-none
    //interval*1, lastIntEnd+(interval*2), lastIntEnd+(interval*3)
    uint256 initInterval; //seconds 0-1 hour(if 1m: 1m, 3m, 6m, 10m)
    uint256 countInterval; //0-100 

    //current taxes
    uint256  taxBuy; 
    uint256  maxBuyTax; //40%
    uint256  minBuyTax; //0

    uint256  taxSell; 
    uint256  maxSellTax; //40%
    uint256  minSellTax; //0
    
    


    uint256  tradingOpened;

    // Token Information
    uint8   decimals;
    uint256   tTotal;
    string   name;
    string   symbol;

    // Contract Swap Rules 
    uint256 preventSwap; //50            
    uint256  taxSwapThreshold; //0.1%
    uint256  maxTaxSwap; //1%
    uint256  maxWallet; //1%
    uint256  maxTx;

    IUniswapV2Router02  uniswapV2Router;
    address  uniswapV2Pair;
    
    bool  tradingOpen; //true if liquidity pool is created
    bool  inSwap;
    bool  walletLimited;
    bool isFreeTier;
    bool isBurnt;
    bool isRetrieved;
    uint256 lockPeriod;
    
    //buy back tax calculations
    uint256 lpTax; //0-50 percent of tax amount 
    uint256 halfLp;
    uint256 lastSwap;

    uint256 presaleTs;
    uint256 presaleSt;
    address presale;

}

/*
library LibAppStorage {
    function diamondStorage() internal pure returns (AppStorage storage ds) {
        assembly {
            ds.slot := 0
        }
    }

    function abs(int256 x) internal pure returns (uint256) {
        return uint256(x >= 0 ? x : -x);
    }
}
*/


contract Modifiers {
    AppStorage internal s;

    modifier onlyOwner() {
        LibDiamond.enforceIsContractOwner();
        _;
    }  
    
}

File 10 of 10 : LibDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

/*********************************************************************************************\
* Authors: Nick Mudge <[email protected]> (https://twitter.com/mudgen), 
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/*********************************************************************************************/
import { IDiamondCut } from "../interfaces/IDiamondCut.sol";

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

    struct DiamondStorage {
        // maps function selectors to the facets that execute the functions.
        // and maps the selectors to their position in the selectorSlots array.
        // func selector => address facet, selector position
        mapping(bytes4 => bytes32) facets;
        // array of slots of function selectors.
        // each slot holds 8 function selectors.
        mapping(uint256 => bytes32) selectorSlots;
        // The number of function selectors in selectorSlots
        uint16 selectorCount;
        // Used to query if a contract implements an interface.
        // Used to implement ERC-165.
        mapping(bytes4 => bool) supportedInterfaces;
        // owner of the contract
        address contractOwner;
    }

    function diamondStorage() internal pure returns (DiamondStorage storage ds) {
        bytes32 position = DIAMOND_STORAGE_POSITION;
        assembly {
            ds.slot := position
        }
    }

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

    function setContractOwner(address _newOwner) internal {
        DiamondStorage storage ds = diamondStorage();
        address previousOwner = ds.contractOwner;
        ds.contractOwner = _newOwner;
        emit OwnershipTransferred(previousOwner, _newOwner);
    }

    function contractOwner() internal view returns (address contractOwner_) {
        contractOwner_ = diamondStorage().contractOwner;
    }

    function enforceIsContractOwner() internal view {
        require(msg.sender == diamondStorage().contractOwner, "l0");
    }

    //event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata);

    //bytes32 constant CLEAR_ADDRESS_MASK = bytes32(uint256(0xffffffffffffffffffffffff));
    bytes32 constant CLEAR_SELECTOR_MASK = bytes32(uint256(0xffffffff << 224));

    // Internal function version of diamondCut
    // This code is almost the same as the external diamondCut,
    // except it is using 'Facet[] memory _diamondCut' instead of
    // 'Facet[] calldata _diamondCut'.
    // The code is duplicated to prevent copying calldata to memory which
    // causes an error for a two dimensional array.
    // also removed action on _calldata and _init is always address(0)
    // maintained same old signature
    function diamondCut(
        IDiamondCut.FacetCut[] memory _diamondCut,
        address _init,
        bytes memory _calldata
    ) internal {
        DiamondStorage storage ds = diamondStorage();
        uint256 originalSelectorCount = ds.selectorCount;
        uint256 selectorCount = originalSelectorCount;
        bytes32 selectorSlot;
        // Check if last selector slot is not full
        // "selectorCount & 7" is a gas efficient modulo by eight "selectorCount % 8" 
        if (selectorCount & 7 > 0) {
            // get last selectorSlot
            // "selectorSlot >> 3" is a gas efficient division by 8 "selectorSlot / 8"
            selectorSlot = ds.selectorSlots[selectorCount >> 3];
        }
        // loop through diamond cut
        for (uint256 facetIndex; facetIndex < _diamondCut.length; facetIndex++) {
            (selectorCount, selectorSlot) = addReplaceRemoveFacetSelectors(
                selectorCount,
                selectorSlot,
                _diamondCut[facetIndex].facetAddress,
                _diamondCut[facetIndex].action,
                _diamondCut[facetIndex].functionSelectors
            );
        }
        if (selectorCount != originalSelectorCount) {
            ds.selectorCount = uint16(selectorCount);
        }
        // If last selector slot is not full
        // "selectorCount & 7" is a gas efficient modulo by eight "selectorCount % 8" 
        if (selectorCount & 7 > 0) {
            // "selectorSlot >> 3" is a gas efficient division by 8 "selectorSlot / 8"
            ds.selectorSlots[selectorCount >> 3] = selectorSlot;
        }
        //emit DiamondCut(_diamondCut, _init, _calldata);
        //initializeDiamondCut(_init, _calldata);
        require(_init == address(0), "l1");
        require(_calldata.length == 0, "l2");
    }

    //supports only add, maintaining lib fn name
    function addReplaceRemoveFacetSelectors(
        uint256 _selectorCount,
        bytes32 _selectorSlot,
        address _newFacetAddress,
        IDiamondCut.FacetCutAction _action,
        bytes4[] memory _selectors
    ) internal returns (uint256, bytes32) {
        DiamondStorage storage ds = diamondStorage();
        require(_selectors.length > 0, "l3");
        if (_action == IDiamondCut.FacetCutAction.Add) {
            enforceHasContractCode(_newFacetAddress, "l4");
            for (uint256 selectorIndex; selectorIndex < _selectors.length; selectorIndex++) {
                bytes4 selector = _selectors[selectorIndex];
                bytes32 oldFacet = ds.facets[selector];
                require(address(bytes20(oldFacet)) == address(0), "l5");
                // add facet for selector
                ds.facets[selector] = bytes20(_newFacetAddress) | bytes32(_selectorCount);
                // "_selectorCount & 7" is a gas efficient modulo by eight "_selectorCount % 8" 
                uint256 selectorInSlotPosition = (_selectorCount & 7) << 5;
                // clear selector position in slot and add selector
                _selectorSlot = (_selectorSlot & ~(CLEAR_SELECTOR_MASK >> selectorInSlotPosition)) | (bytes32(selector) >> selectorInSlotPosition);
                // if slot is full then write it to storage
                if (selectorInSlotPosition == 224) {
                    // "_selectorSlot >> 3" is a gas efficient division by 8 "_selectorSlot / 8"
                    ds.selectorSlots[_selectorCount >> 3] = _selectorSlot;
                    _selectorSlot = 0;
                }
                _selectorCount++;
            }
        } 
        else {
            revert("l6");
        }
        return (_selectorCount, _selectorSlot);
    }

    function enforceHasContractCode(address _contract, string memory _errorMessage) internal view {
        uint256 contractSize;
        assembly {
            contractSize := extcodesize(_contract)
        }
        require(contractSize > 0, _errorMessage);
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"components":[{"internalType":"bool","name":"createToken","type":"bool"},{"internalType":"address","name":"taxwallet","type":"address"},{"internalType":"address","name":"stakingFacet","type":"address"},{"internalType":"address","name":"presaleFacet","type":"address"},{"internalType":"address","name":"tokenFacet","type":"address"},{"internalType":"address","name":"v2router","type":"address"},{"internalType":"address","name":"team1","type":"address"},{"internalType":"address","name":"team2","type":"address"},{"internalType":"address","name":"team3","type":"address"},{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"uint256","name":"ethCost","type":"uint256"},{"internalType":"uint256","name":"deployyyyerCost","type":"uint256"},{"internalType":"uint256","name":"promoCostEth","type":"uint256"},{"internalType":"uint256","name":"promoCostDeployyyyer","type":"uint256"},{"internalType":"uint256","name":"minLiq","type":"uint256"},{"internalType":"address","name":"uniswapRouter","type":"address"},{"internalType":"address","name":"sushiswapRouter","type":"address"},{"internalType":"address","name":"pancakeswapRouter","type":"address"}],"internalType":"struct Deployyyyer.ConstructorArgs","name":"_args","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"}],"name":"FactoryBuilt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxTx","type":"uint256"}],"name":"IncreasedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ethCost","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"deployyyyerCost","type":"uint256"}],"name":"LaunchCostChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minLiq","type":"uint256"}],"name":"MinLiquidityChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ethCost","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"deployyyyerCost","type":"uint256"}],"name":"PromoCostChanged","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"team1","type":"address"},{"internalType":"uint256","name":"team1p","type":"uint256"},{"internalType":"uint256","name":"cliffPeriod","type":"uint256"},{"internalType":"uint256","name":"vestingPeriod","type":"uint256"},{"internalType":"bool","name":"isAdd","type":"bool"}],"indexed":false,"internalType":"struct INewToken.TeamParams","name":"tparams","type":"tuple"}],"name":"TeamSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060405161175e38038061175e83398101604081905261002f91611100565b8051156100645760008051602061171e833981519152633b9aca00604051610057919061128f565b60405180910390a161008b565b60008051602061171e8339815191526000604051610082919061128f565b60405180910390a15b604080516000808252602082019092526100a6918491610ac5565b6100af33610c61565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f60209081527f699d9daa71b280d05a152715774afa0a81a312594b2d731d6b0b2552b7d6f69f805460ff1990811660019081179092557f65d510a5d8f7ef134ec444f7f34ee808c8eeb5177cdfd16be0c40fe1ab43369580548216831790557f5622121b47b8cd0120c4efe45dd5483242f54a3d49bd7679be565d47694918c38054821683179055634a17459160e11b6000527f70e699e155a5f76c229c88a52614e4bfee4370d1adc9e274e24a68bd8444e5cd8054821683179055604084810151601980546001600160a01b039283166001600160a01b0319918216179091556060870151601a8054919093169116179055600b80548316909317909255602880549091166012179055610160830151600481905561018084015160058190556101a08501516006556101c08501516007556101e0850151600c558251918252928101929092526000805160206116fe833981519152917f50a26e8dca4f83dd2f16abd63b83e3ead92dee6b429f357640259ec8ba34be6c910160405180910390a16006546007546040517f7d1222408c4cf98acbe36b7adf56d412889d6080cb5f5bcaf9508217eb7131639261029092908252602082015260400190565b60405180910390a1600c546040519081527f48a7da5840f3e4010850e8fb774b401fa2cfdaddbf403c198b367a681b021ca59060200160405180910390a16032805460ff60b81b19169055602080830151601680546001600160a01b039283166001600160a01b031991821617909155601780548216301790556080850151601b80549184169190921617905560a084015181166000908152918290526040808320805460ff1990811660019081179092556102008701518416855282852080548216831790556102208701518416855282852080548216831790556102408701519093168452922080549091169091179055815115610abd57600a602281905560026023819055602182905560258290556026556024556001601e556000601f81905560146020908155601d9190915560408051808201909152600b81526a2232b83637bcbcbcbcb2b960a91b91810191909152602a906103f29082611379565b506040805180820190915260068152654445504c4f5960d01b6020820152602b9061041d9082611379565b5060285461042f9060ff16600a611534565b61043d90633b9aca0061154a565b60298190556103e89061045190600161154a565b61045b9190611561565b602d5560295460649061046f90600161154a565b6104799190611561565b602e556014602c5560295460649061049290600261154a565b61049c9190611561565b602f556029546064906104b090600261154a565b6104ba9190611561565b6030556032805460ff60b01b1916600160b01b179055602954306000908152601460205260409081902091909155517f3e470cf1ec3767d0209f5128c840997ff9b70dfe0da263b3f94eb114a05d932790610522906002908190918252602082015260400190565b60405180910390a160295460405190815230906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36000601081905560115560295460649061058090600461154a565b61058a9190611561565b60c08301516001600160a01b03166000908152600d60205260409020556029546064906105b890600361154a565b6105c29190611561565b60e08301516001600160a01b03166000908152600d60205260409020556029546064906105f090600361154a565b6105fa9190611561565b6101008301516001600160a01b03166000908152600d602052604090205560295460649061062990600561154a565b6106339190611561565b6101208301516001600160a01b03166000908152600d602052604090205560295460649061066290600561154a565b61066c9190611561565b610140830180516001600160a01b039081166000908152600d6020908152604080832095909555610120870180518416835260128083528684208054600160ff199182168117909255925186168552601380855288862080548516831790558751871686528285528886208054851683179055965186168552868452878520805484168217905560c08a018051871686528285528886208054851683179055805187168652878552888620805485168317905560e08b018051881687528386528987208054861684179055518716865287855288862080548516831790556101008b01805188168752928552888620805485168317905591518616855295835292869020805490911685179055845160a08082018752925190931680845260048483019081526010548588019081526011546060808801918252608097880198895289519485529251948401949094525196820196909652905194810194909452915115159083015260008051602061173e833981519152910160405180910390a16040805160a08101825260e08401516001600160a01b031681526003602082015260105481830152601154606082015260016080820152905160008051602061173e8339815191529161087b9181516001600160a01b0316815260208083015190820152604080830151908201526060808301519082015260809182015115159181019190915260a00190565b60405180910390a16040805160a0810182526101008401516001600160a01b031681526003602082015260105481830152601154606082015260016080820152905160008051602061173e833981519152916109119181516001600160a01b0316815260208083015190820152604080830151908201526060808301519082015260809182015115159181019190915260a00190565b60405180910390a16040805160a0810182526101208401516001600160a01b031681526005602082015260105481830152601154606082015260016080820152905160008051602061173e833981519152916109a79181516001600160a01b0316815260208083015190820152604080830151908201526060808301519082015260809182015115159181019190915260a00190565b60405180910390a16040805160a0810182526101408401516001600160a01b031681526005602082015260105481830152601154606082015260016080820152905160008051602061173e83398151915291610a3d9181516001600160a01b0316815260208083015190820152604080830151908201526060808301519082015260809182015115159181019190915260a00190565b60405180910390a1602954606490610a5690601461154a565b610a609190611561565b600f5560a0820151603180546001600160a01b039092166001600160a01b03199283168117909155602954306000818152601560209081526040808320958352948152848220939093559081526002909152208054909116331790555b505050611617565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131e546000805160206116fe8339815191529061ffff811690819060009060071615610b225750600381901c60009081526001840160205260409020545b60005b8751811015610ba557610b9883838a8481518110610b4557610b45611583565b6020026020010151600001518b8581518110610b6357610b63611583565b6020026020010151602001518c8681518110610b8157610b81611583565b602002602001015160400151610ce460201b60201c565b9093509150600101610b25565b50828214610bc15760028401805461ffff191661ffff84161790555b6007821615610be357600382901c600090815260018501602052604090208190555b6001600160a01b03861615610c245760405162461bcd60e51b81526020600482015260026024820152616c3160f01b60448201526064015b60405180910390fd5b845115610c585760405162461bcd60e51b8152602060048201526002602482015261361960f11b6044820152606401610c1b565b50505050505050565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c132080546001600160a01b031981166001600160a01b038481169182179093556040516000805160206116fe833981519152939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600080806000805160206116fe83398151915290506000845111610d2f5760405162461bcd60e51b81526020600482015260026024820152616c3360f01b6044820152606401610c1b565b6000856002811115610d4357610d43611599565b03610e7857610d7286604051806040016040528060028152602001611b0d60f21b815250610eb160201b60201c565b60005b8451811015610e72576000858281518110610d9257610d92611583565b6020908102919091018101516001600160e01b03198116600090815291859052604090912054909150606081901c15610df25760405162461bcd60e51b81526020600482015260026024820152616c3560f01b6044820152606401610c1b565b6001600160e01b031980831660008181526020879052604090206001600160601b031960608d901b168e17905560e060058e901b811692831c199c909c1690821c179a819003610e565760038c901c600090815260018601602052604081209b909b555b8b610e60816115af565b9c505060019093019250610d75915050565b50610ea5565b60405162461bcd60e51b8152602060048201526002602482015261361b60f11b6044820152606401610c1b565b50959694955050505050565b813b8181610ed25760405162461bcd60e51b8152600401610c1b91906115c8565b50505050565b634e487b7160e01b600052604160045260246000fd5b60405161026081016001600160401b0381118282101715610f1157610f11610ed8565b60405290565b604051606081016001600160401b0381118282101715610f1157610f11610ed8565b604051601f8201601f191681016001600160401b0381118282101715610f6157610f61610ed8565b604052919050565b60006001600160401b03821115610f8257610f82610ed8565b5060051b60200190565b80516001600160a01b0381168114610fa357600080fd5b919050565b80518015158114610fa357600080fd5b60006102608284031215610fcb57600080fd5b610fd3610eee565b9050610fde82610fa8565b8152610fec60208301610f8c565b6020820152610ffd60408301610f8c565b604082015261100e60608301610f8c565b606082015261101f60808301610f8c565b608082015261103060a08301610f8c565b60a082015261104160c08301610f8c565b60c082015261105260e08301610f8c565b60e0820152610100611065818401610f8c565b90820152610120611077838201610f8c565b90820152610140611089838201610f8c565b90820152610160828101519082015261018080830151908201526101a080830151908201526101c080830151908201526101e080830151908201526102006110d2818401610f8c565b908201526102206110e4838201610f8c565b908201526102406110f6838201610f8c565b9082015292915050565b600080610280838503121561111457600080fd5b82516001600160401b038082111561112b57600080fd5b818501915085601f83011261113f57600080fd5b8151602061115461114f83610f69565b610f39565b82815260059290921b8401810191818101908984111561117357600080fd5b8286015b848110156112715780518681111561118e57600080fd5b87016060818d03601f190112156111a457600080fd5b6111ac610f17565b6111b7868301610f8c565b81526040820151600381106111cb57600080fd5b818701526060820151888111156111e157600080fd5b8083019250508c603f8301126111f657600080fd5b8582015161120661114f82610f69565b81815260059190911b830160400190878101908f83111561122657600080fd5b6040850194505b8285101561125c5784516001600160e01b03198116811461124d57600080fd5b8252938801939088019061122d565b60408401525050845250918301918301611177565b509650611282905088888301610fb8565b9450505050509250929050565b6060815260006112ba60608301600b81526a2232b83637bcbcbcbcb2b960a91b602082015260400190565b82810360208401526112df8160068152654445504c4f5960d01b602082015260400190565b91505082604083015292915050565b600181811c9082168061130257607f821691505b60208210810361132257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611374576000816000526020600020601f850160051c810160208610156113515750805b601f850160051c820191505b818110156113705782815560010161135d565b5050505b505050565b81516001600160401b0381111561139257611392610ed8565b6113a6816113a084546112ee565b84611328565b602080601f8311600181146113db57600084156113c35750858301515b600019600386901b1c1916600185901b178555611370565b600085815260208120601f198616915b8281101561140a578886015182559484019460019091019084016113eb565b50858210156114285787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561148957816000190482111561146f5761146f611438565b8085161561147c57918102915b93841c9390800290611453565b509250929050565b6000826114a05750600161152e565b816114ad5750600061152e565b81600181146114c357600281146114cd576114e9565b600191505061152e565b60ff8411156114de576114de611438565b50506001821b61152e565b5060208310610133831016604e8410600b841016171561150c575081810a61152e565b611516838361144e565b806000190482111561152a5761152a611438565b0290505b92915050565b600061154360ff841683611491565b9392505050565b808202811582820484141761152e5761152e611438565b60008261157e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000600182016115c1576115c1611438565b5060010190565b60006020808352835180602085015260005b818110156115f6578581018301518582016040015282016115da565b506000604082860101526040601f19601f8301168501019250505092915050565b60d9806116256000396000f3fe608060405236600a57005b600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c6020819052604090912054819060601c8060805760405162461bcd60e51b8152602060048201526002602482015261533160f01b604482015260640160405180910390fd5b3660008037600080366000845af43d6000803e808015609e573d6000f35b3d6000fdfea2646970667358221220e1c422b895f3ed3b2083b6e98ae66ddcf5050f45159879385136dda8e89e146864736f6c63430008170033c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131ce28fd1bead94852c1ee968d92f0d870ec63780bcdd79d68c7d990619ab42210c67e3b136f8d98329b3ac411e1cee90cd3f43d8b1ac139de04f25f5a202599e9e00000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000716bdce29b0de1f5807d8259a8e10afeff7451ed000000000000000000000000f992610355f3c5fcc4bc300b0b9eb5b5ff037d2c000000000000000000000000516310567ff81b6663e8715182d83a5565e98ea000000000000000000000000076bfec03547673b84223d9fb4c02eb20ec021e070000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000046a3821214731c42aebd7a5eb9372832f4f7baab00000000000000000000000067ed4fddc48292d16d75feae525813539e5d4e7e000000000000000000000000ec40ca4a40e44846585af99ce86df8eafdc04c69000000000000000000000000b462553bf6354e094fc79be49e536270ec9c2c48000000000000000000000000a3c43e3c52589d70ffb9eab47e6618145e1a64c600000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000069e10de76676d080000000000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000000000000000000000000a968163f0a57b400000000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9f000000000000000000000000eff92a263d31888d860bd50809a8d171709b7b1c000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000007600000000000000000000000009c84288cb2c0fcad30f031ac1d4b1633ef994c63000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000c47040c859f8ac150d2908c5c1fb7335b8dde08d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000047ad46705000000000000000000000000000000000000000000000000000000009c02504a0000000000000000000000000000000000000000000000000000000066a0c39400000000000000000000000000000000000000000000000000000000d38bf890000000000000000000000000000000000000000000000000000000000000000000000000000000005a99bf51b70636e60bb825e79b3ca0b3cec8b1fa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000b0b45260e0000000000000000000000000000000000000000000000000000000048c54b9d0000000000000000000000000000000000000000000000000000000044ee3a1c00000000000000000000000000000000000000000000000000000000dde070e8000000000000000000000000000000000000000000000000000000005c89dfe10000000000000000000000000000000000000000000000000000000020ffb26d00000000000000000000000000000000000000000000000000000000af66394d000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000004839c8b3000000000000000000000000000000000000000000000000000000000d0da2d400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000000000000000000000000000fa075514d738d2f0ce296b26b60c82dbaeca21f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000012d119db4c00000000000000000000000000000000000000000000000000000000d4eb329400000000000000000000000000000000000000000000000000000000a501ed8b0000000000000000000000000000000000000000000000000000000089807da400000000000000000000000000000000000000000000000000000000a2390f6900000000000000000000000000000000000000000000000000000000f39bb7d200000000000000000000000000000000000000000000000000000000353a9e7100000000000000000000000000000000000000000000000000000000d47875d0000000000000000000000000000000000000000000000000000000007ef92e02000000000000000000000000000000000000000000000000000000007ee100e900000000000000000000000000000000000000000000000000000000a99266470000000000000000000000000000000000000000000000000000000075c4745900000000000000000000000000000000000000000000000000000000742fbad6000000000000000000000000000000000000000000000000000000009ba39f940000000000000000000000000000000000000000000000000000000051ab87020000000000000000000000000000000000000000000000000000000077dc74f0000000000000000000000000000000000000000000000000000000008dd14802000000000000000000000000000000000000000000000000000000003674dd530000000000000000000000000000000000000000000000000000000000000000000000000000000076bfec03547673b84223d9fb4c02eb20ec021e070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000101bbd3a2400000000000000000000000000000000000000000000000000000000b399563600000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000087fc38b00000000000000000000000000000000000000000000000000000000078f8484b0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000b5660a1800000000000000000000000000000000000000000000000000000000ccec371600000000000000000000000000000000000000000000000000000000db7c4dda0000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405236600a57005b600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c6020819052604090912054819060601c8060805760405162461bcd60e51b8152602060048201526002602482015261533160f01b604482015260640160405180910390fd5b3660008037600080366000845af43d6000803e808015609e573d6000f35b3d6000fdfea2646970667358221220e1c422b895f3ed3b2083b6e98ae66ddcf5050f45159879385136dda8e89e146864736f6c63430008170033

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

00000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000716bdce29b0de1f5807d8259a8e10afeff7451ed000000000000000000000000f992610355f3c5fcc4bc300b0b9eb5b5ff037d2c000000000000000000000000516310567ff81b6663e8715182d83a5565e98ea000000000000000000000000076bfec03547673b84223d9fb4c02eb20ec021e070000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000046a3821214731c42aebd7a5eb9372832f4f7baab00000000000000000000000067ed4fddc48292d16d75feae525813539e5d4e7e000000000000000000000000ec40ca4a40e44846585af99ce86df8eafdc04c69000000000000000000000000b462553bf6354e094fc79be49e536270ec9c2c48000000000000000000000000a3c43e3c52589d70ffb9eab47e6618145e1a64c600000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000069e10de76676d080000000000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000000000000000000000000a968163f0a57b400000000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9f000000000000000000000000eff92a263d31888d860bd50809a8d171709b7b1c000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000007600000000000000000000000009c84288cb2c0fcad30f031ac1d4b1633ef994c63000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000c47040c859f8ac150d2908c5c1fb7335b8dde08d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000047ad46705000000000000000000000000000000000000000000000000000000009c02504a0000000000000000000000000000000000000000000000000000000066a0c39400000000000000000000000000000000000000000000000000000000d38bf890000000000000000000000000000000000000000000000000000000000000000000000000000000005a99bf51b70636e60bb825e79b3ca0b3cec8b1fa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000b0b45260e0000000000000000000000000000000000000000000000000000000048c54b9d0000000000000000000000000000000000000000000000000000000044ee3a1c00000000000000000000000000000000000000000000000000000000dde070e8000000000000000000000000000000000000000000000000000000005c89dfe10000000000000000000000000000000000000000000000000000000020ffb26d00000000000000000000000000000000000000000000000000000000af66394d000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000004839c8b3000000000000000000000000000000000000000000000000000000000d0da2d400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000000000000000000000000000fa075514d738d2f0ce296b26b60c82dbaeca21f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000012d119db4c00000000000000000000000000000000000000000000000000000000d4eb329400000000000000000000000000000000000000000000000000000000a501ed8b0000000000000000000000000000000000000000000000000000000089807da400000000000000000000000000000000000000000000000000000000a2390f6900000000000000000000000000000000000000000000000000000000f39bb7d200000000000000000000000000000000000000000000000000000000353a9e7100000000000000000000000000000000000000000000000000000000d47875d0000000000000000000000000000000000000000000000000000000007ef92e02000000000000000000000000000000000000000000000000000000007ee100e900000000000000000000000000000000000000000000000000000000a99266470000000000000000000000000000000000000000000000000000000075c4745900000000000000000000000000000000000000000000000000000000742fbad6000000000000000000000000000000000000000000000000000000009ba39f940000000000000000000000000000000000000000000000000000000051ab87020000000000000000000000000000000000000000000000000000000077dc74f0000000000000000000000000000000000000000000000000000000008dd14802000000000000000000000000000000000000000000000000000000003674dd530000000000000000000000000000000000000000000000000000000000000000000000000000000076bfec03547673b84223d9fb4c02eb20ec021e070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000101bbd3a2400000000000000000000000000000000000000000000000000000000b399563600000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000087fc38b00000000000000000000000000000000000000000000000000000000078f8484b0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000b5660a1800000000000000000000000000000000000000000000000000000000ccec371600000000000000000000000000000000000000000000000000000000db7c4dda0000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _diamondCut (tuple[]): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput],System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
Arg [1] : _args (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]

-----Encoded View---------------
100 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000280
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 000000000000000000000000716bdce29b0de1f5807d8259a8e10afeff7451ed
Arg [3] : 000000000000000000000000f992610355f3c5fcc4bc300b0b9eb5b5ff037d2c
Arg [4] : 000000000000000000000000516310567ff81b6663e8715182d83a5565e98ea0
Arg [5] : 00000000000000000000000076bfec03547673b84223d9fb4c02eb20ec021e07
Arg [6] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [7] : 00000000000000000000000046a3821214731c42aebd7a5eb9372832f4f7baab
Arg [8] : 00000000000000000000000067ed4fddc48292d16d75feae525813539e5d4e7e
Arg [9] : 000000000000000000000000ec40ca4a40e44846585af99ce86df8eafdc04c69
Arg [10] : 000000000000000000000000b462553bf6354e094fc79be49e536270ec9c2c48
Arg [11] : 000000000000000000000000a3c43e3c52589d70ffb9eab47e6618145e1a64c6
Arg [12] : 00000000000000000000000000000000000000000000000006f05b59d3b20000
Arg [13] : 0000000000000000000000000000000000000000000069e10de76676d0800000
Arg [14] : 00000000000000000000000000000000000000000000000000b1a2bc2ec50000
Arg [15] : 000000000000000000000000000000000000000000000a968163f0a57b400000
Arg [16] : 000000000000000000000000000000000000000000000000016345785d8a0000
Arg [17] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [18] : 000000000000000000000000d9e1ce17f2641f24ae83637ab66a2cca9c378b9f
Arg [19] : 000000000000000000000000eff92a263d31888d860bd50809a8d171709b7b1c
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [21] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [22] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [23] : 00000000000000000000000000000000000000000000000000000000000002c0
Arg [24] : 00000000000000000000000000000000000000000000000000000000000004a0
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000760
Arg [26] : 0000000000000000000000009c84288cb2c0fcad30f031ac1d4b1633ef994c63
Arg [27] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [28] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [30] : cdffacc600000000000000000000000000000000000000000000000000000000
Arg [31] : 52ef6b2c00000000000000000000000000000000000000000000000000000000
Arg [32] : adfca15e00000000000000000000000000000000000000000000000000000000
Arg [33] : 7a0ed62700000000000000000000000000000000000000000000000000000000
Arg [34] : 01ffc9a700000000000000000000000000000000000000000000000000000000
Arg [35] : 000000000000000000000000c47040c859f8ac150d2908c5c1fb7335b8dde08d
Arg [36] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [37] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [38] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [39] : 7ad4670500000000000000000000000000000000000000000000000000000000
Arg [40] : 9c02504a00000000000000000000000000000000000000000000000000000000
Arg [41] : 66a0c39400000000000000000000000000000000000000000000000000000000
Arg [42] : d38bf89000000000000000000000000000000000000000000000000000000000
Arg [43] : 0000000000000000000000005a99bf51b70636e60bb825e79b3ca0b3cec8b1fa
Arg [44] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [45] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [46] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [47] : 0b45260e00000000000000000000000000000000000000000000000000000000
Arg [48] : 48c54b9d00000000000000000000000000000000000000000000000000000000
Arg [49] : 44ee3a1c00000000000000000000000000000000000000000000000000000000
Arg [50] : dde070e800000000000000000000000000000000000000000000000000000000
Arg [51] : 5c89dfe100000000000000000000000000000000000000000000000000000000
Arg [52] : 20ffb26d00000000000000000000000000000000000000000000000000000000
Arg [53] : af66394d00000000000000000000000000000000000000000000000000000000
Arg [54] : 8da5cb5b00000000000000000000000000000000000000000000000000000000
Arg [55] : 4839c8b300000000000000000000000000000000000000000000000000000000
Arg [56] : 0d0da2d400000000000000000000000000000000000000000000000000000000
Arg [57] : f2fde38b00000000000000000000000000000000000000000000000000000000
Arg [58] : 000000000000000000000000fa075514d738d2f0ce296b26b60c82dbaeca21f4
Arg [59] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [60] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [61] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [62] : d119db4c00000000000000000000000000000000000000000000000000000000
Arg [63] : d4eb329400000000000000000000000000000000000000000000000000000000
Arg [64] : a501ed8b00000000000000000000000000000000000000000000000000000000
Arg [65] : 89807da400000000000000000000000000000000000000000000000000000000
Arg [66] : a2390f6900000000000000000000000000000000000000000000000000000000
Arg [67] : f39bb7d200000000000000000000000000000000000000000000000000000000
Arg [68] : 353a9e7100000000000000000000000000000000000000000000000000000000
Arg [69] : d47875d000000000000000000000000000000000000000000000000000000000
Arg [70] : 7ef92e0200000000000000000000000000000000000000000000000000000000
Arg [71] : 7ee100e900000000000000000000000000000000000000000000000000000000
Arg [72] : a992664700000000000000000000000000000000000000000000000000000000
Arg [73] : 75c4745900000000000000000000000000000000000000000000000000000000
Arg [74] : 742fbad600000000000000000000000000000000000000000000000000000000
Arg [75] : 9ba39f9400000000000000000000000000000000000000000000000000000000
Arg [76] : 51ab870200000000000000000000000000000000000000000000000000000000
Arg [77] : 77dc74f000000000000000000000000000000000000000000000000000000000
Arg [78] : 8dd1480200000000000000000000000000000000000000000000000000000000
Arg [79] : 3674dd5300000000000000000000000000000000000000000000000000000000
Arg [80] : 00000000000000000000000076bfec03547673b84223d9fb4c02eb20ec021e07
Arg [81] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [82] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [83] : 0000000000000000000000000000000000000000000000000000000000000010
Arg [84] : 1bbd3a2400000000000000000000000000000000000000000000000000000000
Arg [85] : b399563600000000000000000000000000000000000000000000000000000000
Arg [86] : dd62ed3e00000000000000000000000000000000000000000000000000000000
Arg [87] : 095ea7b300000000000000000000000000000000000000000000000000000000
Arg [88] : 70a0823100000000000000000000000000000000000000000000000000000000
Arg [89] : 313ce56700000000000000000000000000000000000000000000000000000000
Arg [90] : 87fc38b000000000000000000000000000000000000000000000000000000000
Arg [91] : 78f8484b00000000000000000000000000000000000000000000000000000000
Arg [92] : 06fdde0300000000000000000000000000000000000000000000000000000000
Arg [93] : b5660a1800000000000000000000000000000000000000000000000000000000
Arg [94] : ccec371600000000000000000000000000000000000000000000000000000000
Arg [95] : db7c4dda00000000000000000000000000000000000000000000000000000000
Arg [96] : 95d89b4100000000000000000000000000000000000000000000000000000000
Arg [97] : 18160ddd00000000000000000000000000000000000000000000000000000000
Arg [98] : a9059cbb00000000000000000000000000000000000000000000000000000000
Arg [99] : 23b872dd00000000000000000000000000000000000000000000000000000000


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.