@diamondslab/diamonds 1.2.0 → 1.3.0

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 (45) 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 +3 -3
  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.js.map +1 -1
  20. package/dist/strategies/DeploymentStrategy.js.map +1 -1
  21. package/dist/strategies/LocalDeploymentStrategy.js.map +1 -1
  22. package/dist/strategies/OZDefenderDeploymentStrategy.js.map +1 -1
  23. package/dist/strategies/RPCDeploymentStrategy.js.map +1 -1
  24. package/dist/strategies/index.js.map +1 -1
  25. package/dist/types/config.js.map +1 -1
  26. package/dist/types/defender.js.map +1 -1
  27. package/dist/types/deployments.js.map +1 -1
  28. package/dist/types/index.js.map +1 -1
  29. package/dist/types/rpc.js.map +1 -1
  30. package/dist/utils/common.js.map +1 -1
  31. package/dist/utils/configurationResolver.js.map +1 -1
  32. package/dist/utils/contractMapping.d.ts.map +1 -1
  33. package/dist/utils/contractMapping.js +14 -3
  34. package/dist/utils/contractMapping.js.map +1 -1
  35. package/dist/utils/defenderClients.js.map +1 -1
  36. package/dist/utils/defenderStore.js.map +1 -1
  37. package/dist/utils/diamondAbiGenerator.js.map +1 -1
  38. package/dist/utils/diffDeployedFacets.js.map +1 -1
  39. package/dist/utils/index.js.map +1 -1
  40. package/dist/utils/loupe.js.map +1 -1
  41. package/dist/utils/rpcStore.js.map +1 -1
  42. package/dist/utils/signer.js.map +1 -1
  43. package/dist/utils/txlogging.js.map +1 -1
  44. package/dist/utils/workspaceSetup.js.map +1 -1
  45. package/package.json +5 -1
