@diamondslab/diamonds 1.0.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 (229) hide show
  1. package/README.md +618 -0
  2. package/diamonds/README.md +3 -0
  3. package/dist/core/CallbackManager.d.ts +13 -0
  4. package/dist/core/CallbackManager.d.ts.map +1 -0
  5. package/dist/core/CallbackManager.js +95 -0
  6. package/dist/core/CallbackManager.js.map +1 -0
  7. package/dist/core/DeploymentManager.d.ts +10 -0
  8. package/dist/core/DeploymentManager.d.ts.map +1 -0
  9. package/dist/core/DeploymentManager.js +50 -0
  10. package/dist/core/DeploymentManager.js.map +1 -0
  11. package/dist/core/Diamond.d.ts +58 -0
  12. package/dist/core/Diamond.d.ts.map +1 -0
  13. package/dist/core/Diamond.js +146 -0
  14. package/dist/core/Diamond.js.map +1 -0
  15. package/dist/core/DiamondDeployer.d.ts +10 -0
  16. package/dist/core/DiamondDeployer.d.ts.map +1 -0
  17. package/dist/core/DiamondDeployer.js +33 -0
  18. package/dist/core/DiamondDeployer.js.map +1 -0
  19. package/dist/core/index.d.ts +5 -0
  20. package/dist/core/index.d.ts.map +1 -0
  21. package/dist/core/index.js +12 -0
  22. package/dist/core/index.js.map +1 -0
  23. package/dist/index.d.ts +6 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +22 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/repositories/DBDeploymentRepository.d.ts +1 -0
  28. package/dist/repositories/DBDeploymentRepository.d.ts.map +1 -0
  29. package/dist/repositories/DBDeploymentRepository.js +20 -0
  30. package/dist/repositories/DBDeploymentRepository.js.map +1 -0
  31. package/dist/repositories/DeploymentRepository.d.ts +8 -0
  32. package/dist/repositories/DeploymentRepository.d.ts.map +1 -0
  33. package/dist/repositories/DeploymentRepository.js +7 -0
  34. package/dist/repositories/DeploymentRepository.js.map +1 -0
  35. package/dist/repositories/FileDeploymentRepository.d.ts +18 -0
  36. package/dist/repositories/FileDeploymentRepository.d.ts.map +1 -0
  37. package/dist/repositories/FileDeploymentRepository.js +58 -0
  38. package/dist/repositories/FileDeploymentRepository.js.map +1 -0
  39. package/dist/repositories/databaseHandler.d.ts +1 -0
  40. package/dist/repositories/databaseHandler.d.ts.map +1 -0
  41. package/dist/repositories/databaseHandler.js +13 -0
  42. package/dist/repositories/databaseHandler.js.map +1 -0
  43. package/dist/repositories/index.d.ts +4 -0
  44. package/dist/repositories/index.d.ts.map +1 -0
  45. package/dist/repositories/index.js +20 -0
  46. package/dist/repositories/index.js.map +1 -0
  47. package/dist/repositories/jsonFileHandler.d.ts +81 -0
  48. package/dist/repositories/jsonFileHandler.d.ts.map +1 -0
  49. package/dist/repositories/jsonFileHandler.js +223 -0
  50. package/dist/repositories/jsonFileHandler.js.map +1 -0
  51. package/dist/repositories/prismaDBHandler.d.ts +1 -0
  52. package/dist/repositories/prismaDBHandler.d.ts.map +1 -0
  53. package/dist/repositories/prismaDBHandler.js +11 -0
  54. package/dist/repositories/prismaDBHandler.js.map +1 -0
  55. package/dist/schemas/DeploymentSchema.d.ts +309 -0
  56. package/dist/schemas/DeploymentSchema.d.ts.map +1 -0
  57. package/dist/schemas/DeploymentSchema.js +56 -0
  58. package/dist/schemas/DeploymentSchema.js.map +1 -0
  59. package/dist/schemas/index.d.ts +2 -0
  60. package/dist/schemas/index.d.ts.map +1 -0
  61. package/dist/schemas/index.js +18 -0
  62. package/dist/schemas/index.js.map +1 -0
  63. package/dist/strategies/BaseDeploymentStrategy.d.ts +41 -0
  64. package/dist/strategies/BaseDeploymentStrategy.d.ts.map +1 -0
  65. package/dist/strategies/BaseDeploymentStrategy.js +545 -0
  66. package/dist/strategies/BaseDeploymentStrategy.js.map +1 -0
  67. package/dist/strategies/DeploymentStrategy.d.ts +19 -0
  68. package/dist/strategies/DeploymentStrategy.d.ts.map +1 -0
  69. package/dist/strategies/DeploymentStrategy.js +3 -0
  70. package/dist/strategies/DeploymentStrategy.js.map +1 -0
  71. package/dist/strategies/LocalDeploymentStrategy.d.ts +4 -0
  72. package/dist/strategies/LocalDeploymentStrategy.d.ts.map +1 -0
  73. package/dist/strategies/LocalDeploymentStrategy.js +8 -0
  74. package/dist/strategies/LocalDeploymentStrategy.js.map +1 -0
  75. package/dist/strategies/OZDefenderDeploymentStrategy.d.ts +62 -0
  76. package/dist/strategies/OZDefenderDeploymentStrategy.d.ts.map +1 -0
  77. package/dist/strategies/OZDefenderDeploymentStrategy.js +757 -0
  78. package/dist/strategies/OZDefenderDeploymentStrategy.js.map +1 -0
  79. package/dist/strategies/RPCDeploymentStrategy.d.ts +139 -0
  80. package/dist/strategies/RPCDeploymentStrategy.d.ts.map +1 -0
  81. package/dist/strategies/RPCDeploymentStrategy.js +710 -0
  82. package/dist/strategies/RPCDeploymentStrategy.js.map +1 -0
  83. package/dist/strategies/index.d.ts +6 -0
  84. package/dist/strategies/index.d.ts.map +1 -0
  85. package/dist/strategies/index.js +12 -0
  86. package/dist/strategies/index.js.map +1 -0
  87. package/dist/types/config.d.ts +26 -0
  88. package/dist/types/config.d.ts.map +1 -0
  89. package/dist/types/config.js +3 -0
  90. package/dist/types/config.js.map +1 -0
  91. package/dist/types/defender.d.ts +22 -0
  92. package/dist/types/defender.d.ts.map +1 -0
  93. package/dist/types/defender.js +3 -0
  94. package/dist/types/defender.js.map +1 -0
  95. package/dist/types/deployments.d.ts +71 -0
  96. package/dist/types/deployments.d.ts.map +1 -0
  97. package/dist/types/deployments.js +20 -0
  98. package/dist/types/deployments.js.map +1 -0
  99. package/dist/types/index.d.ts +5 -0
  100. package/dist/types/index.d.ts.map +1 -0
  101. package/dist/types/index.js +21 -0
  102. package/dist/types/index.js.map +1 -0
  103. package/dist/types/rpc.d.ts +35 -0
  104. package/dist/types/rpc.d.ts.map +1 -0
  105. package/dist/types/rpc.js +3 -0
  106. package/dist/types/rpc.js.map +1 -0
  107. package/dist/utils/common.d.ts +20 -0
  108. package/dist/utils/common.d.ts.map +1 -0
  109. package/dist/utils/common.js +45 -0
  110. package/dist/utils/common.js.map +1 -0
  111. package/dist/utils/configurationResolver.d.ts +30 -0
  112. package/dist/utils/configurationResolver.d.ts.map +1 -0
  113. package/dist/utils/configurationResolver.js +151 -0
  114. package/dist/utils/configurationResolver.js.map +1 -0
  115. package/dist/utils/contractMapping.d.ts +29 -0
  116. package/dist/utils/contractMapping.d.ts.map +1 -0
  117. package/dist/utils/contractMapping.js +224 -0
  118. package/dist/utils/contractMapping.js.map +1 -0
  119. package/dist/utils/defenderClients.d.ts +5 -0
  120. package/dist/utils/defenderClients.d.ts.map +1 -0
  121. package/dist/utils/defenderClients.js +21 -0
  122. package/dist/utils/defenderClients.js.map +1 -0
  123. package/dist/utils/defenderStore.d.ts +14 -0
  124. package/dist/utils/defenderStore.d.ts.map +1 -0
  125. package/dist/utils/defenderStore.js +92 -0
  126. package/dist/utils/defenderStore.js.map +1 -0
  127. package/dist/utils/diamondAbiGenerator.d.ts +113 -0
  128. package/dist/utils/diamondAbiGenerator.d.ts.map +1 -0
  129. package/dist/utils/diamondAbiGenerator.js +415 -0
  130. package/dist/utils/diamondAbiGenerator.js.map +1 -0
  131. package/dist/utils/diffDeployedFacets.d.ts +26 -0
  132. package/dist/utils/diffDeployedFacets.d.ts.map +1 -0
  133. package/dist/utils/diffDeployedFacets.js +106 -0
  134. package/dist/utils/diffDeployedFacets.js.map +1 -0
  135. package/dist/utils/index.d.ts +16 -0
  136. package/dist/utils/index.d.ts.map +1 -0
  137. package/dist/utils/index.js +35 -0
  138. package/dist/utils/index.js.map +1 -0
  139. package/dist/utils/loupe.d.ts +44 -0
  140. package/dist/utils/loupe.d.ts.map +1 -0
  141. package/dist/utils/loupe.js +128 -0
  142. package/dist/utils/loupe.js.map +1 -0
  143. package/dist/utils/rpcStore.d.ts +36 -0
  144. package/dist/utils/rpcStore.d.ts.map +1 -0
  145. package/dist/utils/rpcStore.js +166 -0
  146. package/dist/utils/rpcStore.js.map +1 -0
  147. package/dist/utils/signer.d.ts +36 -0
  148. package/dist/utils/signer.d.ts.map +1 -0
  149. package/dist/utils/signer.js +91 -0
  150. package/dist/utils/signer.js.map +1 -0
  151. package/dist/utils/txlogging.d.ts +13 -0
  152. package/dist/utils/txlogging.d.ts.map +1 -0
  153. package/dist/utils/txlogging.js +87 -0
  154. package/dist/utils/txlogging.js.map +1 -0
  155. package/dist/utils/workspaceSetup.d.ts +32 -0
  156. package/dist/utils/workspaceSetup.d.ts.map +1 -0
  157. package/dist/utils/workspaceSetup.js +311 -0
  158. package/dist/utils/workspaceSetup.js.map +1 -0
  159. package/docs/DIAMOND_ABI_CONFIGURATION_SUMMARY.md +40 -0
  160. package/docs/DIAMOND_ABI_GENERATION.md +220 -0
  161. package/docs/DIAMOND_ABI_GENERATOR_EXAMPLES.md +1204 -0
  162. package/docs/DIAMOND_ABI_GENERATOR_IMPLEMENTATION.md +947 -0
  163. package/docs/DIAMOND_ABI_GENERATOR_QUICK_REFERENCE.md +336 -0
  164. package/docs/README-DEFENDER.md +394 -0
  165. package/docs/README_DIAMOND_ABI_GENERATOR.md +303 -0
  166. package/docs/ROADMAP.md +250 -0
  167. package/docs/assets/image.png +0 -0
  168. package/docs/defender-integration.md +451 -0
  169. package/docs/diamond_module-BaseStrategy_design-v2.uxf +247 -0
  170. package/docs/diamond_module-BaseStrategy_design.uxf +272 -0
  171. package/docs/monitoring-troubleshooting.md +556 -0
  172. package/docs/testing-guide.md +713 -0
  173. package/examples/Diamond_Config_and_Deployment_examples/diamonds/ProxyDiamond/callbacks/ERC20ProxyFacet.ts +31 -0
  174. package/examples/Diamond_Config_and_Deployment_examples/diamonds/ProxyDiamond/proxydiamond.config.json +27 -0
  175. package/examples/Local_Hardhat_Deployer_Script_example/LocalDiamondDeployer.ts +180 -0
  176. package/examples/OZ_Defender_Deployer_Script_example/OZDiamondDeployer.ts +107 -0
  177. package/examples/OZ_Defender_Deployer_Script_example/run-oz-deploy.ts +17 -0
  178. package/examples/Test_examples/ProxyDiamondDeployment.test.ts +202 -0
  179. package/examples/defender-deployment/.env.example +35 -0
  180. package/examples/defender-deployment/README.md +415 -0
  181. package/examples/defender-deployment/contracts/ExampleDiamond.sol +41 -0
  182. package/examples/defender-deployment/contracts/ExampleFacet1.sol +84 -0
  183. package/examples/defender-deployment/contracts/ExampleFacet2.sol +104 -0
  184. package/examples/defender-deployment/contracts/UpgradeFacet.sol +92 -0
  185. package/examples/defender-deployment/deploy-script.ts +170 -0
  186. package/examples/defender-deployment/diamond-config.json +36 -0
  187. package/examples/defender-deployment/upgrade-script.ts +237 -0
  188. package/examples/hardhat-diamonds-config.example.ts +41 -0
  189. package/package.json +228 -0
  190. package/src/core/CallbackManager.ts +70 -0
  191. package/src/core/DeploymentManager.ts +64 -0
  192. package/src/core/Diamond.ts +197 -0
  193. package/src/core/DiamondDeployer.ts +36 -0
  194. package/src/core/index.ts +4 -0
  195. package/src/index.ts +5 -0
  196. package/src/repositories/DBDeploymentRepository.ts +22 -0
  197. package/src/repositories/DeploymentRepository.ts +12 -0
  198. package/src/repositories/FileDeploymentRepository.ts +67 -0
  199. package/src/repositories/databaseHandler.ts +14 -0
  200. package/src/repositories/index.ts +4 -0
  201. package/src/repositories/jsonFileHandler.ts +252 -0
  202. package/src/repositories/prismaDBHandler.ts +10 -0
  203. package/src/schemas/DeploymentSchema.ts +71 -0
  204. package/src/schemas/index.ts +1 -0
  205. package/src/strategies/BaseDeploymentStrategy.ts +649 -0
  206. package/src/strategies/DeploymentStrategy.ts +25 -0
  207. package/src/strategies/LocalDeploymentStrategy.ts +5 -0
  208. package/src/strategies/OZDefenderDeploymentStrategy.ts +849 -0
  209. package/src/strategies/RPCDeploymentStrategy.ts +881 -0
  210. package/src/strategies/index.ts +5 -0
  211. package/src/types/config.ts +34 -0
  212. package/src/types/defender.ts +24 -0
  213. package/src/types/deployments.ts +102 -0
  214. package/src/types/index.ts +4 -0
  215. package/src/types/rpc.ts +37 -0
  216. package/src/utils/common.ts +54 -0
  217. package/src/utils/configurationResolver.ts +141 -0
  218. package/src/utils/contractMapping.ts +220 -0
  219. package/src/utils/defenderClients.ts +22 -0
  220. package/src/utils/defenderStore.ts +62 -0
  221. package/src/utils/diamondAbiGenerator.ts +523 -0
  222. package/src/utils/diffDeployedFacets.ts +131 -0
  223. package/src/utils/index.ts +15 -0
  224. package/src/utils/loupe.ts +159 -0
  225. package/src/utils/rpcStore.ts +152 -0
  226. package/src/utils/signer.ts +93 -0
  227. package/src/utils/txlogging.ts +97 -0
  228. package/src/utils/workspaceSetup.ts +315 -0
  229. package/test/README.md +136 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RPCDeploymentStrategy.js","sourceRoot":"","sources":["../../src/strategies/RPCDeploymentStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { DeploymentStrategy } from "./DeploymentStrategy";
