@enclave-e3/contracts 0.1.4 → 0.1.6

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 (467) hide show
  1. package/README.md +46 -2
  2. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +135 -0
  3. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/artifacts.d.ts +27 -0
  4. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +77 -0
  5. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +126 -0
  6. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/artifacts.d.ts +43 -0
  7. package/artifacts/build-info/solc-0_8_28-5150b9e6b6cf4df4986fccba97bea37a16fdfebc.json +311 -0
  8. package/artifacts/build-info/solc-0_8_28-5150b9e6b6cf4df4986fccba97bea37a16fdfebc.output.json +1 -0
  9. package/artifacts/contracts/Enclave.sol/Enclave.json +239 -147
  10. package/artifacts/contracts/Enclave.sol/artifacts.d.ts +6 -6
  11. package/artifacts/contracts/interfaces/IBondingRegistry.sol/IBondingRegistry.json +881 -0
  12. package/artifacts/contracts/interfaces/IBondingRegistry.sol/artifacts.d.ts +27 -0
  13. package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +326 -10
  14. package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +2 -2
  15. package/artifacts/contracts/interfaces/IComputeProvider.sol/IComputeProvider.json +1 -1
  16. package/artifacts/contracts/interfaces/IComputeProvider.sol/artifacts.d.ts +1 -1
  17. package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/IDecryptionVerifier.json +1 -1
  18. package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/artifacts.d.ts +1 -1
  19. package/artifacts/contracts/interfaces/IE3Program.sol/IE3Program.json +21 -3
  20. package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +2 -2
  21. package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +247 -27
  22. package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +2 -2
  23. package/artifacts/contracts/interfaces/{IRegistryFilter.sol/IRegistryFilter.json → ISlashVerifier.sol/ISlashVerifier.json} +10 -10
  24. package/artifacts/contracts/interfaces/ISlashVerifier.sol/artifacts.d.ts +27 -0
  25. package/artifacts/contracts/interfaces/ISlashingManager.sol/ISlashingManager.json +759 -0
  26. package/artifacts/contracts/interfaces/ISlashingManager.sol/artifacts.d.ts +27 -0
  27. package/artifacts/contracts/lib/ExitQueueLib.sol/ExitQueueLib.json +116 -0
  28. package/artifacts/contracts/lib/ExitQueueLib.sol/artifacts.d.ts +27 -0
  29. package/artifacts/contracts/registry/BondingRegistry.sol/BondingRegistry.json +1217 -0
  30. package/artifacts/contracts/registry/BondingRegistry.sol/artifacts.d.ts +27 -0
  31. package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +351 -57
  32. package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +6 -6
  33. package/artifacts/contracts/slashing/SlashingManager.sol/SlashingManager.json +1107 -0
  34. package/artifacts/contracts/slashing/SlashingManager.sol/artifacts.d.ts +27 -0
  35. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +328 -12
  36. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +328 -12
  37. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +8 -8
  38. package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +4 -4
  39. package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +4 -4
  40. package/artifacts/contracts/test/MockDecryptionVerifier.sol/MockDecryptionVerifier.json +3 -3
  41. package/artifacts/contracts/test/MockDecryptionVerifier.sol/artifacts.d.ts +3 -3
  42. package/artifacts/contracts/test/MockE3Program.sol/MockE3Program.json +26 -32
  43. package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +4 -4
  44. package/artifacts/contracts/test/MockSlashingVerifier.sol/MockSlashingVerifier.json +38 -0
  45. package/artifacts/contracts/test/MockSlashingVerifier.sol/artifacts.d.ts +27 -0
  46. package/artifacts/contracts/test/MockStableToken.sol/MockUSDC.json +425 -0
  47. package/artifacts/contracts/test/MockStableToken.sol/artifacts.d.ts +27 -0
  48. package/artifacts/contracts/token/EnclaveTicketToken.sol/EnclaveTicketToken.json +1222 -0
  49. package/artifacts/contracts/token/EnclaveTicketToken.sol/artifacts.d.ts +27 -0
  50. package/artifacts/contracts/token/EnclaveToken.sol/EnclaveToken.json +1460 -0
  51. package/artifacts/contracts/token/EnclaveToken.sol/artifacts.d.ts +27 -0
  52. package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +3 -3
  53. package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +3 -3
  54. package/contracts/Enclave.sol +230 -81
  55. package/contracts/interfaces/IBondingRegistry.sol +446 -0
  56. package/contracts/interfaces/ICiphernodeRegistry.sol +153 -9
  57. package/contracts/interfaces/IComputeProvider.sol +12 -2
  58. package/contracts/interfaces/IDecryptionVerifier.sol +11 -6
  59. package/contracts/interfaces/IE3.sol +21 -17
  60. package/contracts/interfaces/IE3Program.sol +30 -17
  61. package/contracts/interfaces/IEnclave.sol +95 -21
  62. package/contracts/interfaces/ISlashVerifier.sol +23 -0
  63. package/contracts/interfaces/ISlashingManager.sol +426 -0
  64. package/contracts/lib/ExitQueueLib.sol +490 -0
  65. package/contracts/registry/BondingRegistry.sol +737 -0
  66. package/contracts/registry/CiphernodeRegistryOwnable.sol +393 -26
  67. package/contracts/slashing/SlashingManager.sol +367 -0
  68. package/contracts/test/MockCiphernodeRegistry.sol +118 -24
  69. package/contracts/test/MockComputeProvider.sol +2 -2
  70. package/contracts/test/MockE3Program.sol +17 -14
  71. package/contracts/test/MockSlashingVerifier.sol +19 -0
  72. package/contracts/test/MockStableToken.sol +28 -0
  73. package/contracts/token/EnclaveTicketToken.sol +243 -0
  74. package/contracts/token/EnclaveToken.sol +267 -0
  75. package/dist/hardhat.config.d.ts.map +1 -1
  76. package/dist/hardhat.config.js +35 -16
  77. package/dist/ignition/modules/{mockInputValidator.d.ts → bondingRegistry.d.ts} +1 -1
  78. package/dist/ignition/modules/bondingRegistry.d.ts.map +1 -0
  79. package/dist/ignition/modules/bondingRegistry.js +35 -0
  80. package/dist/ignition/modules/ciphernodeRegistry.d.ts.map +1 -1
  81. package/dist/ignition/modules/ciphernodeRegistry.js +12 -2
  82. package/dist/ignition/modules/enclave.d.ts.map +1 -1
  83. package/dist/ignition/modules/enclave.js +16 -7
  84. package/dist/ignition/modules/{naiveRegistryFilter.d.ts → enclaveTicketToken.d.ts} +1 -1
  85. package/dist/ignition/modules/enclaveTicketToken.d.ts.map +1 -0
  86. package/dist/ignition/modules/enclaveTicketToken.js +17 -0
  87. package/dist/ignition/modules/enclaveToken.d.ts +3 -0
  88. package/dist/ignition/modules/enclaveToken.d.ts.map +1 -0
  89. package/dist/ignition/modules/{mockInputValidator.js → enclaveToken.js} +4 -4
  90. package/dist/ignition/modules/mockCiphernodeRegistry.d.ts.map +1 -1
  91. package/dist/ignition/modules/mockCiphernodeRegistry.js +0 -1
  92. package/dist/ignition/modules/mockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
  93. package/dist/ignition/modules/mockCiphernodeRegistryEmptyKey.js +0 -1
  94. package/dist/ignition/modules/mockComputeProvider.d.ts.map +1 -1
  95. package/dist/ignition/modules/mockComputeProvider.js +0 -1
  96. package/dist/ignition/modules/mockDecryptionVerifier.d.ts.map +1 -1
  97. package/dist/ignition/modules/mockDecryptionVerifier.js +0 -1
  98. package/dist/ignition/modules/mockE3Program.d.ts.map +1 -1
  99. package/dist/ignition/modules/mockE3Program.js +1 -3
  100. package/dist/ignition/modules/mockSlashingVerifier.d.ts +3 -0
  101. package/dist/ignition/modules/mockSlashingVerifier.d.ts.map +1 -0
  102. package/dist/ignition/modules/mockSlashingVerifier.js +10 -0
  103. package/dist/ignition/modules/mockStableToken.d.ts +3 -0
  104. package/dist/ignition/modules/mockStableToken.d.ts.map +1 -0
  105. package/dist/ignition/modules/mockStableToken.js +11 -0
  106. package/dist/ignition/modules/poseidonT3.d.ts.map +1 -1
  107. package/dist/ignition/modules/poseidonT3.js +0 -1
  108. package/dist/ignition/modules/slashingManager.d.ts +3 -0
  109. package/dist/ignition/modules/slashingManager.d.ts.map +1 -0
  110. package/dist/ignition/modules/slashingManager.js +16 -0
  111. package/dist/scripts/cleanIgnitionState.d.ts +12 -0
  112. package/dist/scripts/cleanIgnitionState.d.ts.map +1 -0
  113. package/dist/scripts/cleanIgnitionState.js +41 -0
  114. package/dist/scripts/deployAndSave/bondingRegistry.d.ts +38 -0
  115. package/dist/scripts/deployAndSave/bondingRegistry.d.ts.map +1 -0
  116. package/dist/scripts/deployAndSave/bondingRegistry.js +133 -0
  117. package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.d.ts +11 -1
  118. package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.d.ts.map +1 -1
  119. package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.js +76 -19
  120. package/dist/scripts/deployAndSave/enclave.d.ts +16 -2
  121. package/dist/scripts/deployAndSave/enclave.d.ts.map +1 -1
  122. package/dist/scripts/deployAndSave/enclave.js +89 -22
  123. package/dist/scripts/deployAndSave/enclaveTicketToken.d.ts +20 -0
  124. package/dist/scripts/deployAndSave/enclaveTicketToken.d.ts.map +1 -0
  125. package/dist/scripts/deployAndSave/enclaveTicketToken.js +41 -0
  126. package/dist/scripts/deployAndSave/enclaveToken.d.ts +18 -0
  127. package/dist/scripts/deployAndSave/enclaveToken.d.ts.map +1 -0
  128. package/dist/scripts/deployAndSave/enclaveToken.js +57 -0
  129. package/dist/scripts/deployAndSave/mockComputeProvider.d.ts.map +1 -1
  130. package/dist/scripts/deployAndSave/mockComputeProvider.js +5 -5
  131. package/dist/scripts/deployAndSave/mockDecryptionVerifier.d.ts.map +1 -1
  132. package/dist/scripts/deployAndSave/mockDecryptionVerifier.js +5 -5
  133. package/dist/scripts/deployAndSave/mockProgram.d.ts +1 -2
  134. package/dist/scripts/deployAndSave/mockProgram.d.ts.map +1 -1
  135. package/dist/scripts/deployAndSave/mockProgram.js +7 -19
  136. package/dist/scripts/deployAndSave/mockStableToken.d.ts +18 -0
  137. package/dist/scripts/deployAndSave/mockStableToken.d.ts.map +1 -0
  138. package/dist/scripts/deployAndSave/mockStableToken.js +36 -0
  139. package/dist/scripts/deployAndSave/poseidonT3.d.ts +11 -0
  140. package/dist/scripts/deployAndSave/poseidonT3.d.ts.map +1 -0
  141. package/dist/scripts/deployAndSave/poseidonT3.js +41 -0
  142. package/dist/scripts/deployAndSave/slashingManager.d.ts +19 -0
  143. package/dist/scripts/deployAndSave/slashingManager.d.ts.map +1 -0
  144. package/dist/scripts/deployAndSave/slashingManager.js +38 -0
  145. package/dist/scripts/deployEnclave.d.ts.map +1 -1
  146. package/dist/scripts/deployEnclave.js +109 -23
  147. package/dist/scripts/deployMocks.d.ts +0 -1
  148. package/dist/scripts/deployMocks.d.ts.map +1 -1
  149. package/dist/scripts/deployMocks.js +3 -6
  150. package/dist/scripts/index.d.ts +7 -2
  151. package/dist/scripts/index.d.ts.map +1 -1
  152. package/dist/scripts/index.js +7 -2
  153. package/dist/scripts/proxy.d.ts +22 -0
  154. package/dist/scripts/proxy.d.ts.map +1 -0
  155. package/dist/scripts/proxy.js +36 -0
  156. package/dist/scripts/runVerification.d.ts +2 -0
  157. package/dist/scripts/runVerification.d.ts.map +1 -0
  158. package/dist/scripts/runVerification.js +16 -0
  159. package/dist/scripts/upgrade/bondingRegistry.d.ts +6 -0
  160. package/dist/scripts/upgrade/bondingRegistry.d.ts.map +1 -0
  161. package/dist/scripts/upgrade/bondingRegistry.js +49 -0
  162. package/dist/scripts/upgrade/ciphernodeRegistryOwnable.d.ts +6 -0
  163. package/dist/scripts/upgrade/ciphernodeRegistryOwnable.d.ts.map +1 -0
  164. package/dist/scripts/upgrade/ciphernodeRegistryOwnable.js +52 -0
  165. package/dist/scripts/upgrade/enclave.d.ts +6 -0
  166. package/dist/scripts/upgrade/enclave.d.ts.map +1 -0
  167. package/dist/scripts/upgrade/enclave.js +49 -0
  168. package/dist/scripts/utils.d.ts +51 -2
  169. package/dist/scripts/utils.d.ts.map +1 -1
  170. package/dist/scripts/utils.js +67 -4
  171. package/dist/scripts/verify.d.ts +6 -0
  172. package/dist/scripts/verify.d.ts.map +1 -0
  173. package/dist/scripts/verify.js +142 -0
  174. package/dist/tasks/ciphernode.d.ts +2 -0
  175. package/dist/tasks/ciphernode.d.ts.map +1 -1
  176. package/dist/tasks/ciphernode.js +290 -19
  177. package/dist/tasks/enclave.d.ts.map +1 -1
  178. package/dist/tasks/enclave.js +76 -31
  179. package/dist/test/Enclave.spec.js +377 -370
  180. package/dist/test/Registry/BondingRegistry.spec.d.ts +2 -0
  181. package/dist/test/Registry/BondingRegistry.spec.d.ts.map +1 -0
  182. package/dist/test/Registry/BondingRegistry.spec.js +684 -0
  183. package/dist/test/Registry/CiphernodeRegistryOwnable.spec.d.ts.map +1 -0
  184. package/dist/test/Registry/CiphernodeRegistryOwnable.spec.js +374 -0
  185. package/dist/test/Slashing/SlashingManager.spec.d.ts +2 -0
  186. package/dist/test/Slashing/SlashingManager.spec.d.ts.map +1 -0
  187. package/dist/test/Slashing/SlashingManager.spec.js +672 -0
  188. package/dist/types/@openzeppelin/contracts/index.d.ts +3 -0
  189. package/dist/types/@openzeppelin/contracts/index.d.ts.map +1 -0
  190. package/dist/types/@openzeppelin/contracts/proxy/index.d.ts +3 -0
  191. package/dist/types/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
  192. package/dist/types/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts +97 -0
  193. package/dist/types/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts.map +1 -0
  194. package/dist/types/{contracts/registry/NaiveRegistryFilter.js → @openzeppelin/contracts/proxy/transparent/ProxyAdmin.js} +0 -4
  195. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts +81 -0
  196. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts.map +1 -0
  197. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.js +12 -0
  198. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts +52 -0
  199. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts.map +1 -0
  200. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.js +8 -0
  201. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +3 -0
  202. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts.map +1 -0
  203. package/dist/types/@openzeppelin/contracts/proxy/transparent/index.d.ts +4 -0
  204. package/dist/types/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
  205. package/dist/types/@openzeppelin/index.d.ts +3 -0
  206. package/dist/types/@openzeppelin/index.d.ts.map +1 -0
  207. package/dist/types/contracts/Enclave.d.ts +126 -53
  208. package/dist/types/contracts/Enclave.d.ts.map +1 -1
  209. package/dist/types/contracts/Enclave.js +12 -0
  210. package/dist/types/contracts/index.d.ts +6 -0
  211. package/dist/types/contracts/index.d.ts.map +1 -1
  212. package/dist/types/contracts/interfaces/IBondingRegistry.d.ts +622 -0
  213. package/dist/types/contracts/interfaces/IBondingRegistry.d.ts.map +1 -0
  214. package/dist/types/contracts/interfaces/IBondingRegistry.js +24 -0
  215. package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts +245 -15
  216. package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts.map +1 -1
  217. package/dist/types/contracts/interfaces/ICiphernodeRegistry.js +16 -0
  218. package/dist/types/contracts/interfaces/IE3Program.d.ts +20 -10
  219. package/dist/types/contracts/interfaces/IE3Program.d.ts.map +1 -1
  220. package/dist/types/contracts/interfaces/IEnclave.d.ts +149 -20
  221. package/dist/types/contracts/interfaces/IEnclave.d.ts.map +1 -1
  222. package/dist/types/contracts/interfaces/IEnclave.js +12 -0
  223. package/dist/types/contracts/interfaces/{IRegistryFilter.d.ts → ISlashVerifier.d.ts} +16 -16
  224. package/dist/types/contracts/interfaces/ISlashVerifier.d.ts.map +1 -0
  225. package/dist/types/contracts/interfaces/ISlashVerifier.js +1 -0
  226. package/dist/types/contracts/interfaces/ISlashingManager.d.ts +384 -0
  227. package/dist/types/contracts/interfaces/ISlashingManager.d.ts.map +1 -0
  228. package/dist/types/contracts/interfaces/ISlashingManager.js +24 -0
  229. package/dist/types/contracts/interfaces/index.d.ts +3 -2
  230. package/dist/types/contracts/interfaces/index.d.ts.map +1 -1
  231. package/dist/types/contracts/lib/ExitQueueLib.d.ts +73 -0
  232. package/dist/types/contracts/lib/ExitQueueLib.d.ts.map +1 -0
  233. package/dist/types/contracts/lib/ExitQueueLib.js +12 -0
  234. package/dist/types/contracts/lib/index.d.ts +2 -0
  235. package/dist/types/contracts/lib/index.d.ts.map +1 -0
  236. package/dist/types/contracts/lib/index.js +1 -0
  237. package/dist/types/contracts/registry/BondingRegistry.d.ts +821 -0
  238. package/dist/types/contracts/registry/BondingRegistry.d.ts.map +1 -0
  239. package/dist/types/contracts/registry/BondingRegistry.js +44 -0
  240. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts +194 -34
  241. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts.map +1 -1
  242. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.js +20 -0
  243. package/dist/types/contracts/registry/index.d.ts +1 -1
  244. package/dist/types/contracts/registry/index.d.ts.map +1 -1
  245. package/dist/types/contracts/slashing/SlashingManager.d.ts +592 -0
  246. package/dist/types/contracts/slashing/SlashingManager.d.ts.map +1 -0
  247. package/dist/types/contracts/slashing/SlashingManager.js +36 -0
  248. package/dist/types/contracts/slashing/index.d.ts +2 -0
  249. package/dist/types/contracts/slashing/index.d.ts.map +1 -0
  250. package/dist/types/contracts/slashing/index.js +1 -0
  251. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts +247 -17
  252. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts.map +1 -1
  253. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.js +16 -0
  254. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts +247 -17
  255. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
  256. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.js +16 -0
  257. package/dist/types/contracts/test/MockE3Program.d.ts +20 -14
  258. package/dist/types/contracts/test/MockE3Program.d.ts.map +1 -1
  259. package/dist/types/contracts/test/{MockInputValidator.d.ts → MockSlashingVerifier.d.ts} +15 -15
  260. package/dist/types/contracts/test/MockSlashingVerifier.d.ts.map +1 -0
  261. package/dist/types/contracts/test/MockSlashingVerifier.js +1 -0
  262. package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.d.ts +227 -0
  263. package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.d.ts.map +1 -0
  264. package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.js +12 -0
  265. package/dist/types/contracts/test/MockStableToken.sol/index.d.ts +2 -0
  266. package/dist/types/contracts/test/MockStableToken.sol/index.d.ts.map +1 -0
  267. package/dist/types/contracts/test/MockStableToken.sol/index.js +1 -0
  268. package/dist/types/contracts/test/index.d.ts +3 -3
  269. package/dist/types/contracts/test/index.d.ts.map +1 -1
  270. package/dist/types/contracts/token/EnclaveTicketToken.d.ts +574 -0
  271. package/dist/types/contracts/token/EnclaveTicketToken.d.ts.map +1 -0
  272. package/dist/types/contracts/token/EnclaveTicketToken.js +24 -0
  273. package/dist/types/contracts/token/EnclaveToken.d.ts +775 -0
  274. package/dist/types/contracts/token/EnclaveToken.d.ts.map +1 -0
  275. package/dist/types/contracts/token/EnclaveToken.js +48 -0
  276. package/dist/types/contracts/token/index.d.ts +3 -0
  277. package/dist/types/contracts/token/index.d.ts.map +1 -0
  278. package/dist/types/contracts/token/index.js +1 -0
  279. package/dist/types/factories/@openzeppelin/contracts/index.d.ts +2 -0
  280. package/dist/types/factories/@openzeppelin/contracts/index.d.ts.map +1 -0
  281. package/dist/types/factories/@openzeppelin/contracts/index.js +4 -0
  282. package/dist/types/factories/@openzeppelin/contracts/proxy/index.d.ts +2 -0
  283. package/dist/types/factories/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
  284. package/dist/types/factories/@openzeppelin/contracts/proxy/index.js +4 -0
  285. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +118 -0
  286. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -0
  287. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +157 -0
  288. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts +57 -0
  289. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts.map +1 -0
  290. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.js +78 -0
  291. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +105 -0
  292. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts.map +1 -0
  293. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +141 -0
  294. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +3 -0
  295. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts.map +1 -0
  296. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.js +5 -0
  297. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
  298. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
  299. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.js +5 -0
  300. package/dist/types/factories/@openzeppelin/index.d.ts +2 -0
  301. package/dist/types/factories/@openzeppelin/index.d.ts.map +1 -0
  302. package/dist/types/factories/@openzeppelin/index.js +4 -0
  303. package/dist/types/factories/contracts/Enclave__factory.d.ts +190 -104
  304. package/dist/types/factories/contracts/Enclave__factory.d.ts.map +1 -1
  305. package/dist/types/factories/contracts/Enclave__factory.js +241 -134
  306. package/dist/types/factories/contracts/index.d.ts +3 -0
  307. package/dist/types/factories/contracts/index.d.ts.map +1 -1
  308. package/dist/types/factories/contracts/index.js +3 -0
  309. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts +678 -0
  310. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts.map +1 -0
  311. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.js +882 -0
  312. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts +253 -9
  313. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts.map +1 -1
  314. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.js +325 -9
  315. package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts +16 -2
  316. package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts.map +1 -1
  317. package/dist/types/factories/contracts/interfaces/IE3Program__factory.js +20 -2
  318. package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts +190 -24
  319. package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts.map +1 -1
  320. package/dist/types/factories/contracts/interfaces/IEnclave__factory.js +246 -26
  321. package/dist/types/factories/contracts/interfaces/ISlashVerifier__factory.d.ts +26 -0
  322. package/dist/types/factories/contracts/interfaces/ISlashVerifier__factory.d.ts.map +1 -0
  323. package/dist/types/factories/contracts/interfaces/{IRegistryFilter__factory.js → ISlashVerifier__factory.js} +7 -7
  324. package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.d.ts +594 -0
  325. package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.d.ts.map +1 -0
  326. package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.js +760 -0
  327. package/dist/types/factories/contracts/interfaces/index.d.ts +3 -2
  328. package/dist/types/factories/contracts/interfaces/index.d.ts.map +1 -1
  329. package/dist/types/factories/contracts/interfaces/index.js +3 -2
  330. package/dist/types/factories/contracts/lib/ExitQueueLib__factory.d.ts +107 -0
  331. package/dist/types/factories/contracts/lib/ExitQueueLib__factory.d.ts.map +1 -0
  332. package/dist/types/factories/contracts/lib/ExitQueueLib__factory.js +138 -0
  333. package/dist/types/factories/contracts/lib/index.d.ts +2 -0
  334. package/dist/types/factories/contracts/lib/index.d.ts.map +1 -0
  335. package/dist/types/factories/contracts/lib/index.js +4 -0
  336. package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts +958 -0
  337. package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts.map +1 -0
  338. package/dist/types/factories/contracts/registry/BondingRegistry__factory.js +1239 -0
  339. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts +272 -40
  340. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts.map +1 -1
  341. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.js +343 -49
  342. package/dist/types/factories/contracts/registry/index.d.ts +1 -1
  343. package/dist/types/factories/contracts/registry/index.d.ts.map +1 -1
  344. package/dist/types/factories/contracts/registry/index.js +1 -1
  345. package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts +879 -0
  346. package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts.map +1 -0
  347. package/dist/types/factories/contracts/slashing/SlashingManager__factory.js +1129 -0
  348. package/dist/types/factories/contracts/slashing/index.d.ts +2 -0
  349. package/dist/types/factories/contracts/slashing/index.d.ts.map +1 -0
  350. package/dist/types/factories/contracts/slashing/index.js +4 -0
  351. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts +254 -10
  352. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts.map +1 -1
  353. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.js +326 -10
  354. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts +254 -10
  355. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts.map +1 -1
  356. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.js +326 -10
  357. package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts +2 -2
  358. package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts.map +1 -1
  359. package/dist/types/factories/contracts/test/MockComputeProvider__factory.js +2 -2
  360. package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.d.ts +1 -1
  361. package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.d.ts.map +1 -1
  362. package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.js +1 -1
  363. package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts +23 -27
  364. package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts.map +1 -1
  365. package/dist/types/factories/contracts/test/MockE3Program__factory.js +28 -34
  366. package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.d.ts +43 -0
  367. package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.d.ts.map +1 -0
  368. package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.js +60 -0
  369. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts +338 -0
  370. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts.map +1 -0
  371. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.js +447 -0
  372. package/dist/types/factories/contracts/test/MockStableToken.sol/index.d.ts +2 -0
  373. package/dist/types/factories/contracts/test/MockStableToken.sol/index.d.ts.map +1 -0
  374. package/dist/types/factories/contracts/test/MockStableToken.sol/index.js +4 -0
  375. package/dist/types/factories/contracts/test/index.d.ts +2 -2
  376. package/dist/types/factories/contracts/test/index.d.ts.map +1 -1
  377. package/dist/types/factories/contracts/test/index.js +2 -2
  378. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts +894 -0
  379. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts.map +1 -0
  380. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.js +1175 -0
  381. package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts +1101 -0
  382. package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts.map +1 -0
  383. package/dist/types/factories/contracts/token/EnclaveToken__factory.js +1439 -0
  384. package/dist/types/factories/contracts/token/index.d.ts +3 -0
  385. package/dist/types/factories/contracts/token/index.d.ts.map +1 -0
  386. package/dist/types/factories/contracts/token/index.js +5 -0
  387. package/dist/types/factories/index.d.ts +1 -0
  388. package/dist/types/factories/index.d.ts.map +1 -1
  389. package/dist/types/factories/index.js +1 -0
  390. package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.d.ts +1 -1
  391. package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.d.ts.map +1 -1
  392. package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.js +1 -1
  393. package/dist/types/index.d.ts +28 -12
  394. package/dist/types/index.d.ts.map +1 -1
  395. package/dist/types/index.js +13 -6
  396. package/package.json +30 -21
  397. package/LICENSE.md +0 -165
  398. package/artifacts/build-info/solc-0_8_27-9aea5e3f6e25811e781e96c22e8edaf1eb1a01c5.json +0 -130
  399. package/artifacts/build-info/solc-0_8_27-9aea5e3f6e25811e781e96c22e8edaf1eb1a01c5.output.json +0 -1
  400. package/artifacts/contracts/interfaces/IInputValidator.sol/IInputValidator.json +0 -38
  401. package/artifacts/contracts/interfaces/IInputValidator.sol/artifacts.d.ts +0 -27
  402. package/artifacts/contracts/interfaces/IRegistryFilter.sol/artifacts.d.ts +0 -27
  403. package/artifacts/contracts/registry/NaiveRegistryFilter.sol/NaiveRegistryFilter.json +0 -309
  404. package/artifacts/contracts/registry/NaiveRegistryFilter.sol/artifacts.d.ts +0 -27
  405. package/artifacts/contracts/test/MockInputValidator.sol/MockInputValidator.json +0 -43
  406. package/artifacts/contracts/test/MockInputValidator.sol/artifacts.d.ts +0 -27
  407. package/artifacts/contracts/test/MockRegistryFilter.sol/IRegistry.json +0 -37
  408. package/artifacts/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.json +0 -262
  409. package/artifacts/contracts/test/MockRegistryFilter.sol/artifacts.d.ts +0 -43
  410. package/contracts/interfaces/IInputValidator.sol +0 -18
  411. package/contracts/interfaces/IRegistryFilter.sol +0 -13
  412. package/contracts/registry/NaiveRegistryFilter.sol +0 -124
  413. package/contracts/test/MockInputValidator.sol +0 -29
  414. package/contracts/test/MockRegistryFilter.sol +0 -117
  415. package/dist/ignition/modules/mockInputValidator.d.ts.map +0 -1
  416. package/dist/ignition/modules/naiveRegistryFilter.d.ts.map +0 -1
  417. package/dist/ignition/modules/naiveRegistryFilter.js +0 -16
  418. package/dist/scripts/deployAndSave/mockInputValidator.d.ts +0 -6
  419. package/dist/scripts/deployAndSave/mockInputValidator.d.ts.map +0 -1
  420. package/dist/scripts/deployAndSave/mockInputValidator.js +0 -18
  421. package/dist/scripts/deployAndSave/naiveRegistryFilter.d.ts +0 -11
  422. package/dist/scripts/deployAndSave/naiveRegistryFilter.d.ts.map +0 -1
  423. package/dist/scripts/deployAndSave/naiveRegistryFilter.js +0 -41
  424. package/dist/test/CiphernodeRegistry/CiphernodeRegistryOwnable.spec.d.ts.map +0 -1
  425. package/dist/test/CiphernodeRegistry/CiphernodeRegistryOwnable.spec.js +0 -279
  426. package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.d.ts +0 -2
  427. package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.d.ts.map +0 -1
  428. package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.js +0 -160
  429. package/dist/types/contracts/interfaces/IInputValidator.d.ts +0 -36
  430. package/dist/types/contracts/interfaces/IInputValidator.d.ts.map +0 -1
  431. package/dist/types/contracts/interfaces/IRegistryFilter.d.ts.map +0 -1
  432. package/dist/types/contracts/registry/NaiveRegistryFilter.d.ts +0 -187
  433. package/dist/types/contracts/registry/NaiveRegistryFilter.d.ts.map +0 -1
  434. package/dist/types/contracts/test/MockInputValidator.d.ts.map +0 -1
  435. package/dist/types/contracts/test/MockRegistryFilter.sol/IRegistry.d.ts +0 -38
  436. package/dist/types/contracts/test/MockRegistryFilter.sol/IRegistry.d.ts.map +0 -1
  437. package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.d.ts +0 -163
  438. package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.d.ts.map +0 -1
  439. package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.js +0 -8
  440. package/dist/types/contracts/test/MockRegistryFilter.sol/index.d.ts +0 -3
  441. package/dist/types/contracts/test/MockRegistryFilter.sol/index.d.ts.map +0 -1
  442. package/dist/types/factories/contracts/interfaces/IInputValidator__factory.d.ts +0 -26
  443. package/dist/types/factories/contracts/interfaces/IInputValidator__factory.d.ts.map +0 -1
  444. package/dist/types/factories/contracts/interfaces/IInputValidator__factory.js +0 -39
  445. package/dist/types/factories/contracts/interfaces/IRegistryFilter__factory.d.ts +0 -26
  446. package/dist/types/factories/contracts/interfaces/IRegistryFilter__factory.d.ts.map +0 -1
  447. package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.d.ts +0 -251
  448. package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.d.ts.map +0 -1
  449. package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.js +0 -331
  450. package/dist/types/factories/contracts/test/MockInputValidator__factory.d.ts +0 -47
  451. package/dist/types/factories/contracts/test/MockInputValidator__factory.d.ts.map +0 -1
  452. package/dist/types/factories/contracts/test/MockInputValidator__factory.js +0 -65
  453. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.d.ts +0 -26
  454. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.d.ts.map +0 -1
  455. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.js +0 -38
  456. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.d.ts +0 -216
  457. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.d.ts.map +0 -1
  458. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.js +0 -284
  459. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.d.ts +0 -3
  460. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.d.ts.map +0 -1
  461. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.js +0 -5
  462. /package/dist/test/{CiphernodeRegistry → Registry}/CiphernodeRegistryOwnable.spec.d.ts +0 -0
  463. /package/dist/types/{contracts/test/MockRegistryFilter.sol → @openzeppelin/contracts}/index.js +0 -0
  464. /package/dist/types/{contracts/interfaces/IInputValidator.js → @openzeppelin/contracts/proxy/index.js} +0 -0
  465. /package/dist/types/{contracts/interfaces/IRegistryFilter.js → @openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.js} +0 -0
  466. /package/dist/types/{contracts/test/MockInputValidator.js → @openzeppelin/contracts/proxy/transparent/index.js} +0 -0
  467. /package/dist/types/{contracts/test/MockRegistryFilter.sol/IRegistry.js → @openzeppelin/index.js} +0 -0