@@ -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":"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","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":";;;AACA,+BAA4B;AAQ5B,oCAOkB;AAClB,uDAAoD;AAEpD,MAAa,OAAO;IACX,MAAM,CAAC,SAAS,GAAyB,IAAI,GAAG,EAAE,CAAC;IAEpD,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,OAAO,CAAkB;IACzB,eAAe,CAAS;IACxB,aAAa,CAAS;IACtB,cAAc,CAAS;IACvB,kBAAkB,CAAS;IAC3B,YAAY,CAAS;IACrB,cAAc,GAAa,EAAE,CAAC;IAC9B,eAAe,CAAkB;IAChC,mBAAmB,CAAsB;IACzC,MAAM,CAAgB;IACtB,YAAY,CAAe;IAC3B,UAAU,CAAuB;IAClC,MAAM,CAAqB;IAC3B,QAAQ,CAAgC;IACxC,YAAY,CAAe;IAC3B,aAAa,GAAY,IAAI,CAAC;IAC9B,WAAW,CAAqB;IAEvC,YAAY,MAAqB,EAAE,UAAgC;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,WAAW,CAAC;QACzD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC;QAE1E,yFAAyF;QACzF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc;gBACtC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,4BAA4B;gBAC7E,CAAC,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;QAEjD,gCAAgC;QAChC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAEvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,iCAAe,CAAC,WAAW,CACjD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,CACpB,CAAC;QAEF,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEM,wBAAwB,GAAG,IAAI,GAAG,EAAyC,CAAC;IAE3E,mCAAmC,CAAC,OAAgB;QAC3D,MAAM,aAAa,GAAkB,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAChE,MAAM,mBAAmB,GAAwB,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAClF,MAAM,cAAc,GAAmB,mBAAmB,CAAC,cAAc,IAAI,EAAE,CAAC;QAEhF,KAAK,MAAM,CACV,SAAS,EACT,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,EACtD,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;gBACpC,SAAS;YACV,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAA+B,CAAC,CAAC;gBACvE,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC;gBAC/C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC3C,SAAS;oBACT,QAAQ;oBACR,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,8BAAsB,CAAC,QAAQ;iBACvC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAEM,yBAAyB,CAC/B,SAA0E;QAE1E,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;YACvD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,8BAA8B,CACpC,QAAgB,EAChB,KAAoC;QAEpC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAEM,4BAA4B,CAAC,QAAgB;QACnD,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEM,iBAAiB,GAAsB,EAAE,CAAC;IAE1C,oBAAoB;QAC1B,OAAO,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACrC,CAAC;IAEM,uBAAuB,CAAC,SAAiB,EAAE,KAAuB;QACxE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,iBAAiB,CAAC,SAAoC,CAAC,GAAG,KAAK,CAAC;IACtE,CAAC;IAED,sBAAsB;QACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACjC,CAAC;IAED,sBAAsB,CAAC,IAAyB;QAC/C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,yBAAyB,CAAC,IAAyB;QAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,eAAe;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEM,eAAe;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEM,WAAW,CAAC,QAA2B;QAC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAEM,WAAW;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,SAAS,CAAC,MAAc;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAEM,SAAS;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,mBAAmB;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;IAClD,CAAC;IAEM,mBAAmB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAErD,oBAAoB,CAAC,SAAiB,EAAE,YAAoB;QAClE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAEM,cAAc,CAAC,WAAmB;QACxC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IACM,cAAc;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAEM,iBAAiB;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAEM,qBAAqB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IAEM,qBAAqB;QAC3B,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,OAAO,CAAC,CAAC;IACrE,CAAC;;AAzLF,0BA0LC;AAED,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Diamond.js","sourceRoot":"","sources":["../../src/core/Diamond.ts"],"names":[],"mappings":";;;AACA,+BAA4B;AAQ5B,oCAOkB;AAClB,uDAAoD;AAEpD,MAAa,OAAO;IACX,MAAM,CAAC,SAAS,GAAyB,IAAI,GAAG,EAAE,CAAC;IAEpD,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,OAAO,CAAkB;IACzB,eAAe,CAAS;IACxB,aAAa,CAAS;IACtB,cAAc,CAAS;IACvB,kBAAkB,CAAS;IAC3B,YAAY,CAAS;IACrB,cAAc,GAAa,EAAE,CAAC;IAC9B,eAAe,CAAkB;IAChC,mBAAmB,CAAsB;IACzC,MAAM,CAAgB;IACtB,YAAY,CAAe;IAC3B,UAAU,CAAuB;IAClC,MAAM,CAAqB;IAC3B,QAAQ,CAAgC;IACxC,YAAY,CAAe;IAC3B,aAAa,GAAY,IAAI,CAAC;IAC9B,WAAW,CAAqB;IAEvC,YAAY,MAAqB,EAAE,UAAgC;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,WAAW,CAAC;QACzD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,WAAW,CAAC;QAE1E,yFAAyF;QACzF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc;gBACtC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,4BAA4B;gBAC7E,CAAC,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;QAEjD,gCAAgC;QAChC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAEvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAE7C,IAAI,CAAC,eAAe,GAAG,iCAAe,CAAC,WAAW,CACjD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,CACpB,CAAC;QAEF,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEM,wBAAwB,GAAG,IAAI,GAAG,EAAyC,CAAC;IAE3E,mCAAmC,CAAC,OAAgB;QAC3D,MAAM,aAAa,GAAkB,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAChE,MAAM,mBAAmB,GAAwB,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAClF,MAAM,cAAc,GAAmB,mBAAmB,CAAC,cAAc,IAAI,EAAE,CAAC;QAEhF,KAAK,MAAM,CACV,SAAS,EACT,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,EACtD,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;gBACpC,SAAS;YACV,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,SAA+B,CAAC,CAAC;gBACvE,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC;gBAC/C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC3C,SAAS;oBACT,QAAQ;oBACR,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,8BAAsB,CAAC,QAAQ;iBACvC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAEM,yBAAyB,CAC/B,SAA0E;QAE1E,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;YACvD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,8BAA8B,CACpC,QAAgB,EAChB,KAAoC;QAEpC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAEM,4BAA4B,CAAC,QAAgB;QACnD,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAEM,iBAAiB,GAAsB,EAAE,CAAC;IAE1C,oBAAoB;QAC1B,OAAO,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACrC,CAAC;IAEM,uBAAuB,CAAC,SAAiB,EAAE,KAAuB;QACxE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,iBAAiB,CAAC,SAAoC,CAAC,GAAG,KAAK,CAAC;IACtE,CAAC;IAED,sBAAsB;QACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACjC,CAAC;IAED,sBAAsB,CAAC,IAAyB;QAC/C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,yBAAyB,CAAC,IAAyB;QAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,eAAe;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEM,eAAe;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEM,WAAW,CAAC,QAA2B;QAC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAEM,WAAW;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,SAAS,CAAC,MAAc;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAEM,SAAS;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,mBAAmB;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;IAClD,CAAC;IAEM,mBAAmB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAErD,oBAAoB,CAAC,SAAiB,EAAE,YAAoB;QAClE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAEM,cAAc,CAAC,WAAmB;QACxC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IACM,cAAc;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAEM,iBAAiB;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAEM,qBAAqB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IAEM,qBAAqB;QAC3B,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,kBAAkB,OAAO,CAAC,CAAC;IACrE,CAAC;;AAzLF,0BA0LC;AAED,kBAAe,OAAO,CAAC","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;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"}
@@ -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;
@@ -37,7 +37,7 @@ class FileDeploymentRepository {
37
37
  return this.writeDeployedDiamondData;
38
38
  }
39
39
  loadDeployedDiamondData() {
40
- return (0, jsonFileHandler_1.readDeployFile)(this.deployedDiamondDataFilePath, this.writeDeployedDiamondData);
40
+ return (0, jsonFileHandler_1.readDeployFile)(this.deployedDiamondDataFilePath, false); // Never create file during load
41
41
  }
