creation_sourcecode: {{
    "language": "Solidity",
    "settings": {
      "evmVersion": "london",
      "libraries": {},
      "metadata": {
        "bytecodeHash": "none",
        "useLiteralContent": true
      },
      "optimizer": {
        "enabled": true,
        "runs": 10
      },
      "remappings": [],
      "outputSelection": {
        "*": {
          "*": [
            "evm.bytecode",
            "evm.deployedBytecode",
            "devdoc",
            "userdoc",
            "metadata",
            "abi"
          ]
        }
      }
    },
    "sources": {
      "contracts/common/diamonds/DiamondImplementation.sol": {
        "content": "\n// SPDX-License-Identifier: MIT\npragma solidity 0.8.23;\n\ncontract DiamondImplementation {\n  \n\n    struct Tuple6871229 {\n        address facetAddress;\n        uint8 action;\n        bytes4[] functionSelectors;\n    }\n\n    struct Tuple1236461 {\n        address facetAddress;\n        bytes4[] functionSelectors;\n    }\n\n    struct Tuple3947595 {\n        string name;\n        uint8 tokenType;\n        address token;\n        address router;\n        bool isV2Router;\n        uint256 slippageTolerance;\n    }\n\n    struct Tuple5053380 {\n        bytes32 platformId;\n        uint32[] services;\n        uint32[] serviceAmounts;\n        address referrer;\n        address user;\n        address tokenAddress;\n    }\n\n    struct Tuple2513139 {\n        string name;\n        uint8 tokenType;\n        address token;\n        address router;\n        bool isV2Router;\n        uint256 slippageTolerance;\n    }\n\n    struct Tuple8878717 {\n        Tuple0496319 processPaymentInput;\n        uint256 usdPrice;\n        uint256 paymentAmount;\n        uint256 burnedAmount;\n        uint256 treasuryShare;\n        uint256 referrerShare;\n    }\n\n    struct Tuple0496319 {\n        bytes32 platformId;\n        uint32[] services;\n        uint32[] serviceAmounts;\n        address referrer;\n        address user;\n        address tokenAddress;\n    }\n\n    struct Tuple532979 {\n        bytes32 platformId;\n        uint32[] services;\n        uint32[] serviceAmounts;\n        address spender;\n        uint256 destinationChainId;\n        address payer;\n        uint256 sourceChainId;\n        uint256 paymentIndex;\n    }\n\n    struct Tuple8949622 {\n        bytes32 platformId;\n        uint32[] services;\n        uint32[] serviceAmounts;\n        address referrer;\n        address user;\n        address tokenAddress;\n    }\n\n    struct Tuple3047869 {\n        bytes32 platformId;\n        uint32[] services;\n        uint32[] serviceAmounts;\n        address spender;\n        uint256 destinationChainId;\n        address payer;\n        uint256 sourceChainId;\n        uint256 paymentIndex;\n    }\n\n    struct Tuple2989887 {\n        string name;\n        bytes32 id;\n        address owner;\n        address treasury;\n        uint256 referrerBasisPoints;\n        address burnToken;\n        uint256 burnBasisPoints;\n        bool isDiscountEnabled;\n        Tuple660498[] services;\n    }\n\n    struct Tuple660498 {\n        string name;\n        uint256 usdPrice;\n    }\n\n    struct Tuple5584746 {\n        string name;\n        uint256 usdPrice;\n    }\n\n    struct Tuple2084844 {\n        string name;\n        bytes32 id;\n        address owner;\n        address treasury;\n        uint256 referrerBasisPoints;\n        address burnToken;\n        uint256 burnBasisPoints;\n        bool isDiscountEnabled;\n        Tuple660498[] services;\n    }\n\n    struct Tuple5477657 {\n        uint8 launchPadType;\n        Tuple031699 launchPadInfo;\n        Tuple7459929[] releaseSchedule;\n        Tuple6673812 createErc20Input;\n        address referrer;\n        bool isSuperchargerEnabled;\n        uint256 feePercentage;\n        address paymentTokenAddress;\n    }\n\n    struct Tuple031699 {\n        address owner;\n        address tokenAddress;\n        address paymentTokenAddress;\n        uint256 price;\n        Tuple632674 fundTarget;\n        uint256 maxInvestPerWallet;\n        uint256 startTimestamp;\n        uint256 duration;\n        uint256 tokenCreationDeadline;\n        Tuple0343533 refundInfo;\n        Tuple9075317 idoInfo;\n    }\n\n    struct Tuple632674 {\n        uint256 softCap;\n        uint256 hardCap;\n    }\n\n    struct Tuple0343533 {\n        uint256 penaltyFeePercent;\n        uint256 expireDuration;\n    }\n\n    struct Tuple9075317 {\n        bool enabled;\n        address dexRouter;\n        address pairToken;\n        uint256 price;\n        uint256 amountToList;\n    }\n\n    struct Tuple7459929 {\n        uint256 timestamp;\n        uint256 percent;\n        bool isVesting;\n    }\n\n    struct Tuple6673812 {\n        string name;\n        string symbol;\n        string logo;\n        uint8 decimals;\n        uint256 maxSupply;\n        address owner;\n        uint256 treasuryReserved;\n    }\n\n    struct Tuple4592251 {\n        address payer;\n        uint256 sourceChainId;\n        uint256 paymentIndex;\n        bytes signature;\n    }\n\n    struct Tuple1890453 {\n        Tuple26694 tokenInfo;\n        Tuple6028766 publicMintPaymentInfo;\n        Tuple9582398[] initialTokens;\n        address referrer;\n        address paymentToken;\n    }\n\n    struct Tuple26694 {\n        string name;\n        string symbol;\n        string collectionLogo;\n        string baseURI;\n        bool isPublicMintEnabled;\n        bool isAdminMintEnabled;\n        address owner;\n    }\n\n    struct Tuple6028766 {\n        address treasury;\n        uint256 burnBasisPoints;\n        uint256 referrerBasisPoints;\n    }\n\n    struct Tuple9582398 {\n        uint256 tokenId;\n        uint256 maxSupply;\n        uint256 publicMintUsdPrice;\n        uint8 decimals;\n        string uri;\n    }\n\n    struct Tuple6220814 {\n        Tuple8197337 tokenInfo;\n        address referrer;\n        address paymentToken;\n    }\n\n    struct Tuple8197337 {\n        string name;\n        string symbol;\n        string logo;\n        uint8 decimals;\n        uint256 initialSupply;\n        uint256 maxSupply;\n        address treasury;\n        address owner;\n        Tuple8912907 fees;\n        Tuple4859413 buybackDetails;\n    }\n\n    struct Tuple8912907 {\n        Tuple3956827 transferFee;\n        Tuple6362068 burn;\n        Tuple409819 reflection;\n        Tuple2124617 buyback;\n    }\n\n    struct Tuple3956827 {\n        uint256 percentage;\n        bool onlyOnSwaps;\n    }\n\n    struct Tuple6362068 {\n        uint256 percentage;\n        bool onlyOnSwaps;\n    }\n\n    struct Tuple409819 {\n        uint256 percentage;\n        bool onlyOnSwaps;\n    }\n\n    struct Tuple2124617 {\n        uint256 percentage;\n        bool onlyOnSwaps;\n    }\n\n    struct Tuple4859413 {\n        address pairToken;\n        address router;\n        uint256 liquidityBasisPoints;\n        uint256 priceImpactBasisPoints;\n    }\n\n    struct Tuple2058775 {\n        Tuple377971 tokenInfo;\n        Tuple9712852 publicMintPaymentInfo;\n        address referrer;\n        address paymentToken;\n    }\n\n    struct Tuple377971 {\n        string name;\n        string symbol;\n        string collectionLogo;\n        string baseURI;\n        uint256 maxSupply;\n        bool isPublicMintEnabled;\n        bool isAdminMintEnabled;\n        address owner;\n    }\n\n    struct Tuple9712852 {\n        uint256 usdPrice;\n        address treasury;\n        uint256 burnBasisPoints;\n        uint256 referrerBasisPoints;\n    }\n\n    struct Tuple635062 {\n        Tuple3064778 createV2LpInput;\n        Tuple4859413 buybackDetails;\n    }\n\n    struct Tuple3064778 {\n        address owner;\n        address treasury;\n        Tuple13416 liquidityPoolDetails;\n        Tuple8599215 lockLPDetails;\n    }\n\n    struct Tuple13416 {\n        address sourceToken;\n        address pairedToken;\n        uint256 amountSourceToken;\n        uint256 amountPairedToken;\n        address routerAddress;\n    }\n\n    struct Tuple8599215 {\n        uint256 lockLPTokenPercentage;\n        uint256 unlockTimestamp;\n        address beneficiary;\n        bool isVesting;\n    }\n\n    struct Tuple6879972 {\n        address owner;\n        address treasury;\n        Tuple13416 liquidityPoolDetails;\n        Tuple8599215 lockLPDetails;\n    }\n\n    struct Tuple8543766 {\n        address tokenAddress;\n        address liquidityPoolToken;\n    }\n      \n\n   function diamondCut(Tuple6871229[] memory _diamondCut, address  _init, bytes memory _calldata) external {}\n\n   function facetAddress(bytes4  _functionSelector) external view returns (address  facetAddress_) {}\n\n   function facetAddresses() external view returns (address[] memory facetAddresses_) {}\n\n   function facetFunctionSelectors(address  _facet) external view returns (bytes4[] memory facetFunctionSelectors_) {}\n\n   function facets() external view returns (Tuple1236461[] memory facets_) {}\n\n   function supportsInterface(bytes4  interfaceId) external view returns (bool ) {}\n\n   function implementation() external view returns (address ) {}\n\n   function setImplementation(address  _implementation) external {}\n\n   function DEFAULT_ADMIN_ROLE() external pure returns (bytes32 ) {}\n\n   function MINTER_ROLE() external pure returns (bytes32 ) {}\n\n   function PAUSER_ROLE() external pure returns (bytes32 ) {}\n\n   function WHITELISTED_ROLE() external pure returns (bytes32 ) {}\n\n   function WHITELIST_ADMIN_ROLE() external pure returns (bytes32 ) {}\n\n   function getRoleAdmin(bytes32  role) external view returns (bytes32 ) {}\n\n   function getRoleMember(bytes32  role, uint256  index) external view returns (address ) {}\n\n   function getRoleMemberCount(bytes32  role) external view returns (uint256 ) {}\n\n   function grantRole(bytes32  role, address  account) external {}\n\n   function hasRole(bytes32  role, address  account) external view returns (bool ) {}\n\n   function renounceRole(bytes32  role) external {}\n\n   function revokeRole(bytes32  role, address  account) external {}\n\n   function pause() external {}\n\n   function paused() external view returns (bool  status) {}\n\n   function unpause() external {}\n\n   function isWhitelistEnabled(bytes32  productId) external view returns (bool ) {}\n\n   function setWhitelistEnabled(bool  enabled, bytes32  productId) external {}\n\n   function BASIS_POINTS() external pure returns (uint256 ) {}\n\n   function BURN_ADDRESS() external pure returns (address ) {}\n\n   function PAYMENT_PROCESSOR_ROLE() external pure returns (bytes32 ) {}\n\n   function addAcceptedToken(Tuple3947595 memory acceptedToken) external {}\n\n   function adminWithdraw(address  tokenAddress, uint256  amount, address  treasury) external {}\n\n   function getAcceptedTokenByAddress(address  tokenAddress) external view returns (Tuple2513139 memory) {}\n\n   function getAcceptedTokens() external view returns (address[] memory) {}\n\n   function getPaymentByIndex(uint256  paymentIndex) external view returns (Tuple8878717 memory) {}\n\n   function getQuoteTokenPrice(address  token0, address  token1) external view returns (uint256  price) {}\n\n   function getRouterAddress() external view returns (address ) {}\n\n   function getUsdToken() external view returns (address ) {}\n\n   function getV3PoolFeeForTokenWithNative(address  token) external view returns (uint24 ) {}\n\n   function isV2Router() external view returns (bool ) {}\n\n   function processPayment(Tuple5053380 memory input) external payable returns (uint256 ) {}\n\n   function removeAcceptedToken(address  tokenAddress) external {}\n\n   function setRouterAddress(address  newRouter) external {}\n\n   function setUsdToken(address  newUsdToken) external {}\n\n   function setV3PoolFeeForTokenNative(address  token, uint24  poolFee) external {}\n\n   function updateAcceptedToken(Tuple3947595 memory acceptedToken) external {}\n\n   function checkSignature(Tuple532979 memory output, bytes memory signature) external view {}\n\n   function getChainID() external view returns (uint256 ) {}\n\n   function getCrossPaymentOutputByIndex(uint256  paymentIndex) external view returns (Tuple3047869 memory) {}\n\n   function getCrossPaymentSignerAddress() external view returns (address ) {}\n\n   function getHashedMessage(Tuple532979 memory output) external pure returns (bytes32 ) {}\n\n   function prefixedMessage(bytes32  hash) external pure returns (bytes32 ) {}\n\n   function processCrossPayment(Tuple8949622 memory paymentInput, address  spender, uint256  destinationChainId) external payable returns (uint256 ) {}\n\n   function recoverSigner(bytes32  message, bytes memory signature) external pure returns (address ) {}\n\n   function spendCrossPaymentSignature(address  spender, Tuple532979 memory output, bytes memory signature) external {}\n\n   function updateCrossPaymentSignerAddress(address  newSignerAddress) external {}\n\n   function PLATFORM_MANAGER_ROLE() external pure returns (bytes32 ) {}\n\n   function addPlatform(Tuple2989887 memory platform) external {}\n\n   function addPlatformService(bytes32  platformId, Tuple5584746 memory service) external {}\n\n   function getPlatformById(bytes32  platformId) external view returns (Tuple2084844 memory) {}\n\n   function getPlatformCount() external view returns (uint256 ) {}\n\n   function getPlatformIdByIndex(uint256  index) external view returns (bytes32 ) {}\n\n   function getPlatformIds() external view returns (bytes32[] memory) {}\n\n   function removePlatform(uint256  index) external {}\n\n   function removePlatformService(bytes32  platformId, uint256  serviceId) external {}\n\n   function updatePlatform(Tuple2989887 memory platform) external {}\n\n   function updatePlatformService(bytes32  platformId, uint256  serviceId, Tuple5584746 memory service) external {}\n\n   function addDiscountNfts(address[] memory newDiscountNfts, uint256[] memory discountBasisPoints) external {}\n\n   function getDiscountNfts() external view returns (address[] memory) {}\n\n   function getDiscountPercentageForNft(address  nft) external view returns (uint256 ) {}\n\n   function getDiscountPercentageForUser(address  user) external view returns (uint256 ) {}\n\n   function isDiscountNft(address  nft) external view returns (bool ) {}\n\n   function removeDiscountNfts(address[] memory discountNfts) external {}\n\n   function setDiscountPercentageForNft(address  nft, uint256  discountBasisPoints) external {}\n\n   function addInvestorToLaunchPad(address  investor) external {}\n\n   function createLaunchPad(Tuple5477657 memory storeInput) external payable {}\n\n   function createLaunchPadWithPaymentSignature(Tuple5477657 memory storeInput, Tuple4592251 memory crossPaymentSignatureInput) external {}\n\n   function createLaunchpadV2LiquidityPool(address  launchPad) external payable {}\n\n   function createTokenAfterICO(address  launchPad) external payable {}\n\n   function removeLaunchpad(address  launchpad) external {}\n\n   function setExistingTokenAfterICO(address  launchPad, address  tokenAddress, uint256  amount) external {}\n\n   function setExistingTokenAfterTransfer(address  launchPad, address  tokenAddress) external {}\n\n   function setLaunchpadImplementation(address  launchPad) external {}\n\n   function updateLaunchPadMaxDurationIncrement(uint256  newMaxDurationIncrement) external {}\n\n   function updateLaunchPadOwner(address  launchPadAddress, address  newOwner) external {}\n\n   function updateLaunchpadImplementation(address  newLaunchpadImplementation) external {}\n\n   function updateMaxTokenCreationDeadline(uint256  newMaxTokenCreationDeadline) external {}\n\n   function updateSignerAddress(address  newSignerAddress) external {}\n\n   function upgradeLaunchPadProjectFacets(address  launchPad, Tuple6871229[] memory _diamondCut, address  _init, bytes memory _calldata) external {}\n\n   function LAUNCHPAD_PRODUCT_ID() external pure returns (bytes32 ) {}\n\n   function getLaunchPadCountByOwner(address  owner) external view returns (uint256 ) {}\n\n   function getLaunchPadMaxDurationIncrement() external view returns (uint256 ) {}\n\n   function getLaunchPadTokenInfo(address  launchPadAddress) external view returns (Tuple6673812 memory createErc20Input) {}\n\n   function getLaunchPadsByInvestorCount() external view returns (uint256 ) {}\n\n   function getLaunchPadsByInvestorPaginated(address  investor, uint256  quantity, uint256  page) external view returns (address[] memory) {}\n\n   function getLaunchPadsByOwnerPaginated(address  owner, uint256  quantity, uint256  page) external view returns (address[] memory) {}\n\n   function getLaunchPadsCount() external view returns (uint256 ) {}\n\n   function getLaunchPadsPaginated(uint256  quantity, uint256  page) external view returns (address[] memory) {}\n\n   function getMaxTokenCreationDeadline() external view returns (uint256 ) {}\n\n   function getSignerAddress() external view returns (address ) {}\n\n   function getSuperChargerHeadstartByTier(uint256  tier) external view returns (uint256 ) {}\n\n   function getSuperChargerHeadstarts() external view returns (uint256[] memory) {}\n\n   function getSuperChargerMultiplierByTier(uint256  tier) external view returns (uint256 ) {}\n\n   function getSuperChargerTokensPercByTier(uint256  tier) external view returns (uint256 ) {}\n\n   function setTokenFiErc1155Implementation(address  token) external {}\n\n   function setTokenFiErc20Implementation(address  token) external {}\n\n   function setTokenFiErc721Implementation(address  token) external {}\n\n   function updateTokenFiErc1155Implementation(address  newImplementation) external {}\n\n   function updateTokenFiErc20Implementation(address  newImplementation) external {}\n\n   function updateTokenFiErc721Implementation(address  newImplementation) external {}\n\n   function updateTokenOwner(uint8  tokenType, address  tokenAddress, address  newOwner) external {}\n\n   function createErc1155(Tuple1890453 memory input) external payable returns (address  tokenAddress) {}\n\n   function createErc1155WithPaymentSignature(Tuple1890453 memory input, Tuple4592251 memory crossPaymentSignatureInput) external returns (address  tokenAddress) {}\n\n   function createErc20(Tuple6220814 memory input) external payable returns (address  tokenAddress) {}\n\n   function createErc20WithPaymentSignature(Tuple6220814 memory input, Tuple4592251 memory crossPaymentSignatureInput) external returns (address  tokenAddress) {}\n\n   function createErc721(Tuple2058775 memory input) external payable returns (address  tokenAddress) {}\n\n   function createErc721WithPaymentSignature(Tuple2058775 memory input, Tuple4592251 memory crossPaymentSignatureInput) external returns (address  tokenAddress) {}\n\n   function createTokenLauncherV2LiquidityPool(Tuple635062 memory input) external payable {}\n\n   function createV2LiquidityPool(Tuple6879972 memory input) external payable {}\n\n   function getLiquidityPoolTokensByToken(address  token) external view returns (address[] memory) {}\n\n   function registerLiquidityPool(Tuple8543766 memory input) external {}\n\n   function setVaultFactory(address  _vaultFactory) external {}\n\n   function TOKENLAUNCHER_PRODUCT_ID() external pure returns (bytes32 ) {}\n\n   function buybackHandler() external view returns (address ) {}\n\n   function currentBlockTokenCreated() external view returns (uint256 ) {}\n\n   function currentBlockTokenOwnerUpdated() external view returns (uint256 ) {}\n\n   function getTokenOwnerByToken(address  tokenAddress) external view returns (address ) {}\n\n   function getTokensByOwnerPaginated(address  owner, uint8  tokenType, uint256  quantity, uint256  page) external view returns (address[] memory) {}\n\n   function getTokensPaginated(uint8  tokenType, uint256  quantity, uint256  page) external view returns (address[] memory) {}\n}\n  "
      }
    }
  }}