@@ -0,0 +1,49 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ //
3
+ // This file is provided WITHOUT ANY WARRANTY;
4
+ // without even the implied warranty of MERCHANTABILITY
5
+ // or FITNESS FOR A PARTICULAR PURPOSE.
6
+ import hre from "hardhat";
7
+ import { upgradeAndSaveEnclave } from "../deployAndSave/enclave";
8
+ import { readDeploymentArgs } from "../utils";
9
+ /**
10
+ * Upgrades the Enclave contract implementation and saves the deployment arguments
11
+ * This keeps the same proxy address, only updates the implementation
12
+ */
13
+ export const upgradeEnclave = async () => {
14
+ const { ethers } = await hre.network.connect();
15
+ const [signer] = await ethers.getSigners();
16
+ const signerAddress = await signer.getAddress();
17
+ const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
18
+ console.log("Signer:", signerAddress);
19
+ const preDeployedArgs = readDeploymentArgs("Enclave", chain);
20
+ if (!preDeployedArgs?.address) {
21
+ throw new Error("Enclave proxy not found. Deploy first before upgrading.");
22
+ }
23
+ if (!preDeployedArgs?.proxyRecords?.implementationAddress) {
24
+ throw new Error("Existing deployment is not proxy-based. Cannot upgrade non-proxy deployments.");
25
+ }
26
+ console.log("Enclave Proxy Address (from deployments):", preDeployedArgs.address);
27
+ const code = await ethers.provider.getCode(preDeployedArgs.address);
28
+ if (code === "0x") {
29
+ throw new Error(`No contract found at proxy address ${preDeployedArgs.address}`);
30
+ }
31
+ console.log("Proxy contract exists on-chain");
32
+ const { enclave, implementationAddress } = await upgradeAndSaveEnclave({
33
+ ownerAddress: signerAddress,
34
+ hre,
35
+ });
36
+ const enclaveAddress = await enclave.getAddress();
37
+ console.log(`
38
+ ============================================
39
+ Upgrade Complete!
40
+ ============================================
41
+ Proxy Address: ${enclaveAddress}
42
+ New Implementation: ${implementationAddress}
43
+ ============================================
44
+ `);
45
+ };
46
+ upgradeEnclave().catch((error) => {
47
+ console.error(error);
48
+ process.exit(1);
49
+ });
@@ -1,6 +1,8 @@
1
+ export declare const deploymentsFile: string;
1
2
  export interface DeploymentArgs {
2
3
  address: string;
3
- constructorArgs?: Record<string, string>;
4
+ constructorArgs?: Record<string, string | string[]>;
5
+ proxyRecords?: Record<string, string | string[]>;
4
6
  blockNumber?: number | null;
5
7
  }
