@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":"CallbackManager.js","sourceRoot":"","sources":["../../src/core/CallbackManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallbackManager.js","sourceRoot":"","sources":["../../src/core/CallbackManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,+BAAqC;AAGrC,MAAa,eAAe;IAKE;IAJpB,MAAM,CAAC,SAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;IAE3D,SAAS,GAA0E,EAAE,CAAC;IAE9F,YAA4B,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,WAAmB,EAAE,eAAuB;QACpE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,cAAc;QAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,WAAmB;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,aAAa,mBAAmB,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEjD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAE/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE;gBAC5D,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;oBACrC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,UAAmD,CAAC;gBAChG,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,SAAmB,EAAE,IAAkB;QACrF,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACtD,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,cAAc,CAAC,CAAC;YACnE,CAAC;YAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,gBAAgB,SAAS,cAAc,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;;AAhEH,0CAiEC","sourcesContent":["import * as fs from \"fs-extra\";\nimport { resolve, join } from \"path\";\nimport { CallbackArgs } from \"../types\";\n\nexport class CallbackManager {\n private static instances: Map<string, CallbackManager> = new Map();\n\n private callbacks: Record<string, Record<string, (args: CallbackArgs) => Promise<void>>> = {};\n\n private constructor(private callbacksPath: string) {\n this.loadCallbacks();\n }\n\n public static getInstance(diamondName: string, deploymentsPath: string): CallbackManager {\n if (!this.instances.has(diamondName)) {\n const callbacksPath = join(deploymentsPath, diamondName, \"callbacks\");\n this.instances.set(diamondName, new CallbackManager(callbacksPath));\n }\n return this.instances.get(diamondName)!;\n }\n\n public static clearInstances(): void {\n this.instances.clear();\n }\n\n public static clearInstance(diamondName: string): void {\n this.instances.delete(diamondName);\n }\n\n private loadCallbacks(): void {\n if (!fs.existsSync(this.callbacksPath)) {\n console.error(`Facet callbacks path \"${this.callbacksPath}\" does not exist.`);\n return;\n }\n\n const files = fs.readdirSync(this.callbacksPath);\n\n files.forEach(file => {\n if (!file.endsWith(\".ts\") && !file.endsWith(\".js\")) return;\n\n const facetName = file.split(\".\")[0];\n const filePath = resolve(this.callbacksPath, file);\n const module = require(filePath);\n\n this.callbacks[facetName] = {};\n\n Object.entries(module).forEach(([callbackName, callbackFn]) => {\n if (typeof callbackFn === 'function') {\n this.callbacks[facetName][callbackName] = callbackFn as (args: CallbackArgs) => Promise<void>;\n }\n });\n });\n }\n\n public async executeCallback(facetName: string, callbacks: string[], args: CallbackArgs): Promise<void> {\n const registeredCallbacks = this.callbacks[facetName];\n for (const callbackName of callbacks) {\n if (!registeredCallbacks) {\n throw new Error(`Callbacks for facet \"${facetName}\" not found.`);\n }\n\n const callback = registeredCallbacks[callbackName];\n if (!callback) {\n throw new Error(`Callback \"${callbackName}\" for facet \"${facetName}\" not found.`);\n }\n\n await callback(args);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DeploymentManager.js","sourceRoot":"","sources":["../../src/core/DeploymentManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeploymentManager.js","sourceRoot":"","sources":["../../src/core/DeploymentManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { DeploymentStrategy } from \"../strategies/DeploymentStrategy\";\nimport { Diamond } from \"./Diamond\";\n\nexport class DeploymentManager {\n private diamond: Diamond;\n private strategy: DeploymentStrategy;\n\n constructor(diamond: Diamond, strategy: DeploymentStrategy) {\n this.diamond = diamond;\n this.strategy = strategy;\n }\n\n async deploy(): Promise<void> {\n console.log(`🚀 Starting deployment for Diamond: ${this.diamond.diamondName}`);\n this.diamond.newDeployment = true;\n\n await this.strategy.preDeployDiamond(this.diamond);\n await this.strategy.deployDiamond(this.diamond);\n await this.strategy.postDeployDiamond(this.diamond);\n\n await this.strategy.preDeployFacets(this.diamond);\n await this.strategy.deployFacets(this.diamond);\n await this.strategy.postDeployFacets(this.diamond);\n\n await this.strategy.preUpdateFunctionSelectorRegistry(this.diamond);\n await this.strategy.updateFunctionSelectorRegistry(this.diamond);\n await this.strategy.postUpdateFunctionSelectorRegistry(this.diamond);\n\n await this.strategy.prePerformDiamondCut(this.diamond);\n await this.strategy.performDiamondCut(this.diamond);\n await this.strategy.postPerformDiamondCut(this.diamond);\n\n await this.strategy.preRunPostDeployCallbacks(this.diamond);\n await this.strategy.runPostDeployCallbacks(this.diamond);\n await this.strategy.postRunPostDeployCallbacks(this.diamond);\n\n console.log(`✅ Deployment completed successfully.`);\n }\n\n async upgrade(): Promise<void> {\n console.log(`♻️ Starting upgrade for Diamond: ${this.diamond.diamondName}`);\n\n this.diamond.newDeployment = false;\n\n await this.strategy.preDeployFacets(this.diamond);\n await this.strategy.deployFacets(this.diamond);\n await this.strategy.postDeployFacets(this.diamond);\n\n await this.strategy.preUpdateFunctionSelectorRegistry(this.diamond);\n await this.strategy.updateFunctionSelectorRegistry(this.diamond);\n await this.strategy.postUpdateFunctionSelectorRegistry(this.diamond);\n\n await this.strategy.prePerformDiamondCut(this.diamond);\n await this.strategy.performDiamondCut(this.diamond);\n await this.strategy.postPerformDiamondCut(this.diamond);\n\n await this.strategy.preRunPostDeployCallbacks(this.diamond);\n await this.strategy.runPostDeployCallbacks(this.diamond);\n await this.strategy.postRunPostDeployCallbacks(this.diamond);\n\n console.log(`✅ Upgrade completed successfully.`);\n }\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Diamond.js","sourceRoot":"","sources":["../../src/core/Diamond.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Diamond.js","sourceRoot":"","sources":["../../src/core/Diamond.ts"],"names":[],"mappings":"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","sourcesContent":["import { Signer } from 'ethers';\nimport { join } from 'path';\nimport { DeploymentRepository } from '../repositories/DeploymentRepository';\nimport {\n DeployConfig,\n DeployedDiamondData,\n DeployedFacets,\n FacetsConfig,\n} from '../schemas';\nimport {\n DiamondConfig,\n FunctionSelectorRegistryEntry,\n NewDeployedFacet,\n NewDeployedFacets,\n RegistryFacetCutAction,\n SupportedProvider,\n} from '../types';\nimport { CallbackManager } from './CallbackManager';\n\nexport class Diamond {\n\tprivate static instances: Map<string, Diamond> = new Map();\n\n\tpublic diamondName: string;\n\tpublic networkName: string;\n\tpublic chainId: number | bigint;\n\tpublic deploymentsPath: string;\n\tpublic contractsPath: string;\n\tpublic diamondAbiPath: string;\n\tpublic diamondAbiFileName: string;\n\tpublic deploymentId: string;\n\tpublic facetSelectors: string[] = [];\n\tpublic callbackManager: CallbackManager;\n\tprivate deployedDiamondData: DeployedDiamondData;\n\tprivate config: DiamondConfig;\n\tprivate facetsConfig: FacetsConfig;\n\tprivate repository: DeploymentRepository;\n\tpublic signer: Signer | undefined;\n\tpublic provider: SupportedProvider | undefined;\n\tpublic deployConfig: DeployConfig;\n\tpublic newDeployment: boolean = true;\n\tpublic initAddress: string | undefined;\n\n\tconstructor(config: DiamondConfig, repository: DeploymentRepository) {\n\t\tthis.config = config;\n\t\tthis.diamondName = config.diamondName;\n\t\tthis.networkName = config.networkName ?? 'hardhat';\n\t\tthis.chainId = config.chainId ?? 31337;\n\t\tthis.deploymentsPath = config.deploymentsPath ?? 'diamonds';\n\t\tthis.contractsPath = config.contractsPath ?? 'contracts';\n\t\tthis.diamondAbiFileName = config.diamondAbiFileName ?? config.diamondName;\n\n\t\t// Set diamond ABI path - default to diamond-abi subdirectory of configFilePath directory\n\t\tif (config.diamondAbiPath) {\n\t\t\tthis.diamondAbiPath = config.diamondAbiPath;\n\t\t} else {\n\t\t\tconst configDir = config.configFilePath\n\t\t\t\t? config.configFilePath.replace(/\\/[^\\/]*$/, '') // Remove filename from path\n\t\t\t\t: join(this.deploymentsPath, config.diamondName);\n\t\t\tthis.diamondAbiPath = join(configDir, 'diamond-abi');\n\t\t}\n\n\t\tthis.repository = repository;\n\t\tthis.deploymentId = repository.getDeploymentId();\n\n\t\t// Load existing deployment info\n\t\tthis.deployedDiamondData = this.repository.loadDeployedDiamondData();\n\t\tthis.deployConfig = this.repository.loadDeployConfig();\n\n\t\tthis.facetsConfig = this.deployConfig.facets;\n\n\t\tthis.callbackManager = CallbackManager.getInstance(\n\t\t\tthis.diamondName,\n\t\t\tthis.deploymentsPath,\n\t\t);\n\n\t\tthis._initializeFunctionSelectorRegistry(this);\n\t}\n\n\tpublic functionSelectorRegistry = new Map<string, FunctionSelectorRegistryEntry>();\n\n\tprivate _initializeFunctionSelectorRegistry(diamond: Diamond): void {\n\t\tconst diamondConfig: DiamondConfig = diamond.getDiamondConfig();\n\t\tconst deployedDiamondData: DeployedDiamondData = diamond.getDeployedDiamondData();\n\t\tconst deployedFacets: DeployedFacets = deployedDiamondData.DeployedFacets ?? {};\n\n\t\tfor (const [\n\t\t\tfacetName,\n\t\t\t{ address: contractAddress, funcSelectors: selectors },\n\t\t] of Object.entries(deployedFacets)) {\n\t\t\tconsole.log(facetName);\n\t\t\tif (!selectors || !contractAddress) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (const selector of selectors) {\n\t\t\t\tconst facetConfig = this.facetsConfig[facetName as keyof FacetsConfig];\n\t\t\t\tconst priority = facetConfig?.priority ?? 1000;\n\t\t\t\tthis.functionSelectorRegistry.set(selector, {\n\t\t\t\t\tfacetName,\n\t\t\t\t\tpriority,\n\t\t\t\t\taddress: contractAddress,\n\t\t\t\t\taction: RegistryFacetCutAction.Deployed,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic registerFunctionSelectors(\n\t\tselectors: Record<string, Omit<FunctionSelectorRegistryEntry, 'selector'>>,\n\t): void {\n\t\tObject.entries(selectors).forEach(([selector, entry]) => {\n\t\t\tthis.functionSelectorRegistry.set(selector, entry);\n\t\t});\n\t}\n\n\tpublic updateFunctionSelectorRegistry(\n\t\tselector: string,\n\t\tentry: FunctionSelectorRegistryEntry,\n\t): void {\n\t\tthis.functionSelectorRegistry.set(selector, entry);\n\t}\n\n\tpublic isFunctionSelectorRegistered(selector: string): boolean {\n\t\treturn this.functionSelectorRegistry.has(selector);\n\t}\n\n\tpublic newDeployedFacets: NewDeployedFacets = {};\n\n\tpublic getNewDeployedFacets(): NewDeployedFacets {\n\t\treturn this.newDeployedFacets ?? {};\n\t}\n\n\tpublic updateNewDeployedFacets(facetName: string, facet: NewDeployedFacet): void {\n\t\tthis.newDeployedFacets = this.newDeployedFacets ?? {};\n\t\tthis.newDeployedFacets[facetName as keyof NewDeployedFacets] = facet;\n\t}\n\n\tgetDeployedDiamondData(): DeployedDiamondData {\n\t\treturn this.deployedDiamondData;\n\t}\n\n\tsetDeployedDiamondData(data: DeployedDiamondData): void {\n\t\tthis.deployedDiamondData = data;\n\t}\n\n\tupdateDeployedDiamondData(data: DeployedDiamondData): void {\n\t\tthis.deployedDiamondData = data;\n\t\tthis.repository.saveDeployedDiamondData(data);\n\t}\n\n\tpublic getDiamondConfig(): DiamondConfig {\n\t\treturn this.config;\n\t}\n\n\tpublic getDeployConfig(): DeployConfig {\n\t\treturn this.deployConfig;\n\t}\n\n\tpublic getFacetsConfig(): FacetsConfig {\n\t\treturn this.facetsConfig;\n\t}\n\n\tpublic setProvider(provider: SupportedProvider): void {\n\t\tthis.provider = provider;\n\t}\n\n\tpublic getProvider(): SupportedProvider | undefined {\n\t\treturn this.provider;\n\t}\n\n\tpublic setSigner(signer: Signer): void {\n\t\tthis.signer = signer;\n\t}\n\n\tpublic getSigner(): Signer | undefined {\n\t\treturn this.signer;\n\t}\n\n\tpublic isUpgradeDeployment(): boolean {\n\t\treturn !!this.deployedDiamondData.DiamondAddress;\n\t}\n\n\tpublic initializerRegistry: Map<string, string> = new Map();\n\n\tpublic registerInitializers(facetName: string, initFunction: string): void {\n\t\tthis.initializerRegistry.set(facetName, initFunction);\n\t}\n\n\tpublic setInitAddress(initAddress: string): void {\n\t\tthis.initAddress = initAddress;\n\t}\n\tpublic getInitAddress(): string | undefined {\n\t\treturn this.initAddress;\n\t}\n\n\tpublic getDiamondAbiPath(): string {\n\t\treturn this.diamondAbiPath;\n\t}\n\n\tpublic getDiamondAbiFileName(): string {\n\t\treturn this.diamondAbiFileName;\n\t}\n\n\tpublic getDiamondAbiFilePath(): string {\n\t\treturn join(this.diamondAbiPath, `${this.diamondAbiFileName}.json`);\n\t}\n}\n\nexport default Diamond;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DiamondDeployer.js","sourceRoot":"","sources":["../../src/core/DiamondDeployer.ts"],"names":[],"mappings":";;;AACA,2DAAwD;AAIxD,MAAa,eAAe;IAC1B,qCAAqC;IAC7B,OAAO,CAAU;IACjB,QAAQ,CAAqB;IAErC,YACE,OAAgB,EAChB,QAA4B;QAE5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAAA,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,mBAAwC,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAC3D,IAAI,YAAY,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;YAChD,mBAAmB,GAAG,YAAY,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,+BAA+B,mBAAmB,CAAC,cAAc,yBAAyB,CAAC,CAAC;YACxG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;YACjF,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AA9BD,0CA8BC"}
1
+ {"version":3,"file":"DiamondDeployer.js","sourceRoot":"","sources":["../../src/core/DiamondDeployer.ts"],"names":[],"mappings":";;;AACA,2DAAwD;AAIxD,MAAa,eAAe;IAC1B,qCAAqC;IAC7B,OAAO,CAAU;IACjB,QAAQ,CAAqB;IAErC,YACE,OAAgB,EAChB,QAA4B;QAE5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAAA,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,mBAAwC,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAC3D,IAAI,YAAY,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;YAChD,mBAAmB,GAAG,YAAY,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,+BAA+B,mBAAmB,CAAC,cAAc,yBAAyB,CAAC,CAAC;YACxG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;YACjF,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AA9BD,0CA8BC","sourcesContent":["import { Diamond } from './Diamond';\nimport { DeploymentManager } from './DeploymentManager';\nimport { DeploymentStrategy } from '../strategies';\nimport { DeployedDiamondData } from '../schemas';\n\nexport class DiamondDeployer {\n // private provider: JsonRpcProvider;\n private diamond: Diamond;\n private strategy: DeploymentStrategy;\n\n constructor(\n diamond: Diamond,\n strategy: DeploymentStrategy\n ) {\n this.diamond = diamond;\n this.strategy = strategy;;\n }\n\n async deployDiamond(): Promise<void> {\n const manager = new DeploymentManager(this.diamond, this.strategy);\n let deployedDiamondData: DeployedDiamondData;\n const deployedData = this.diamond.getDeployedDiamondData();\n if (deployedData && deployedData.DiamondAddress) {\n deployedDiamondData = deployedData;\n console.log(`Diamond already deployed at ${deployedDiamondData.DiamondAddress}. Performing upgrade...`);\n await manager.upgrade();\n } else {\n console.log(`Diamond not previously deployed. Performing initial deployment...`);\n await manager.deploy();\n }\n }\n\n public getDiamond(): Diamond {\n return this.diamond;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA","sourcesContent":["export { Diamond } from \"./Diamond\";\nexport { DiamondDeployer } from \"./DiamondDeployer\";\nexport { DeploymentManager } from \"./DeploymentManager\";\nexport { CallbackManager } from \"./CallbackManager\";"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB","sourcesContent":["export * from \"./core\";\nexport * from \"./types\";\nexport * from \"./strategies\";\nexport * from \"./schemas\";\nexport * from \"./utils\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DBDeploymentRepository.js","sourceRoot":"","sources":["../../src/repositories/DBDeploymentRepository.ts"],"names":[],"mappings":";AAAA,WAAW;AACX,6BAA6B;AAC7B,wBAAwB;AACxB,wBAAwB;AACxB,8BAA8B;;AAE9B,iEAAiE;AACjE,kEAAkE;AAElE,wEAAwE;AACxE,oGAAoG;AACpG,sEAAsE;AACtE,MAAM;AAEN,gHAAgH;AAChH,gEAAgE;AAChE,MAAM;AAEN,gFAAgF;AAChF,uDAAuD;AACvD,MAAM;AACN,IAAI"}
1
+ {"version":3,"file":"DBDeploymentRepository.js","sourceRoot":"","sources":["../../src/repositories/DBDeploymentRepository.ts"],"names":[],"mappings":";AAAA,WAAW;AACX,6BAA6B;AAC7B,wBAAwB;AACxB,wBAAwB;AACxB,8BAA8B;;AAE9B,iEAAiE;AACjE,kEAAkE;AAElE,wEAAwE;AACxE,oGAAoG;AACpG,sEAAsE;AACtE,MAAM;AAEN,gHAAgH;AAChH,gEAAgE;AAChE,MAAM;AAEN,gFAAgF;AAChF,uDAAuD;AACvD,MAAM;AACN,IAAI","sourcesContent":["// import {\n// readDeployedDiamondData,\n// saveDeploymentInfo,\n// getDeployConfigData\n// } from './databaseHandler';\n\n// import { DeploymentRepository } from './DeploymentRepository';\n// import { DeployedDiamondData, DeployConfig } from '../schemas';\n\n// export class DbDeploymentRepository implements DeploymentRepository {\n// async loadDeployInfo(key: { network: string; diamond: string }): Promise<DeployedDiamondData> {\n// return await readDeployedDiamondData(key.network, key.diamond);\n// }\n\n// async saveDeployInfo(key: { network: string; diamond: string }, info: DeployedDiamondData): Promise<void> {\n// await saveDeploymentInfo(key.network, key.diamond, info);\n// }\n\n// async loadDeployConfig(key: { projectId: string }): Promise<DeployConfig> {\n// return await getDeployConfigData(key.projectId);\n// }\n// }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DeploymentRepository.js","sourceRoot":"","sources":["../../src/repositories/DeploymentRepository.ts"],"names":[],"mappings":";;;AAGA,MAAsB,oBAAoB;CAQzC;AARD,oDAQC"}
1
+ {"version":3,"file":"DeploymentRepository.js","sourceRoot":"","sources":["../../src/repositories/DeploymentRepository.ts"],"names":[],"mappings":";;;AAGA,MAAsB,oBAAoB;CAQzC;AARD,oDAQC","sourcesContent":["// DeploymentRepository.ts\nimport { DeployedDiamondData, DeployConfig } from \"../schemas\";\n\nexport abstract class DeploymentRepository {\n abstract loadDeployedDiamondData(): DeployedDiamondData;\n\n abstract saveDeployedDiamondData(info: DeployedDiamondData): void;\n\n abstract loadDeployConfig(): DeployConfig;\n\n abstract getDeploymentId(): string;\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { DeploymentRepository } from './DeploymentRepository';
2
- import { DeployedDiamondData, DeployConfig } from '../schemas';
1
+ import { DeployConfig, DeployedDiamondData } from '../schemas';
3
2
  import { DiamondConfig } from '../types';
3
+ import { DeploymentRepository } from './DeploymentRepository';
4
4
  export declare class FileDeploymentRepository implements DeploymentRepository {
5
5
  private deploymentDataPath;
6
6
  private deployedDiamondDataFilePath;
@@ -1 +1 @@
1
- {"version":3,"file":"FileDeploymentRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/FileDeploymentRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,2BAA2B,CAAS;IAC5C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,wBAAwB,CAAU;IAC1C,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,aAAa;IAyB1B,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIjD,2BAA2B,IAAI,OAAO;IAI7C,uBAAuB,IAAI,mBAAmB;IAI9C,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAQxD,gBAAgB,IAAI,YAAY;IAIzB,eAAe,IAAI,MAAM;CAGjC"}
1
+ {"version":3,"file":"FileDeploymentRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/FileDeploymentRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,qBAAa,wBAAyB,YAAW,oBAAoB;IACpE,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,2BAA2B,CAAS;IAC5C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,wBAAwB,CAAU;IAC1C,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,aAAa;IA2B1B,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIjD,2BAA2B,IAAI,OAAO;IAI7C,uBAAuB,IAAI,mBAAmB;IAI9C,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAYxD,gBAAgB,IAAI,YAAY;IAIzB,eAAe,IAAI,MAAM;CAGhC"}
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FileDeploymentRepository = void 0;
7
- const jsonFileHandler_1 = require("./jsonFileHandler");
8
- const path_1 = require("path");
9
7
  const chalk_1 = __importDefault(require("chalk"));
8
+ const path_1 = require("path");
9
+ const jsonFileHandler_1 = require("./jsonFileHandler");
10
10
  class FileDeploymentRepository {
11
11
  deploymentDataPath;
12
12
  deployedDiamondDataFilePath;
@@ -14,9 +14,11 @@ class FileDeploymentRepository {
14
14
  writeDeployedDiamondData;
15
15
  deploymentId;
16
16
  constructor(config) {
17
- this.deploymentDataPath = config.deploymentsPath || 'diamonds';
17
+ this.deploymentDataPath = config.deploymentsPath ?? 'diamonds';
18
18
  this.writeDeployedDiamondData = config.writeDeployedDiamondData ?? true;
19
- this.deploymentId = `${config.diamondName.toLowerCase()}-${config.networkName.toLowerCase()}-${config.chainId.toString()}`;
19
+ const networkName = config.networkName ?? 'unknown';
20
+ const chainId = config.chainId ?? 0;
21
+ this.deploymentId = `${config.diamondName.toLowerCase()}-${networkName.toLowerCase()}-${chainId.toString()}`;
20
22
  if (config.deployedDiamondDataFilePath) {
21
23
  this.deployedDiamondDataFilePath = config.deployedDiamondDataFilePath;
22
24
  }
@@ -37,14 +39,14 @@ class FileDeploymentRepository {
37
39
  return this.writeDeployedDiamondData;
38
40
  }
39
41
  loadDeployedDiamondData() {
40
- return (0, jsonFileHandler_1.readDeployFile)(this.deployedDiamondDataFilePath, this.writeDeployedDiamondData);
42
+ return (0, jsonFileHandler_1.readDeployFile)(this.deployedDiamondDataFilePath, false); // Never create file during load
41
43
  }
42
44
  saveDeployedDiamondData(info) {
43
45
  if (this.writeDeployedDiamondData) {
44
46
  (0, jsonFileHandler_1.writeDeployInfo)(this.deployedDiamondDataFilePath, info);
45
47
  }
46
48
  else {
47
- console.log(chalk_1.default.cyanBright("Skipping write of diamond deployment data. Set writeDeployedDiamondData to true to enable."));
49
+ console.log(chalk_1.default.cyanBright('Skipping write of diamond deployment data. Set writeDeployedDiamondData to true to enable.'));
48
50
  }
49
51
  }
50
52
  loadDeployConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"FileDeploymentRepository.js","sourceRoot":"","sources":["../../src/repositories/FileDeploymentRepository.ts"],"names":[],"mappings":";;;;;;AAEA,uDAAsF;AAEtF,+BAA4B;AAC5B,kDAA0B;AAE1B,MAAa,wBAAwB;IAC3B,kBAAkB,CAAS;IAC3B,2BAA2B,CAAS;IACpC,cAAc,CAAS;IACvB,wBAAwB,CAAU;IAClC,YAAY,CAAS;IAE7B,YAAY,MAAqB;QAC/B,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,eAAgB,IAAI,UAAU,CAAC;QAChE,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,IAAI,IAAI,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,WAAY,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,OAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAE7H,IAAI,MAAM,CAAC,2BAA2B,EAAE,CAAC;YACvC,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,2BAA2B,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,2BAA2B,GAAG,IAAA,WAAI,EACrC,IAAI,CAAC,kBAAkB,EACvB,MAAM,CAAC,WAAW,EAClB,eAAe,IAAI,CAAC,YAAY,OAAO,CACxC,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,IAAA,WAAI,EACxB,IAAI,CAAC,kBAAkB,EACvB,MAAM,CAAC,WAAW,EAClB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,cAAc,CAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,2BAA2B,CAAC,KAAc;QAC/C,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;IACxC,CAAC;IAEM,2BAA2B;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAA,gCAAc,EAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACzF,CAAC;IAED,uBAAuB,CAAC,IAAyB;QAC/C,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,IAAA,iCAAe,EAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,UAAU,CAAC,4FAA4F,CAAC,CAAC,CAAC;QAC9H,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,IAAA,kCAAgB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AA3DD,4DA2DC"}
1
+ {"version":3,"file":"FileDeploymentRepository.js","sourceRoot":"","sources":["../../src/repositories/FileDeploymentRepository.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,+BAA4B;AAI5B,uDAAsF;AAEtF,MAAa,wBAAwB;IAC5B,kBAAkB,CAAS;IAC3B,2BAA2B,CAAS;IACpC,cAAc,CAAS;IACvB,wBAAwB,CAAU;IAClC,YAAY,CAAS;IAE7B,YAAY,MAAqB;QAChC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC;QAC/D,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,IAAI,IAAI,CAAC;QACxE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAE7G,IAAI,MAAM,CAAC,2BAA2B,EAAE,CAAC;YACxC,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,2BAA2B,CAAC;QACvE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,2BAA2B,GAAG,IAAA,WAAI,EACtC,IAAI,CAAC,kBAAkB,EACvB,MAAM,CAAC,WAAW,EAClB,eAAe,IAAI,CAAC,YAAY,OAAO,CACvC,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,cAAc,GAAG,IAAA,WAAI,EACzB,IAAI,CAAC,kBAAkB,EACvB,MAAM,CAAC,WAAW,EAClB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,cAAc,CACjD,CAAC;QACH,CAAC;IACF,CAAC;IAEM,2BAA2B,CAAC,KAAc;QAChD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;IACvC,CAAC;IAEM,2BAA2B;QACjC,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACtC,CAAC;IAED,uBAAuB;QACtB,OAAO,IAAA,gCAAc,EAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC,CAAC,gCAAgC;IACjG,CAAC;IAED,uBAAuB,CAAC,IAAyB;QAChD,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,IAAA,iCAAe,EAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CACV,eAAK,CAAC,UAAU,CACf,4FAA4F,CAC5F,CACD,CAAC;QACH,CAAC;IACF,CAAC;IAED,gBAAgB;QACf,OAAO,IAAA,kCAAgB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAEM,eAAe;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;CACD;AAjED,4DAiEC","sourcesContent":["import chalk from 'chalk';\nimport { join } from 'path';\nimport { DeployConfig, DeployedDiamondData } from '../schemas';\nimport { DiamondConfig } from '../types';\nimport { DeploymentRepository } from './DeploymentRepository';\nimport { readDeployConfig, readDeployFile, writeDeployInfo } from './jsonFileHandler';\n\nexport class FileDeploymentRepository implements DeploymentRepository {\n\tprivate deploymentDataPath: string;\n\tprivate deployedDiamondDataFilePath: string;\n\tprivate configFilePath: string;\n\tprivate writeDeployedDiamondData: boolean;\n\tprivate deploymentId: string;\n\n\tconstructor(config: DiamondConfig) {\n\t\tthis.deploymentDataPath = config.deploymentsPath ?? 'diamonds';\n\t\tthis.writeDeployedDiamondData = config.writeDeployedDiamondData ?? true;\n\t\tconst networkName = config.networkName ?? 'unknown';\n\t\tconst chainId = config.chainId ?? 0;\n\t\tthis.deploymentId = `${config.diamondName.toLowerCase()}-${networkName.toLowerCase()}-${chainId.toString()}`;\n\n\t\tif (config.deployedDiamondDataFilePath) {\n\t\t\tthis.deployedDiamondDataFilePath = config.deployedDiamondDataFilePath;\n\t\t} else {\n\t\t\tthis.deployedDiamondDataFilePath = join(\n\t\t\t\tthis.deploymentDataPath,\n\t\t\t\tconfig.diamondName,\n\t\t\t\t`deployments/${this.deploymentId}.json`,\n\t\t\t);\n\t\t}\n\t\tif (config.configFilePath) {\n\t\t\tthis.configFilePath = config.configFilePath;\n\t\t} else {\n\t\t\tthis.configFilePath = join(\n\t\t\t\tthis.deploymentDataPath,\n\t\t\t\tconfig.diamondName,\n\t\t\t\t`${config.diamondName.toLowerCase()}.config.json`,\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic setWriteDeployedDiamondData(write: boolean): void {\n\t\tthis.writeDeployedDiamondData = write;\n\t}\n\n\tpublic getWriteDeployedDiamondData(): boolean {\n\t\treturn this.writeDeployedDiamondData;\n\t}\n\n\tloadDeployedDiamondData(): DeployedDiamondData {\n\t\treturn readDeployFile(this.deployedDiamondDataFilePath, false); // Never create file during load\n\t}\n\n\tsaveDeployedDiamondData(info: DeployedDiamondData): void {\n\t\tif (this.writeDeployedDiamondData) {\n\t\t\twriteDeployInfo(this.deployedDiamondDataFilePath, info);\n\t\t} else {\n\t\t\tconsole.log(\n\t\t\t\tchalk.cyanBright(\n\t\t\t\t\t'Skipping write of diamond deployment data. Set writeDeployedDiamondData to true to enable.',\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tloadDeployConfig(): DeployConfig {\n\t\treturn readDeployConfig(this.configFilePath);\n\t}\n\n\tpublic getDeploymentId(): string {\n\t\treturn this.deploymentId;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"databaseHandler.js","sourceRoot":"","sources":["../../src/repositories/databaseHandler.ts"],"names":[],"mappings":";AAAA,kEAAkE;;AAElE,gFAAgF;AAChF,kHAAkH;AAClH,4BAA4B;AAC5B,IAAI;AAEJ,yHAAyH;AACzH,yBAAyB;AACzB,IAAI;AAEJ,wFAAwF;AACxF,wBAAwB;AACxB,IAAI"}
1
+ {"version":3,"file":"databaseHandler.js","sourceRoot":"","sources":["../../src/repositories/databaseHandler.ts"],"names":[],"mappings":";AAAA,kEAAkE;;AAElE,gFAAgF;AAChF,kHAAkH;AAClH,4BAA4B;AAC5B,IAAI;AAEJ,yHAAyH;AACzH,yBAAyB;AACzB,IAAI;AAEJ,wFAAwF;AACxF,wBAAwB;AACxB,IAAI","sourcesContent":["// import { DeployedDiamondData, DeployConfig } from \"../schemas\";\n\n// // This would internally use your chosen DB driver (e.g. pg, Prisma, TypeORM)\n// export async function readDeployedDiamondData(network: string, diamond: string): Promise<DeployedDiamondData> {\n// // SQL or ORM call here\n// }\n\n// export async function saveDeploymentInfo(network: string, diamond: string, info: DeployedDiamondData): Promise<void> {\n// // SQL or ORM upsert\n// }\n\n// export async function getDeployConfigData(projectId: string): Promise<DeployConfig> {\n// // SQL or ORM fetch\n// }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,6DAA2C;AAC3C,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,6DAA2C;AAC3C,oDAAkC","sourcesContent":["export * from \"./DeploymentRepository\";\nexport * from \"./FileDeploymentRepository\";\nexport * from \"./jsonFileHandler\";\n\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"jsonFileHandler.js","sourceRoot":"","sources":["../../src/repositories/jsonFileHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsonFileHandler.js","sourceRoot":"","sources":["../../src/repositories/jsonFileHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * CRUD and validation helpers for JSON files\n * \n * These should all be synchronous and handle issues like empty files or non-existent files\n * gracefully in a way that allows for control by the caller, e.g. gives the caller the\n * ability to create an empty file on failure.\n */\n\nimport {\n ensureFileSync,\n existsSync,\n pathExistsSync,\n readJsonSync,\n removeSync,\n writeJsonSync\n} from \"fs-extra\";\nimport { join, resolve } from \"path\";\nimport {\n DeployConfig,\n DeployConfigSchema,\n DeployedDiamondData,\n DeployedDiamondDataSchema\n} from \"../schemas/DeploymentSchema\";\n\nexport function readDeployFilePathDiamondNetwork(\n networkName: string,\n diamondName: string,\n deploymentId: string,\n deploymentsPath: string,\n createNew: boolean = false\n): DeployedDiamondData {\n const filePath = join(deploymentsPath, diamondName, `${deploymentId}.json`);\n return readDeployFile(filePath, createNew);\n}\n\n/**\n * Reads and validates a JSON file as DeployedDiamondData\n * @param path - The path to the deployment file.\n * @param createIfMissing - If true, creates a new deployment file with default values if \n * the file does not exist. Otherwise this will throw an error if the file does not exist.\n * @returns The parsed and validated deployment object.\n */\nexport function readDeployFile(path: string, createNew: boolean = true)\n : DeployedDiamondData {\n let raw: unknown;\n if (!pathExistsSync(path) && createNew) {\n createNewDeployFile(path);\n raw = readJsonSync(path);\n\n const parsed = DeployedDiamondDataSchema.safeParse(raw);\n if (!parsed.success) {\n throw new Error(`Invalid deployment format: ${JSON.stringify(parsed.error.format(), null, 2)}`);\n }\n\n return parsed.data;\n } else if (pathExistsSync(path)) {\n raw = readJsonSync(path);\n const parsed = DeployedDiamondDataSchema.safeParse(raw);\n if (!parsed.success) {\n throw new Error(`Invalid deployment format: ${JSON.stringify(parsed.error.format(), null, 2)}`);\n }\n return parsed.data;\n }\n\n // This is a mock deployment object with empty values\n return defaultDeployment();\n}\n\n/**\n * Resolves the absolute path of a file relative to the project root.\n * @param relativePath - The relative path to resolve.\n * @returns The absolute path.\n */\nconst resolvePath = (relativePath: string): string => {\n return resolve(process.cwd(), relativePath);\n};\n\n/**\n * Default deployment object with empty values\n * This is used to create a new deployment file if it does not exist or for a mock deployment.\n * @type {DeployedDiamondData}\n */\nexport function defaultDeployment(): DeployedDiamondData {\n return {\n DiamondAddress: \"\",\n DeployerAddress: \"\",\n DeployedFacets: {}, // Empty object for facets\n ExternalLibraries: {}, // Empty object for external libraries\n protocolVersion: 0, // Default protocol version\n };\n}\n/**\n * Creates a new deployment file with default empty values\n * @param path - The path to the deployment file.\n */\nexport function createNewDeployFile(path: string) {\n // Ensure the directory exists before writing\n ensureFileSync(path);\n // Validate the default deployment object before writing\n const validated = DeployedDiamondDataSchema.parse(defaultDeployment());\n writeJsonSync(path, validated, { spaces: 2 });\n}\n\n/**\n * Writes JSON to file\n */\nexport function writeDeployInfo(path: string, data: DeployedDiamondData) {\n const validated = DeployedDiamondDataSchema.parse(data);\n writeJsonSync(path, validated, { spaces: 2 });\n}\n\n/**\n * Update deployment JSON file\n */\nexport function updateDeployInfo(path: string, updater: (data: DeployedDiamondData) => void) {\n const data = readDeployFile(path);\n updater(data);\n writeDeployInfo(path, data);\n}\n\n/**\n * Deletes the deployment file\n */\nexport function deleteDeployInfo(path: string) {\n if (pathExistsSync(path)) {\n removeSync(path);\n }\n}\n\n/**\n * Validates the Deployment File without loading it.\n * @param path \n * @returns \n */\nexport function validateDeployFile(path: string): boolean {\n try {\n if (!pathExistsSync(path)) {\n console.log(`Deployment file not found: ${path}`);\n return false;\n }\n const raw = readJsonSync(path);\n DeployedDiamondDataSchema.parse(raw);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function loadFacetsConfig(\n deploymentsPath: string,\n diamondName: string\n): DeployConfig {\n const file = join(deploymentsPath, diamondName, `${diamondName}.config.json`);\n const valid = validateDeployConfig(file);\n\n const facets = readDeployConfig(file);\n return facets;\n}\n\n/**\n * Loads and validates the facets config <diamondName>.config.json file.\n * @param filePath - The path to the facets file.\n * @returns The parsed and validated facets object.\n */\nexport const readDeployConfig = (filePath: string): DeployConfig => {\n try {\n const fullPath = resolvePath(filePath);\n\n // Read the JSON file\n const raw = readJsonSync(fullPath);\n\n // Validate and parse the JSON data\n return DeployConfigSchema.parse(raw);\n } catch (e) {\n console.error('Failed to load facets:', e);\n throw e;\n }\n};\n\n/**\n * Saves the Diamond Config object to a file.\n * @param filePath - The path to the facets file.\n * @param data - The facets object to save.\n */\nexport const saveDeployConfig = (filePath: string, data: DeployConfig): void => {\n const fullPath = resolvePath(filePath);\n ensureFileSync(fullPath);\n writeJsonSync(fullPath, data, { spaces: 2 });\n};\n\n/**\n * Updates a specific facet in the facets file.\n * @param filePath - The path to the facets file.\n * @param facetKey - The key of the facet to update.\n * @param update - The partial update to apply to the facet.\n * @returns The updated facets object.\n */\nexport const updateFacetConfig = (\n filePath: string,\n facetKey: string,\n update: Partial<DeployConfig[\"facets\"][string]>\n): DeployConfig => {\n const deployConfig = readDeployConfig(filePath);\n deployConfig.facets[facetKey] = {\n ...(deployConfig.facets[facetKey] || {}),\n ...update,\n };\n saveDeployConfig(filePath, deployConfig);\n return deployConfig;\n};\n\n/**\n * Deletes a specific facet from the facets file.\n * @param filePath - The path to the facets file.\n * @param facetKey - The key of the facet to delete.\n * @returns The updated facets object.\n */\nexport const deleteFacet = (filePath: string, facetKey: string): DeployConfig => {\n const deployConfig = readDeployConfig(filePath);\n delete deployConfig.facets[facetKey];\n saveDeployConfig(filePath, deployConfig);\n return deployConfig;\n};\n\n/**\n * Validates that the facets file exists, is valid JSON, and conforms to the schema.\n * @param filePath - The path to the facets file.\n * @returns A boolean indicating whether the file is valid.\n */\nexport const validateDeployConfig = (filePath: string): boolean => {\n try {\n const fullPath = resolvePath(filePath);\n\n // Check if the file exists\n if (!existsSync(fullPath)) {\n console.error(`Validation failed: File does not exist at path \"${filePath}\"`);\n return false;\n }\n\n // Read the file and parse it as JSON\n const raw = readJsonSync(fullPath);\n\n // Validate the JSON against the schema\n DeployConfigSchema.parse(raw);\n\n // If all checks pass, return true\n return true;\n } catch (e) {\n console.error('Validation failed:', e);\n return false;\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"prismaDBHandler.js","sourceRoot":"","sources":["../../src/repositories/prismaDBHandler.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,qCAAqC;AACrC,kEAAkE;;AAElE,kHAAkH;AAClH,wDAAwD;AACxD,uDAAuD;AACvD,QAAQ;AACR,gDAAgD;AAChD,IAAI"}
1
+ {"version":3,"file":"prismaDBHandler.js","sourceRoot":"","sources":["../../src/repositories/prismaDBHandler.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,qCAAqC;AACrC,kEAAkE;;AAElE,kHAAkH;AAClH,wDAAwD;AACxD,uDAAuD;AACvD,QAAQ;AACR,gDAAgD;AAChD,IAAI","sourcesContent":["// // databaseHandler.ts (Prisma example)\n// import { prisma } from './prisma';\n// import { DeployedDiamondData, DeployConfig } from '../schemas';\n\n// export async function readDeployedDiamondData(network: string, diamond: string): Promise<DeployedDiamondData> {\n// const record = await prisma.deployment.findUnique({\n// where: { network_diamond: { network, diamond } }\n// });\n// return record?.info as DeployedDiamondData;\n// }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DeploymentSchema.js","sourceRoot":"","sources":["../../src/schemas/DeploymentSchema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,qDAAqD;AACxC,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,gCAAgC;IAChE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,qCAAqC;IACrE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IACvD,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,mCAAmC;IAClF,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,gCAAgC;CAClE,CAAC,CAAC;AAEH,iCAAiC;AACpB,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,2BAAmB,CAAC,CAAC;AAE9E,gCAAgC;AACnB,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAExE,gDAAgD;AACnC,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,kCAAkC;IACzE,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,0BAA0B;IAClE,oGAAoG;IACpG,cAAc,EAAE,4BAAoB,CAAC,QAAQ,EAAE,EAAE,oCAAoC;IACrF,iBAAiB,EAAE,+BAAuB,CAAC,QAAQ,EAAE,EAAE,4CAA4C;IACnG,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,mBAAmB;CAC3D,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,sCAAsC;IACtC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,gCAAwB,CAAC,CAAC,QAAQ,EAAE;CACnE,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,yBAAiB,CAAC,CAAC;AAE7D,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;IAC3B,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,yBAAiB,CAAC;CAC/C,CAAC,CAAC"}
1
+ {"version":3,"file":"DeploymentSchema.js","sourceRoot":"","sources":["../../src/schemas/DeploymentSchema.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\n// Schema for a single facet's deployment information\nexport const DeployedFacetSchema = z.object({\n\taddress: z.string().optional(), // Address of the deployed facet\n\ttx_hash: z.string().optional(), // Transaction hash of the deployment\n\tversion: z.number().optional(), // Version of the facet\n\tfuncSelectors: z.array(z.string()).optional(), // Function selectors for the facet\n\tverified: z.boolean().optional(), // Whether the facet is verified\n});\n\n// Schema for all deployed facets\nexport const DeployedFacetsSchema = z.record(z.string(), DeployedFacetSchema);\n\n// Schema for external libraries\nexport const ExternalLibrariesSchema = z.record(z.string(), z.string());\n\n// Schema for the network deployment information\nexport const DeployedDiamondDataSchema = z.object({\n\tDiamondAddress: z.string().optional(), // Address of the deployed diamond\n\tDeployerAddress: z.string().optional(), // Address of the deployer\n\t// FacetDeployedInfo: FacetDeployedInfoRecordSchema.optional(), // Information about deployed facets\n\tDeployedFacets: DeployedFacetsSchema.optional(), // Information about deployed facets\n\tExternalLibraries: ExternalLibrariesSchema.optional(), // External libraries used in the deployment\n\tprotocolVersion: z.number().optional(), // Protocol version\n});\n\n/**\n * Schema for the version information of a facet configuration to be deployed\n */\nexport const FacetVersionConfigSchema = z.object({\n\tdeployInit: z.string().optional(),\n\tupgradeInit: z.string().optional(),\n\tfromVersions: z.array(z.number()).optional(),\n\tcallbacks: z.array(z.string()).optional(),\n\tdeployInclude: z.array(z.string()).optional(),\n\tdeployExclude: z.array(z.string()).optional(),\n});\n\n/**\n * Schema for the deployment information of a single facet\n */\nexport const FacetConfigSchema = z.object({\n\t// Infer TypeScript types from schemas\n\tpriority: z.number(),\n\tlibraries: z.array(z.string()).optional(),\n\tversions: z.record(z.string(), FacetVersionConfigSchema).optional(),\n});\n\n/**\n * Schema for the deployment configuration information of ALL facets to be deployed\n */\nexport const FacetsConfigSchema = z.record(z.string(), FacetConfigSchema);\n\nexport const DeployConfigSchema = z.object({\n\tprotocolVersion: z.number(),\n\tprotocolInitFacet: z.string().optional(),\n\tprotocolCallback: z.string().optional(),\n\tfacets: z.record(z.string(), FacetConfigSchema),\n});\n\n// Inferred types from Zod schemas\nexport type FacetVersionConfig = z.infer<typeof FacetVersionConfigSchema>;\nexport type FacetConfig = z.infer<typeof FacetConfigSchema>;\nexport type FacetsConfig = z.infer<typeof FacetsConfigSchema>;\nexport type DeployConfig = z.infer<typeof DeployConfigSchema>;\n\n// export type FacetsDeployment = z.infer<typeof FacetsConfigSchema>;\nexport type DeployedFacet = z.infer<typeof DeployedFacetSchema>;\nexport type DeployedFacets = z.infer<typeof DeployedFacetsSchema>;\nexport type DeployedDiamondData = z.infer<typeof DeployedDiamondDataSchema>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC","sourcesContent":["export * from './DeploymentSchema';\n"]}
@@ -1,7 +1,7 @@
1
- import "@nomicfoundation/hardhat-ethers";
2
- import { Diamond } from "../core/Diamond";
3
- import { FacetCuts } from "../types";
4
- import { DeploymentStrategy } from "./DeploymentStrategy";
1
+ import '@nomicfoundation/hardhat-ethers';
2
+ import { Diamond } from '../core/Diamond';
3
+ import { FacetCuts } from '../types';
4
+ import { DeploymentStrategy } from './DeploymentStrategy';
5
5
  export declare class BaseDeploymentStrategy implements DeploymentStrategy {
6
6
  protected verbose: boolean;
7
7
  constructor(verbose?: boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDeploymentStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/BaseDeploymentStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseDeploymentStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/BaseDeploymentStrategy.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ class BaseDeploymentStrategy {
31
31
  async deployDiamondTasks(diamond) {
32
32
  console.log(chalk_1.default.blueBright(`🚀 Explicitly deploying DiamondCutFacet and Diamond for ${diamond.diamondName}`));
33
33
  // Deploy the DiamondCutFacet - use contract mapping to get correct name
34
- const diamondCutContractName = await (0, utils_1.getContractName)("DiamondCutFacet", diamond);
34
+ const diamondCutContractName = await (0, utils_1.getContractName)('DiamondCutFacet', diamond);
35
35
  const diamondCutFactory = await hardhat_1.default.ethers.getContractFactory(diamondCutContractName, diamond.getSigner());
36
36
  const diamondCutFacet = await diamondCutFactory.deploy();
37
37
  await diamondCutFacet.waitForDeployment();
@@ -51,7 +51,7 @@ class BaseDeploymentStrategy {
51
51
  // Register the DiamondCutFacet function selectors
52
52
  const diamondCutFacetSelectorsRegistry = diamondCutFacetFunctionSelectors.reduce((acc, selector) => {
53
53
  acc[selector] = {
54
- facetName: "DiamondCutFacet",
54
+ facetName: 'DiamondCutFacet',
55
55
  priority: diamond.getFacetsConfig()?.DiamondCutFacet?.priority || 1000, // Default priority if not set
56
56
  address: diamondCutFacetAddress,
57
57
  action: types_1.RegistryFacetCutAction.Deployed,
@@ -64,9 +64,9 @@ class BaseDeploymentStrategy {
64
64
  deployedDiamondData.DeployerAddress = await diamond.getSigner().getAddress();
65
65
  deployedDiamondData.DiamondAddress = diamondContractAddress;
66
66
  deployedDiamondData.DeployedFacets = deployedDiamondData.DeployedFacets || {};
67
- deployedDiamondData.DeployedFacets["DiamondCutFacet"] = {
67
+ deployedDiamondData.DeployedFacets['DiamondCutFacet'] = {
68
68
  address: diamondCutFacetAddress,
69
- tx_hash: diamondCutFacet.deploymentTransaction()?.hash || "",
69
+ tx_hash: diamondCutFacet.deploymentTransaction()?.hash || '',
70
70
  version: 0,
71
71
  funcSelectors: diamondCutFacetFunctionSelectors,
72
72
  };
@@ -101,9 +101,9 @@ class BaseDeploymentStrategy {
101
101
  const deployedDiamondData = diamond.getDeployedDiamondData();
102
102
  const deployedFacets = deployedDiamondData.DeployedFacets || {};
103
103
  const facetCuts = [];
104
- const sortedFacetNames = Object.keys(deployConfig.facets)
105
- .sort((a, b) => {
106
- return (deployConfig.facets[a].priority || 1000) - (deployConfig.facets[b].priority || 1000);
104
+ const sortedFacetNames = Object.keys(deployConfig.facets).sort((a, b) => {
105
+ return ((deployConfig.facets[a].priority || 1000) -
106
+ (deployConfig.facets[b].priority || 1000));
107
107
  });
108
108
  // Save the facet deployment info
109
109
  for (const facetName of sortedFacetNames) {
@@ -111,6 +111,8 @@ class BaseDeploymentStrategy {
111
111
  const deployedVersion = deployedDiamondData.DeployedFacets?.[facetName]?.version ?? -1;
112
112
  const availableVersions = Object.keys(facetConfig.versions || {}).map(Number);
113
113
  const upgradeVersion = Math.max(...availableVersions);
114
+ // Find the original string key that matches the upgrade version number
115
+ const upgradeVersionKey = Object.keys(facetConfig.versions || {}).find((key) => Number(key) === upgradeVersion) || String(upgradeVersion);
114
116
  if (upgradeVersion > deployedVersion || deployedVersion === -1) {
115
117
  if (this.verbose) {
116
118
  console.log(chalk_1.default.blueBright(`🚀 Deploying facet: ${facetName} to version ${upgradeVersion}`));
@@ -118,7 +120,9 @@ class BaseDeploymentStrategy {
118
120
  // Deploy the facet contract - use contract mapping to get correct name
119
121
  const signer = diamond.getSigner();
120
122
  const facetContractName = await (0, utils_1.getContractName)(facetName, diamond);
121
- const facetFactory = await hardhat_1.default.ethers.getContractFactory(facetContractName, { signer });
123
+ const facetFactory = await hardhat_1.default.ethers.getContractFactory(facetContractName, {
124
+ signer,
125
+ });
122
126
  const facetContract = await facetFactory.deploy();
123
127
  await facetContract.waitForDeployment();
124
128
  const deployedFacets = new Map();
@@ -127,9 +131,29 @@ class BaseDeploymentStrategy {
127
131
  facetContract.interface.forEachFunction((func) => {
128
132
  facetSelectors.push(func.selector);
129
133
  });
134
+ // Apply deployExclude filter to remove selectors before storing
135
+ const excludeFuncSelectors = facetConfig.versions?.[upgradeVersionKey]?.deployExclude || [];
136
+ for (const excludeSelector of excludeFuncSelectors) {
137
+ const selectorToExclude = ethers_1.ethers.id(excludeSelector).slice(0, 10);
138
+ const index = facetSelectors.indexOf(selectorToExclude);
139
+ if (index !== -1) {
140
+ facetSelectors.splice(index, 1);
141
+ }
142
+ }
143
+ // Apply deployInclude filter to only include specified selectors
144
+ const includeFuncSelectors = facetConfig.versions?.[upgradeVersionKey]?.deployInclude || [];
145
+ if (includeFuncSelectors.length > 0) {
146
+ // Convert include signatures to selectors
147
+ const includeSelectors = includeFuncSelectors.map((sig) => ethers_1.ethers.id(sig).slice(0, 10));
148
+ // Filter facetSelectors to only include the specified ones
149
+ const filteredSelectors = facetSelectors.filter((selector) => includeSelectors.includes(selector));
150
+ // Replace facetSelectors with filtered list
151
+ facetSelectors.length = 0;
152
+ facetSelectors.push(...filteredSelectors);
153
+ }
130
154
  // Initializer function Registry
131
- const deployInit = facetConfig.versions?.[upgradeVersion]?.deployInit || "";
132
- const upgradeInit = facetConfig.versions?.[upgradeVersion]?.upgradeInit || "";
155
+ const deployInit = facetConfig.versions?.[upgradeVersionKey]?.deployInit || '';
156
+ const upgradeInit = facetConfig.versions?.[upgradeVersionKey]?.upgradeInit || '';
133
157
  const initFn = diamond.newDeployment ? deployInit : upgradeInit;
134
158
  if (initFn && facetName !== deployConfig.protocolInitFacet) {
135
159
  diamond.initializerRegistry.set(facetName, initFn);
@@ -137,11 +161,11 @@ class BaseDeploymentStrategy {
137
161
  const newFacetData = {
138
162
  priority: facetConfig.priority || 1000,
139
163
  address: await facetContract.getAddress(),
140
- tx_hash: facetContract.deploymentTransaction()?.hash || "",
164
+ tx_hash: facetContract.deploymentTransaction()?.hash || '',
141
165
  version: upgradeVersion,
142
166
  funcSelectors: facetSelectors,
143
- deployInclude: facetConfig.versions?.[upgradeVersion]?.deployInclude || [],
144
- deployExclude: facetConfig.versions?.[upgradeVersion]?.deployExclude || [],
167
+ deployInclude: facetConfig.versions?.[upgradeVersionKey]?.deployInclude || [],
168
+ deployExclude: facetConfig.versions?.[upgradeVersionKey]?.deployExclude || [],
145
169
  initFunction: initFn,
146
170
  verified: false,
147
171
  };
@@ -183,19 +207,27 @@ class BaseDeploymentStrategy {
183
207
  for (const [newFacetName, newFacetData] of newDeployedFacetsByPriority) {
184
208
  const currentFacetAddress = newFacetData.address;
185
209
  const priority = newFacetData.priority;
186
- const functionSelectors = newFacetData.funcSelectors || [];
187
210
  const includeFuncSelectors = newFacetData.deployInclude || [];
188
211
  const excludeFuncSelectors = newFacetData.deployExclude || [];
212
+ // Convert function signatures to selectors
213
+ const includeFuncSelectorsAsSelectors = includeFuncSelectors.map((sig) => ethers_1.ethers.id(sig).slice(0, 10));
214
+ const excludeFuncSelectorsAsSelectors = excludeFuncSelectors.map((sig) => ethers_1.ethers.id(sig).slice(0, 10));
215
+ // Initialize funcSelectors if not present
216
+ if (!newFacetData.funcSelectors) {
217
+ newFacetData.funcSelectors = [];
218
+ }
219
+ const functionSelectors = newFacetData.funcSelectors;
189
220
  /* ------------------ Exclusion Filter ------------------ */
190
- for (const excludeFuncSelector of excludeFuncSelectors) {
221
+ for (const excludeFuncSelector of excludeFuncSelectorsAsSelectors) {
191
222
  // remove from the facets functionSelectors
192
- if (excludeFuncSelector in functionSelectors) {
223
+ if (functionSelectors.includes(excludeFuncSelector)) {
193
224
  functionSelectors.splice(functionSelectors.indexOf(excludeFuncSelector), 1);
194
225
  }
195
226
  // update action to remove if excluded from registry where a previous deployment associated with facetname
196
- if (excludeFuncSelector in registry && registry.get(excludeFuncSelector)?.facetName === newFacetName) {
227
+ if (registry.has(excludeFuncSelector) &&
228
+ registry.get(excludeFuncSelector)?.facetName === newFacetName) {
197
229
  const existing = registry.get(excludeFuncSelector);
198
- if (existing && existing.facetName === newFacetName) {
230
+ if (existing?.facetName === newFacetName) {
199
231
  registry.set(excludeFuncSelector, {
200
232
  priority: priority,
201
233
  address: currentFacetAddress,
@@ -216,20 +248,18 @@ class BaseDeploymentStrategy {
216
248
  return acc;
217
249
  }, {});
218
250
  /* ------------------ Inclusion Override Filter ------------------ */
219
- for (const includeFuncSelector of includeFuncSelectors) {
251
+ for (const includeFuncSelector of includeFuncSelectorsAsSelectors) {
220
252
  // Force Replace if already registered by higher priority facet
221
- if (includeFuncSelector in registryHigherPrioritySplit) {
222
- const higherPriorityFacet = Object.keys(registryHigherPrioritySplit).find(facetName => {
223
- return registryHigherPrioritySplit[facetName].includes(includeFuncSelector);
253
+ const higherPriorityFacet = Object.keys(registryHigherPrioritySplit).find((facetName) => {
254
+ return registryHigherPrioritySplit[facetName].includes(includeFuncSelector);
255
+ });
256
+ if (higherPriorityFacet) {
257
+ registry.set(includeFuncSelector, {
258
+ priority: priority,
259
+ address: currentFacetAddress,
260
+ action: types_1.RegistryFacetCutAction.Replace,
261
+ facetName: newFacetName,
224
262
  });
225
- if (higherPriorityFacet) {
226
- registry.set(includeFuncSelector, {
227
- priority: priority,
228
- address: currentFacetAddress,
229
- action: types_1.RegistryFacetCutAction.Replace,
230
- facetName: newFacetName,
231
- });
232
- }
233
263
  }
234
264
  else {
235
265
  // Add to the registry
@@ -241,11 +271,11 @@ class BaseDeploymentStrategy {
241
271
  });
242
272
  }
243
273
  // remove from the funcSels so it is not modified in Priority Resolution Pass
244
- if (includeFuncSelector in newDeployedFacets) {
245
- const existing = newDeployedFacets[newFacetName];
246
- if (existing && existing.funcSelectors) {
247
- existing.funcSelectors.splice(existing.funcSelectors.indexOf(includeFuncSelector), 1);
248
- }
274
+ const existing = newDeployedFacets[newFacetName];
275
+ if (existing &&
276
+ existing.funcSelectors &&
277
+ existing.funcSelectors.includes(includeFuncSelector)) {
278
+ existing.funcSelectors.splice(existing.funcSelectors.indexOf(includeFuncSelector), 1);
249
279
  }
250
280
  }
251
281
  /* ------------------ Replace Facet and Priority Resolution Pass ------------- */
@@ -335,13 +365,13 @@ class BaseDeploymentStrategy {
335
365
  async performDiamondCutTasks(diamond) {
336
366
  const diamondSignerAddress = await diamond.getSigner()?.getAddress();
337
367
  const signer = await hardhat_1.default.ethers.getSigner(diamondSignerAddress);
338
- const diamondContract = await hardhat_1.default.ethers.getContractAt("IDiamondCut", diamond.getDeployedDiamondData().DiamondAddress);
368
+ const diamondContract = await hardhat_1.default.ethers.getContractAt('IDiamondCut', diamond.getDeployedDiamondData().DiamondAddress);
339
369
  const signerDiamondContract = diamondContract.connect(signer);
340
370
  const deployConfig = diamond.getDeployConfig();
341
371
  const deployedDiamondData = diamond.getDeployedDiamondData();
342
372
  // Setup initCallData with Atomic Protocol Initializer
343
373
  const [initCalldata, initAddress] = await this.getInitCalldata(diamond);
344
- // extract facet cuts from the selector registry
374
+ // extract facet cuts from the selector registry
345
375
  const facetCuts = await this.getFacetCuts(diamond);
346
376
  // Validate no orphaned selectors, i.e. 'Add', 'Replace' or 'Deployed' selectors with the same facetNames but different addresses
347
377
  await this.validateNoOrphanedSelectors(facetCuts);
@@ -356,7 +386,11 @@ class BaseDeploymentStrategy {
356
386
  }
357
387
  }
358
388
  /* -------------------------- Perform the diamond cut -----------------------*/
359
- const facetSelectorCutMap = facetCuts.map(fc => ({ facetAddress: fc.facetAddress, action: fc.action, functionSelectors: fc.functionSelectors }));
389
+ const facetSelectorCutMap = facetCuts.map((fc) => ({
390
+ facetAddress: fc.facetAddress,
391
+ action: fc.action,
392
+ functionSelectors: fc.functionSelectors,
393
+ }));
360
394
  const tx = await signerDiamondContract.diamondCut(facetSelectorCutMap, initAddress, initCalldata);
361
395
  /* --------------------- Update the deployed diamond data ------------------ */
362
396
  const txHash = tx.hash;
@@ -364,7 +398,7 @@ class BaseDeploymentStrategy {
364
398
  const ifaceList = (0, utils_1.getDeployedFacetInterfaces)(deployedDiamondData);
365
399
  // Log the transaction
366
400
  if (this.verbose) {
367
- await (0, utils_1.logTx)(tx, "DiamondCut", ifaceList);
401
+ await (0, utils_1.logTx)(tx, 'DiamondCut', ifaceList);
368
402
  }
369
403
  else {
370
404
  console.log(chalk_1.default.blueBright(`🔄 Waiting for DiamondCut transaction to be mined...`));
@@ -400,13 +434,15 @@ class BaseDeploymentStrategy {
400
434
  const deployedDiamondData = diamond.getDeployedDiamondData();
401
435
  const deployConfig = diamond.getDeployConfig();
402
436
  let initAddress = ethers_1.ethers.ZeroAddress;
403
- let initCalldata = "0x";
404
- const protocolInitFacet = deployConfig.protocolInitFacet || "";
437
+ let initCalldata = '0x';
438
+ const protocolInitFacet = deployConfig.protocolInitFacet || '';
405
439
  const protocolVersion = deployConfig.protocolVersion;
406
440
  const protocolFacetInfo = diamond.getNewDeployedFacets()[protocolInitFacet];
407
441
  if (protocolInitFacet && protocolFacetInfo) {
408
442
  const versionCfg = deployConfig.facets[protocolInitFacet]?.versions?.[protocolVersion];
409
- const initFn = diamond.newDeployment ? versionCfg?.deployInit : versionCfg?.upgradeInit;
443
+ const initFn = diamond.newDeployment
444
+ ? versionCfg?.deployInit
445
+ : versionCfg?.upgradeInit;
410
446
  if (initFn) {
411
447
  const iface = new ethers_1.ethers.Interface([`function ${initFn}`]);
412
448
  initAddress = protocolFacetInfo.address;
@@ -426,7 +462,7 @@ class BaseDeploymentStrategy {
426
462
  const deployConfig = diamond.getDeployConfig();
427
463
  const selectorRegistry = diamond.functionSelectorRegistry;
428
464
  /* -------------------------- Prepare the facet cuts -----------------------*/
429
- // extract facet cuts from the selector registry
465
+ // extract facet cuts from the selector registry
430
466
  const facetCuts = Array.from(selectorRegistry.entries())
431
467
  .filter(([_, entry]) => entry.action !== types_1.RegistryFacetCutAction.Deployed)
432
468
  .map(([selector, entry]) => {
@@ -441,8 +477,8 @@ class BaseDeploymentStrategy {
441
477
  }
442
478
  async validateNoOrphanedSelectors(facetCuts) {
443
479
  // Validate no orphaned selectors, i.e. 'Add', 'Replace' or 'Deployed' selectors with the same facetNames but different addresses
444
- const orphanedSelectors = facetCuts.filter(facetCut => {
445
- return facetCuts.some(otherFacetCut => {
480
+ const orphanedSelectors = facetCuts.filter((facetCut) => {
481
+ return facetCuts.some((otherFacetCut) => {
446
482
  return (otherFacetCut.facetAddress !== facetCut.facetAddress &&
447
483
  otherFacetCut.name === facetCut.name &&
448
484
  (otherFacetCut.action === types_1.RegistryFacetCutAction.Add ||
@@ -469,7 +505,9 @@ class BaseDeploymentStrategy {
469
505
  if (!facetSelectorsMap[facetName]) {
470
506
  facetSelectorsMap[facetName] = { address: entry.address, selectors: [] };
471
507
  }
472
- if (entry.action === types_1.RegistryFacetCutAction.Add || entry.action === types_1.RegistryFacetCutAction.Replace || entry.action === types_1.RegistryFacetCutAction.Deployed) {
508
+ if (entry.action === types_1.RegistryFacetCutAction.Add ||
509
+ entry.action === types_1.RegistryFacetCutAction.Replace ||
510
+ entry.action === types_1.RegistryFacetCutAction.Deployed) {
473
511
  facetSelectorsMap[facetName].selectors.push(selector);
474
512
  }
475
513
  }
@@ -497,7 +535,7 @@ class BaseDeploymentStrategy {
497
535
  }
498
536
  // Remove facets with no selectors
499
537
  for (const facetName of Object.keys(deployedDiamondData.DeployedFacets)) {
500
- if (!facetSelectorsMap[facetName] || facetSelectorsMap[facetName].selectors.length === 0) {
538
+ if (facetSelectorsMap[facetName]?.selectors.length === 0) {
501
539
  delete deployedDiamondData.DeployedFacets[facetName];
502
540
  }
503
541
  }