{"version":3,"file":"index.cjs","sources":["../../src/verification/index.ts"],"sourcesContent":["/**\n * @fileoverview Contract verification utilities for EscapeHub SDK.\n *\n * This module provides the standard JSON input for Etherscan verification\n * of LaunchERC20 tokens deployed via the factory.\n *\n * @module @escapehub/token-creator/verification\n */\n\nimport standardJsonInput from './EscapeToken.standard-input.json';\n\n/**\n * Standard JSON input for Etherscan contract verification.\n *\n * This is the Solidity compiler input format that includes all source files\n * and compiler settings needed to verify LaunchERC20 tokens on Etherscan.\n *\n * @example\n * ```typescript\n * import { STANDARD_JSON_INPUT, SOLC_VERSION, CONTRACT_NAME } from '@escapehub/token-creator';\n *\n * // Submit to Etherscan API\n * const response = await fetch('https://api.etherscan.io/api', {\n *   method: 'POST',\n *   body: new URLSearchParams({\n *     module: 'contract',\n *     action: 'verifysourcecode',\n *     sourceCode: JSON.stringify(STANDARD_JSON_INPUT),\n *     codeformat: 'solidity-standard-json-input',\n *     contractname: CONTRACT_NAME,\n *     compilerversion: SOLC_VERSION,\n *     // ... other params\n *   }),\n * });\n * ```\n */\nexport const STANDARD_JSON_INPUT = standardJsonInput;\n\n/**\n * Solidity compiler version used to compile LaunchERC20.\n * Must match when verifying on Etherscan.\n */\nexport const SOLC_VERSION = 'v0.8.28+commit.7893614a';\n\n/**\n * Contract name in the format expected by Etherscan.\n * Format: \"path/to/Contract.sol:ContractName\"\n */\nexport const CONTRACT_NAME = 'src/LaunchERC20.sol:LaunchERC20';\n\n/**\n * Etherscan API URLs for different chains.\n * Maps chain ID to the verification API endpoint.\n */\nexport const ETHERSCAN_API_URLS: Record<number, string> = {\n  // Mainnets\n  1: 'https://api.etherscan.io/api',\n  56: 'https://api.bscscan.com/api',\n  137: 'https://api.polygonscan.com/api',\n  42161: 'https://api.arbiscan.io/api',\n  42170: 'https://api-nova.arbiscan.io/api',\n  10: 'https://api-optimistic.etherscan.io/api',\n  8453: 'https://api.basescan.org/api',\n  43114: 'https://api.snowtrace.io/api',\n  59144: 'https://api.lineascan.build/api',\n  81457: 'https://api.blastscan.io/api',\n  534352: 'https://api.scrollscan.com/api',\n  5000: 'https://api.mantlescan.xyz/api',\n  42220: 'https://api.celoscan.io/api',\n  1284: 'https://api-moonbeam.moonscan.io/api',\n  146: 'https://api.sonicscan.org/api',\n\n  // Testnets\n  11155111: 'https://api-sepolia.etherscan.io/api',\n  97: 'https://api-testnet.bscscan.com/api',\n  80002: 'https://api-amoy.polygonscan.com/api',\n  421614: 'https://api-sepolia.arbiscan.io/api',\n  11155420: 'https://api-sepolia-optimistic.etherscan.io/api',\n  84532: 'https://api-sepolia.basescan.org/api',\n  43113: 'https://api-testnet.snowtrace.io/api',\n  534351: 'https://api-sepolia.scrollscan.com/api',\n  5003: 'https://api-sepolia.mantlescan.xyz/api',\n};\n\n/**\n * Get the Etherscan API URL for a given chain ID.\n *\n * @param chainId - The chain ID\n * @returns The API URL or undefined if not supported\n */\nexport function getEtherscanApiUrl(chainId: number): string | undefined {\n  return ETHERSCAN_API_URLS[chainId];\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCO,MAAM,sBAAsB;AAM5B,MAAM,eAAe;AAMrB,MAAM,gBAAgB;AAMtB,MAAM,qBAA6C;AAAA;AAAA,EAExD,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA;AAAA,EAGL,UAAU;AAAA,EACV,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR;AAQO,SAAS,mBAAmB,SAAqC;AACtE,SAAO,mBAAmB,OAAO;AACnC;;;;;;"}