6
8
  export interface ChainDeployments {
@@ -9,6 +11,39 @@ export interface ChainDeployments {
9
11
  export interface Deployments {
10
12
  [chainName: string]: ChainDeployments;
11
13
  }
14
+ /**
15
+ * Defines the Enclave.config.yaml structure
16
+ */
17
+ export interface EnclaveConfig {
18
+ chains: Array<{
19
+ name: string;
20
+ rpc_url: string;
21
+ contracts: {
22
+ e3_program?: {
23
+ address: string;
24
+ deploy_block: number;
25
+ };
26
+ enclave?: {
27
+ address: string;
28
+ deploy_block: number;
29
+ };
30
+ ciphernode_registry?: {
31
+ address: string;
32
+ deploy_block: number;
33
+ };
34
+ bonding_registry?: {
35
+ address: string;
36
+ deploy_block: number;
37
+ };
38
+ fee_token?: {
39
+ address: string;
40
+ deploy_block: number;
41
+ };
42
+ };
43
+ }>;
44
+ program: unknown;
45
+ nodes: unknown;
46
+ }
12
47
  /**
13
48
  * Store the deployment arguments for a given contract and chain
14
49
  * @param args - The deployment arguments to store
@@ -30,7 +65,21 @@ export declare const readDeploymentArgs: (contractName: string, chain: string) =
30
65
  export declare const readAllDeployments: () => Deployments;
31
66
  /**
32
67
  * Clean the deployments for a given network
33
- * @param network
68
+ * @param network - The network for which to clean the deployments
34
69
  */
35
70
  export declare const cleanDeployments: (network: string) => void;
71
+ /**
72
+ * Check if two arrays are equal by checking the values inside
73
+ * @param arr1 - The first array
74
+ * @param arr2 - The second array to check
75
+ * @returns Whether the two arrays are equal
76
+ */
77
+ export declare function areArraysEqual<T>(arr1: T[], arr2: T[]): boolean;
78
+ /**
79
+ * The function to update the enclave.config.yaml file with the deployed contract addresses
80
+ * @param chainToConfig - The chain name to update in the config
81
+ * @param pathToConfigFile - The path to the enclave.config.yaml file
82
+ * @param contractMapping - A mapping of contract names to config keys
83
+ */
84
+ export declare const updateE3Config: (chainToConfig: string, pathToConfigFile: string, contractMapping: Record<string, string>, rpcUrl?: string) => void;
36
85
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../scripts/utils.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;CACxC;AAGD,MAAM,WAAW,WAAW;IAC1B,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACvC;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,cAAc,EACpB,cAAc,MAAM,EACpB,OAAO,MAAM,KACZ,IA4BF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,MAAM,EACpB,OAAO,MAAM,KACZ,cAAc,GAAG,SAWnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,WAWrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,IAUlD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../scripts/utils.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,eAAe,QAAuC,CAAC;AAGpE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;CACxC;AAGD,MAAM,WAAW,WAAW;IAC1B,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE;YACT,UAAU,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YACvD,OAAO,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YACpD,mBAAmB,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YAChE,gBAAgB,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YAC7D,SAAS,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;SACvD,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,cAAc,EACpB,cAAc,MAAM,EACpB,OAAO,MAAM,KACZ,IA4BF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,MAAM,EACpB,OAAO,MAAM,KACZ,cAAc,GAAG,SAWnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,WAWrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,IAUlD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAY/D;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,eAAe,MAAM,EACrB,kBAAkB,MAAM,EACxB,iBAAiB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,SAAS,MAAM,KACd,IAsDF,CAAC"}
@@ -4,8 +4,9 @@
4
4
  // without even the implied warranty of MERCHANTABILITY
5
5
  // or FITNESS FOR A PARTICULAR PURPOSE.
6
6
  import fs from "fs";
7
+ import yaml from "js-yaml";
7
8
  import path from "path";
8
- const deploymentsFile = path.join("deployed_contracts.json");
9
+ export const deploymentsFile = path.join("deployed_contracts.json");
9
10
  /**
10
11
  * Store the deployment arguments for a given contract and chain
11
12
  * @param args - The deployment arguments to store
@@ -19,7 +20,7 @@ export const storeDeploymentArgs = (args, contractName, chain) => {
19
20
  try {
20
21
  deployments = JSON.parse(fs.readFileSync(deploymentsFile, "utf8"));
21
22
  }
22
- catch (error) {
23
+ catch {
23
24
  console.warn("Failed to parse existing deployments file, starting fresh");
24
25
  deployments = {};
25
26
  }
@@ -63,14 +64,14 @@ export const readAllDeployments = () => {
63
64
  try {
64
65
  return JSON.parse(fs.readFileSync(deploymentsFile, "utf8"));
65
66
  }
66
- catch (error) {
67
+ catch {
67
68
  console.warn("Failed to parse deployments file");
68
69
  return {};
69
70
  }
70
71
  };
71
72
  /**
72
73
  * Clean the deployments for a given network
73
- * @param network
74
+ * @param network - The network for which to clean the deployments
74
75
  */
75
76
  export const cleanDeployments = (network) => {
76
77
  if (!fs.existsSync(deploymentsFile)) {
@@ -82,3 +83,65 @@ export const cleanDeployments = (network) => {
82
83
  }
83
84
  fs.writeFileSync(deploymentsFile, JSON.stringify(deployments, null, 2));
84
85
  };
86
+ /**
87
+ * Check if two arrays are equal by checking the values inside
88
+ * @param arr1 - The first array
89
+ * @param arr2 - The second array to check
90
+ * @returns Whether the two arrays are equal
91
+ */
92
+ export function areArraysEqual(arr1, arr2) {
93
+ if (arr1.length !== arr2.length) {
94
+ return false;
95
+ }
96
+ for (let i = 0; i < arr1.length; i++) {
97
+ if (arr1[i] !== arr2[i]) {
98
+ return false;
99
+ }
100
+ }
101
+ return true;
102
+ }
103
+ /**
104
+ * The function to update the enclave.config.yaml file with the deployed contract addresses
105
+ * @param chainToConfig - The chain name to update in the config
106
+ * @param pathToConfigFile - The path to the enclave.config.yaml file
107
+ * @param contractMapping - A mapping of contract names to config keys
108
+ */
109
+ export const updateE3Config = (chainToConfig, pathToConfigFile, contractMapping, rpcUrl) => {
110
+ const fileContent = fs.readFileSync(pathToConfigFile, "utf8");
111
+ const config = yaml.load(fileContent);
112
+ // Find the hardhat chain config
113
+ // Find the chain config or create it
114
+ let configChain = config.chains.find((chain) => chain.name === chainToConfig);
115
+ if (!configChain) {
116
+ console.log(`Chain "${chainToConfig}" not found in config. Creating new entry...`);
117
+ if (!rpcUrl) {
118
+ console.warn("Warning: No RPC URL provided. You'll need to update it manually in the config.");
119
+ }
120
+ configChain = {
121
+ name: chainToConfig,
122
+ rpc_url: rpcUrl || `ws://localhost:8545`,
123
+ contracts: {},
124
+ };
125
+ config.chains.push(configChain);
126
+ console.log(`✓ Created new chain entry for "${chainToConfig}"`);
127
+ }
128
+ console.log(`\nUpdating contracts for chain: ${chainToConfig}`);
129
+ // Update contract addresses and deploy blocks
130
+ for (const [contractName, configKey] of Object.entries(contractMapping)) {
131
+ const deployment = readDeploymentArgs(contractName, chainToConfig);
132
+ if (deployment) {
133
+ configChain.contracts[configKey] = {
134
+ address: deployment.address,
135
+ deploy_block: deployment.blockNumber ?? 1,
136
+ };
137
+ console.log(`✓ Updated ${configKey}: ${deployment.address} (block ${deployment.blockNumber ?? 1})`);
138
+ }
139
+ }
140
+ // Write updated config back to file
141
+ const yamlStr = yaml.dump(config, {
142
+ indent: 2,
143
+ lineWidth: -1, // Don't wrap lines
144
+ });
145
+ fs.writeFileSync(pathToConfigFile, yamlStr + "\n", "utf8");
146
+ console.log("\n✓ enclave.config.yaml updated successfully!");
147
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Deploy and verify all contracts on a given chain
3
+ * @param chain - The chain to verify the contracts on
4
+ */
5
+ export declare const verifyContracts: (chain: string) => void;
6
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../scripts/verify.ts"],"names":[],"mappings":"AAsHA;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,IA6E/C,CAAC"}
@@ -0,0 +1,142 @@
1
+ // SPDX-License-Identifier: LGPL-3.0-only
2
+ //
3
+ // This file is provided WITHOUT ANY WARRANTY;
4
+ // without even the implied warranty of MERCHANTABILITY
5
+ // or FITNESS FOR A PARTICULAR PURPOSE.
6
+ import { execSync } from "child_process";
7
+ import fs from "fs";
8
+ import path from "path";
9
+ import { readAllDeployments } from "./utils";
10
+ /**
11
+ * Find the fully qualified contract name by searching the contracts directory
12
+ * @param contractName - Simple contract name (e.g., "Enclave")
13
+ * @param contractsDir - Directory to search (default: "contracts")
14
+ * @returns Fully qualified name or undefined if not found
15
+ */
16
+ const findContractPath = (contractName, artifactsDir = "artifacts") => {
17
+ const searchDir = (dir) => {
18
+ const files = fs.readdirSync(dir);
19
+ for (const file of files) {
20
+ const fullPath = path.join(dir, file);
21
+ const stat = fs.statSync(fullPath);
22
+ if (stat.isDirectory()) {
23
+ const result = searchDir(fullPath);
24
+ if (result)
25
+ return result;
26
+ }
27
+ else if (file === `${contractName}.json`) {
28
+ try {
29
+ const artifact = JSON.parse(fs.readFileSync(fullPath, "utf-8"));
30
+ if (artifact.sourceName && artifact.contractName === contractName) {
31
+ const sourceName = artifact.sourceName;
32
+ // Skip external packages - return undefined so they won't be verified
33
+ if (sourceName.startsWith("./@") ||
34
+ sourceName.startsWith("@") ||
35
+ sourceName.includes("node_modules")) {
36
+ console.log(`⏭️ Skipping external contract: ${contractName} (from ${sourceName})`);
37
+ return undefined;
38
+ }
39
+ // For local contracts, remove leading './' and return the path
40
+ let localPath = sourceName;
41
+ if (localPath.startsWith("./")) {
42
+ localPath = localPath.slice(2);
43
+ }
44
+ return `${localPath}:${contractName}`;
45
+ }
46
+ }
47
+ catch (error) {
48
+ console.warn(`Failed to parse artifact at ${fullPath}:`, error);
49
+ }
50
+ }
51
+ }
52
+ return undefined;
53
+ };
54
+ return searchDir(artifactsDir);
55
+ };
56
+ /**
57
+ * Verify a single contract using Hardhat CLI
58
+ * @param address - Contract address
59
+ * @param constructorArgs - Constructor arguments as a record
60
+ * @param network - Network name
61
+ */
62
+ const verifyContract = (contractName, address, constructorArgs, network) => {
63
+ // Create a temporary args file
64
+ const argsFile = path.join(process.cwd(), `verify-args-${address}.cjs`);
65
+ try {
66
+ if (constructorArgs) {
67
+ const argsArray = Object.values(constructorArgs);
68
+ const fileContent = `module.exports = ${JSON.stringify(argsArray, null, 2)};`;
69
+ fs.writeFileSync(argsFile, fileContent);
70
+ const command = `pnpm hardhat verify --build-profile default --network ${network} --contract ${contractName} ${address} --constructor-args-path ${argsFile}`;
71
+ console.log(`Executing: ${command}`);
72
+ execSync(command, { stdio: "inherit" });
73
+ console.log(`✅ Contract verified successfully at ${address}\n`);
74
+ }
75
+ else {
76
+ const command = `pnpm hardhat verify --build-profile default --network ${network} --contract ${contractName} ${address}`;
77
+ execSync(command, { stdio: "inherit" });
78
+ }
79
+ }
80
+ catch (error) {
81
+ if (error.message?.includes("Already Verified")) {
82
+ console.log(`ℹ️ Contract at ${address} is already verified\n`);
83
+ }
84
+ else {
85
+ console.error(`❌ Failed to verify contract at ${address}:`, error.message, "\n");
86
+ }
87
+ }
88
+ finally {
89
+ // ensure that we always clean up even if there was some early failure
90
+ if (fs.existsSync(argsFile)) {
91
+ fs.unlinkSync(argsFile);
92
+ }
93
+ }
94
+ };
95
+ /**
96
+ * Deploy and verify all contracts on a given chain
97
+ * @param chain - The chain to verify the contracts on
98
+ */
99
+ export const verifyContracts = (chain) => {
100
+ const deployments = readAllDeployments();
101
+ const chainDeployments = deployments[chain];
102
+ if (!chainDeployments) {
103
+ console.log(`❌ No deployments found for chain: ${chain}`);
104
+ return;
105
+ }
106
+ const contractNames = Object.keys(chainDeployments);
107
+ console.log(`\n🔍 Verifying ${contractNames.length} contracts on ${chain}...\n`);
108
+ contractNames.forEach((contractName, _) => {
109
+ // we skip PoseidonT3 as it's a library
110
+ if (contractName === "PoseidonT3") {
111
+ console.log(`ℹ️ Skipping verification for library contract: ${contractName}`);
112
+ return;
113
+ }
114
+ const deployment = chainDeployments[contractName];
115
+ const isProxy = Boolean(deployment.proxyRecords?.implementationAddress);
116
+ if (isProxy && deployment.proxyRecords) {
117
+ console.log(` 📦 Proxy deployment detected`);
118
+ console.log(` ├─ Verifying TransparentUpgradeableProxy...`);
119
+ verifyContract("@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy", deployment.address, {
120
+ _logic: deployment.proxyRecords.implementationAddress,
121
+ _owner: deployment.proxyRecords.initialOwner,
122
+ _data: deployment.proxyRecords.initData,
123
+ }, chain);
124
+ console.log(` ├─ Verifying ProxyAdmin...`);
125
+ verifyContract("@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol:ProxyAdmin", deployment.proxyRecords.proxyAdminAddress, { owner: deployment.proxyRecords.initialOwner }, chain);
126
+ }
127
+ // Verify the main contract (or implementation if proxy)
128
+ const fullyQualifiedName = findContractPath(contractName);
129
+ if (!fullyQualifiedName) {
130
+ console.log(` ❌ Could not find contract source for ${contractName}. Skipping.\n`);
131
+ return;
132
+ }
133
+ const targetAddress = isProxy
134
+ ? deployment.proxyRecords?.implementationAddress
135
+ : deployment.address;
136
+ const constructorArgs = isProxy ? undefined : deployment.constructorArgs;
137
+ console.log(` ${isProxy ? "└─" : " "} Verifying ${isProxy ? "implementation" : "contract"} at ${targetAddress.slice(0, 10)}...`);
138
+ verifyContract(fullyQualifiedName, targetAddress, constructorArgs, chain);
139
+ console.log(` ✅ ${contractName} verification complete\n`);
140
+ });
141
+ console.log(`\n🎉 Verification process completed for ${chain}!\n`);
142
+ };
@@ -1,4 +1,6 @@
1
1
  export declare const ciphernodeAdd: import("hardhat/types/tasks").NewTaskDefinition;
2
2
  export declare const ciphernodeRemove: import("hardhat/types/tasks").NewTaskDefinition;
3
+ export declare const ciphernodeMintTokens: import("hardhat/types/tasks").NewTaskDefinition;
4
+ export declare const ciphernodeAdminAdd: import("hardhat/types/tasks").NewTaskDefinition;
3
5
  export declare const ciphernodeSiblings: import("hardhat/types/tasks").NewTaskDefinition;
4
6
  //# sourceMappingURL=ciphernode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ciphernode.d.ts","sourceRoot":"","sources":["../../tasks/ciphernode.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,iDAsBhB,CAAC;AAEX,eAAO,MAAM,gBAAgB,iDAiCnB,CAAC;AAEX,eAAO,MAAM,kBAAkB,iDAgCrB,CAAC"}
1
+ {"version":3,"file":"ciphernode.d.ts","sourceRoot":"","sources":["../../tasks/ciphernode.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,iDA0IhB,CAAC;AAEX,eAAO,MAAM,gBAAgB,iDA4CnB,CAAC;AAEX,eAAO,MAAM,oBAAoB,iDA2FvB,CAAC;AAEX,eAAO,MAAM,kBAAkB,iDAkNrB,CAAC;AAEX,eAAO,MAAM,kBAAkB,iDAgCrB,CAAC"}