2
+ export { LocalDeploymentStrategy } from "./LocalDeploymentStrategy";
3
+ export { BaseDeploymentStrategy } from "./BaseDeploymentStrategy";
4
+ export { OZDefenderDeploymentStrategy } from './OZDefenderDeploymentStrategy';
5
+ export { RPCDeploymentStrategy } from './RPCDeploymentStrategy';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RPCDeploymentStrategy = exports.OZDefenderDeploymentStrategy = exports.BaseDeploymentStrategy = exports.LocalDeploymentStrategy = void 0;
4
+ var LocalDeploymentStrategy_1 = require("./LocalDeploymentStrategy");
5
+ Object.defineProperty(exports, "LocalDeploymentStrategy", { enumerable: true, get: function () { return LocalDeploymentStrategy_1.LocalDeploymentStrategy; } });
6
+ var BaseDeploymentStrategy_1 = require("./BaseDeploymentStrategy");
7
+ Object.defineProperty(exports, "BaseDeploymentStrategy", { enumerable: true, get: function () { return BaseDeploymentStrategy_1.BaseDeploymentStrategy; } });
8
+ var OZDefenderDeploymentStrategy_1 = require("./OZDefenderDeploymentStrategy");
9
+ Object.defineProperty(exports, "OZDefenderDeploymentStrategy", { enumerable: true, get: function () { return OZDefenderDeploymentStrategy_1.OZDefenderDeploymentStrategy; } });
10
+ var RPCDeploymentStrategy_1 = require("./RPCDeploymentStrategy");
11
+ Object.defineProperty(exports, "RPCDeploymentStrategy", { enumerable: true, get: function () { return RPCDeploymentStrategy_1.RPCDeploymentStrategy; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strategies/index.ts"],"names":[],"mappings":";;;AACA,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,+EAA8E;AAArE,4IAAA,4BAA4B,OAAA;AACrC,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA"}
@@ -0,0 +1,26 @@
1
+ export interface DiamondPathsConfig {
2
+ deploymentsPath?: string;
3
+ contractsPath?: string;
4
+ callbacksPath?: string;
5
+ configFilePath?: string;
6
+ deployedDiamondDataFilePath?: string;
7
+ writeDeployedDiamondData?: boolean;
8
+ diamondAbiPath?: string;
9
+ }
10
+ export interface DiamondsPathsConfig {
11
+ paths: Record<string, DiamondPathsConfig>;
12
+ }
13
+ export interface DiamondConfig extends DiamondPathsConfig {
14
+ diamondName: string;
15
+ networkName?: string;
16
+ chainId?: bigint | number;
17
+ diamondAbiFileName?: string;
18
+ }
19
+ export interface FileRepositoryConfig extends DiamondConfig {
20
+ chainId: number;
21
+ networkName: string;
22
+ }
23
+ export interface DiamondsConfig {
24
+ diamonds: Record<string, DiamondConfig>;
25
+ }
26
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ export type DefenderProposalStatus = 'pending' | 'approved' | 'executed' | 'failed';
2
+ export interface DefenderStepRecord {
3
+ stepName: string;
4
+ proposalId?: string;
5
+ status: DefenderProposalStatus;
6
+ description?: string;
7
+ txHash?: string;
8
+ timestamp?: number;
9
+ }
10
+ export interface DefenderDeploymentRegistry {
11
+ steps: DefenderStepRecord[];
12
+ network: string;
13
+ diamondName: string;
14
+ deploymentId: string;
15
+ }
16
+ export interface PollOptions {
17
+ maxAttempts?: number;
18
+ initialDelayMs?: number;
19
+ maxDelayMs?: number;
20
+ jitter?: boolean;
21
+ }
22
+ //# sourceMappingURL=defender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defender.d.ts","sourceRoot":"","sources":["../../src/types/defender.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEpF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=defender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defender.js","sourceRoot":"","sources":["../../src/types/defender.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { Signer } from "ethers";
2
+ import { JsonRpcProvider } from "@ethersproject/providers";
3
+ import { DeployedDiamondData } from "../schemas";
4
+ import Diamond from "../core/Diamond";
5
+ export interface IDeployConfig {
6
+ diamondName: string;
7
+ deploymentsPath: string;
8
+ contractsPath: string;
9
+ provider: JsonRpcProvider;
10
+ networkName: string;
11
+ chainId: number;
12
+ deployer?: Signer;
13
+ }
14
+ export interface CallbackArgs {
15
+ diamond: Diamond;
16
+ }
17
+ /**
18
+ * Interface for post deployment initialization callbacks.
19
+ */
20
+ export type FacetCallback = (networkDeployInfo: DeployedDiamondData) => Promise<void | boolean>;
21
+ /**
22
+ * Type for capturing the needed data to perform a diamond upgrade.
23
+ */
24
+ export interface FacetDeploymentInfo {
25
+ facetAddress: string;
26
+ action: FacetCutAction;
27
+ functionSelectors: string[];
28
+ name: string;
29
+ initFunc?: string;
30
+ version?: number;
31
+ }
32
+ export type NewDeployedFacet = {
33
+ priority: number;
34
+ address: string;
35
+ tx_hash: string;
36
+ version: number;
37
+ initFunction: string;
38
+ funcSelectors: string[];
39
+ deployInclude: string[];
40
+ deployExclude: string[];
41
+ verified: boolean;
42
+ };
43
+ export type NewDeployedFacets = Record<string, NewDeployedFacet>;
44
+ /**
45
+ * Type for the diamond cut “action”.
46
+ */
47
+ export declare enum FacetCutAction {
48
+ Add = 0,
49
+ Replace = 1,
50
+ Remove = 2
51
+ }
52
+ export declare enum RegistryFacetCutAction {
53
+ Add = 0,
54
+ Replace = 1,
55
+ Remove = 2,
56
+ Deployed = 3
57
+ }
58
+ export type FunctionSelectorRegistryEntry = {
59
+ facetName: string;
60
+ priority: number;
61
+ address: string;
62
+ action: RegistryFacetCutAction;
63
+ };
64
+ export type FacetCut = {
65
+ facetAddress: string;
66
+ action: RegistryFacetCutAction;
67
+ functionSelectors: string[];
68
+ name: string;
69
+ };
70
+ export type FacetCuts = FacetCut[];
71
+ //# sourceMappingURL=deployments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../src/types/deployments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,OAAO,MAAM,iBAAiB,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;CAGlB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,iBAAiB,EAAE,mBAAmB,KACnC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AAG7B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAC3B,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEnC;;GAEG;AACH,oBAAY,cAAc;IACxB,GAAG,IAAA;IACH,OAAO,IAAA;IACP,MAAM,IAAA;CACP;AAED,oBAAY,sBAAsB;IAChC,GAAG,IAAqB;IACxB,OAAO,IAAyB;IAChC,MAAM,IAAwB;IAC9B,QAAQ,IAAA;CACT;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAeF,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegistryFacetCutAction = exports.FacetCutAction = void 0;
4
+ /**
5
+ * Type for the diamond cut “action”.
6
+ */
7
+ var FacetCutAction;
8
+ (function (FacetCutAction) {
9
+ FacetCutAction[FacetCutAction["Add"] = 0] = "Add";
10
+ FacetCutAction[FacetCutAction["Replace"] = 1] = "Replace";
11
+ FacetCutAction[FacetCutAction["Remove"] = 2] = "Remove";
12
+ })(FacetCutAction || (exports.FacetCutAction = FacetCutAction = {}));
13
+ var RegistryFacetCutAction;
14
+ (function (RegistryFacetCutAction) {
15
+ RegistryFacetCutAction[RegistryFacetCutAction["Add"] = 0] = "Add";
16
+ RegistryFacetCutAction[RegistryFacetCutAction["Replace"] = 1] = "Replace";
17
+ RegistryFacetCutAction[RegistryFacetCutAction["Remove"] = 2] = "Remove";
18
+ RegistryFacetCutAction[RegistryFacetCutAction["Deployed"] = 3] = "Deployed";
19
+ })(RegistryFacetCutAction || (exports.RegistryFacetCutAction = RegistryFacetCutAction = {}));
20
+ //# sourceMappingURL=deployments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../src/types/deployments.ts"],"names":[],"mappings":";;;AA0DA;;GAEG;AACH,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iDAAG,CAAA;IACH,yDAAO,CAAA;IACP,uDAAM,CAAA;AACR,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,iEAAwB,CAAA;IACxB,yEAAgC,CAAA;IAChC,uEAA8B,CAAA;IAC9B,2EAAQ,CAAA;AACV,CAAC,EALW,sBAAsB,sCAAtB,sBAAsB,QAKjC"}
@@ -0,0 +1,5 @@
1
+ export * from './deployments';
2
+ export * from './config';
3
+ export * from './defender';
4
+ export * from './rpc';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./deployments"), exports);
18
+ __exportStar(require("./config"), exports);
19
+ __exportStar(require("./defender"), exports);
20
+ __exportStar(require("./rpc"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,2CAAyB;AACzB,6CAA2B;AAC3B,wCAAsB"}
@@ -0,0 +1,35 @@
1
+ export type RPCStepStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'skipped';
2
+ export interface RPCStepRecord {
3
+ stepName: string;
4
+ description?: string;
5
+ status: RPCStepStatus;
6
+ txHash?: string;
7
+ contractAddress?: string;
8
+ gasUsed?: string;
9
+ gasPrice?: string;
10
+ timestamp?: number;
11
+ error?: string;
12
+ retryCount?: number;
13
+ }
14
+ export interface RPCDeploymentRegistry {
15
+ diamondName: string;
16
+ deploymentId: string;
17
+ network: string;
18
+ chainId: number;
19
+ rpcUrl: string;
20
+ deployerAddress: string;
21
+ steps: RPCStepRecord[];
22
+ startedAt: number;
23
+ lastUpdated: number;
24
+ completedAt?: number;
25
+ failedAt?: number;
26
+ lastError?: string;
27
+ }
28
+ export interface RPCRetryOptions {
29
+ maxAttempts?: number;
30
+ initialDelayMs?: number;
31
+ maxDelayMs?: number;
32
+ backoffMultiplier?: number;
33
+ jitter?: boolean;
34
+ }
35
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/types/rpc.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/types/rpc.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import "@nomicfoundation/hardhat-ethers";
2
+ import { Interface } from "ethers";
3
+ import { CreateProposalRequest } from "@openzeppelin/defender-sdk-proposal-client";
4
+ import { DeployedDiamondData } from "../schemas";
5
+ declare global {
6
+ export var debuglog: debug.Debugger;
7
+ }
8
+ export declare const debuglog: import("debug").Debugger;
9
+ export declare const toBN: (value: string | number | bigint) => bigint;
10
+ export declare const GNUS_TOKEN_ID: bigint;
11
+ export declare const XMPL_TOKEN_ID: bigint;
12
+ export declare function toWei(value: number | string): bigint;
13
+ export declare function getSighash(funcSig: string): string;
14
+ export interface IDefenderViaInfo {
15
+ via: CreateProposalRequest['via'];
16
+ viaType: CreateProposalRequest['viaType'];
17
+ }
18
+ export declare function cutKey(diamondName: string, networkName: string, chainId: string): string;
19
+ export declare function getDeployedFacetInterfaces(deployedInfo: DeployedDiamondData): Interface[];
20
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":"AACA,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAsB,SAAS,EAAoD,MAAM,QAAQ,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAGnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,CAAC,IAAI,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;CACrC;AAKD,eAAO,MAAM,QAAQ,0BAAkB,CAAC;AAExC,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,MAAM,WAAkB,CAAC;AACvE,eAAO,MAAM,aAAa,QAAU,CAAC;AACrC,eAAO,MAAM,aAAa,QAAmB,CAAC;AAE9C,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;CAC3C;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxF;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAazF"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.XMPL_TOKEN_ID = exports.GNUS_TOKEN_ID = exports.toBN = exports.debuglog = void 0;
7
+ exports.toWei = toWei;
8
+ exports.getSighash = getSighash;
9
+ exports.cutKey = cutKey;
10
+ exports.getDeployedFacetInterfaces = getDeployedFacetInterfaces;
11
+ const hardhat_1 = __importDefault(require("hardhat"));
12
+ require("@nomicfoundation/hardhat-ethers");
13
+ const debug_1 = require("debug");
14
+ const ethers_1 = require("ethers");
15
+ global.debuglog = (0, debug_1.debug)('UnitTest:log');
16
+ global.debuglog.color = '158';
17
+ exports.debuglog = global.debuglog;
18
+ const toBN = (value) => BigInt(value);
19
+ exports.toBN = toBN;
20
+ exports.GNUS_TOKEN_ID = (0, exports.toBN)(0);
21
+ exports.XMPL_TOKEN_ID = (0, exports.toBN)(1234567890);
22
+ function toWei(value) {
23
+ return hardhat_1.default.ethers.parseEther(value.toString());
24
+ }
25
+ function getSighash(funcSig) {
26
+ return new ethers_1.Interface([`function ${funcSig}`]).getFunction(funcSig.split('(')[0])?.selector || '';
27
+ }
28
+ function cutKey(diamondName, networkName, chainId) {
29
+ const key = `${diamondName.toLowerCase()}-${networkName}-${chainId}`;
30
+ return key;
31
+ }
32
+ function getDeployedFacetInterfaces(deployedInfo) {
33
+ const interfaces = [];
34
+ for (const facetName of Object.keys(deployedInfo.DeployedFacets || {})) {
35
+ try {
36
+ const artifact = hardhat_1.default.artifacts.readArtifactSync(facetName);
37
+ interfaces.push(new ethers_1.Interface(artifact.abi));
38
+ }
39
+ catch (err) {
40
+ console.warn(`⚠️ Could not load artifact for facet ${facetName}:`, err.message);
41
+ }
42
+ }
43
+ return interfaces;
44
+ }
45
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":";;;;;;AAsBA,sBAEC;AAED,gCAEC;AAOD,wBAGC;AAED,gEAaC;AArDD,sDAA0B;AAC1B,2CAAyC;AACzC,iCAA8B;AAC9B,mCAAyG;AAUzG,MAAM,CAAC,QAAQ,GAAG,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC;AACxC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AAEjB,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAEjC,MAAM,IAAI,GAAG,CAAC,KAA+B,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAA1D,QAAA,IAAI,QAAsD;AAC1D,QAAA,aAAa,GAAG,IAAA,YAAI,EAAC,CAAC,CAAC,CAAC;AACxB,QAAA,aAAa,GAAG,IAAA,YAAI,EAAC,UAAU,CAAC,CAAC;AAE9C,SAAgB,KAAK,CAAC,KAAsB;IAC1C,OAAO,iBAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,IAAI,kBAAS,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC;AACnG,CAAC;AAOD,SAAgB,MAAM,CAAC,WAAmB,EAAE,WAAmB,EAAE,OAAe;IAC9E,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,0BAA0B,CAAC,YAAiC;IAC1E,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAa,iBAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACrE,UAAU,CAAC,IAAI,CAAC,IAAI,kBAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,wCAAwC,SAAS,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { DiamondConfig } from '../types';
2
+ /**
3
+ * Configuration resolver that supports both standalone and hardhat-diamonds module configurations
4
+ */
5
+ export declare class ConfigurationResolver {
6
+ /**
7
+ * Resolves diamond configuration from multiple sources in order of priority:
8
+ * 1. Hardhat-diamonds configuration from hardhat.config.ts (if available)
9
+ * 2. Standalone JSON configuration files
10
+ * 3. Default configuration with conventional paths
11
+ */
12
+ static resolveDiamondConfig(diamondName: string, configPath?: string, networkName?: string, chainId?: number): Promise<DiamondConfig>;
13
+ /**
14
+ * Attempts to load configuration from hardhat-diamonds module
15
+ */
16
+ private static tryLoadHardhatDiamondsConfig;
17
+ /**
18
+ * Loads configuration from a standalone JSON config file
19
+ */
20
+ private static loadStandaloneConfig;
21
+ /**
22
+ * Returns default configuration using conventional paths
23
+ */
24
+ private static getDefaultConfig;
25
+ /**
26
+ * Creates the necessary directory structure for a diamond configuration
27
+ */
28
+ static ensureDirectoryStructure(config: DiamondConfig): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=configurationResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurationResolver.d.ts","sourceRoot":"","sources":["../../src/utils/configurationResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;;;;OAKG;WACU,oBAAoB,CAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,GAAE,MAAkB,EAC/B,OAAO,GAAE,MAAc,GACtB,OAAO,CAAC,aAAa,CAAC;IA8BzB;;OAEG;mBACkB,4BAA4B;IA4BjD;;OAEG;mBACkB,oBAAoB;IAoBzC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;OAEG;WACU,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAc5E"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ConfigurationResolver = void 0;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs-extra"));
39
+ /**
40
+ * Configuration resolver that supports both standalone and hardhat-diamonds module configurations
41
+ */
42
+ class ConfigurationResolver {
43
+ /**
44
+ * Resolves diamond configuration from multiple sources in order of priority:
45
+ * 1. Hardhat-diamonds configuration from hardhat.config.ts (if available)
46
+ * 2. Standalone JSON configuration files
47
+ * 3. Default configuration with conventional paths
48
+ */
49
+ static async resolveDiamondConfig(diamondName, configPath, networkName = 'hardhat', chainId = 31337) {
50
+ // Try to get configuration from hardhat-diamonds module if available
51
+ const hardhatConfig = await this.tryLoadHardhatDiamondsConfig(diamondName);
52
+ if (hardhatConfig) {
53
+ return hardhatConfig;
54
+ }
55
+ // Try to load from provided config path
56
+ if (configPath && await fs.pathExists(configPath)) {
57
+ return await this.loadStandaloneConfig(configPath, diamondName, networkName, chainId);
58
+ }
59
+ // Try to find config in conventional locations
60
+ const conventionalPaths = [
61
+ path.join(process.cwd(), 'diamonds', diamondName, `${diamondName.toLowerCase()}.config.json`),
62
+ path.join(process.cwd(), `${diamondName.toLowerCase()}.config.json`),
63
+ path.join(process.cwd(), 'diamond.config.json'),
64
+ ];
65
+ for (const conventionalPath of conventionalPaths) {
66
+ if (await fs.pathExists(conventionalPath)) {
67
+ return await this.loadStandaloneConfig(conventionalPath, diamondName, networkName, chainId);
68
+ }
69
+ }
70
+ // Return default configuration
71
+ return this.getDefaultConfig(diamondName, networkName, chainId);
72
+ }
73
+ /**
74
+ * Attempts to load configuration from hardhat-diamonds module
75
+ */
76
+ static async tryLoadHardhatDiamondsConfig(diamondName) {
77
+ try {
78
+ // Try to import hardhat-diamonds configuration
79
+ const hardhatRuntime = require('hardhat');
80
+ // Check if hardhat-diamonds plugin is loaded
81
+ if (hardhatRuntime.config.diamonds && hardhatRuntime.config.diamonds[diamondName]) {
82
+ const hardhatDiamondConfig = hardhatRuntime.config.diamonds[diamondName];
83
+ return {
84
+ diamondName,
85
+ networkName: hardhatRuntime.network.name,
86
+ chainId: hardhatRuntime.network.config.chainId || 31337,
87
+ deploymentsPath: hardhatDiamondConfig.deploymentsPath || path.join(process.cwd(), 'diamonds'),
88
+ contractsPath: hardhatDiamondConfig.contractsPath || path.join(process.cwd(), 'contracts'),
89
+ callbacksPath: hardhatDiamondConfig.callbacksPath || path.join(process.cwd(), 'diamonds', diamondName, 'callbacks'),
90
+ configFilePath: hardhatDiamondConfig.configFilePath || path.join(process.cwd(), 'diamonds', diamondName, `${diamondName.toLowerCase()}.config.json`),
91
+ deployedDiamondDataFilePath: hardhatDiamondConfig.deployedDiamondDataFilePath || path.join(process.cwd(), 'diamonds', diamondName, 'deployments', `${diamondName.toLowerCase()}-${hardhatRuntime.network.name}-${hardhatRuntime.network.config.chainId}.json`),
92
+ };
93
+ }
94
+ }
95
+ catch (error) {
96
+ // hardhat-diamonds module not available or not configured
97
+ // This is expected in standalone mode
98
+ }
99
+ return null;
100
+ }
101
+ /**
102
+ * Loads configuration from a standalone JSON config file
103
+ */
104
+ static async loadStandaloneConfig(configPath, diamondName, networkName, chainId) {
105
+ const configDir = path.dirname(configPath);
106
+ return {
107
+ diamondName,
108
+ networkName,
109
+ chainId,
110
+ deploymentsPath: path.join(configDir, 'deployments'),
111
+ contractsPath: path.join(process.cwd(), 'contracts'),
112
+ callbacksPath: path.join(configDir, 'callbacks'),
113
+ configFilePath: configPath,
114
+ deployedDiamondDataFilePath: path.join(configDir, 'deployments', `${diamondName.toLowerCase()}-${networkName}-${chainId}.json`),
115
+ };
116
+ }
117
+ /**
118
+ * Returns default configuration using conventional paths
119
+ */
120
+ static getDefaultConfig(diamondName, networkName, chainId) {
121
+ return {
122
+ diamondName,
123
+ networkName,
124
+ chainId,
125
+ deploymentsPath: path.join(process.cwd(), 'diamonds'),
126
+ contractsPath: path.join(process.cwd(), 'contracts'),
127
+ callbacksPath: path.join(process.cwd(), 'diamonds', diamondName, 'callbacks'),
128
+ configFilePath: path.join(process.cwd(), 'diamonds', diamondName, `${diamondName.toLowerCase()}.config.json`),
129
+ deployedDiamondDataFilePath: path.join(process.cwd(), 'diamonds', diamondName, 'deployments', `${diamondName.toLowerCase()}-${networkName}-${chainId}.json`),
130
+ };
131
+ }
132
+ /**
133
+ * Creates the necessary directory structure for a diamond configuration
134
+ */
135
+ static async ensureDirectoryStructure(config) {
136
+ if (config.deploymentsPath) {
137
+ await fs.ensureDir(config.deploymentsPath);
138
+ }
139
+ if (config.configFilePath) {
140
+ await fs.ensureDir(path.dirname(config.configFilePath));
141
+ }
142
+ if (config.callbacksPath) {
143
+ await fs.ensureDir(config.callbacksPath);
144
+ }
145
+ if (config.deployedDiamondDataFilePath) {
146
+ await fs.ensureDir(path.dirname(config.deployedDiamondDataFilePath));
147
+ }
148
+ }
149
+ }
150
+ exports.ConfigurationResolver = ConfigurationResolver;
151
+ //# sourceMappingURL=configurationResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurationResolver.js","sourceRoot":"","sources":["../../src/utils/configurationResolver.ts"],"names":[],"mappings":"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"}