@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,41 @@
1
+ import poseidon from "poseidon-solidity";
2
+ import { storeDeploymentArgs } from "../utils";
3
+ /**
4
+ * Deploy and save PoseidonT3 contract behind a proxy
5
+ * @param param0
6
+ */
7
+ export const deployAndSavePoseidonT3 = async ({ hre, }) => {
8
+ const { ethers } = await hre.network.connect();
9
+ const chain = hre.globalOptions.network;
10
+ // First check if the proxy exists
11
+ if ((await ethers.provider.getCode(poseidon.proxy.address)) === "0x") {
12
+ // probably on the hardhat network
13
+ // fund the keyless account
14
+ const [sender] = await ethers.getSigners();
15
+ let tx = await sender.sendTransaction({
16
+ to: poseidon.proxy.from,
17
+ value: poseidon.proxy.gas,
18
+ });
19
+ await tx.wait();
20
+ // then send the presigned transaction deploying the proxy
21
+ tx = await ethers.provider.broadcastTransaction(poseidon.proxy.tx);
22
+ await tx.wait();
23
+ console.log(`Proxy deployed to: ${poseidon.proxy.address}`);
24
+ }
25
+ // Then deploy the hasher, if needed
26
+ if ((await ethers.provider.getCode(poseidon.PoseidonT3.address)) === "0x") {
27
+ const [sender] = await ethers.getSigners();
28
+ let tx = await sender.sendTransaction({
29
+ to: poseidon.proxy.address,
30
+ data: poseidon.PoseidonT3.data,
31
+ });
32
+ await tx.wait();
33
+ console.log(`PoseidonT3 deployed to: ${poseidon.PoseidonT3.address}`);
34
+ }
35
+ const blockNumber = await ethers.provider.getBlockNumber();
36
+ storeDeploymentArgs({
37
+ blockNumber,
38
+ address: poseidon.PoseidonT3.address,
39
+ }, "PoseidonT3", chain);
40
+ return poseidon.PoseidonT3.address;
41
+ };
@@ -0,0 +1,19 @@
1
+ import type { HardhatRuntimeEnvironment } from "hardhat/types/hre";
2
+ import { SlashingManager } from "../../types";
3
+ /**
4
+ * The arguments for the deployAndSaveSlashingManager function
5
+ */
6
+ export interface SlashingManagerArgs {
7
+ admin?: string;
8
+ bondingRegistry?: string;
9
+ hre: HardhatRuntimeEnvironment;
10
+ }
11
+ /**
12
+ * Deploys the SlashingManager contract and saves the deployment arguments
13
+ * @param param0 - The deployment arguments
14
+ * @returns The deployed SlashingManager contract
15
+ */
16
+ export declare const deployAndSaveSlashingManager: ({ admin, bondingRegistry, hre, }: SlashingManagerArgs) => Promise<{
17
+ slashingManager: SlashingManager;
18
+ }>;
19
+ //# sourceMappingURL=slashingManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slashingManager.d.ts","sourceRoot":"","sources":["../../../scripts/deployAndSave/slashingManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EACL,eAAe,EAEhB,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,yBAAyB,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAU,kCAIhD,mBAAmB,KAAG,OAAO,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;CAClC,CAyDA,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { SlashingManager__factory as SlashingManagerFactory, } from "../../types";
2
+ import { readDeploymentArgs, storeDeploymentArgs } from "../utils";
3
+ /**
4
+ * Deploys the SlashingManager contract and saves the deployment arguments
5
+ * @param param0 - The deployment arguments
6
+ * @returns The deployed SlashingManager contract
7
+ */
8
+ export const deployAndSaveSlashingManager = async ({ admin, bondingRegistry, hre, }) => {
9
+ const { ethers } = await hre.network.connect();
10
+ const [signer] = await ethers.getSigners();
11
+ const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
12
+ const preDeployedArgs = readDeploymentArgs("SlashingManager", chain);
13
+ if (!admin ||
14
+ !bondingRegistry ||
15
+ (preDeployedArgs?.constructorArgs?.admin === admin &&
16
+ preDeployedArgs?.constructorArgs?.bondingRegistry === bondingRegistry)) {
17
+ if (!preDeployedArgs?.address) {
18
+ throw new Error("SlashingManager address not found, it must be deployed first");
19
+ }
20
+ const slashingManagerContract = SlashingManagerFactory.connect(preDeployedArgs.address, signer);
21
+ return { slashingManager: slashingManagerContract };
22
+ }
23
+ const slashingManagerFactory = await ethers.getContractFactory("SlashingManager");
24
+ const slashingManager = await slashingManagerFactory.deploy(admin, bondingRegistry);
25
+ await slashingManager.waitForDeployment();
26
+ const blockNumber = await ethers.provider.getBlockNumber();
27
+ const slashingManagerAddress = await slashingManager.getAddress();
28
+ storeDeploymentArgs({
29
+ constructorArgs: {
30
+ admin,
31
+ bondingRegistry,
32
+ },
33
+ blockNumber,
34
+ address: slashingManagerAddress,
35
+ }, "SlashingManager", chain);
36
+ const slashingManagerContract = SlashingManagerFactory.connect(slashingManagerAddress, signer);
37
+ return { slashingManager: slashingManagerContract };
38
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"deployEnclave.d.ts","sourceRoot":"","sources":["../../scripts/deployEnclave.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,YAAY,OAAO,kBA6FtD,CAAC"}
1
+ {"version":3,"file":"deployEnclave.d.ts","sourceRoot":"","sources":["../../scripts/deployEnclave.ts"],"names":[],"mappings":"AAkBA;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,YAAY,OAAO,kBAyLtD,CAAC"}
@@ -4,15 +4,24 @@
4
4
  // without even the implied warranty of MERCHANTABILITY
5
5
  // or FITNESS FOR A PARTICULAR PURPOSE.
6
6
  import hre from "hardhat";
7
+ import { autoCleanForLocalhost } from "./cleanIgnitionState";
8
+ import { deployAndSaveBondingRegistry } from "./deployAndSave/bondingRegistry";
7
9
  import { deployAndSaveCiphernodeRegistryOwnable } from "./deployAndSave/ciphernodeRegistryOwnable";
8
10
  import { deployAndSaveEnclave } from "./deployAndSave/enclave";
9
- import { deployAndSaveNaiveRegistryFilter } from "./deployAndSave/naiveRegistryFilter";
11
+ import { deployAndSaveEnclaveTicketToken } from "./deployAndSave/enclaveTicketToken";
12
+ import { deployAndSaveEnclaveToken } from "./deployAndSave/enclaveToken";
13
+ import { deployAndSaveMockStableToken } from "./deployAndSave/mockStableToken";
14
+ import { deployAndSavePoseidonT3 } from "./deployAndSave/poseidonT3";
15
+ import { deployAndSaveSlashingManager } from "./deployAndSave/slashingManager";
10
16
  import { deployMocks } from "./deployMocks";
11
17
  /**
12
18
  * Deploys the Enclave contracts
13
19
  */
14
20
  export const deployEnclave = async (withMocks) => {
15
21
  const { ethers } = await hre.network.connect();
22
+ // Auto-clean state for local networks to prevent stale state issues
23
+ const networkName = hre.globalOptions.network ?? "localhost";
24
+ await autoCleanForLocalhost(networkName);
16
25
  const [owner] = await ethers.getSigners();
17
26
  const ownerAddress = await owner.getAddress();
18
27
  const polynomial_degree = ethers.toBigInt(2048);
@@ -20,41 +29,105 @@ export const deployEnclave = async (withMocks) => {
20
29
  const moduli = [ethers.toBigInt("18014398492704769")];
21
30
  const encoded = ethers.AbiCoder.defaultAbiCoder().encode(["uint256", "uint256", "uint256[]"], [polynomial_degree, plaintext_modulus, moduli]);
22
31
  const THIRTY_DAYS_IN_SECONDS = 60 * 60 * 24 * 30;
32
+ const SORTITION_SUBMISSION_WINDOW = 10;
23
33
  const addressOne = "0x0000000000000000000000000000000000000001";
24
- const { enclave } = await deployAndSaveEnclave({
25
- params: encoded,
34
+ const poseidonT3 = await deployAndSavePoseidonT3({ hre });
35
+ const shouldDeployMocks = process.env.DEPLOY_MOCKS === "true" || withMocks;
36
+ let feeTokenAddress;
37
+ if (shouldDeployMocks) {
38
+ console.log("Deploying mock Fee token...");
39
+ const { mockStableToken } = await deployAndSaveMockStableToken({
40
+ initialSupply: 1000000,
41
+ hre,
42
+ });
43
+ feeTokenAddress = await mockStableToken.getAddress();
44
+ console.log("MockFeeToken deployed to:", feeTokenAddress);
45
+ }
46
+ else {
47
+ throw new Error("Fee token address must be provided for production deployment");
48
+ }
49
+ console.log("Deploying ENCL token...");
50
+ const { enclaveToken } = await deployAndSaveEnclaveToken({
26
51
  owner: ownerAddress,
27
- maxDuration: THIRTY_DAYS_IN_SECONDS.toString(),
52
+ hre,
53
+ });
54
+ const enclaveTokenAddress = await enclaveToken.getAddress();
55
+ console.log("EnclaveToken deployed to:", enclaveTokenAddress);
56
+ console.log("Deploying EnclaveTicketToken...");
57
+ const { enclaveTicketToken } = await deployAndSaveEnclaveTicketToken({
58
+ baseToken: feeTokenAddress,
28
59
  registry: addressOne,
60
+ owner: ownerAddress,
29
61
  hre,
30
62
  });
31
- const enclaveAddress = await enclave.getAddress();
32
- console.log("Enclave deployed to: ", enclaveAddress);
63
+ const enclaveTicketTokenAddress = await enclaveTicketToken.getAddress();
64
+ console.log("EnclaveTicketToken deployed to:", enclaveTicketTokenAddress);
65
+ console.log("Deploying SlashingManager...");
66
+ const { slashingManager } = await deployAndSaveSlashingManager({
67
+ admin: ownerAddress,
68
+ bondingRegistry: addressOne,
69
+ hre,
70
+ });
71
+ const slashingManagerAddress = await slashingManager.getAddress();
72
+ console.log("SlashingManager deployed to:", slashingManagerAddress);
73
+ console.log("Deploying BondingRegistry...");
74
+ const { bondingRegistry } = await deployAndSaveBondingRegistry({
75
+ owner: ownerAddress,
76
+ ticketToken: enclaveTicketTokenAddress,
77
+ licenseToken: enclaveTokenAddress,
78
+ registry: addressOne,
79
+ slashedFundsTreasury: ownerAddress,
80
+ ticketPrice: ethers.parseUnits("10", 6).toString(),
81
+ licenseRequiredBond: ethers.parseEther("100").toString(),
82
+ minTicketBalance: 1,
83
+ exitDelay: 7 * 24 * 60 * 60,
84
+ hre,
85
+ });
86
+ const bondingRegistryAddress = await bondingRegistry.getAddress();
87
+ console.log("BondingRegistry deployed to:", bondingRegistryAddress);
88
+ console.log("Deploying CiphernodeRegistry...");
33
89
  const { ciphernodeRegistry } = await deployAndSaveCiphernodeRegistryOwnable({
34
- enclaveAddress: enclaveAddress,
90
+ poseidonT3Address: poseidonT3,
91
+ enclaveAddress: addressOne,
35
92
  owner: ownerAddress,
93
+ submissionWindow: SORTITION_SUBMISSION_WINDOW,
36
94
  hre,
37
95
  });
38
96
  const ciphernodeRegistryAddress = await ciphernodeRegistry.getAddress();
39
- console.log("CiphernodeRegistry deployed to: ", ciphernodeRegistryAddress);
40
- const { naiveRegistryFilter } = await deployAndSaveNaiveRegistryFilter({
41
- ciphernodeRegistryAddress: ciphernodeRegistryAddress,
97
+ console.log("CiphernodeRegistry deployed to:", ciphernodeRegistryAddress);
98
+ console.log("Deploying Enclave...");
99
+ const { enclave } = await deployAndSaveEnclave({
100
+ params: [encoded],
42
101
  owner: ownerAddress,
102
+ maxDuration: THIRTY_DAYS_IN_SECONDS.toString(),
103
+ registry: ciphernodeRegistryAddress,
104
+ bondingRegistry: bondingRegistryAddress,
105
+ feeToken: feeTokenAddress,
43
106
  hre,
44
107
  });
45
- const naiveRegistryFilterAddress = await naiveRegistryFilter.getAddress();
46
- console.log("NaiveRegistryFilter deployed to: ", naiveRegistryFilterAddress);
47
- const registryAddress = await enclave.ciphernodeRegistry();
48
- if (registryAddress === ciphernodeRegistryAddress) {
49
- console.log(`Enclave contract already has registry`);
50
- }
51
- else {
52
- const tx = await enclave.setCiphernodeRegistry(ciphernodeRegistryAddress);
53
- await tx.wait();
54
- console.log(`Enclave contract updated with registry`);
55
- }
56
- // Deploy mocks only if specified
57
- const shouldDeployMocks = process.env.DEPLOY_MOCKS === "true" || withMocks;
108
+ const enclaveAddress = await enclave.getAddress();
109
+ console.log("Enclave deployed to:", enclaveAddress);
110
+ ///////////////////////////////////////////
111
+ // Configure cross-contract dependencies
112
+ ///////////////////////////////////////////
113
+ console.log("Configuring cross-contract dependencies...");
114
+ console.log("Setting Enclave address in CiphernodeRegistry...");
115
+ await ciphernodeRegistry.setEnclave(enclaveAddress);
116
+ console.log("Setting BondingRegistry address in CiphernodeRegistry...");
117
+ await ciphernodeRegistry.setBondingRegistry(bondingRegistryAddress);
118
+ console.log("Setting Submission Window in CiphernodeRegistry...");
119
+ console.log("SORTITION_SUBMISSION_WINDOW:", SORTITION_SUBMISSION_WINDOW);
120
+ await ciphernodeRegistry.setSortitionSubmissionWindow(SORTITION_SUBMISSION_WINDOW);
121
+ console.log("Setting BondingRegistry address in EnclaveTicketToken...");
122
+ await enclaveTicketToken.setRegistry(bondingRegistryAddress);
123
+ console.log("Setting CiphernodeRegistry address in BondingRegistry...");
124
+ await bondingRegistry.setRegistry(ciphernodeRegistryAddress);
125
+ console.log("Setting BondingRegistry address in SlashingManager...");
126
+ await slashingManager.setBondingRegistry(bondingRegistryAddress);
127
+ console.log("Setting SlashingManager address in BondingRegistry...");
128
+ await bondingRegistry.setSlashingManager(slashingManagerAddress);
129
+ console.log("Setting Enclave as reward distributor in BondingRegistry...");
130
+ await bondingRegistry.setRewardDistributor(enclaveAddress);
58
131
  if (shouldDeployMocks) {
59
132
  const { decryptionVerifierAddress, e3ProgramAddress } = await deployMocks();
60
133
  const encryptionSchemeId = ethers.keccak256(ethers.toUtf8Bytes("fhe.rs:BFV"));
@@ -72,4 +145,17 @@ export const deployEnclave = async (withMocks) => {
72
145
  await tx.wait();
73
146
  console.log(`Successfully enabled E3 Program in Enclave contract`);
74
147
  }
148
+ console.log(`
149
+ ============================================
150
+ Deployment Complete!
151
+ ============================================
152
+ MockFeeToken: ${feeTokenAddress}
153
+ EnclaveToken (ENCL): ${enclaveTokenAddress}
154
+ EnclaveTicketToken: ${enclaveTicketTokenAddress}
155
+ SlashingManager: ${slashingManagerAddress}
156
+ BondingRegistry: ${bondingRegistryAddress}
157
+ CiphernodeRegistry: ${ciphernodeRegistryAddress}
158
+ Enclave: ${enclaveAddress}
159
+ ============================================
160
+ `);
75
161
  };
@@ -1,7 +1,6 @@
1
1
  export interface MockDeployments {
2
2
  computeProviderAddress: string;
3
3
  decryptionVerifierAddress: string;
4
- inputValidatorAddress: string;
5
4
  e3ProgramAddress: string;
6
5
  }
7
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deployMocks.d.ts","sourceRoot":"","sources":["../../scripts/deployMocks.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,eAAe,CAmC3D,CAAC"}
1
+ {"version":3,"file":"deployMocks.d.ts","sourceRoot":"","sources":["../../scripts/deployMocks.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,eAAe,CA+B3D,CAAC"}
@@ -6,7 +6,6 @@
6
6
  import hre from "hardhat";
7
7
  import { deployAndSaveMockComputeProvider } from "./deployAndSave/mockComputeProvider";
8
8
  import { deployAndSaveMockDecryptionVerifier } from "./deployAndSave/mockDecryptionVerifier";
9
- import { deployAndSaveMockInputValidator } from "./deployAndSave/mockInputValidator";
10
9
  import { deployAndSaveMockProgram } from "./deployAndSave/mockProgram";
11
10
  /**
12
11
  * Deploys the mock contracts and returns the addresses.
@@ -14,14 +13,14 @@ import { deployAndSaveMockProgram } from "./deployAndSave/mockProgram";
14
13
  * @returns The addresses of the mock contracts.
15
14
  */
16
15
  export const deployMocks = async () => {
16
+ console.log("Deploying Compute Provider");
17
17
  const { computeProvider } = await deployAndSaveMockComputeProvider(hre);
18
18
  const computeProviderAddress = await computeProvider.getAddress();
19
+ console.log("Deploying Decryption Verifier");
19
20
  const { decryptionVerifier } = await deployAndSaveMockDecryptionVerifier(hre);
20
21
  const decryptionVerifierAddress = await decryptionVerifier.getAddress();
21
- const { inputValidator } = await deployAndSaveMockInputValidator(hre);
22
- const inputValidatorAddress = await inputValidator.getAddress();
22
+ console.log("Deploying E3 Program");
23
23
  const { e3Program } = await deployAndSaveMockProgram({
24
- mockInputValidator: inputValidatorAddress,
25
24
  hre,
26
25
  });
27
26
  const e3ProgramAddress = await e3Program.getAddress();
@@ -30,13 +29,11 @@ export const deployMocks = async () => {
30
29
  ----------------------------------------------------------------------
31
30
  MockComputeProvider:${computeProviderAddress}
32
31
  MockDecryptionVerifier:${decryptionVerifierAddress}
33
- MockInputValidator:${inputValidatorAddress}
34
32
  MockE3Program:${e3ProgramAddress}
35
33
  `);
36
34
  return {
37
35
  computeProviderAddress,
38
36
  decryptionVerifierAddress,
39
- inputValidatorAddress,
40
37
  e3ProgramAddress,
41
38
  };
42
39
  };
@@ -1,11 +1,16 @@
1
1
  export * from "./deployEnclave";
2
2
  export * from "./deployMocks";
3
3
  export * from "./utils";
4
+ export * from "./cleanIgnitionState";
5
+ export * from "./deployAndSave/bondingRegistry";
4
6
  export * from "./deployAndSave/ciphernodeRegistryOwnable";
5
7
  export * from "./deployAndSave/enclave";
6
- export * from "./deployAndSave/naiveRegistryFilter";
8
+ export * from "./deployAndSave/enclaveTicketToken";
9
+ export * from "./deployAndSave/enclaveToken";
10
+ export * from "./deployAndSave/mockStableToken";
11
+ export * from "./deployAndSave/slashingManager";
7
12
  export * from "./deployAndSave/mockComputeProvider";
8
13
  export * from "./deployAndSave/mockDecryptionVerifier";
9
- export * from "./deployAndSave/mockInputValidator";
10
14
  export * from "./deployAndSave/mockProgram";
15
+ export * from "./verify";
11
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../scripts/index.ts"],"names":[],"mappings":"AAMA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../scripts/index.ts"],"names":[],"mappings":"AAMA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC"}
@@ -6,10 +6,15 @@
6
6
  export * from "./deployEnclave";
7
7
  export * from "./deployMocks";
8
8
  export * from "./utils";
9
+ export * from "./cleanIgnitionState";
10
+ export * from "./deployAndSave/bondingRegistry";
9
11
  export * from "./deployAndSave/ciphernodeRegistryOwnable";
10
12
  export * from "./deployAndSave/enclave";
11
- export * from "./deployAndSave/naiveRegistryFilter";
13
+ export * from "./deployAndSave/enclaveTicketToken";
14
+ export * from "./deployAndSave/enclaveToken";
15
+ export * from "./deployAndSave/mockStableToken";
16
+ export * from "./deployAndSave/slashingManager";
12
17
  export * from "./deployAndSave/mockComputeProvider";
13
18
  export * from "./deployAndSave/mockDecryptionVerifier";
14
- export * from "./deployAndSave/mockInputValidator";
15
19
  export * from "./deployAndSave/mockProgram";
20
+ export * from "./verify";
@@ -0,0 +1,22 @@
1
+ import { type Provider } from "ethers";
2
+ /**
3
+ * ERC-1967 admin slot: keccak256("eip1967.proxy.admin") - 1
4
+ * This is where TransparentUpgradeableProxy stores the ProxyAdmin address
5
+ * https://docs.openzeppelin.com/contracts/5.x/api/proxy#ERC1967Utils-getAdmin--
6
+ */
7
+ export declare const ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
8
+ /**
9
+ * Gets the ProxyAdmin address from a TransparentUpgradeableProxy
10
+ * @param provider The ethers provider
11
+ * @param proxyAddress The address of the proxy contract
12
+ * @returns The address of the auto-deployed ProxyAdmin
13
+ */
14
+ export declare function getProxyAdmin(provider: Provider, proxyAddress: string): Promise<string>;
15
+ /**
16
+ * Verifies that the ProxyAdmin is owned by the expected owner
17
+ * @param proxyAdmin The ProxyAdmin contract instance
18
+ * @param expectedOwner The expected owner address
19
+ * @throws Error if owner doesn't match
20
+ */
21
+ export declare function verifyProxyAdminOwner(proxyAdmin: any, expectedOwner: string): Promise<void>;
22
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../scripts/proxy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,QAAQ,EAAc,MAAM,QAAQ,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,uEACuC,CAAC;AAEvE;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -0,0 +1,36 @@
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 { getAddress } from "ethers";
7
+ /**
8
+ * ERC-1967 admin slot: keccak256("eip1967.proxy.admin") - 1
9
+ * This is where TransparentUpgradeableProxy stores the ProxyAdmin address
10
+ * https://docs.openzeppelin.com/contracts/5.x/api/proxy#ERC1967Utils-getAdmin--
11
+ */
12
+ export const ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
13
+ /**
14
+ * Gets the ProxyAdmin address from a TransparentUpgradeableProxy
15
+ * @param provider The ethers provider
16
+ * @param proxyAddress The address of the proxy contract
17
+ * @returns The address of the auto-deployed ProxyAdmin
18
+ */
19
+ export async function getProxyAdmin(provider, proxyAddress) {
20
+ const adminSlotValue = await provider.getStorage(proxyAddress, ERC1967_ADMIN_SLOT);
21
+ // Extract the address from the storage slot (last 20 bytes)
22
+ const addressHex = "0x" + adminSlotValue.slice(-40);
23
+ return getAddress(addressHex);
24
+ }
25
+ /**
26
+ * Verifies that the ProxyAdmin is owned by the expected owner
27
+ * @param proxyAdmin The ProxyAdmin contract instance
28
+ * @param expectedOwner The expected owner address
29
+ * @throws Error if owner doesn't match
30
+ */
31
+ export async function verifyProxyAdminOwner(proxyAdmin, expectedOwner) {
32
+ const actualOwner = await proxyAdmin.owner();
33
+ if (actualOwner.toLowerCase() !== expectedOwner.toLowerCase()) {
34
+ throw new Error(`ProxyAdmin owner mismatch. Expected ${expectedOwner}, got ${actualOwner}`);
35
+ }
36
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runVerification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runVerification.d.ts","sourceRoot":"","sources":["../../scripts/runVerification.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
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 { verifyContracts } from "./verify";
8
+ async function main() {
9
+ const { ethers } = await hre.network.connect();
10
+ const [signer] = await ethers.getSigners();
11
+ const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
12
+ verifyContracts(chain);
13
+ }
14
+ main().catch((error) => {
15
+ console.error(error);
16
+ });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Upgrades the BondingRegistry contract implementation and saves the deployment arguments
3
+ * This keeps the same proxy address, only updates the implementation
4
+ */
5
+ export declare const upgradeBondingRegistry: () => Promise<void>;
6
+ //# sourceMappingURL=bondingRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bondingRegistry.d.ts","sourceRoot":"","sources":["../../../scripts/upgrade/bondingRegistry.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,eAAO,MAAM,sBAAsB,qBAiDlC,CAAC"}
@@ -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 { upgradeAndSaveBondingRegistry } from "../deployAndSave/bondingRegistry";
8
+ import { readDeploymentArgs } from "../utils";
9
+ /**
10
+ * Upgrades the BondingRegistry contract implementation and saves the deployment arguments
11
+ * This keeps the same proxy address, only updates the implementation
12
+ */
13
+ export const upgradeBondingRegistry = 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("BondingRegistry", chain);
20
+ if (!preDeployedArgs?.address) {
21
+ throw new Error("BondingRegistry 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("BondingRegistry 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 { bondingRegistry, implementationAddress } = await upgradeAndSaveBondingRegistry({
33
+ ownerAddress: signerAddress,
34
+ hre,
35
+ });
36
+ const bondingRegistryAddress = await bondingRegistry.getAddress();
37
+ console.log(`
38
+ ============================================
39
+ Upgrade Complete!
40
+ ============================================
41
+ Proxy Address: ${bondingRegistryAddress}
42
+ New Implementation: ${implementationAddress}
43
+ ============================================
44
+ `);
45
+ };
46
+ upgradeBondingRegistry().catch((error) => {
47
+ console.error(error);
48
+ process.exit(1);
49
+ });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Upgrades the CiphernodeRegistryOwnable contract implementation and saves the deployment arguments
3
+ * This keeps the same proxy address, only updates the implementation
4
+ */
5
+ export declare const upgradeCiphernodeRegistryOwnable: () => Promise<void>;
6
+ //# sourceMappingURL=ciphernodeRegistryOwnable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ciphernodeRegistryOwnable.d.ts","sourceRoot":"","sources":["../../../scripts/upgrade/ciphernodeRegistryOwnable.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,eAAO,MAAM,gCAAgC,qBAsD5C,CAAC"}
@@ -0,0 +1,52 @@
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 { upgradeAndSaveCiphernodeRegistryOwnable } from "../deployAndSave/ciphernodeRegistryOwnable";
8
+ import { deployAndSavePoseidonT3 } from "../deployAndSave/poseidonT3";
9
+ import { readDeploymentArgs } from "../utils";
10
+ /**
11
+ * Upgrades the CiphernodeRegistryOwnable contract implementation and saves the deployment arguments
12
+ * This keeps the same proxy address, only updates the implementation
13
+ */
14
+ export const upgradeCiphernodeRegistryOwnable = async () => {
15
+ const { ethers } = await hre.network.connect();
16
+ const [signer] = await ethers.getSigners();
17
+ const signerAddress = await signer.getAddress();
18
+ const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
19
+ console.log("Signer:", signerAddress);
20
+ const poseidonT3 = await deployAndSavePoseidonT3({ hre });
21
+ const preDeployedArgs = readDeploymentArgs("CiphernodeRegistryOwnable", chain);
22
+ if (!preDeployedArgs?.address) {
23
+ throw new Error("CiphernodeRegistryOwnable proxy not found. Deploy first before upgrading.");
24
+ }
25
+ if (!preDeployedArgs?.proxyRecords?.implementationAddress) {
26
+ throw new Error("Existing deployment is not proxy-based. Cannot upgrade non-proxy deployments.");
27
+ }
28
+ console.log("CiphernodeRegistryOwnable Proxy Address (from deployments):", preDeployedArgs.address);
29
+ const code = await ethers.provider.getCode(preDeployedArgs.address);
30
+ if (code === "0x") {
31
+ throw new Error(`No contract found at proxy address ${preDeployedArgs.address}`);
32
+ }
33
+ console.log("Proxy contract exists on-chain");
34
+ const { ciphernodeRegistry, implementationAddress } = await upgradeAndSaveCiphernodeRegistryOwnable({
35
+ poseidonT3Address: poseidonT3,
36
+ ownerAddress: signerAddress,
37
+ hre,
38
+ });
39
+ const ciphernodeRegistryAddress = await ciphernodeRegistry.getAddress();
40
+ console.log(`
41
+ ============================================
42
+ Upgrade Complete!
43
+ ============================================
44
+ Proxy Address: ${ciphernodeRegistryAddress}
45
+ New Implementation: ${implementationAddress}
46
+ ============================================
47
+ `);
48
+ };
49
+ upgradeCiphernodeRegistryOwnable().catch((error) => {
50
+ console.error(error);
51
+ process.exit(1);
52
+ });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Upgrades the Enclave contract implementation and saves the deployment arguments
3
+ * This keeps the same proxy address, only updates the implementation
4
+ */
5
+ export declare const upgradeEnclave: () => Promise<void>;
6
+ //# sourceMappingURL=enclave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../../scripts/upgrade/enclave.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,eAAO,MAAM,cAAc,qBA8C1B,CAAC"}