42
42
  saveDeployedDiamondData(info) {
43
43
  if (this.writeDeployedDiamondData) {
@@ -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;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,KAAK,CAAC,CAAC,CAAC,gCAAgC;IAClG,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","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 private deploymentDataPath: string;\n private deployedDiamondDataFilePath: string;\n private configFilePath: string;\n private writeDeployedDiamondData: boolean;\n private deploymentId: string;\n\n constructor(config: DiamondConfig) {\n this.deploymentDataPath = config.deploymentsPath! || 'diamonds';\n this.writeDeployedDiamondData = config.writeDeployedDiamondData ?? true;\n this.deploymentId = `${config.diamondName.toLowerCase()}-${config.networkName!.toLowerCase()}-${config.chainId!.toString()}`;\n\n if (config.deployedDiamondDataFilePath) {\n this.deployedDiamondDataFilePath = config.deployedDiamondDataFilePath;\n } else {\n this.deployedDiamondDataFilePath = join(\n this.deploymentDataPath,\n config.diamondName,\n `deployments/${this.deploymentId}.json`\n )\n }\n if (config.configFilePath) {\n this.configFilePath = config.configFilePath;\n } else {\n this.configFilePath = join(\n this.deploymentDataPath,\n config.diamondName,\n `${config.diamondName.toLowerCase()}.config.json`\n );\n }\n }\n\n public setWriteDeployedDiamondData(write: boolean): void {\n this.writeDeployedDiamondData = write;\n }\n\n public getWriteDeployedDiamondData(): boolean {\n return this.writeDeployedDiamondData;\n }\n\n loadDeployedDiamondData(): DeployedDiamondData {\n return readDeployFile(this.deployedDiamondDataFilePath, false); // Never create file during load\n }\n\n saveDeployedDiamondData(info: DeployedDiamondData): void {\n if (this.writeDeployedDiamondData) {\n writeDeployInfo(this.deployedDiamondDataFilePath, info);\n } else {\n console.log(chalk.cyanBright(\"Skipping write of diamond deployment data. Set writeDeployedDiamondData to true to enable.\"));\n }\n }\n\n loadDeployConfig(): DeployConfig {\n return readDeployConfig(this.configFilePath);\n }\n\n public getDeploymentId(): string {\n return this.deploymentId;\n }\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":"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"}
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 +1 @@
1
- {"version":3,"file":"BaseDeploymentStrategy.js","sourceRoot":"","sources":["../../src/strategies/BaseDeploymentStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseDeploymentStrategy.js","sourceRoot":"","sources":["../../src/strategies/BaseDeploymentStrategy.ts"],"names":[],"mappings":"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","sourcesContent":["import \"@nomicfoundation/hardhat-ethers\";\nimport chalk from \"chalk\";\nimport { ethers } from \"ethers\";\nimport hre from \"hardhat\";\nimport { Diamond } from \"../core/Diamond\";\nimport { DeployedFacet } from \"../schemas\";\nimport {\n CallbackArgs,\n FacetCutAction,\n FacetCuts,\n FacetDeploymentInfo,\n FunctionSelectorRegistryEntry,\n NewDeployedFacet,\n RegistryFacetCutAction\n} from \"../types\";\nimport { getContractName, getDeployedFacetInterfaces, getDiamondContractName, logTx } from \"../utils\";\nimport { DeploymentStrategy } from \"./DeploymentStrategy\";\n\nexport class BaseDeploymentStrategy implements DeploymentStrategy {\n constructor(protected verbose: boolean = false) { }\n\n async preDeployDiamond(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`šŸ”§ Running pre-deploy logic for diamond ${diamond.diamondName}`));\n }\n await this.preDeployDiamondTasks(diamond);\n }\n\n protected async preDeployDiamondTasks(diamond: Diamond): Promise<void> { }\n\n async deployDiamond(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.yellowBright(`\\nšŸŖ“ Deploying diamond ${diamond.diamondName} with DiamondCutFacet...`));\n }\n await this.deployDiamondTasks(diamond);\n }\n\n protected async deployDiamondTasks(diamond: Diamond): Promise<void> {\n console.log(chalk.blueBright(`šŸš€ Explicitly deploying DiamondCutFacet and Diamond for ${diamond.diamondName}`));\n\n // Deploy the DiamondCutFacet - use contract mapping to get correct name\n const diamondCutContractName = await getContractName(\"DiamondCutFacet\", diamond);\n const diamondCutFactory = await hre.ethers.getContractFactory(diamondCutContractName, diamond.getSigner()!);\n const diamondCutFacet = await diamondCutFactory.deploy();\n await diamondCutFacet.waitForDeployment();\n\n // Deploy the Diamond - use contract mapping to get correct name\n const diamondContractName = await getDiamondContractName(diamond.diamondName, diamond);\n const diamondFactory = await hre.ethers.getContractFactory(diamondContractName, diamond.getSigner()!);\n const diamondContract = await diamondFactory.deploy(await diamond.getSigner()!.getAddress(), await diamondCutFacet.getAddress());\n await diamondContract.waitForDeployment();\n\n // Get function selectors for DiamondCutFacet\n const diamondCutFacetFunctionSelectors: string[] = [];\n diamondCutFacet.interface.forEachFunction((func: ethers.FunctionFragment) => {\n diamondCutFacetFunctionSelectors.push(func.selector);\n });\n\n // Get addresses for later use\n const diamondCutFacetAddress = await diamondCutFacet.getAddress();\n const diamondContractAddress = await diamondContract.getAddress();\n\n // Register the DiamondCutFacet function selectors\n const diamondCutFacetSelectorsRegistry = diamondCutFacetFunctionSelectors.reduce((acc, selector) => {\n acc[selector] = {\n facetName: \"DiamondCutFacet\",\n priority: diamond.getFacetsConfig()?.DiamondCutFacet?.priority || 1000, // Default priority if not set\n address: diamondCutFacetAddress,\n action: RegistryFacetCutAction.Deployed,\n };\n return acc;\n }, {} as Record<string, Omit<FunctionSelectorRegistryEntry, \"selector\">>);\n\n diamond.registerFunctionSelectors(diamondCutFacetSelectorsRegistry);\n\n // Update deployed diamond data\n const deployedDiamondData = diamond.getDeployedDiamondData();\n deployedDiamondData.DeployerAddress = await diamond.getSigner()!.getAddress();\n deployedDiamondData.DiamondAddress = diamondContractAddress;\n deployedDiamondData.DeployedFacets = deployedDiamondData.DeployedFacets || {};\n deployedDiamondData.DeployedFacets[\"DiamondCutFacet\"] = {\n address: diamondCutFacetAddress,\n tx_hash: diamondCutFacet.deploymentTransaction()?.hash || \"\",\n version: 0,\n funcSelectors: diamondCutFacetFunctionSelectors,\n };\n\n diamond.updateDeployedDiamondData(deployedDiamondData);\n\n console.log(chalk.green(`āœ… Diamond deployed at ${await diamondContract.getAddress()}, DiamondCutFacet at ${await diamondCutFacet.getAddress()}`));\n }\n\n async postDeployDiamond(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`āœ… Running post-deploy logic for diamond ${diamond.diamondName}`));\n }\n await this.postDeployDiamondTasks(diamond);\n }\n\n protected async postDeployDiamondTasks(diamond: Diamond): Promise<void> { }\n\n async preDeployFacets(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`šŸ”§ Running pre-deploy logic for facets of diamond ${diamond.diamondName}`));\n }\n await this.preDeployFacetsTasks(diamond);\n }\n\n protected async preDeployFacetsTasks(diamond: Diamond): Promise<void> {\n // This can be overridden by subclasses for custom pre-deploy logic\n if (this.verbose) {\n console.log(chalk.gray(`šŸ”§ No pre-deploy tasks defined for facets of diamond ${diamond.diamondName}`));\n }\n }\n\n async deployFacets(diamond: Diamond): Promise<void> {\n await this.deployFacetsTasks(diamond);\n }\n\n protected async deployFacetsTasks(diamond: Diamond) {\n const deployConfig = diamond.getDeployConfig();\n const facetsConfig = diamond.getDeployConfig().facets;\n const deployedDiamondData = diamond.getDeployedDiamondData();\n const deployedFacets = deployedDiamondData.DeployedFacets || {};\n const facetCuts: FacetDeploymentInfo[] = [];\n\n const sortedFacetNames = Object.keys(deployConfig.facets)\n .sort((a, b) => {\n return (deployConfig.facets[a].priority || 1000) - (deployConfig.facets[b].priority || 1000);\n });\n\n // Save the facet deployment info\n for (const facetName of sortedFacetNames) {\n const facetConfig = facetsConfig[facetName];\n const deployedVersion = deployedDiamondData.DeployedFacets?.[facetName]?.version ?? -1;\n const availableVersions = Object.keys(facetConfig.versions || {}).map(Number);\n const upgradeVersion = Math.max(...availableVersions);\n\n if (upgradeVersion > deployedVersion || deployedVersion === -1) {\n if (this.verbose) {\n console.log(chalk.blueBright(`šŸš€ Deploying facet: ${facetName} to version ${upgradeVersion}`));\n }\n // Deploy the facet contract - use contract mapping to get correct name\n const signer = diamond.getSigner()!;\n const facetContractName = await getContractName(facetName, diamond);\n const facetFactory = await hre.ethers.getContractFactory(facetContractName, { signer });\n const facetContract = await facetFactory.deploy();\n await facetContract.waitForDeployment();\n\n const deployedFacets = new Map<string, DeployedFacet>();\n const availableVersions = Object.keys(facetConfig.versions ?? {}).map(Number);\n const facetSelectors: string[] = [];\n facetContract.interface.forEachFunction((func: ethers.FunctionFragment) => {\n facetSelectors.push(func.selector);\n });\n\n // Initializer function Registry\n const deployInit = facetConfig.versions?.[upgradeVersion]?.deployInit || \"\";\n const upgradeInit = facetConfig.versions?.[upgradeVersion]?.upgradeInit || \"\";\n\n const initFn = diamond.newDeployment ? deployInit : upgradeInit;\n if (initFn && facetName !== deployConfig.protocolInitFacet) {\n diamond.initializerRegistry.set(facetName, initFn);\n }\n\n const newFacetData: NewDeployedFacet = {\n priority: facetConfig.priority || 1000,\n address: await facetContract.getAddress(),\n tx_hash: facetContract.deploymentTransaction()?.hash || \"\",\n version: upgradeVersion,\n funcSelectors: facetSelectors,\n deployInclude: facetConfig.versions?.[upgradeVersion]?.deployInclude || [],\n deployExclude: facetConfig.versions?.[upgradeVersion]?.deployExclude || [],\n initFunction: initFn,\n verified: false,\n };\n\n diamond.updateNewDeployedFacets(facetName, newFacetData);\n\n console.log(chalk.cyan(`⛵ ${facetName} deployed at ${await facetContract.getAddress()} with ${facetSelectors.length} selectors.`));\n // Log the deployment transaction and selectors\n if (this.verbose) {\n console.log(chalk.gray(` Selectors:`), facetSelectors);\n }\n }\n\n }\n }\n\n async postDeployFacets(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`āœ… Running post-deploy logic for facets of diamond ${diamond.diamondName}`));\n }\n await this.postDeployFacetsTasks(diamond);\n }\n\n // Used by subclasses for facet post-deployment tasks\n protected async postDeployFacetsTasks(diamond: Diamond): Promise<void> { }\n\n // Pre-hook for updating function selector registry (can be overridden by subclasses)\n async preUpdateFunctionSelectorRegistry(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`šŸ”§ Running pre-update logic for function selector registry of diamond ${diamond.diamondName}`));\n }\n }\n\n protected async preUpdateFunctionSelectorRegistryTasks(diamond: Diamond): Promise<void> { }\n\n async updateFunctionSelectorRegistry(diamond: Diamond) {\n if (this.verbose) {\n console.log(chalk.yellowBright(`\\nšŸŖ“ Updating function selector registry for diamond ${diamond.diamondName}...`));\n }\n this.updateFunctionSelectorRegistryTasks(diamond);\n }\n\n protected async updateFunctionSelectorRegistryTasks(\n diamond: Diamond,\n ): Promise<void> {\n const registry = diamond.functionSelectorRegistry;\n const zeroAddress = ethers.ZeroAddress;\n\n const newDeployedFacets = diamond.getNewDeployedFacets();\n const newDeployedFacetsByPriority = Object.entries(newDeployedFacets).sort(([, a], [, b]) =>\n (a.priority || 1000) - (b.priority || 1000)\n );\n\n for (const [newFacetName, newFacetData] of newDeployedFacetsByPriority) {\n const currentFacetAddress = newFacetData.address;\n const priority: number = newFacetData.priority;\n const functionSelectors: string[] = newFacetData.funcSelectors || [];\n const includeFuncSelectors: string[] = newFacetData.deployInclude || [];\n const excludeFuncSelectors: string[] = newFacetData.deployExclude || [];\n\n /* ------------------ Exclusion Filter ------------------ */\n for (const excludeFuncSelector of excludeFuncSelectors) {\n // remove from the facets functionSelectors\n if (excludeFuncSelector in functionSelectors) {\n functionSelectors.splice(functionSelectors.indexOf(excludeFuncSelector), 1);\n }\n // update action to remove if excluded from registry where a previous deployment associated with facetname\n if (excludeFuncSelector in registry && registry.get(excludeFuncSelector)?.facetName === newFacetName) {\n const existing = registry.get(excludeFuncSelector);\n if (existing && existing.facetName === newFacetName) {\n registry.set(excludeFuncSelector, {\n priority: priority,\n address: currentFacetAddress,\n action: RegistryFacetCutAction.Remove,\n facetName: newFacetName,\n });\n }\n }\n }\n\n /* ------------ Higher Priority Split of Registry ------------------ */\n const registryHigherPrioritySplit = Array.from(registry.entries())\n .filter(([_, entry]) => entry.priority > priority)\n .reduce((acc, [selector, entry]) => {\n if (!acc[entry.facetName]) {\n acc[entry.facetName] = [];\n }\n acc[entry.facetName].push(selector);\n return acc;\n }, {} as Record<string, string[]>);\n\n /* ------------------ Inclusion Override Filter ------------------ */\n for (const includeFuncSelector of includeFuncSelectors) {\n // Force Replace if already registered by higher priority facet\n if (includeFuncSelector in registryHigherPrioritySplit) {\n const higherPriorityFacet = Object.keys(registryHigherPrioritySplit).find(facetName => {\n return registryHigherPrioritySplit[facetName].includes(includeFuncSelector);\n });\n if (higherPriorityFacet) {\n registry.set(includeFuncSelector, {\n priority: priority,\n address: currentFacetAddress,\n action: RegistryFacetCutAction.Replace,\n facetName: newFacetName,\n });\n }\n } else {\n // Add to the registry\n registry.set(includeFuncSelector, {\n priority: priority,\n address: currentFacetAddress,\n action: RegistryFacetCutAction.Add,\n facetName: newFacetName,\n });\n }\n\n // remove from the funcSels so it is not modified in Priority Resolution Pass\n if (includeFuncSelector in newDeployedFacets) {\n const existing = newDeployedFacets[newFacetName];\n if (existing && existing.funcSelectors) {\n existing.funcSelectors.splice(existing.funcSelectors.indexOf(includeFuncSelector), 1);\n }\n }\n }\n\n /* ------------------ Replace Facet and Priority Resolution Pass ------------- */\n for (const selector of functionSelectors) {\n const existing = registry.get(selector);\n if (existing) {\n const existingPriority = existing.priority;\n\n if (existing.facetName === newFacetName) {\n // Same facet, update the address\n registry.set(selector, {\n priority: priority,\n address: currentFacetAddress,\n action: RegistryFacetCutAction.Replace,\n facetName: newFacetName,\n });\n } else if (priority < existingPriority) {\n // Current facet has higher priority, Replace it\n registry.set(selector, {\n priority: priority,\n address: currentFacetAddress,\n action: RegistryFacetCutAction.Replace,\n facetName: newFacetName,\n });\n }\n\n } else {\n // New selector, simply add\n registry.set(selector, {\n priority: priority,\n address: currentFacetAddress,\n action: RegistryFacetCutAction.Add,\n facetName: newFacetName,\n });\n }\n }\n\n /* ---------------- Remove Old Function Selectors from facets -------------- */\n // Set functionselectors with the newFacetName and still different address to Remove\n for (const [selector, entry] of registry.entries()) {\n if (entry.facetName === newFacetName && entry.address !== currentFacetAddress) {\n registry.set(selector, {\n priority: entry.priority,\n address: zeroAddress,\n action: RegistryFacetCutAction.Remove,\n facetName: newFacetName,\n });\n }\n }\n }\n\n // `Remove` function selectors for facets no longer in config (deleted facets)\n const facetsConfig = diamond.getDeployConfig().facets;\n const facetNames = Object.keys(facetsConfig);\n for (const [selector, entry] of registry.entries()) {\n if (!facetNames.includes(entry.facetName)) {\n registry.set(selector, {\n priority: entry.priority,\n address: zeroAddress,\n action: RegistryFacetCutAction.Remove,\n facetName: entry.facetName,\n });\n }\n }\n }\n\n async postUpdateFunctionSelectorRegistry(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`āœ… Running post-update logic for function selector registry of diamond ${diamond.diamondName}`));\n }\n }\n\n async prePerformDiamondCut(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`šŸ”§ Running pre-diamond cut logic for diamond ${diamond.diamondName}`));\n }\n await this.prePerformDiamondCutTasks(diamond);\n }\n\n protected async prePerformDiamondCutTasks(diamond: Diamond): Promise<void> {\n // This can be overridden by subclasses for custom pre-diamond cut logic\n if (this.verbose) {\n console.log(chalk.gray(`šŸ”§ No pre-diamond cut tasks defined for diamond ${diamond.diamondName}`));\n }\n }\n\n async performDiamondCut(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.yellowBright(`\\nšŸŖ“ Performing diamond cut for diamond ${diamond.diamondName}...`));\n }\n await this.performDiamondCutTasks(diamond);\n }\n\n protected async performDiamondCutTasks(diamond: Diamond): Promise<void> {\n const diamondSignerAddress = await diamond.getSigner()?.getAddress()!;\n const signer = await hre.ethers.getSigner(diamondSignerAddress!);\n const diamondContract = await hre.ethers.getContractAt(\"IDiamondCut\", diamond.getDeployedDiamondData().DiamondAddress!);\n const signerDiamondContract = diamondContract.connect(signer);\n const deployConfig = diamond.getDeployConfig();\n const deployedDiamondData = diamond.getDeployedDiamondData();\n\n // Setup initCallData with Atomic Protocol Initializer\n const [initCalldata, initAddress] = await this.getInitCalldata(diamond);\n\n // extract facet cuts from the selector registry \n const facetCuts: FacetCuts = await this.getFacetCuts(diamond);\n\n // Validate no orphaned selectors, i.e. 'Add', 'Replace' or 'Deployed' selectors with the same facetNames but different addresses\n await this.validateNoOrphanedSelectors(facetCuts);\n\n if (this.verbose) {\n console.log(chalk.yellowBright(`\\nšŸŖ“ Performing DiamondCut with ${facetCuts.length} cut(s):`));\n for (const cut of facetCuts) {\n console.log(chalk.bold(`- ${FacetCutAction[cut.action]} for facet ${cut.name} at ${cut.facetAddress}`));\n console.log(chalk.gray(` Selectors:`), cut.functionSelectors);\n }\n if (initAddress !== ethers.ZeroAddress) {\n console.log(chalk.cyan(`Initializing with functionSelector ${initCalldata} on ProtocolInitFacet ${deployConfig.protocolInitFacet} @ ${initAddress}`));\n }\n }\n\n /* -------------------------- Perform the diamond cut -----------------------*/\n const facetSelectorCutMap = facetCuts.map(fc => ({ facetAddress: fc.facetAddress, action: fc.action, functionSelectors: fc.functionSelectors }));\n const tx = await (signerDiamondContract as any).diamondCut(\n facetSelectorCutMap,\n initAddress,\n initCalldata\n );\n\n /* --------------------- Update the deployed diamond data ------------------ */\n const txHash = tx.hash;\n await this.postDiamondCutDeployedDataUpdate(diamond, txHash);\n\n const ifaceList = getDeployedFacetInterfaces(deployedDiamondData);\n // Log the transaction\n if (this.verbose) {\n await logTx(tx, \"DiamondCut\", ifaceList);\n } else {\n console.log(chalk.blueBright(`šŸ”„ Waiting for DiamondCut transaction to be mined...`));\n await tx.wait();\n }\n\n\n console.log(chalk.green(`āœ… DiamondCut executed: ${tx.hash}`));\n\n for (const [facetName, initFunction] of diamond.initializerRegistry.entries()) {\n console.log(chalk.blueBright(`ā–¶ Running ${initFunction} from the ${facetName} facet`));\n // const contract = await ethers.getContractAt(facetName, diamondSignerAddress!);\n const facetContractName = await getContractName(facetName, diamond);\n const initContract = await hre.ethers.getContractAt(facetContractName, diamond.getDeployedDiamondData().DiamondAddress!);\n const signerDiamondContract = initContract.connect(signer);\n\n const tx = await initContract[initFunction]();\n // const tx = await signerDiamondContract.initFunction;\n if (this.verbose) {\n logTx(tx, `${facetName}.${initFunction}`, ifaceList);\n } else {\n console.log(chalk.blueBright(`šŸ”„ Waiting for ${facetName}.${initFunction}} mined...`));\n await tx.wait();\n }\n console.log(chalk.green(`āœ… ${facetName}.${initFunction} executed`));\n }\n }\n\n async postPerformDiamondCut(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`āœ… Running post-diamond cut logic for diamond ${diamond.diamondName}`));\n }\n await this.postPerformDiamondCutTasks(diamond);\n }\n\n protected async postPerformDiamondCutTasks(diamond: Diamond): Promise<void> { }\n\n async getInitCalldata(diamond: Diamond): Promise<[string, string]> {\n const deployedDiamondData = diamond.getDeployedDiamondData();\n const deployConfig = diamond.getDeployConfig();\n\n let initAddress = ethers.ZeroAddress;\n let initCalldata = \"0x\";\n\n const protocolInitFacet = deployConfig.protocolInitFacet || \"\";\n const protocolVersion = deployConfig.protocolVersion;\n const protocolFacetInfo = diamond.getNewDeployedFacets()[protocolInitFacet];\n\n if (protocolInitFacet && protocolFacetInfo) {\n const versionCfg = deployConfig.facets[protocolInitFacet]?.versions?.[protocolVersion];\n const initFn = diamond.newDeployment ? versionCfg?.deployInit : versionCfg?.upgradeInit;\n\n if (initFn) {\n const iface = new ethers.Interface([`function ${initFn}`]);\n initAddress = protocolFacetInfo.address!;\n initCalldata = iface.encodeFunctionData(initFn);\n if (this.verbose) {\n console.log(\n chalk.cyan(`šŸ”§ Using protocol-wide initializer: ${protocolInitFacet}.${initFn}()`)\n );\n }\n }\n }\n\n if (initAddress === ethers.ZeroAddress) {\n console.log(chalk.yellow(`āš ļø No protocol-wide initializer found. Using zero address.`));\n }\n diamond.setInitAddress(initAddress);\n return [initCalldata, initAddress];\n }\n\n async getFacetCuts(diamond: Diamond): Promise<FacetCuts> {\n const deployConfig = diamond.getDeployConfig();\n const selectorRegistry = diamond.functionSelectorRegistry;\n /* -------------------------- Prepare the facet cuts -----------------------*/\n // extract facet cuts from the selector registry \n const facetCuts = Array.from(selectorRegistry.entries())\n .filter(([_, entry]) => entry.action !== RegistryFacetCutAction.Deployed)\n .map(([selector, entry]) => {\n return {\n facetAddress: entry.address,\n action: entry.action,\n functionSelectors: [selector],\n name: entry.facetName,\n };\n });\n\n return facetCuts;\n }\n\n async validateNoOrphanedSelectors(facetCuts: FacetCuts): Promise<void> {\n // Validate no orphaned selectors, i.e. 'Add', 'Replace' or 'Deployed' selectors with the same facetNames but different addresses\n const orphanedSelectors = facetCuts.filter(facetCut => {\n return facetCuts.some(otherFacetCut => {\n return (\n otherFacetCut.facetAddress !== facetCut.facetAddress &&\n otherFacetCut.name === facetCut.name &&\n (otherFacetCut.action === RegistryFacetCutAction.Add ||\n otherFacetCut.action === RegistryFacetCutAction.Replace ||\n otherFacetCut.action === RegistryFacetCutAction.Deployed)\n );\n });\n });\n\n if (orphanedSelectors.length > 0) {\n console.error(chalk.redBright(`āŒ Orphaned selectors found for facet ${orphanedSelectors[0].name} at address ${orphanedSelectors[0].facetAddress}`));\n console.error(chalk.redBright(` - ${orphanedSelectors[0].functionSelectors}`));\n throw new Error(`Orphaned selectors found for facet ${orphanedSelectors[0].name} at address ${orphanedSelectors[0].facetAddress}`);\n }\n }\n\n async postDiamondCutDeployedDataUpdate(diamond: Diamond, txHash: string): Promise<void> {\n const deployConfig = diamond.getDeployConfig();\n const deployedDiamondData = diamond.getDeployedDiamondData();\n const selectorRegistry = diamond.functionSelectorRegistry;\n const newDeployedFacets = diamond.getNewDeployedFacets();\n\n deployedDiamondData.protocolVersion = deployConfig.protocolVersion;\n\n // Aggregate selectors for each facet\n const facetSelectorsMap: Record<string, { address: string, selectors: string[] }> = {};\n\n for (const [selector, entry] of selectorRegistry.entries()) {\n const facetName = entry.facetName;\n if (!facetSelectorsMap[facetName]) {\n facetSelectorsMap[facetName] = { address: entry.address, selectors: [] };\n }\n if (entry.action === RegistryFacetCutAction.Add || entry.action === RegistryFacetCutAction.Replace || entry.action === RegistryFacetCutAction.Deployed) {\n facetSelectorsMap[facetName].selectors.push(selector);\n }\n }\n\n // Update deployed facets with aggregated selectors\n deployedDiamondData.DeployedFacets = deployedDiamondData.DeployedFacets || {};\n for (const [facetName, { address, selectors }] of Object.entries(facetSelectorsMap)) {\n if (selectors.length > 0) {\n let facetVersion: number;\n\n if (newDeployedFacets[facetName]) {\n // Use the version from newly deployed facet\n facetVersion = newDeployedFacets[facetName].version;\n } else {\n // For facets not in newDeployedFacets (like existing deployed facets),\n // preserve their existing version or use 0 as default\n facetVersion = deployedDiamondData.DeployedFacets[facetName]?.version ?? 0;\n }\n\n deployedDiamondData.DeployedFacets[facetName] = {\n address,\n tx_hash: txHash,\n version: facetVersion,\n funcSelectors: selectors,\n };\n }\n }\n\n // Remove facets with no selectors\n for (const facetName of Object.keys(deployedDiamondData.DeployedFacets)) {\n if (!facetSelectorsMap[facetName] || facetSelectorsMap[facetName].selectors.length === 0) {\n delete deployedDiamondData.DeployedFacets[facetName];\n }\n }\n\n diamond.updateDeployedDiamondData(deployedDiamondData);\n }\n\n async preRunPostDeployCallbacks(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`šŸ”§ Running pre-post-deploy logic for diamond ${diamond.diamondName}`));\n }\n }\n\n async runPostDeployCallbacks(diamond: Diamond): Promise<void> {\n await this.runPostDeployCallbacksTasks(diamond);\n }\n\n protected async runPostDeployCallbacksTasks(diamond: Diamond): Promise<void> {\n console.log(`šŸ”„ Running post-deployment callbacks...`);\n\n const deployConfig = diamond.getDeployConfig();\n\n for (const [facetName, facetConfig] of Object.entries(deployConfig.facets)) {\n if (!facetConfig.versions) continue;\n\n for (const [version, config] of Object.entries(facetConfig.versions)) {\n if (config.callbacks) {\n const args: CallbackArgs = {\n diamond: diamond,\n };\n\n console.log(chalk.cyanBright(`Executing callback ${config.callbacks} for facet ${facetName}...`));\n await diamond.callbackManager.executeCallback(\n facetName,\n config.callbacks,\n args\n );\n\n console.log(chalk.magenta(`āœ… Callback ${config.callbacks} executed for facet ${facetName}`));\n }\n }\n }\n\n console.log(chalk.greenBright`āœ… All post-deployment callbacks executed.`);\n }\n\n async postRunPostDeployCallbacks(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`āœ… Running post-post-deploy logic for diamond ${diamond.diamondName}`));\n }\n }\n\n protected async postRunPostDeployCallbacksTasks(diamond: Diamond): Promise<void> {\n if (this.verbose) {\n console.log(chalk.gray(`āœ… Running post-post-deploy logic for diamond ${diamond.diamondName}`));\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DeploymentStrategy.js","sourceRoot":"","sources":["../../src/strategies/DeploymentStrategy.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"DeploymentStrategy.js","sourceRoot":"","sources":["../../src/strategies/DeploymentStrategy.ts"],"names":[],"mappings":"","sourcesContent":["import { FacetDeploymentInfo } from \"../types\";\nimport { Diamond } from \"../core/Diamond\";\nimport { DeployedFacet, FacetsConfig } from \"../schemas\";\n\nexport interface DeploymentStrategy {\n preDeployDiamond(diamond: Diamond): Promise<void>;\n deployDiamond(diamond: Diamond): Promise<void>;\n postDeployDiamond(diamond: Diamond): Promise<void>;\n\n preDeployFacets(diamond: Diamond): Promise<void>;\n deployFacets(diamond: Diamond): Promise<void>;\n postDeployFacets(diamond: Diamond): Promise<void>;\n\n preUpdateFunctionSelectorRegistry(diamond: Diamond): Promise<void>;\n updateFunctionSelectorRegistry(diamond: Diamond): Promise<void>;\n postUpdateFunctionSelectorRegistry(diamond: Diamond): Promise<void>;\n\n prePerformDiamondCut(diamond: Diamond): Promise<void>;\n performDiamondCut(diamond: Diamond): Promise<void>;\n postPerformDiamondCut(diamond: Diamond): Promise<void>;\n\n preRunPostDeployCallbacks(diamond: Diamond): Promise<void>;\n runPostDeployCallbacks(diamond: Diamond): Promise<void>;\n postRunPostDeployCallbacks(diamond: Diamond): Promise<void>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LocalDeploymentStrategy.js","sourceRoot":"","sources":["../../src/strategies/LocalDeploymentStrategy.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAElE,MAAa,uBAAwB,SAAQ,+CAAsB;CAElE;AAFD,0DAEC"}
1
+ {"version":3,"file":"LocalDeploymentStrategy.js","sourceRoot":"","sources":["../../src/strategies/LocalDeploymentStrategy.ts"],"names":[],"mappings":";;;AAAA,qEAAkE;AAElE,MAAa,uBAAwB,SAAQ,+CAAsB;CAElE;AAFD,0DAEC","sourcesContent":["import { BaseDeploymentStrategy } from \"./BaseDeploymentStrategy\";\n\nexport class LocalDeploymentStrategy extends BaseDeploymentStrategy {\n\n}"]}