@diamondslab/diamonds 1.2.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/core/CallbackManager.js.map +1 -1
  2. package/dist/core/DeploymentManager.js.map +1 -1
  3. package/dist/core/Diamond.js.map +1 -1
  4. package/dist/core/DiamondDeployer.js.map +1 -1
  5. package/dist/core/index.js.map +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/repositories/DBDeploymentRepository.js.map +1 -1
  8. package/dist/repositories/DeploymentRepository.js.map +1 -1
  9. package/dist/repositories/FileDeploymentRepository.d.ts +2 -2
  10. package/dist/repositories/FileDeploymentRepository.d.ts.map +1 -1
  11. package/dist/repositories/FileDeploymentRepository.js +8 -6
  12. package/dist/repositories/FileDeploymentRepository.js.map +1 -1
  13. package/dist/repositories/databaseHandler.js.map +1 -1
  14. package/dist/repositories/index.js.map +1 -1
  15. package/dist/repositories/jsonFileHandler.js.map +1 -1
  16. package/dist/repositories/prismaDBHandler.js.map +1 -1
  17. package/dist/schemas/DeploymentSchema.js.map +1 -1
  18. package/dist/schemas/index.js.map +1 -1
  19. package/dist/strategies/BaseDeploymentStrategy.d.ts +4 -4
  20. package/dist/strategies/BaseDeploymentStrategy.d.ts.map +1 -1
  21. package/dist/strategies/BaseDeploymentStrategy.js +85 -47
  22. package/dist/strategies/BaseDeploymentStrategy.js.map +1 -1
  23. package/dist/strategies/DeploymentStrategy.js.map +1 -1
  24. package/dist/strategies/LocalDeploymentStrategy.js.map +1 -1
  25. package/dist/strategies/OZDefenderDeploymentStrategy.js.map +1 -1
  26. package/dist/strategies/RPCDeploymentStrategy.js.map +1 -1
  27. package/dist/strategies/index.js.map +1 -1
  28. package/dist/types/config.js.map +1 -1
  29. package/dist/types/defender.js.map +1 -1
  30. package/dist/types/deployments.js.map +1 -1
  31. package/dist/types/index.js.map +1 -1
  32. package/dist/types/rpc.js.map +1 -1
  33. package/dist/utils/common.js.map +1 -1
  34. package/dist/utils/configurationResolver.js.map +1 -1
  35. package/dist/utils/contractMapping.d.ts.map +1 -1
  36. package/dist/utils/contractMapping.js +50 -36
  37. package/dist/utils/contractMapping.js.map +1 -1
  38. package/dist/utils/defenderClients.js.map +1 -1
  39. package/dist/utils/defenderStore.js.map +1 -1
  40. package/dist/utils/diamondAbiGenerator.js.map +1 -1
  41. package/dist/utils/diffDeployedFacets.js.map +1 -1
  42. package/dist/utils/index.js.map +1 -1
  43. package/dist/utils/loupe.js.map +1 -1
  44. package/dist/utils/rpcStore.js.map +1 -1
  45. package/dist/utils/signer.js.map +1 -1
  46. package/dist/utils/txlogging.js.map +1 -1
  47. package/dist/utils/workspaceSetup.js.map +1 -1
  48. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"diamondAbiGenerator.js","sourceRoot":"","sources":["../../src/utils/diamondAbiGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diamondAbiGenerator.js","sourceRoot":"","sources":["../../src/utils/diamondAbiGenerator.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport { Interface } from 'ethers';\nimport { mkdirSync, writeFileSync } from 'fs';\nimport { join } from 'path';\nimport { Diamond } from '../core/Diamond';\nimport { FacetCuts, RegistryFacetCutAction } from '../types';\nimport { getContractArtifact } from '../utils/contractMapping';\n\ntype AbiItem = {\n type: string;\n name?: string;\n [key: string]: unknown;\n};\n\n/**\n * Interface for ABI generation options\n */\nexport interface DiamondAbiGenerationOptions {\n /** Diamond instance to generate ABI for */\n diamond: Diamond;\n /** Output directory for generated ABI files */\n outputDir?: string;\n /** Whether to include source information in ABI */\n includeSourceInfo?: boolean;\n /** Whether to validate function selector uniqueness */\n validateSelectors?: boolean;\n /** Whether to log verbose output */\n verbose?: boolean;\n /** Custom facet cuts to include (for preview/planning) */\n customFacetCuts?: FacetCuts;\n}\n\n/**\n * Result of ABI generation\n */\nexport interface DiamondAbiGenerationResult {\n /** Generated combined ABI */\n abi: AbiItem[];\n /** Function selector to facet mapping */\n selectorMap: Record<string, string>;\n /** Facet addresses included in the ABI */\n facetAddresses: string[];\n /** Output file path */\n outputPath?: string;\n /** Statistics about the generation */\n stats: {\n totalFunctions: number;\n totalEvents: number;\n totalErrors: number;\n facetCount: number;\n duplicateSelectorsSkipped: number;\n };\n}\n\n/**\n * Comprehensive Diamond ABI Generator\n * \n * This class generates a complete ABI for a diamond contract based on:\n * - Current deployment state (deployed facets)\n * - Planned diamond cuts (upgrades, additions, removals)\n * - Function selector registry\n * - Deployment configuration\n */\nexport class DiamondAbiGenerator {\n private diamond: Diamond;\n private options: DiamondAbiGenerationOptions;\n private seenSelectors: Set<string> = new Set();\n private selectorToFacet: Record<string, string> = {};\n private combinedAbi: AbiItem[] = [];\n private stats = {\n totalFunctions: 0,\n totalEvents: 0,\n totalErrors: 0,\n facetCount: 0,\n duplicateSelectorsSkipped: 0\n };\n\n constructor(options: DiamondAbiGenerationOptions) {\n this.diamond = options.diamond;\n this.options = {\n outputDir: options.outputDir || this.diamond.getDiamondAbiPath(),\n includeSourceInfo: true,\n validateSelectors: true,\n verbose: false,\n ...options\n };\n }\n\n /**\n * Generate the complete diamond ABI\n */\n async generateAbi(): Promise<DiamondAbiGenerationResult> {\n if (this.options.verbose) {\n console.log(chalk.blue('🔧 Generating Diamond ABI...'));\n }\n\n // Reset state\n this.seenSelectors.clear();\n this.selectorToFacet = {};\n this.combinedAbi = [];\n this.stats = {\n totalFunctions: 0,\n totalEvents: 0,\n totalErrors: 0,\n facetCount: 0,\n duplicateSelectorsSkipped: 0\n };\n\n // Get facets to include in ABI\n const facetsToInclude = await this.getFacetsToInclude();\n \n // Process each facet\n for (const [facetName, facetInfo] of Object.entries(facetsToInclude)) {\n await this.processFacet(facetName, facetInfo);\n }\n\n // Add DiamondLoupe functions if not already included\n await this.ensureDiamondLoupeFunctions();\n\n // Sort ABI for consistency\n this.sortAbi();\n\n // Generate output\n const result = await this.generateOutput();\n\n if (this.options.verbose) {\n this.logStats();\n }\n\n return result;\n }\n\n /**\n * Get all facets that should be included in the ABI\n */\n private async getFacetsToInclude(): Promise<Record<string, FacetInfo>> {\n const facetsToInclude: Record<string, FacetInfo> = {};\n \n // 1. Get currently deployed facets\n const deployedData = this.diamond.getDeployedDiamondData();\n if (deployedData.DeployedFacets) {\n for (const [facetName, facetData] of Object.entries(deployedData.DeployedFacets)) {\n if (facetData.address && facetData.funcSelectors) {\n facetsToInclude[facetName] = {\n address: facetData.address,\n selectors: facetData.funcSelectors,\n action: RegistryFacetCutAction.Deployed,\n source: 'deployed'\n };\n }\n }\n }\n\n // 2. Get planned cuts from function selector registry\n const registry = this.diamond.functionSelectorRegistry;\n for (const [selector, entry] of registry.entries()) {\n if (entry.action === RegistryFacetCutAction.Add || entry.action === RegistryFacetCutAction.Replace) {\n const facetName = entry.facetName;\n if (!facetsToInclude[facetName]) {\n facetsToInclude[facetName] = {\n address: entry.address,\n selectors: [],\n action: entry.action,\n source: 'registry'\n };\n }\n facetsToInclude[facetName].selectors.push(selector);\n } else if (entry.action === RegistryFacetCutAction.Remove) {\n // Remove selector from existing facet\n const facetName = entry.facetName;\n if (facetsToInclude[facetName]) {\n facetsToInclude[facetName].selectors = facetsToInclude[facetName].selectors.filter(s => s !== selector);\n }\n }\n }\n\n // 3. Apply custom facet cuts if provided\n if (this.options.customFacetCuts) {\n for (const cut of this.options.customFacetCuts) {\n const facetName = cut.name;\n if (cut.action === 0) { // Add\n if (!facetsToInclude[facetName]) {\n facetsToInclude[facetName] = {\n address: cut.facetAddress,\n selectors: [],\n action: RegistryFacetCutAction.Add,\n source: 'custom'\n };\n }\n facetsToInclude[facetName].selectors.push(...cut.functionSelectors);\n } else if (cut.action === 2) { // Remove\n if (facetsToInclude[facetName]) {\n facetsToInclude[facetName].selectors = facetsToInclude[facetName].selectors.filter(\n s => !cut.functionSelectors.includes(s)\n );\n }\n }\n }\n }\n\n // Remove facets with no selectors\n for (const [facetName, facetInfo] of Object.entries(facetsToInclude)) {\n if (facetInfo.selectors.length === 0) {\n delete facetsToInclude[facetName];\n }\n }\n\n return facetsToInclude;\n }\n\n /**\n * Process a single facet and add its ABI items\n */\n private async processFacet(facetName: string, facetInfo: FacetInfo): Promise<void> {\n try {\n if (this.options.verbose) {\n console.log(chalk.cyan(`📄 Processing ${facetName}...`));\n }\n\n // Get the contract artifact\n let artifact;\n try {\n artifact = await getContractArtifact(facetName, this.diamond);\n } catch (artifactError) {\n if (this.options.verbose) {\n console.log(chalk.yellow(`⚠️ Artifact loading failed for ${facetName}: ${artifactError}`));\n }\n artifact = null;\n }\n \n if (!artifact || !artifact.abi) {\n if (this.options.verbose) {\n console.log(chalk.yellow(`⚠️ No ABI found for ${facetName}`));\n }\n \n // Still add selectors to mapping even if artifact can't be loaded\n // This handles cases where selectors are in the registry but no artifact exists\n for (const selector of facetInfo.selectors) {\n if (!this.seenSelectors.has(selector)) {\n this.selectorToFacet[selector] = facetName;\n this.seenSelectors.add(selector);\n }\n }\n return;\n }\n\n // Create interface for selector calculation\n const iface = new Interface(artifact.abi);\n \n // Process each ABI item\n for (const abiItem of artifact.abi) {\n await this.processAbiItem(abiItem as AbiItem, facetName, facetInfo, iface);\n }\n\n // For facets from the registry, add any selectors that weren't found in the ABI\n // This handles cases where selectors are manually registered but don't have corresponding ABI items\n if (facetInfo.source === 'registry') {\n for (const selector of facetInfo.selectors) {\n if (!this.seenSelectors.has(selector)) {\n this.selectorToFacet[selector] = facetName;\n this.seenSelectors.add(selector);\n }\n }\n }\n\n this.stats.facetCount++;\n } catch (error) {\n console.error(chalk.red(`❌ Error processing ${facetName}:`), error);\n \n // Still add selectors to mapping even if there was an error\n for (const selector of facetInfo.selectors) {\n if (!this.seenSelectors.has(selector)) {\n this.selectorToFacet[selector] = facetName;\n this.seenSelectors.add(selector);\n }\n }\n }\n }\n\n /**\n * Process a single ABI item\n */\n private async processAbiItem(\n abiItem: AbiItem,\n facetName: string,\n facetInfo: FacetInfo,\n iface: Interface\n ): Promise<void> {\n // Skip constructors for diamond\n if (abiItem.type === 'constructor') {\n return;\n }\n\n // Handle functions\n if (abiItem.type === 'function') {\n const selector = iface.getFunction(abiItem.name as string)?.selector;\n \n if (!selector) {\n if (this.options.verbose) {\n console.log(chalk.yellow(`⚠️ Could not calculate selector for ${abiItem.name}`));\n }\n return;\n }\n\n // Check if this function should be included\n if (facetInfo.selectors.length > 0 && !facetInfo.selectors.includes(selector)) {\n return; // Function not in the deployment\n }\n\n // Check for duplicates\n if (this.seenSelectors.has(selector)) {\n if (this.options.verbose) {\n console.log(chalk.yellow(`⚠️ Skipping duplicate function: ${abiItem.name} (${selector})`));\n }\n this.stats.duplicateSelectorsSkipped++;\n return;\n }\n\n this.seenSelectors.add(selector);\n this.selectorToFacet[selector] = facetName;\n \n // Add source information if requested\n if (this.options.includeSourceInfo) {\n abiItem._diamondFacet = facetName;\n abiItem._diamondSelector = selector;\n }\n\n this.combinedAbi.push(abiItem);\n this.stats.totalFunctions++;\n }\n // Handle events\n else if (abiItem.type === 'event') {\n // Events are global to the diamond, so include all of them\n this.combinedAbi.push(abiItem);\n this.stats.totalEvents++;\n }\n // Handle errors\n else if (abiItem.type === 'error') {\n // Errors are global to the diamond, so include all of them\n this.combinedAbi.push(abiItem);\n this.stats.totalErrors++;\n }\n }\n\n /**\n * Ensure DiamondLoupe functions are included\n */\n private async ensureDiamondLoupeFunctions(): Promise<void> {\n const loupeSelectors = ['0xcdffacc6', '0x52ef6b2c', '0xadfca15e', '0x7a0ed627']; // facets(), facetFunctionSelectors(), facetAddresses(), facetAddress()\n \n // Check if any loupe selectors are already included\n for (const selector of loupeSelectors) {\n if (!this.seenSelectors.has(selector)) {\n try {\n await this.processFacet('DiamondLoupeFacet', {\n address: '0x0000000000000000000000000000000000000000',\n selectors: [selector],\n action: RegistryFacetCutAction.Deployed,\n source: 'loupe'\n });\n } catch (error) {\n // DiamondLoupeFacet might not be available, continue\n }\n }\n }\n }\n\n /**\n * Sort the ABI for consistency\n */\n private sortAbi(): void {\n this.combinedAbi.sort((a, b) => {\n // Sort by type first (functions, events, errors)\n if (a.type !== b.type) {\n const typeOrder = { 'function': 0, 'event': 1, 'error': 2 };\n return (typeOrder[a.type as keyof typeof typeOrder] || 99) - (typeOrder[b.type as keyof typeof typeOrder] || 99);\n }\n \n // Then by name\n return (a.name || '').localeCompare(b.name || '');\n });\n }\n\n /**\n * Generate the output files and result\n */\n private async generateOutput(): Promise<DiamondAbiGenerationResult> {\n const result: DiamondAbiGenerationResult = {\n abi: this.combinedAbi,\n selectorMap: this.selectorToFacet,\n facetAddresses: [...new Set(Object.values(this.selectorToFacet))],\n stats: { ...this.stats }\n };\n\n // Create output directory if specified\n if (this.options.outputDir) {\n mkdirSync(this.options.outputDir, { recursive: true });\n \n // Generate the diamond artifact\n const diamondArtifact = {\n \"_format\": \"hh-sol-artifact-1\",\n \"contractName\": this.diamond.diamondName,\n \"sourceName\": \"diamond-abi/DiamondABI.sol\",\n \"abi\": this.combinedAbi,\n \"bytecode\": \"\",\n \"deployedBytecode\": \"\",\n \"linkReferences\": {},\n \"deployedLinkReferences\": {},\n \"_diamondMetadata\": {\n \"generatedAt\": new Date().toISOString(),\n \"diamondName\": this.diamond.diamondName,\n \"networkName\": this.diamond.networkName,\n \"chainId\": this.diamond.chainId,\n \"selectorMap\": this.selectorToFacet,\n \"stats\": this.stats\n }\n };\n\n // Write the combined artifact\n const outputPath = join(this.options.outputDir, `${this.diamond.getDiamondAbiFileName()}.json`);\n writeFileSync(outputPath, JSON.stringify(diamondArtifact, null, 2));\n \n // Write a TypeScript interface file\n const interfacePath = join(this.options.outputDir, `${this.diamond.getDiamondAbiFileName()}.d.ts`);\n this.generateTypeScriptInterface(interfacePath);\n \n result.outputPath = outputPath;\n \n if (this.options.verbose) {\n console.log(chalk.green(`✅ Diamond ABI artifact created at: ${outputPath}`));\n }\n }\n\n return result;\n }\n\n /**\n * Generate TypeScript interface for the diamond\n */\n private generateTypeScriptInterface(outputPath: string): void {\n const interfaceContent = `\n// Auto-generated Diamond ABI interface\n// Generated at: ${new Date().toISOString()}\n// Diamond: ${this.diamond.diamondName}\n// Network: ${this.diamond.networkName}\n\nexport interface ${this.diamond.diamondName}Interface {\n // Function selectors to facet mapping\n readonly selectorMap: {\n${Object.entries(this.selectorToFacet).map(([selector, facet]) => ` \"${selector}\": \"${facet}\";`).join('\\n')}\n };\n \n // Facet addresses\n readonly facetAddresses: string[];\n \n // ABI for ethers.js Contract instantiation\n readonly abi: AbiItem[];\n}\n\nexport const ${this.diamond.diamondName}ABI: ${this.diamond.diamondName}Interface;\n`;\n\n writeFileSync(outputPath, interfaceContent);\n }\n\n /**\n * Log generation statistics\n */\n private logStats(): void {\n console.log(chalk.blue('\\n📊 Diamond ABI Generation Statistics:'));\n console.log(chalk.cyan(` Functions: ${this.stats.totalFunctions}`));\n console.log(chalk.cyan(` Events: ${this.stats.totalEvents}`));\n console.log(chalk.cyan(` Errors: ${this.stats.totalErrors}`));\n console.log(chalk.cyan(` Facets: ${this.stats.facetCount}`));\n console.log(chalk.cyan(` Unique selectors: ${this.seenSelectors.size}`));\n if (this.stats.duplicateSelectorsSkipped > 0) {\n console.log(chalk.yellow(` Duplicate selectors skipped: ${this.stats.duplicateSelectorsSkipped}`));\n }\n }\n\n /**\n * Static method to generate ABI for a diamond\n */\n static async generate(options: DiamondAbiGenerationOptions): Promise<DiamondAbiGenerationResult> {\n const generator = new DiamondAbiGenerator(options);\n return generator.generateAbi();\n }\n}\n\n/**\n * Interface for facet information used in ABI generation\n */\ninterface FacetInfo {\n address: string;\n selectors: string[];\n action: RegistryFacetCutAction;\n source: 'deployed' | 'registry' | 'custom' | 'loupe';\n}\n\n/**\n * Generate ABI for a diamond (convenience function)\n */\nexport async function generateDiamondAbi(\n diamond: Diamond,\n options: Partial<DiamondAbiGenerationOptions> = {}\n): Promise<DiamondAbiGenerationResult> {\n return DiamondAbiGenerator.generate({ diamond, ...options });\n}\n\n/**\n * Preview what the ABI would look like after planned cuts\n */\nexport async function previewDiamondAbi(\n diamond: Diamond,\n plannedCuts: FacetCuts,\n options: Partial<DiamondAbiGenerationOptions> = {}\n): Promise<DiamondAbiGenerationResult> {\n return DiamondAbiGenerator.generate({ \n diamond, \n customFacetCuts: plannedCuts,\n ...options \n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"diffDeployedFacets.js","sourceRoot":"","sources":["../../src/utils/diffDeployedFacets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diffDeployedFacets.js","sourceRoot":"","sources":["../../src/utils/diffDeployedFacets.ts"],"names":[],"mappings":"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","sourcesContent":["import { Fragment, Interface, JsonFragment } from \"@ethersproject/abi\";\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport chalk from \"chalk\";\nimport { JsonRpcProvider } from \"ethers\";\nimport { DeployedDiamondData } from \"../schemas\";\nimport { getDeployedFacets } from \"./loupe\";\n\nexport async function diffDeployedFacets(\n deployedDiamondData: DeployedDiamondData,\n signerOrProvider: Signer | JsonRpcProvider,\n verboseGetDeployedFacets?: boolean,\n): Promise<boolean> {\n const diamondAddress = deployedDiamondData.DiamondAddress!;\n const onChainFacets = await getDeployedFacets(diamondAddress, signerOrProvider as any, undefined, verboseGetDeployedFacets);\n\n const localFacets = deployedDiamondData.DeployedFacets ?? {};\n\n const seen = new Set<string>();\n\n let pass: boolean = true;\n\n console.log(chalk.magentaBright(\"\\n🔍 Diffing on-chain facets against deployment metadata:\\n\"));\n\n for (const facet of onChainFacets) {\n const match = Object.entries(localFacets).find(([_, meta]) => meta.address?.toLowerCase() === facet.facetAddress.toLowerCase());\n if (!match) {\n console.log(chalk.red(` ❌ On-chain facet ${facet.facetAddress} not found in deployment record.`));\n continue;\n }\n\n const [name, meta] = match;\n seen.add(name);\n\n const expected = meta.funcSelectors ?? [];\n const actual = facet.functionSelectors;\n\n const added: string[] = actual.filter((sel: string) => !expected.includes(sel));\n const removed = expected.filter(sel => !actual.includes(sel));\n\n if (added.length ?? removed.length) {\n console.log(chalk.yellow(` ⚠️ Mismatch in selectors for facet ${name} (${facet.facetAddress})`));\n if (added.length) console.log(chalk.green(` + Added: ${added.join(\", \")}`));\n if (removed.length) console.log(chalk.red(` - Missing: ${removed.join(\", \")}`));\n } else {\n console.log(chalk.green(` ✅ ${name} matches.`));\n }\n }\n\n for (const localFacetName of Object.keys(localFacets)) {\n if (pass && !seen.has(localFacetName)) {\n console.log(chalk.red(` ❌ Deployed facet ${localFacetName} missing from on-chain state.`));\n pass = false;\n }\n }\n if (pass) {\n console.log(chalk.bgGreenBright(\" ✅ All facets exist in deplyoment metadata!\"));\n } else {\n console.log(chalk.bgRed(\" ❌ Some facets do not match!\"));\n }\n return pass;\n}\n\nexport function printFacetSelectorFunctions(abi: readonly (string | Fragment | JsonFragment)[], selectors: string[]) {\n const iface = new Interface(abi);\n\n console.log(chalk.cyan(\"\\n🔎 Matching selectors to functions:\"));\n for (const selector of selectors) {\n const fragment = Object.values(iface.functions).find(fn =>\n iface.getSighash(fn) === selector\n );\n console.log(` ${selector} → ${fragment ? fragment.format() : chalk.gray(\"unknown\")}`);\n }\n}\n\nexport async function isProtocolInitRegistered(\n deployedDiamondData: DeployedDiamondData,\n protocolInitFacet: string,\n initializerSig: string\n): Promise<boolean> {\n const facet = deployedDiamondData.DeployedFacets?.[protocolInitFacet];\n console.log(`Checking if ${protocolInitFacet} is registered with ${initializerSig}...`);\n\n if (!facet || !facet.funcSelectors) return false;\n if (!initializerSig) {\n console.warn(chalk.yellow(` ❌ No initializer signature provided for ${protocolInitFacet}.`));\n return false;\n }\n const iface = new Interface([`function ${initializerSig}`]);\n const selector = iface.getSighash(initializerSig);\n console.log(` Found selector: ${selector}`);\n return facet.funcSelectors.includes(selector);\n}\n\n/**\n * Compares facet selectors from on-chain DiamondLoupe with local DeployedDiamondData\n *\n * @param deployedFacetData - local metadata (facetName -> { address, funcSelectors[] })\n * @param onChainFacets - list of { facetAddress, functionSelectors[] } from DiamondLoupe\n * @returns map of facetName -> { extraOnChain[], missingOnChain[], matched[] }\n */\nexport function compareFacetSelectors(\n deployedFacetData: Record<string, { address?: string; funcSelectors?: string[] }>,\n onChainFacets: { facetAddress: string; functionSelectors: string[] }[]\n) {\n const result: Record<string, {\n extraOnChain: string[];\n missingOnChain: string[];\n matched: string[];\n }> = {};\n\n const addressToName = Object.entries(deployedFacetData).reduce((acc, [name, meta]) => {\n if (meta.address) acc[meta.address.toLowerCase()] = name;\n return acc;\n }, {} as Record<string, string>);\n\n for (const { facetAddress, functionSelectors } of onChainFacets) {\n const lowerAddr = facetAddress.toLowerCase();\n const name = addressToName[lowerAddr] ?? \"unknown\";\n\n const expected = new Set(deployedFacetData[name]?.funcSelectors ?? []);\n const actual = new Set(functionSelectors);\n\n result[name] = {\n extraOnChain: [...actual].filter(sel => !expected.has(sel)).sort(),\n missingOnChain: [...expected].filter(sel => !actual.has(sel)).sort(),\n matched: [...actual].filter(sel => expected.has(sel)).sort(),\n };\n }\n\n return result;\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,qFAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AACjC,6EAA4E;AAAnE,4HAAA,oBAAoB,OAAA;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,uDAAqC;AACrC,0CAAwB;AACxB,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,0DAAwC;AACxC,mDAAiC;AACjC,wDAAsC;AACtC,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,qFAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AACjC,6EAA4E;AAAnE,4HAAA,oBAAoB,OAAA;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,uDAAqC;AACrC,0CAAwB;AACxB,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,0DAAwC;AACxC,mDAAiC;AACjC,wDAAsC;AACtC,6CAA2B","sourcesContent":["export * from '../repositories/jsonFileHandler';\nexport { FileDeploymentRepository } from '../repositories/FileDeploymentRepository';\nexport { DeploymentRepository } from '../repositories/DeploymentRepository';\nexport * from './common';\nexport * from './signer';\nexport * from './txlogging';\nexport * from './diffDeployedFacets';\nexport * from './loupe';\nexport * from './defenderStore';\nexport * from './defenderClients';\nexport * from './contractMapping';\nexport * from './configurationResolver';\nexport * from './workspaceSetup';\nexport * from './diamondAbiGenerator';\nexport * from './rpcStore';"]}
@@ -1 +1 @@
1
- {"version":3,"file":"loupe.js","sourceRoot":"","sources":["../../src/utils/loupe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loupe.js","sourceRoot":"","sources":["../../src/utils/loupe.ts"],"names":[],"mappings":";;;;;AA2CA,0CAwDC;AAkBD,8CAyCC;AA9JD,2CAAyC;AACzC,kDAA0B;AAC1B,mCAAmJ;AACnJ,sDAA0B;AAC1B,2CAAoC;AAEpC;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,IAAI,kBAAS,CAAC;IACtC,4FAA4F;CAC7F,CAAC,CAAC;AAQH,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,eAAe,CACnC,EAA+B,EAC/B,YAAoB,EACpB,YAAmD,EAAE;IAErD,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAK,EAAC,EAAE,EAAE,iBAAiB,YAAY,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,kBAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,kBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7I,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM;QACxD,CAAC,CAAC,IAAI,kBAAS,CACb,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,kBAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CACzG;QACD,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,GAAW,EAAE,EAAE;YAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,GAAG,qBAAqB,CAAC,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,IAAI,MAAkC,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,GAAG,MAAM,CAAC;gBAClB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI;qBAC3B,GAAG,CAAC,CAAC,GAAY,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;qBAC9E,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEd,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;oBACrC,eAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC7B,QAAQ,UAAU,EAAE,CACrB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,iCAAiC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CACjF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,iBAAiB,CACrC,cAAsB,EACtB,mBAAsC,iBAAG,CAAC,MAAM,CAAC,QAAQ,EACzD,eAAoC,EACpC,iBAA2B;IAE3B,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,iBAAQ,CAAC,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAEhF,iFAAiF;IACjF,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAkB,CAAC;IAEvD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,aAAa,CAAC,oDAAoD,CAAC,CAAC,CAAC;QACvF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAwD,EAAE,CAAS,EAAE,EAAE;YACrF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,UAAU,CAC1B,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,MAC/F,YAAY,CAAC,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC1D,CAAC,CAAC;YACH,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;gBACnD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,eAAe;QACnB,iEAAiE;QACjE,8BAA8B;QAC9B;YACE,GAAG,eAAe;YAClB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,eAAe;SACQ,EAC3C,cAAc,EACd,CAAC,KAAK,CAAC,SAAS,CAAC,CAClB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import '@nomicfoundation/hardhat-ethers';\nimport chalk from \"chalk\";\nimport { Contract, ContractTransactionResponse, Interface, InterfaceAbi, Log, LogDescription, Provider, Signer, TransactionReceipt } from \"ethers\";\nimport hre from \"hardhat\";\nimport { logTx } from \"./txlogging\";\n\n/** ----------------------------------------------------------------\n * Minimal ABI for DiamondLoupeFacet.facets()\n * (tuple[] is encoded exactly the same as the struct array returned\n * by the real contract, so we can decode it safely.)\n * ----------------------------------------------------------------\n */\nconst DIAMOND_LOUPE_ABI = new Interface([\n \"function facets() view returns (tuple(address facetAddress, bytes4[] functionSelectors)[])\"\n]);\n\n/** Optional convenience type for TS consumers (no TypeChain) */\nexport interface FacetStruct {\n facetAddress: string;\n functionSelectors: string[];\n}\n\n// -----------------------------------------------------------------------------\n// logDiamondLoupe ­– decodes *events* that were emitted during a diamondCut()\n// -----------------------------------------------------------------------------\n/** \n * logDiamondLoupe\n * • pretty‑prints the transaction receipt\n * • decodes the logs emitted by the DiamondLoupeFacet\n * • decodes the logs emitted by the facets that were passed in\n * (e.g. the facets that were added/removed)\n * • prints the decoded events to the console\n * • returns the transaction receipt\n * @param tx The awaited transaction object (e.g. from `contract.fn()`)\n * @param diamondLoupe Address of the diamond proxy\n * @param facetABIs One or more `ethers.Interface` (or plain ABIs) used to decode\n * the `receipt.logs`. Pass the primary contract interface first;\n * additional ABIs (e.g. library or facet events) can follow.\n * Pass an empty array if you don’t want to decode any facet events.\n * (e.g. `[]`)\n * (NB: this is not the same as the diamondLoupe address)\n * @returns The transaction receipt\n */\nexport async function logDiamondLoupe(\n tx: ContractTransactionResponse,\n diamondLoupe: string,\n facetABIs: readonly (InterfaceAbi | Interface)[] = []\n): Promise<TransactionReceipt> {\n const receipt = await logTx(tx, `DiamondLoupe (${diamondLoupe})`, facetABIs.map(abi => abi instanceof Interface ? abi : new Interface(abi)));\n\n const iface = Array.isArray(facetABIs) && facetABIs.length\n ? new Interface(\n facetABIs.map(i => (i instanceof Interface ? i.fragments : i)).reduce((acc, val) => acc.concat(val), [])\n )\n : undefined;\n\n console.log(chalk.cyan(\"\\n📜 Decoded Loupe logs:\"));\n if (receipt && receipt.logs) {\n receipt.logs.forEach((log: Log, idx: number) => {\n if (!iface) {\n console.log(chalk.dim(` Event[${idx}] – no ABI supplied`));\n return;\n }\n\n let parsed: LogDescription | undefined;\n try {\n const result = iface.parseLog(log);\n if (result !== null) {\n parsed = result;\n }\n } catch {\n /* swallow – this log wasn’t emitted by any of the supplied facets */\n }\n\n if (parsed) {\n const argsPretty = parsed.args\n .map((arg: unknown, i: number) => `${parsed?.fragment.inputs[i].name}: ${arg}`)\n .join(\", \");\n\n console.log(\n chalk.yellowBright(` Event[${idx}]`) +\n chalk.bold(` ${parsed.name}`) +\n ` → ${argsPretty}`\n );\n } else {\n console.log(\n chalk.dim(` Event[${idx}]`) + ` – unable to decode (topic0 = ${log.topics[0]})`\n );\n }\n });\n\n return receipt;\n }\n\n // Always return the receipt, even if logs are missing\n if (!receipt) {\n throw new Error(\"Transaction receipt is null\");\n }\n return receipt;\n}\n\n/**\n * Fetch the list of deployed facets from a diamond without relying on\n * TypeChain’s IDiamondLoupe typings.\n * getDeployedFacets – convenience wrapper around DiamondLoupe.facets()\n * • fetches the facet list\n * • pretty‑prints it\n * • (optionally) calls logDiamondLoupe if you pass a receipt\n *\n * @param diamondAddress Address of the diamond proxy\n * @param signerOrProvider Signer (for tx) or provider (for read‑only)\n * @param receiptToDecode Optional transaction receipt to decode\n * (e.g. from a diamondCut() transaction)\n * @returns Array of FacetStruct objects\n * (address + functionSelectors)\n * (see DiamondLoupeFacet.sol)\n */\nexport async function getDeployedFacets(\n diamondAddress: string,\n signerOrProvider: Signer | Provider = hre.ethers.provider,\n receiptToDecode?: TransactionReceipt,\n logDeployedFacets?: boolean, // default: assumed false\n): Promise<FacetStruct[]> {\n // Generic ethers.Contract instance built only from the tiny ABI above\n const loupe = new Contract(diamondAddress, DIAMOND_LOUPE_ABI, signerOrProvider);\n\n // NB: cast is just to help TS‑users downstream; at runtime this is the raw array\n const facets = (await loupe.facets()) as FacetStruct[];\n\n if (logDeployedFacets === true) {\n console.log(chalk.magentaBright(\"\\n🔍 Currently deployed facets (via DiamondLoupe):\"));\n facets.forEach((f: { facetAddress: string; functionSelectors: string[] }, i: number) => {\n console.log(chalk.blueBright(\n ` [${i.toString().padStart(2, \"0\")}] ${chalk.bold(f.facetAddress)} – ${f.functionSelectors.length\n } selector${f.functionSelectors.length === 1 ? \"\" : \"s\"}`\n ));\n f.functionSelectors.forEach((s: string, j: number) => {\n console.log(` ${j.toString().padStart(2, \"0\")}: ${s}`);\n });\n console.log();\n });\n }\n\n // If the caller supplied a receipt from a recent diamondCut, decode it too\n if (receiptToDecode) {\n await logDiamondLoupe(\n // fabricate a ContractTransaction‑like object so logDiamondLoupe\n // can stay reception‑agnostic\n {\n ...receiptToDecode,\n wait: async () => receiptToDecode,\n } as unknown as ContractTransactionResponse,\n diamondAddress,\n [loupe.interface]\n );\n }\n\n return facets;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rpcStore.js","sourceRoot":"","sources":["../../src/utils/rpcStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpcStore.js","sourceRoot":"","sources":["../../src/utils/rpcStore.ts"],"names":[],"mappings":"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","sourcesContent":["import { join } from 'path';\nimport * as fs from 'fs-extra';\nimport { RPCDeploymentRegistry, RPCStepStatus, RPCStepRecord } from '../types/rpc';\n\n/**\n * Step-by-step deployment store for RPC-based deployments\n * Similar to DefenderDeploymentStore but for RPC deployments\n */\nexport class RPCDeploymentStore {\n private readonly filePath: string;\n private readonly diamondName: string;\n private readonly deploymentId: string;\n\n constructor(diamondName: string, deploymentId: string, baseDir: string = 'diamonds') {\n this.diamondName = diamondName;\n this.deploymentId = deploymentId;\n const registryDir = join(baseDir, diamondName, 'deployments', 'rpc');\n fs.ensureDirSync(registryDir);\n this.filePath = join(registryDir, `${deploymentId}.json`);\n }\n\n private loadRegistry(): RPCDeploymentRegistry {\n if (!fs.existsSync(this.filePath)) {\n return {\n diamondName: this.diamondName,\n deploymentId: this.deploymentId,\n network: '',\n chainId: 0,\n rpcUrl: '',\n deployerAddress: '',\n steps: [],\n startedAt: Date.now(),\n lastUpdated: Date.now()\n };\n }\n return fs.readJSONSync(this.filePath);\n }\n\n private saveRegistry(registry: RPCDeploymentRegistry) {\n registry.lastUpdated = Date.now();\n fs.writeJSONSync(this.filePath, registry, { spaces: 2 });\n }\n\n public initializeDeployment(network: string, chainId: number, rpcUrl: string, deployerAddress: string): void {\n const registry = this.loadRegistry();\n registry.network = network;\n registry.chainId = chainId;\n registry.rpcUrl = rpcUrl;\n registry.deployerAddress = deployerAddress;\n this.saveRegistry(registry);\n }\n\n public saveStep(step: RPCStepRecord): void {\n const registry = this.loadRegistry();\n const existing = registry.steps.find(s => s.stepName === step.stepName);\n if (existing) {\n Object.assign(existing, step);\n } else {\n registry.steps.push(step);\n }\n this.saveRegistry(registry);\n }\n\n public getStep(stepName: string): RPCStepRecord | undefined {\n return this.loadRegistry().steps.find(s => s.stepName === stepName);\n }\n\n public updateStatus(stepName: string, status: RPCStepStatus, txHash?: string, contractAddress?: string, error?: string): void {\n const registry = this.loadRegistry();\n const step = registry.steps.find(s => s.stepName === stepName);\n if (step) {\n step.status = status;\n step.timestamp = Date.now();\n if (txHash) step.txHash = txHash;\n if (contractAddress) step.contractAddress = contractAddress;\n if (error) step.error = error;\n this.saveRegistry(registry);\n }\n }\n\n public list(): RPCStepRecord[] {\n return this.loadRegistry().steps;\n }\n\n public getRegistry(): RPCDeploymentRegistry {\n return this.loadRegistry();\n }\n\n public isStepCompleted(stepName: string): boolean {\n const step = this.getStep(stepName);\n return step?.status === 'completed';\n }\n\n public isStepFailed(stepName: string): boolean {\n const step = this.getStep(stepName);\n return step?.status === 'failed';\n }\n\n public getCompletedSteps(): RPCStepRecord[] {\n return this.list().filter(s => s.status === 'completed');\n }\n\n public getFailedSteps(): RPCStepRecord[] {\n return this.list().filter(s => s.status === 'failed');\n }\n\n public getPendingSteps(): RPCStepRecord[] {\n return this.list().filter(s => s.status === 'pending' || s.status === 'in_progress');\n }\n\n public markDeploymentComplete(): void {\n const registry = this.loadRegistry();\n registry.completedAt = Date.now();\n this.saveRegistry(registry);\n }\n\n public markDeploymentFailed(error: string): void {\n const registry = this.loadRegistry();\n registry.failedAt = Date.now();\n registry.lastError = error;\n this.saveRegistry(registry);\n }\n\n public clearFailedSteps(): void {\n const registry = this.loadRegistry();\n registry.steps = registry.steps.filter(s => s.status !== 'failed');\n this.saveRegistry(registry);\n }\n\n public getDeploymentSummary(): {\n total: number;\n completed: number;\n failed: number;\n pending: number;\n isComplete: boolean;\n hasFailed: boolean;\n } {\n const steps = this.list();\n const completed = steps.filter(s => s.status === 'completed').length;\n const failed = steps.filter(s => s.status === 'failed').length;\n const pending = steps.filter(s => s.status === 'pending' || s.status === 'in_progress').length;\n \n return {\n total: steps.length,\n completed,\n failed,\n pending,\n isComplete: failed === 0 && pending === 0 && completed > 0,\n hasFailed: failed > 0\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/utils/signer.ts"],"names":[],"mappings":";;;;;;AAaA,8CAIC;AASD,0CAKC;AASD,4DAgBC;AAxDD,sDAA0B;AAC1B,qCAAiC;AAEjC,2CAAyC;AAGzC;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CAAC,aAAqB,EAAE,QAAyB;IACtF,sEAAsE;IACtE,MAAM,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,iCAAiC;AAC7E,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,MAAc,EAAE,QAAyB;IAC9F,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE;QACxC,OAAO,EAAE,mCAAmC;QAC5C,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,2CAA2C;KACxE,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,wBAAwB,CAAC,eAAuB,EAAE,QAAiD;IACvH,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAEnD,mBAAmB;QACnB,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,wCAAwC,eAAe,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,wCAAwC,eAAe,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAGD;;;;;;GAMG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,WAAmB,EAAE,QAAyB,EAAE,EAAE;IACzF,yDAAyD;IACzD,MAAM,QAAQ,GAAG,CAAC,MAAM,iBAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,qFAAqF;IACrF,MAAM,SAAS,GAAG,MAAM,iBAAG,CAAC,MAAM,CAAC,aAAa,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAEtF,6CAA6C;IAC7C,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAEhD,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAEpE,uFAAuF;IACvF,IAAI,eAAe,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzC,QAAQ,CAAC,+BAA+B,eAAe,EAAE,CAAC,CAAC;QAE3D,0EAA0E;QAC1E,MAAM,eAAe,CAAC,eAAe,EAAE,IAAA,cAAK,EAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5D,MAAO,SAAiB,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrF,MAAO,SAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,sCAAsC;IACtC,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/utils/signer.ts"],"names":[],"mappings":";;;;;;AAaA,8CAIC;AASD,0CAKC;AASD,4DAgBC;AAxDD,sDAA0B;AAC1B,qCAAiC;AAEjC,2CAAyC;AAGzC;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CAAC,aAAqB,EAAE,QAAyB;IACtF,sEAAsE;IACtE,MAAM,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,iCAAiC;AAC7E,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,MAAc,EAAE,QAAyB;IAC9F,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE;QACxC,OAAO,EAAE,mCAAmC;QAC5C,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,2CAA2C;KACxE,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,wBAAwB,CAAC,eAAuB,EAAE,QAAiD;IACvH,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAEnD,mBAAmB;QACnB,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,wCAAwC,eAAe,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,wCAAwC,eAAe,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAGD;;;;;;GAMG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,WAAmB,EAAE,QAAyB,EAAE,EAAE;IACzF,yDAAyD;IACzD,MAAM,QAAQ,GAAG,CAAC,MAAM,iBAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,qFAAqF;IACrF,MAAM,SAAS,GAAG,MAAM,iBAAG,CAAC,MAAM,CAAC,aAAa,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAEtF,6CAA6C;IAC7C,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAEhD,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAEpE,uFAAuF;IACvF,IAAI,eAAe,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzC,QAAQ,CAAC,+BAA+B,eAAe,EAAE,CAAC,CAAC;QAE3D,0EAA0E;QAC1E,MAAM,eAAe,CAAC,eAAe,EAAE,IAAA,cAAK,EAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5D,MAAO,SAAiB,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrF,MAAO,SAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,sCAAsC;IACtC,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B","sourcesContent":["import hre from 'hardhat';\nimport { toWei } from './common';\nimport { JsonRpcProvider, Signer } from 'ethers';\nimport '@nomicfoundation/hardhat-ethers';\nimport { HardhatEthersProvider } from '@nomicfoundation/hardhat-ethers/internal/hardhat-ethers-provider';\n\n/**\n * Impersonates a signer account. This is primarily used in Hardhat's testing environment\n * to simulate actions from accounts that are not part of the default test accounts.\n *\n * @param signerAddress - The address of the account to impersonate.\n * @returns The impersonated signer object.\n */\nexport async function impersonateSigner(signerAddress: string, provider: JsonRpcProvider): Promise<Signer> {\n // Request Hardhat to impersonate the account at the specified address\n await provider.send(\"hardhat_impersonateAccount\", [signerAddress]);\n return provider.getSigner(signerAddress); // Return the impersonated signer\n}\n\n/**\n * Sets the Ether balance for a specified address in the Hardhat testing environment.\n * This is useful for ensuring test accounts have sufficient funds for transactions.\n *\n * @param address - The address to set the Ether balance for.\n * @param amount - The desired balance as a `BigNumber`.\n */\nexport async function setEtherBalance(address: string, amount: bigint, provider: JsonRpcProvider) {\n await provider.send('hardhat_setBalance', [\n address, // Address to modify the balance of\n '0x' + amount.toString(16), // Amount to set, formatted as a hex string\n ]);\n}\n\n/** \n * Impersonates the deployer account and funds it to a balance that is rounded to the next highest 100 ETH.\n * \n * @param provider - The ethers provider instance.\n * @param deployerAddress - The address of the deployer account.\n * @param balance - The balance to set for the deployer account (in hex format).\n */\nexport async function impersonateAndFundSigner(deployerAddress: string, provider: JsonRpcProvider | HardhatEthersProvider): Promise<Signer> {\n try {\n await provider.send('hardhat_impersonateAccount', [deployerAddress]);\n const signer = provider.getSigner(deployerAddress);\n\n // Fund the account\n await provider.send('hardhat_setBalance', [deployerAddress, '0x56BC75E2D63100000']);\n return signer;\n } catch (error) {\n if (error instanceof Error) {\n console.error(`Impersonation and funding failed for ${deployerAddress}: ${error.message}`);\n } else {\n console.error(`Impersonation and funding failed for ${deployerAddress}: ${String(error)}`);\n }\n throw error;\n }\n}\n\n\n/**\n * Updates the owner of the contract at the specified root address for testing purposes.\n * This involves transferring ownership from the current owner to the default signer in the Hardhat environment.\n *\n * @param rootAddress - The address of the root contract (e.g., GeniusOwnershipFacet).\n * @returns The address of the old owner.\n */\nexport const updateOwnerForTest = async (rootAddress: string, provider: JsonRpcProvider) => {\n // Retrieve the current signer in the Hardhat environment\n const curOwner = (await hre.ethers.getSigners())[0];\n\n // Get a reference to the GeniusOwnershipFacet contract at the specified root address\n const ownership = await hre.ethers.getContractAt('GeniusOwnershipFacet', rootAddress);\n\n // Retrieve the current owner of the contract\n const oldOwnerAddress = await ownership.owner();\n\n // Impersonate the old owner\n const oldOwner = await impersonateSigner(oldOwnerAddress, provider);\n\n // If the old owner is not the current signer, transfer ownership to the current signer\n if (oldOwnerAddress !== curOwner.address) {\n debuglog(`Transferring ownership from ${oldOwnerAddress}`);\n\n // Ensure the old owner has enough Ether to perform the ownership transfer\n await setEtherBalance(oldOwnerAddress, toWei(10), provider);\n\n await (ownership as any).connect(await oldOwner).transferOwnership(curOwner.address);\n await (ownership as any).connect(oldOwner).transferOwnership(curOwner.address);\n }\n\n // Return the address of the old owner\n return oldOwnerAddress;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"txlogging.js","sourceRoot":"","sources":["../../src/utils/txlogging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"txlogging.js","sourceRoot":"","sources":["../../src/utils/txlogging.ts"],"names":[],"mappings":";;;;;AAmBA,sBA6EC;AAhGD,iFAAiF;AACjF,gBAAgB;AAChB,yDAAyD;AACzD,iFAAiF;AACjF,2CAAyC;AACzC,kDAA0B;AAC1B,mCAAuH;AACvH,sDAA0B;AAG1B;;;;;;;;GAQG;AACI,KAAK,UAAU,KAAK,CACzB,EAA+B,EAC/B,WAAW,GAAG,EAAE,EAChB,aAA2C,EAAE;IAG7C,oDAAoD;IACpD,MAAM,QAAQ,GAAgB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,CAAC,YAAY,kBAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAS,CAAC,CAAC,CAAC,CAC9C,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,gFAAgF;IAChF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,WAAW,CAAC,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,KAAK,CAAC;QACZ,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QACnD,KAAK,EAAE,OAAO,CAAC,WAAW;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,UAAU,EAAG,OAAe,CAAC,gBAAgB,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK;QACvE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;QACtC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACtD,WAAW,EAAG,OAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAK;QAC3D,YAAY,EAAE,OAAO,CAAC,SAAS;QAC/B,eAAe,EAAE,OAAO,CAAC,aAAa;QACtC,WAAW,EAAE,OAAO,CAAC,WAAW;YAC9B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,cAAc,EAAE;YACnJ,CAAC,CAAC,KAAK;QACT,kBAAkB,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;QACpD,YAAY,EAAE,OAAO,CAAC,IAAI;QAE1B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,gFAAgF;IAChF,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,GAAW,EAAE,EAAE;QAC7C,IAAI,MAAkC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,GAAG,MAAM,CAAC;oBAChB,MAAM,CAAC,mCAAmC;gBAC5C,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,yBAAyB;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI;iBAC3B,GAAG,CAAC,CAAC,GAAY,EAAE,CAAS,EAAE,EAAE;gBAC/B,MAAM,GAAG,GAAG,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5C,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;YAC1C,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC;gBACrC,eAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7B,QAAQ,UAAU,EAAE,CACrB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,iCAAiC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CACjF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["// ──────────────────────────────────────────────────────────────────────────────\n// txLogging.ts\n// Extra helpers for inspecting diamond‑cut transactions\n// ──────────────────────────────────────────────────────────────────────────────\nimport \"@nomicfoundation/hardhat-ethers\";\nimport chalk from \"chalk\";\nimport { ContractTransactionResponse, Interface, InterfaceAbi, Log, LogDescription, TransactionReceipt } from \"ethers\";\nimport hre from \"hardhat\";\n\n\n/**\n * Pretty‑prints a transaction receipt **and** decodes its logs.\n *\n * @param tx The awaited transaction object (e.g. from `contract.fn()`)\n * @param description Optional label that will be shown in the console header.\n * @param interfaces One or more `ethers.Interface` (or plain ABIs) used to decode\n * the `receipt.logs`. Pass the primary contract interface first; \n * additional ABIs (e.g. library or facet events) can follow.\n */\nexport async function logTx(\n tx: ContractTransactionResponse,\n description = \"\",\n interfaces: (Interface | InterfaceAbi)[] = [],\n // verbose?: boolean\n): Promise<TransactionReceipt> {\n // normalise incoming interfaces => ethers.Interface\n const decoders: Interface[] = interfaces.map((i) =>\n i instanceof Interface ? i : new Interface(i)\n );\n\n const receipt = await tx.wait();\n if (!receipt) {\n throw new Error(\"Transaction receipt is null\");\n }\n\n /* --------------------------- basic tx statistics -------------------------- */\n console.log(chalk.green(`\\n⛓️ Transaction Details${description ? ` – ${description}` : \"\"}`));\n console.table({\n Hash: tx.hash,\n Status: receipt.status === 1 ? \"Success\" : \"Failed\",\n Block: receipt.blockNumber,\n From: receipt.from,\n To: receipt.to,\n \"Tx Index\": (receipt as any).transactionIndex ?? receipt.index ?? \"N/A\",\n \"Gas Used\": receipt.gasUsed.toString(),\n \"Cumulative Gas\": receipt.cumulativeGasUsed.toString(),\n \"Gas Price\": (receipt as any).gasPrice?.toString() ?? \"N/A\",\n \"Block Hash\": receipt.blockHash,\n \"Confirmations\": receipt.confirmations,\n \"Timestamp\": receipt.blockNumber\n ? new Date(((await tx.wait().then(() => hre.ethers.provider.getBlock(receipt.blockNumber))) ?? { timestamp: 0 }).timestamp * 1000).toLocaleString()\n : \"N/A\",\n \"Created Contract\": receipt.contractAddress ?? \"N/A\",\n \"Created By\": receipt.from,\n\n Events: receipt.logs.length,\n });\n\n /* ----------------------------- decode events ------------------------------ */\n if (receipt.logs.length === 0) return receipt;\n console.log(chalk.cyan(\"\\n📜 Decoded events:\"));\n receipt.logs.forEach((log: Log, idx: number) => {\n let parsed: LogDescription | undefined;\n for (const iface of decoders) {\n try {\n const result = iface.parseLog(log);\n if (result !== null) {\n parsed = result;\n break; // stop at first successful decoder\n }\n } catch (_) {\n /* ignore and try next */\n }\n }\n\n if (parsed) {\n const argsPretty = parsed.args\n .map((arg: unknown, i: number) => {\n const key = parsed?.fragment.inputs[i].name;\n return `${key ? key + \": \" : \"\"}${arg}`;\n })\n .join(\", \");\n\n console.log(\n chalk.yellowBright(` Event[${idx}]`) +\n chalk.bold(` ${parsed.name}`) +\n ` → ${argsPretty}`\n );\n } else {\n console.log(\n chalk.dim(` Event[${idx}]`) + ` – unable to decode (topic0 = ${log.topics[0]})`\n );\n }\n });\n\n return receipt;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceSetup.js","sourceRoot":"","sources":["../../src/utils/workspaceSetup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaceSetup.js","sourceRoot":"","sources":["../../src/utils/workspaceSetup.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'fs-extra';\nimport * as path from 'path';\nimport { ConfigurationResolver } from './configurationResolver';\n\n/**\n * Workspace setup utility for diamonds module\n * Supports both standalone and hardhat-diamonds plugin configurations\n */\nexport class WorkspaceSetup {\n\n /**\n * Initialize a new diamond workspace with default structure\n */\n static async initializeWorkspace(\n diamondName: string,\n options: {\n useHardhatPlugin?: boolean;\n contractsPath?: string;\n deploymentsPath?: string;\n createExampleConfig?: boolean;\n } = {}\n ): Promise<void> {\n const {\n useHardhatPlugin = false,\n contractsPath = './contracts',\n deploymentsPath = './diamonds',\n createExampleConfig = true\n } = options;\n\n console.log(`Initializing ${diamondName} workspace...`);\n\n // Create basic directory structure\n const diamondsDir = path.join(process.cwd(), deploymentsPath);\n const diamondDir = path.join(diamondsDir, diamondName);\n const deploymentsDir = path.join(diamondDir, 'deployments');\n const callbacksDir = path.join(diamondDir, 'callbacks');\n const contractsDir = path.join(process.cwd(), contractsPath);\n\n await fs.ensureDir(diamondsDir);\n await fs.ensureDir(diamondDir);\n await fs.ensureDir(deploymentsDir);\n await fs.ensureDir(callbacksDir);\n await fs.ensureDir(contractsDir);\n\n console.log(`✅ Created directory structure for ${diamondName}`);\n\n // Create default configuration file\n if (createExampleConfig) {\n await this.createDefaultConfig(diamondName, diamondDir);\n }\n\n // Create example callback file\n await this.createExampleCallback(diamondName, callbacksDir);\n\n // Create example contracts if they don't exist\n await this.createExampleContracts(contractsDir);\n\n // Create hardhat config extension example if requested\n if (useHardhatPlugin) {\n await this.createHardhatConfigExample(diamondName);\n }\n\n console.log(`✅ ${diamondName} workspace initialized successfully!`);\n console.log(`\nConfiguration files created:\n- Diamond config: ${path.join(diamondDir, `${diamondName.toLowerCase()}.config.json`)}\n- Callbacks: ${path.join(callbacksDir, 'ExampleFacet.ts')}\n- Contracts: ${contractsDir}\n\n${useHardhatPlugin ?\n '- Hardhat config example: ./hardhat-diamonds-config.example.ts' :\n '- Using standalone mode (no hardhat plugin required)'\n }\n\nNext steps:\n1. Customize your diamond configuration in the config file\n2. Add your facet contracts to ${contractsPath}\n3. Implement callback functions in ${path.join(callbacksDir)}\n4. Deploy using: DiamondDeployer with your chosen strategy\n `);\n }\n\n /**\n * Create a default diamond configuration file\n */\n private static async createDefaultConfig(diamondName: string, diamondDir: string): Promise<void> {\n const configPath = path.join(diamondDir, `${diamondName.toLowerCase()}.config.json`);\n\n if (await fs.pathExists(configPath)) {\n console.log(`⚠️ Configuration file already exists: ${configPath}`);\n return;\n }\n\n const defaultConfig = {\n protocolVersion: 0.0,\n facets: {\n DiamondCutFacet: {\n priority: 10,\n versions: {\n \"0.0\": {}\n }\n },\n DiamondLoupeFacet: {\n priority: 20,\n versions: {\n \"0.0\": {}\n }\n },\n ExampleFacet: {\n priority: 30,\n versions: {\n \"0.0\": {\n callbacks: [\"exampleCallback\"],\n deployInit: \"initialize()\",\n upgradeInit: \"reinitialize()\"\n }\n }\n }\n }\n };\n\n await fs.writeJson(configPath, defaultConfig, { spaces: 2 });\n console.log(`✅ Created default configuration: ${configPath}`);\n }\n\n /**\n * Create an example callback file\n */\n private static async createExampleCallback(diamondName: string, callbacksDir: string): Promise<void> {\n const callbackPath = path.join(callbacksDir, 'ExampleFacet.ts');\n\n if (await fs.pathExists(callbackPath)) {\n console.log(`⚠️ Callback file already exists: ${callbackPath}`);\n return;\n }\n\n const callbackContent = `import { CallbackArgs } from \"../../../src/types\";\n\n/**\n * Example callback function for ExampleFacet\n * This function will be called after the facet is deployed\n */\nexport async function exampleCallback(args: CallbackArgs) {\n const { diamond } = args;\n \n console.log(\\`Running example callback for \\${diamond.diamondName} on \\${diamond.networkName}\\`);\n \n // Add your post-deployment logic here\n // For example:\n // - Initialize contract state\n // - Set up permissions\n // - Configure parameters\n \n console.log('Example callback completed successfully');\n}\n\n/**\n * Initialize function called during initial deployment\n */\nexport async function initialize(args: CallbackArgs) {\n const { diamond } = args;\n console.log(\\`Initializing \\${diamond.diamondName}...\\`);\n // Add initialization logic here\n}\n\n/**\n * Reinitialize function called during upgrades\n */\nexport async function reinitialize(args: CallbackArgs) {\n const { diamond } = args;\n console.log(\\`Reinitializing \\${diamond.diamondName}...\\`);\n // Add reinitialization logic here\n}\n`;\n\n await fs.writeFile(callbackPath, callbackContent);\n console.log(`✅ Created example callback: ${callbackPath}`);\n }\n\n /**\n * Create example contract files if they don't exist\n */\n private static async createExampleContracts(contractsDir: string): Promise<void> {\n const exampleFacetPath = path.join(contractsDir, 'ExampleFacet.sol');\n\n if (await fs.pathExists(exampleFacetPath)) {\n console.log(`⚠️ Example contract already exists: ${exampleFacetPath}`);\n return;\n }\n\n const exampleFacetContent = `// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/**\n * @title ExampleFacet\n * @dev Example facet contract for diamond pattern\n */\ncontract ExampleFacet {\n // State variables\n uint256 private value;\n bool private initialized;\n \n // Events\n event ValueSet(uint256 newValue);\n event Initialized();\n \n /**\n * @dev Initialize the facet\n */\n function initialize() external {\n require(!initialized, \"Already initialized\");\n initialized = true;\n value = 0;\n emit Initialized();\n }\n \n /**\n * @dev Reinitialize during upgrades\n */\n function reinitialize() external {\n initialized = true;\n emit Initialized();\n }\n \n /**\n * @dev Set a value\n */\n function setValue(uint256 _value) external {\n require(initialized, \"Not initialized\");\n value = _value;\n emit ValueSet(_value);\n }\n \n /**\n * @dev Get the current value\n */\n function getValue() external view returns (uint256) {\n return value;\n }\n \n /**\n * @dev Check if initialized\n */\n function isInitialized() external view returns (bool) {\n return initialized;\n }\n}\n`;\n\n await fs.writeFile(exampleFacetPath, exampleFacetContent);\n console.log(`✅ Created example contract: ${exampleFacetPath}`);\n }\n\n /**\n * Create hardhat config example for hardhat-diamonds plugin\n */\n private static async createHardhatConfigExample(diamondName: string): Promise<void> {\n const configPath = path.join(process.cwd(), 'hardhat-diamonds-config.example.ts');\n\n if (await fs.pathExists(configPath)) {\n console.log(`⚠️ Hardhat config example already exists: ${configPath}`);\n return;\n }\n\n const configContent = `// Example hardhat.config.ts extension for hardhat-diamonds\n// Copy this configuration to your hardhat.config.ts when using the hardhat-diamonds plugin\n\nimport { HardhatUserConfig } from \"hardhat/config\";\nimport \"@nomiclabs/hardhat-waffle\";\nimport \"@nomiclabs/hardhat-ethers\";\n// import \"@gnus.ai/hardhat-diamonds\"; // Uncomment when plugin is available\n\ndeclare module \"hardhat/types/config\" {\n interface HardhatUserConfig {\n diamonds?: {\n [diamondName: string]: {\n deploymentsPath?: string;\n contractsPath?: string;\n callbacksPath?: string;\n configFilePath?: string;\n };\n };\n }\n}\n\nconst config: HardhatUserConfig = {\n solidity: \"0.8.17\",\n \n // Diamond configurations\n diamonds: {\n ${diamondName}: {\n deploymentsPath: \"./diamonds\",\n contractsPath: \"./contracts\",\n callbacksPath: \"./diamonds/${diamondName}/callbacks\",\n configFilePath: \"./diamonds/${diamondName}/${diamondName.toLowerCase()}.config.json\",\n },\n \n // Add more diamond configurations as needed\n },\n \n networks: {\n hardhat: {\n chainId: 31337,\n },\n // Add other networks as needed\n },\n};\n\nexport default config;\n`;\n\n await fs.writeFile(configPath, configContent);\n console.log(`✅ Created Hardhat config example: ${configPath}`);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diamondslab/diamonds",
3
- "version": "1.2.1",
3
+ "version": "1.3.2",
4
4
  "description": "Tools for deploying and interfacing with ERC-2535 Diamond Proxies",
5
5
  "repository": "github:diamondslab/diamonds",
6
6
  "main": "dist/index.js",
@@ -10,6 +10,10 @@
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
12
  "default": "./dist/index.js"
13
+ },
14
+ "./core": {
15
+ "types": "./dist/core/index.d.ts",
16
+ "default": "./dist/core/index.js"
13
17
  }
14
18
  },
15
19
  "authors": [
@@ -136,7 +140,7 @@
136
140
  "@ethersproject/providers": "^5.8.0",
137
141
  "@gnus.ai/contracts-upgradeable-diamond": "=4.5.0",
138
142
  "@nomicfoundation/hardhat-chai-matchers": "^2.0.0",
139
- "@nomicfoundation/hardhat-ethers": "^3.0.0",
143
+ "@nomicfoundation/hardhat-ethers": "*",
140
144
  "@nomicfoundation/hardhat-ignition": "^0.15.0",
141
145
  "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0",
142
146
  "@nomicfoundation/hardhat-network-helpers": "^1.0.0",