@enclave-e3/contracts 0.1.11 → 0.1.13

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 (257) hide show
  1. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +3 -3
  2. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/artifacts.d.ts +3 -3
  3. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -1
  4. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +3 -3
  5. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/artifacts.d.ts +4 -4
  6. package/artifacts/build-info/{solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.json → solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.json} +27 -12
  7. package/artifacts/build-info/solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.output.json +1 -0
  8. package/artifacts/contracts/E3RefundManager.sol/E3RefundManager.json +684 -0
  9. package/artifacts/contracts/E3RefundManager.sol/artifacts.d.ts +27 -0
  10. package/artifacts/contracts/Enclave.sol/Enclave.json +530 -182
  11. package/artifacts/contracts/Enclave.sol/artifacts.d.ts +4 -4
  12. package/artifacts/contracts/interfaces/IBondingRegistry.sol/IBondingRegistry.json +14 -1
  13. package/artifacts/contracts/interfaces/IBondingRegistry.sol/artifacts.d.ts +2 -2
  14. package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +55 -5
  15. package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +2 -2
  16. package/artifacts/contracts/interfaces/IComputeProvider.sol/IComputeProvider.json +1 -1
  17. package/artifacts/contracts/interfaces/IComputeProvider.sol/artifacts.d.ts +1 -1
  18. package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/IDecryptionVerifier.json +1 -1
  19. package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/artifacts.d.ts +1 -1
  20. package/artifacts/contracts/interfaces/IE3Program.sol/IE3Program.json +19 -24
  21. package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +2 -2
  22. package/artifacts/contracts/interfaces/IE3RefundManager.sol/IE3RefundManager.json +470 -0
  23. package/artifacts/contracts/interfaces/IE3RefundManager.sol/artifacts.d.ts +27 -0
  24. package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +383 -128
  25. package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +2 -2
  26. package/artifacts/contracts/interfaces/ISlashVerifier.sol/ISlashVerifier.json +1 -1
  27. package/artifacts/contracts/interfaces/ISlashVerifier.sol/artifacts.d.ts +1 -1
  28. package/artifacts/contracts/interfaces/ISlashingManager.sol/ISlashingManager.json +1 -1
  29. package/artifacts/contracts/interfaces/ISlashingManager.sol/artifacts.d.ts +1 -1
  30. package/artifacts/contracts/lib/ExitQueueLib.sol/ExitQueueLib.json +1 -1
  31. package/artifacts/contracts/lib/ExitQueueLib.sol/artifacts.d.ts +1 -1
  32. package/artifacts/contracts/registry/BondingRegistry.sol/BondingRegistry.json +16 -3
  33. package/artifacts/contracts/registry/BondingRegistry.sol/artifacts.d.ts +4 -4
  34. package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +91 -25
  35. package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +6 -6
  36. package/artifacts/contracts/slashing/SlashingManager.sol/SlashingManager.json +3 -3
  37. package/artifacts/contracts/slashing/SlashingManager.sol/artifacts.d.ts +3 -3
  38. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +57 -7
  39. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +57 -7
  40. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +8 -8
  41. package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +3 -3
  42. package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +3 -3
  43. package/artifacts/contracts/test/MockDecryptionVerifier.sol/MockDecryptionVerifier.json +1 -1
  44. package/artifacts/contracts/test/MockDecryptionVerifier.sol/artifacts.d.ts +1 -1
  45. package/artifacts/contracts/test/MockE3Program.sol/MockE3Program.json +21 -26
  46. package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +4 -4
  47. package/artifacts/contracts/test/MockSlashingVerifier.sol/MockSlashingVerifier.json +1 -1
  48. package/artifacts/contracts/test/MockSlashingVerifier.sol/artifacts.d.ts +1 -1
  49. package/artifacts/contracts/test/MockStableToken.sol/MockUSDC.json +3 -3
  50. package/artifacts/contracts/test/MockStableToken.sol/artifacts.d.ts +3 -3
  51. package/artifacts/contracts/token/EnclaveTicketToken.sol/EnclaveTicketToken.json +14 -22
  52. package/artifacts/contracts/token/EnclaveTicketToken.sol/artifacts.d.ts +4 -4
  53. package/artifacts/contracts/token/EnclaveToken.sol/EnclaveToken.json +10 -10
  54. package/artifacts/contracts/token/EnclaveToken.sol/artifacts.d.ts +4 -4
  55. package/artifacts/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.json +89 -0
  56. package/artifacts/contracts/verifier/DkgPkVerifier.sol/CommitmentSchemeLib.json +13 -0
  57. package/artifacts/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.json +186 -0
  58. package/artifacts/contracts/verifier/DkgPkVerifier.sol/FrLib.json +13 -0
  59. package/artifacts/contracts/verifier/DkgPkVerifier.sol/Honk.json +13 -0
  60. package/artifacts/contracts/verifier/DkgPkVerifier.sol/HonkVerificationKey.json +13 -0
  61. package/artifacts/contracts/verifier/DkgPkVerifier.sol/IVerifier.json +38 -0
  62. package/artifacts/contracts/verifier/DkgPkVerifier.sol/RelationsLib.json +13 -0
  63. package/artifacts/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.json +400 -0
  64. package/artifacts/contracts/verifier/DkgPkVerifier.sol/artifacts.d.ts +155 -0
  65. package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +1 -1
  66. package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +1 -1
  67. package/contracts/E3RefundManager.sol +365 -0
  68. package/contracts/Enclave.sol +426 -119
  69. package/contracts/interfaces/IBondingRegistry.sol +6 -0
  70. package/contracts/interfaces/ICiphernodeRegistry.sol +29 -7
  71. package/contracts/interfaces/IE3.sol +2 -6
  72. package/contracts/interfaces/IE3Program.sol +3 -7
  73. package/contracts/interfaces/IE3RefundManager.sol +150 -0
  74. package/contracts/interfaces/IEnclave.sol +186 -64
  75. package/contracts/registry/BondingRegistry.sol +9 -0
  76. package/contracts/registry/CiphernodeRegistryOwnable.sol +89 -42
  77. package/contracts/test/MockCiphernodeRegistry.sol +20 -6
  78. package/contracts/test/MockE3Program.sol +3 -8
  79. package/contracts/verifier/DkgPkVerifier.sol +3140 -0
  80. package/dist/hardhat.config.d.ts.map +1 -1
  81. package/dist/hardhat.config.js +4 -4
  82. package/dist/ignition/modules/dkgPkVerifier.d.ts +3 -0
  83. package/dist/ignition/modules/dkgPkVerifier.d.ts.map +1 -0
  84. package/dist/ignition/modules/dkgPkVerifier.js +10 -0
  85. package/dist/ignition/modules/e3RefundManager.d.ts +3 -0
  86. package/dist/ignition/modules/e3RefundManager.d.ts.map +1 -0
  87. package/dist/ignition/modules/e3RefundManager.js +23 -0
  88. package/dist/ignition/modules/enclave.d.ts.map +1 -1
  89. package/dist/ignition/modules/enclave.js +10 -0
  90. package/dist/scripts/deployAndSave/e3RefundManager.d.ts +20 -0
  91. package/dist/scripts/deployAndSave/e3RefundManager.d.ts.map +1 -0
  92. package/dist/scripts/deployAndSave/e3RefundManager.js +55 -0
  93. package/dist/scripts/deployAndSave/enclave.d.ts +13 -1
  94. package/dist/scripts/deployAndSave/enclave.d.ts.map +1 -1
  95. package/dist/scripts/deployAndSave/enclave.js +8 -1
  96. package/dist/scripts/deployAndSave/verifiers.d.ts +29 -0
  97. package/dist/scripts/deployAndSave/verifiers.d.ts.map +1 -0
  98. package/dist/scripts/deployAndSave/verifiers.js +109 -0
  99. package/dist/scripts/deployEnclave.d.ts.map +1 -1
  100. package/dist/scripts/deployEnclave.js +36 -0
  101. package/dist/scripts/deployVerifiers.d.ts +2 -0
  102. package/dist/scripts/deployVerifiers.d.ts.map +1 -0
  103. package/dist/scripts/deployVerifiers.js +33 -0
  104. package/dist/scripts/index.d.ts +1 -0
  105. package/dist/scripts/index.d.ts.map +1 -1
  106. package/dist/scripts/index.js +1 -0
  107. package/dist/tasks/enclave.d.ts +0 -2
  108. package/dist/tasks/enclave.d.ts.map +1 -1
  109. package/dist/tasks/enclave.js +8 -72
  110. package/dist/tasks/program.d.ts +2 -0
  111. package/dist/tasks/program.d.ts.map +1 -0
  112. package/dist/tasks/program.js +55 -0
  113. package/dist/test/E3Lifecycle/E3Integration.spec.d.ts +2 -0
  114. package/dist/test/E3Lifecycle/E3Integration.spec.d.ts.map +1 -0
  115. package/dist/test/E3Lifecycle/E3Integration.spec.js +757 -0
  116. package/dist/test/Enclave.spec.js +83 -406
  117. package/dist/test/Registry/CiphernodeRegistryOwnable.spec.js +133 -59
  118. package/dist/types/contracts/E3RefundManager.d.ts +379 -0
  119. package/dist/types/contracts/E3RefundManager.d.ts.map +1 -0
  120. package/dist/types/contracts/E3RefundManager.js +24 -0
  121. package/dist/types/contracts/Enclave.d.ts +325 -73
  122. package/dist/types/contracts/Enclave.d.ts.map +1 -1
  123. package/dist/types/contracts/Enclave.js +27 -3
  124. package/dist/types/contracts/index.d.ts +3 -0
  125. package/dist/types/contracts/index.d.ts.map +1 -1
  126. package/dist/types/contracts/interfaces/IBondingRegistry.d.ts +11 -1
  127. package/dist/types/contracts/interfaces/IBondingRegistry.d.ts.map +1 -1
  128. package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts +35 -7
  129. package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts.map +1 -1
  130. package/dist/types/contracts/interfaces/ICiphernodeRegistry.js +4 -0
  131. package/dist/types/contracts/interfaces/IE3Program.d.ts +16 -18
  132. package/dist/types/contracts/interfaces/IE3Program.d.ts.map +1 -1
  133. package/dist/types/contracts/interfaces/IE3RefundManager.d.ts +238 -0
  134. package/dist/types/contracts/interfaces/IE3RefundManager.d.ts.map +1 -0
  135. package/dist/types/contracts/interfaces/IE3RefundManager.js +16 -0
  136. package/dist/types/contracts/interfaces/IEnclave.d.ts +290 -62
  137. package/dist/types/contracts/interfaces/IEnclave.d.ts.map +1 -1
  138. package/dist/types/contracts/interfaces/IEnclave.js +27 -3
  139. package/dist/types/contracts/interfaces/index.d.ts +1 -0
  140. package/dist/types/contracts/interfaces/index.d.ts.map +1 -1
  141. package/dist/types/contracts/registry/BondingRegistry.d.ts +11 -1
  142. package/dist/types/contracts/registry/BondingRegistry.d.ts.map +1 -1
  143. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts +35 -7
  144. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts.map +1 -1
  145. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.js +4 -0
  146. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts +35 -7
  147. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts.map +1 -1
  148. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.js +4 -0
  149. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts +35 -7
  150. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
  151. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.js +4 -0
  152. package/dist/types/contracts/test/MockE3Program.d.ts +16 -18
  153. package/dist/types/contracts/test/MockE3Program.d.ts.map +1 -1
  154. package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts +36 -0
  155. package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts.map +1 -0
  156. package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.js +1 -0
  157. package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts +36 -0
  158. package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts.map +1 -0
  159. package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.js +1 -0
  160. package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts +36 -0
  161. package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts.map +1 -0
  162. package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.js +1 -0
  163. package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts +138 -0
  164. package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts.map +1 -0
  165. package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.js +1 -0
  166. package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
  167. package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
  168. package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.js +1 -0
  169. package/dist/types/contracts/verifier/index.d.ts +3 -0
  170. package/dist/types/contracts/verifier/index.d.ts.map +1 -0
  171. package/dist/types/contracts/verifier/index.js +1 -0
  172. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
  173. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -1
  174. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
  175. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +1 -1
  176. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts.map +1 -1
  177. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +1 -1
  178. package/dist/types/factories/contracts/E3RefundManager__factory.d.ts +540 -0
  179. package/dist/types/factories/contracts/E3RefundManager__factory.d.ts.map +1 -0
  180. package/dist/types/factories/contracts/E3RefundManager__factory.js +706 -0
  181. package/dist/types/factories/contracts/Enclave__factory.d.ts +412 -143
  182. package/dist/types/factories/contracts/Enclave__factory.d.ts.map +1 -1
  183. package/dist/types/factories/contracts/Enclave__factory.js +528 -180
  184. package/dist/types/factories/contracts/index.d.ts +2 -0
  185. package/dist/types/factories/contracts/index.d.ts.map +1 -1
  186. package/dist/types/factories/contracts/index.js +2 -0
  187. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts +10 -0
  188. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts.map +1 -1
  189. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.js +13 -0
  190. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts +42 -4
  191. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts.map +1 -1
  192. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.js +54 -4
  193. package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts +14 -18
  194. package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts.map +1 -1
  195. package/dist/types/factories/contracts/interfaces/IE3Program__factory.js +18 -23
  196. package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts +358 -0
  197. package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts.map +1 -0
  198. package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.js +471 -0
  199. package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts +303 -103
  200. package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts.map +1 -1
  201. package/dist/types/factories/contracts/interfaces/IEnclave__factory.js +382 -127
  202. package/dist/types/factories/contracts/interfaces/index.d.ts +1 -0
  203. package/dist/types/factories/contracts/interfaces/index.d.ts.map +1 -1
  204. package/dist/types/factories/contracts/interfaces/index.js +1 -0
  205. package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts +11 -1
  206. package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts.map +1 -1
  207. package/dist/types/factories/contracts/registry/BondingRegistry__factory.js +14 -1
  208. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts +62 -12
  209. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts.map +1 -1
  210. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.js +79 -13
  211. package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts +1 -1
  212. package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts.map +1 -1
  213. package/dist/types/factories/contracts/slashing/SlashingManager__factory.js +1 -1
  214. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts +43 -5
  215. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts.map +1 -1
  216. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.js +55 -5
  217. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts +43 -5
  218. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts.map +1 -1
  219. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.js +55 -5
  220. package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts +1 -1
  221. package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts.map +1 -1
  222. package/dist/types/factories/contracts/test/MockComputeProvider__factory.js +1 -1
  223. package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts +15 -19
  224. package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts.map +1 -1
  225. package/dist/types/factories/contracts/test/MockE3Program__factory.js +19 -24
  226. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts +1 -1
  227. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts.map +1 -1
  228. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.js +1 -1
  229. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts +1 -1
  230. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts.map +1 -1
  231. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.js +1 -1
  232. package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts +1 -1
  233. package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts.map +1 -1
  234. package/dist/types/factories/contracts/token/EnclaveToken__factory.js +1 -1
  235. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts +66 -0
  236. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts.map +1 -0
  237. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.js +90 -0
  238. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts +87 -0
  239. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts.map +1 -0
  240. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.js +122 -0
  241. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts +26 -0
  242. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts.map +1 -0
  243. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.js +39 -0
  244. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts +323 -0
  245. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts.map +1 -0
  246. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.js +422 -0
  247. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
  248. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
  249. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.js +7 -0
  250. package/dist/types/factories/contracts/verifier/index.d.ts +2 -0
  251. package/dist/types/factories/contracts/verifier/index.d.ts.map +1 -0
  252. package/dist/types/factories/contracts/verifier/index.js +4 -0
  253. package/dist/types/index.d.ts +12 -0
  254. package/dist/types/index.d.ts.map +1 -1
  255. package/dist/types/index.js +6 -0
  256. package/package.json +17 -3
  257. package/artifacts/build-info/solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.output.json +0 -1
@@ -15,7 +15,7 @@ export declare class Enclave__factory extends ContractFactory {
15
15
  deploymentTransaction(): ContractTransactionResponse;
16
16
  }>;
17
17
  connect(runner: ContractRunner | null): Enclave__factory;
18
- static readonly bytecode = "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6130b8806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101dc575f3560e01c80638da5cb5b11610109578063cbd168721161009e578063efe0308b1161006e578063efe0308b146104af578063f2fde38b146104c2578063fad8e111146104d5578063fd2f3d01146104e8575f5ffd5b8063cbd1687214610463578063cf0f34c414610476578063d016b08d14610489578063e59e46951461049c575f5ffd5b8063b260c42a116100d9578063b260c42a14610412578063b68fd1be14610425578063c4ccafa214610438578063cb6496171461045a575f5ffd5b80638da5cb5b146103aa5780638dcdd86b146103da5780639c8570c8146103ec578063ac4e410c146103ff575f5ffd5b8063459d92941161017f5780636db5c8fd1161014f5780636db5c8fd14610371578063715018a61461037a5780637edcd7ab146103845780638581424314610397575f5ffd5b8063459d92941461030a5780634e92ec63146103385780634fc772641461034b578063647846a51461035e575f5ffd5b806315cce224116101ba57806315cce2241461026e5780634017daf014610291578063406ed35c146102bd5780634147a360146102dd575f5ffd5b80630ef81b2f146101e057806310bc6281146102255780631408d1221461024d575b5f5ffd5b6102086101ee3660046123f1565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6102086102333660046123f1565b60076020525f90815260409020546001600160a01b031681565b61026061025b366004612408565b6104fb565b60405161021c9291906125df565b61028161027c366004612613565b610b2e565b604051901515815260200161021c565b6102a461029f3660046123f1565b610be4565b60405161021c9d9c9b9a9998979695949392919061262e565b6102d06102cb3660046123f1565b610dfd565b60405161021c91906126df565b6102fc6102eb3660046123f1565b60096020525f908152604090205481565b60405190815260200161021c565b6102816103183660046127a2565b805160208183018101805160088252928201919093012091525460ff1681565b6102816103463660046123f1565b61111d565b610281610359366004612613565b6111b1565b600254610208906001600160a01b031681565b6102fc60035481565b610382611255565b005b610281610392366004612819565b611268565b600154610208906001600160a01b031681565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610208565b5f54610208906001600160a01b031681565b6102816103fa366004612819565b611429565b6102fc61040d366004612408565b6115cc565b6102816104203660046123f1565b6115d6565b610281610433366004612943565b611745565b610281610446366004612613565b60056020525f908152604090205460ff1681565b6102fc60045481565b610281610471366004612975565b6117ef565b6102816104843660046123f1565b6118b0565b6102816104973660046129a3565b6118f2565b6102816104aa366004612613565b6119c9565b6103826104bd3660046129eb565b611a72565b6103826104d0366004612613565b611bf3565b6102816104e3366004612613565b611c30565b6102816104f6366004612613565b611cdb565b5f610504612263565b5f61050e846115cc565b905061051d6020850185612aa2565b63ffffffff166105336040860160208701612aa2565b63ffffffff161015801561055857505f6105506020860186612aa2565b63ffffffff16115b849061058157604051633744092160e21b81526004016105789190612aeb565b60405180910390fd5b50604084013560608501351080159061059e575042606085013510155b6105bb576040516308594fb760e01b815260040160405180910390fd5b5f84608001351180156105d45750600354846080013511155b8460800135906105fa576040516313b783af60e21b815260040161057891815260200190565b5060055f61060e60c0870160a08801612613565b6001600160a01b0316815260208101919091526040015f205460ff1661063a60c0860160a08701612613565b906106645760405163295a6a6f60e11b81526001600160a01b039091166004820152602401610578565b5060048054935083905f61067783612b0d565b90915550506040805144602080830191909152818301869052825180830384018152606090920183528151910120808452815180830183529091869060029083908390808284375f92019190915250505060208401524360408085019190915280518082018252908681019060029083908390808284375f920182905250606087019390935250506080808701359085015260a0808501919091526107229060c08701908701612613565b6001600160a01b031660e084015261073d60c0860186612b25565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506101008085019190915261078690860186612b25565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101208801949094525050506101608401819052610180840181905260408051602081019091528181526101a0850152336101c08501526107fc60c0870160a08801612613565b6001600160a01b031663fefd9a8b868461081960c08b018b612b25565b61082660e08d018d612b25565b6108346101008f018f612b25565b6040518963ffffffff1660e01b8152600401610857989796959493929190612b90565b6020604051808303815f875af1158015610873573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108979190612be6565b5f818152600760205260409020549091506001600160a01b031681816108d3576040516381c4951960e01b815260040161057891815260200190565b5060c085018290526001600160a01b0381166101408601525f868152600660209081526040909120865181559086015186919061091690600183019060026122f6565b5060408201518160020155606082015181600301906002610938929190612391565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b0390921691909117905561010082015160098201906109929082612c7b565b50610120820151600a8201906109a89082612c7b565b50610140820151600b820180546001600160a01b0319166001600160a01b03909216919091179055610160820151600c820155610180820151600d8201556101a0820151600e8201906109fb9082612c7b565b506101c09190910151600f90910180546001600160a01b0319166001600160a01b039283161790555f878152600960205260409020859055600254610a439116333087611d85565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b90610a7690899087908c90600401612d36565b6020604051808303815f875af1158015610a92573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab69190612d51565b610ad357604051630d8dbe2560e01b815260040160405180910390fd5b610ae360c0880160a08901612613565b6001600160a01b03167f4ecb0221c454f0d5b8f84e30e1140e22464fe24db107d56ce81dadfaa1549a838787604051610b1d9291906125df565b60405180910390a250505050915091565b5f610b37611dfa565b6001600160a01b03821615801590610b5d57506002546001600160a01b03838116911614155b8290610b885760405163eddf07f560e01b81526001600160a01b039091166004820152602401610578565b5050600280546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f3906020015b60405180910390a1919050565b600660208190525f91825260409091208054600282015460058301549383015460078401546008850154600986018054959794969495939492936001600160a01b039092169291610c3490612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6090612bfd565b8015610cab5780601f10610c8257610100808354040283529160200191610cab565b820191905f5260205f20905b815481529060010190602001808311610c8e57829003601f168201915b50505050509080600a018054610cc090612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610cec90612bfd565b8015610d375780601f10610d0e57610100808354040283529160200191610d37565b820191905f5260205f20905b815481529060010190602001808311610d1a57829003601f168201915b505050600b840154600c850154600d860154600e8701805496976001600160a01b039094169692955090935090610d6d90612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9990612bfd565b8015610de45780601f10610dbb57610100808354040283529160200191610de4565b820191905f5260205f20905b815481529060010190602001808311610dc757829003601f168201915b505050600f90930154919250506001600160a01b03168d565b610e05612263565b5f82815260066020908152604080832081516101e0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610e4057505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610ea657505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a090920191610f0790612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3390612bfd565b8015610f7e5780601f10610f5557610100808354040283529160200191610f7e565b820191905f5260205f20905b815481529060010190602001808311610f6157829003601f168201915b50505050508152602001600a82018054610f9790612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc390612bfd565b801561100e5780601f10610fe55761010080835404028352916020019161100e565b820191905f5260205f20905b815481529060010190602001808311610ff157829003601f168201915b5050509183525050600b8201546001600160a01b03166020820152600c8201546040820152600d8201546060820152600e8201805460809092019161105290612bfd565b80601f016020809104026020016040519081016040528092919081815260200182805461107e90612bfd565b80156110c95780601f106110a0576101008083540402835291602001916110c9565b820191905f5260205f20905b8154815290600101906020018083116110ac57829003601f168201915b5050509183525050600f91909101546001600160a01b0390811660209092019190915260e08201519192508391166111175760405163cd6f4a4f60e01b815260040161057891815260200190565b50919050565b5f611126611dfa565b5f8281526007602052604090205482906001600160a01b031661115f576040516381c4951960e01b815260040161057891815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610bd79084815260200190565b5f6111ba611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff16611200576040516321ac7c5f60e01b81526001600160a01b039091166004820152602401610578565b50506001600160a01b0381165f81815260056020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610bd7565b61125d611dfa565b6112665f611e55565b565b5f5f61127387610dfd565b90505f8160a0015111879061129e5760405163166b4d0360e01b815260040161057891815260200190565b5061018081015187906112c75760405163032c20ef60e21b815260040161057891815260200190565b506101a0810151518790156112f2576040516360ec327960e01b815260040161057891815260200190565b505f878152600660205260409020600e0161130e868883612d70565b508061014001516001600160a01b0316632f0e1bbf888888604051611334929190612e2a565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252611377929189908990600401612e39565b602060405180830381865afa158015611392573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b69190612d51565b91508585836113da57604051632f9f8ab960e01b8152600401610578929190612e62565b50506113e587611ec5565b867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca1698787604051611417929190612e62565b60405180910390a25095945050505050565b5f5f61143487610dfd565b90505f8160a0015111879061145f5760405163166b4d0360e01b815260040161057891815260200190565b5060a0810151879042811115611491576040516370c05fb960e11b815260048101929092526024820152604401610578565b50506101808101518790156114bc57604051637eb9cea960e11b815260040161057891815260200190565b505f86866040516114ce929190612e2a565b604080519182900382205f8b8152600660205291909120600d0181905560e0840151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf90611521908b9085908a908a90600401612e39565b6020604051808303815f875af115801561153d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115619190612d51565b925086868461158557604051632f9f8ab960e01b8152600401610578929190612e62565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade07188886040516115b9929190612e62565b60405180910390a2505095945050505050565b620f424080611117565b5f5f6115e183610dfd565b90508060a001515f14839061160c57604051633e26347b60e21b815260040161057891815260200190565b506060810151514210156116335760405163a0750b5160e01b815260040160405180910390fd5b60608101516020015142111561165c57604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018690526001600160a01b039091169063e82f3b7090602401602060405180830381865afa1580156116a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c79190612be6565b90505f8260800151426116da9190612e75565b5f86815260066020818152604092839020918201849055600c90910185905581518881529081018390529081018490529091507f38d3b0e32ac79e8b5ba6e95ad66f2ff3ef525893ba853ac583cd0a7c14d09e8c9060600160405180910390a1506001949350505050565b5f61174e611dfa565b81515f5b818110156117ad576001600885838151811061177057611770612a76565b60200260200101516040516117859190612e88565b908152604051908190036020019020805491151560ff19909216919091179055600101611752565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516117e19190612e9e565b60405180910390a150919050565b5f6117f8611dfa565b6001600160a01b0382161580159061182957505f838152600760205260409020546001600160a01b03838116911614155b839061184b576040516381c4951960e01b815260040161057891815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6118b9611dfa565b5060038190556040518181526001907fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610bd7565b5f5f6118fd85610dfd565b90505f8160a001511185906119285760405163166b4d0360e01b815260040161057891815260200190565b5060a081015185904281116119595760405163142c294360e31b815260048101929092526024820152604401610578565b50508060e001516001600160a01b031663d927910e863387876040518563ffffffff1660e01b81526004016119919493929190612f01565b5f604051808303815f87803b1580156119a8575f5ffd5b505af11580156119ba573d5f5f3e3d5ffd5b50600198975050505050505050565b5f6119d2611dfa565b6001600160a01b038216158015906119f857506001546001600160a01b03838116911614155b8290611a23576040516320252f0b60e01b81526001600160a01b039091166004820152602401610578565b5050600180546001600160a01b0319166001600160a01b03831690811782556040519081527fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a790602001610bd7565b5f611a7b612171565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015611aa75750825b90505f8267ffffffffffffffff166001148015611ac35750303b155b905081158015611ad1575080155b15611aef5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b2357845468ff00000000000000001916680100000000000000001785555b611b2c3361219b565b611b35876118b0565b50611b3f8a611c30565b50611b49896119c9565b50611b5388610b2e565b50611b5d86611745565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038c8116911614611b9b57611b9b8b611bf3565b8315611be657845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b611bfb611dfa565b6001600160a01b038116611c2457604051631e4fbdf760e01b81525f6004820152602401610578565b611c2d81611e55565b50565b5f611c39611dfa565b6001600160a01b03821615801590611c5e57505f546001600160a01b03838116911614155b8290611c89576040516375ac4eb760e11b81526001600160a01b039091166004820152602401610578565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610bd7565b5f611ce4611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff1615611d2b5760405163b29d459560e01b81526001600160a01b039091166004820152602401610578565b50506001600160a01b0381165f81815260056020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610bd7565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b179052611df49085906121ac565b50505050565b33611e2c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146112665760405163118cdaa760e01b8152336004820152602401610578565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa158015611f0b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f329190810190612f29565b80519091505f8167ffffffffffffffff811115611f5157611f516126f1565b604051908082528060200260200182016040528015611f7a578160200160208202803683370190505b505f8581526009602052604081205491925090611f98908490612fb9565b90505f5b83811015611fca5781838281518110611fb757611fb7612a76565b6020908102919091010152600101611f9c565b505f858152600960205260408082208054929055600254600154915163095ea7b360e01b81526001600160a01b0392831660048201526024810184905291169063095ea7b3906044016020604051808303815f875af115801561202f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120539190612d51565b50600154600254604051636ec640c760e11b81526001600160a01b039283169263dd8c818e9261208c929116908990889060040161304b565b5f604051808303815f87803b1580156120a3575f5ffd5b505af11580156120b5573d5f5f3e3d5ffd5b505060025460015460405163095ea7b360e01b81526001600160a01b0391821660048201525f60248201529116925063095ea7b391506044016020604051808303815f875af115801561210a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e9190612d51565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a868560405161216192919061307e565b60405180910390a2505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b6121a3612218565b611c2d8161223d565b5f5f60205f8451602086015f885af1806121cb576040513d5f823e3d81fd5b50505f513d915081156121e25780600114156121ef565b6001600160a01b0384163b155b15611df457604051635274afe760e01b81526001600160a01b0385166004820152602401610578565b612220612245565b61126657604051631afcd79f60e31b815260040160405180910390fd5b611bfb612218565b5f61224e612171565b5468010000000000000000900460ff16919050565b604051806101e001604052805f815260200161227d6123bf565b81526020015f81526020016122906123bf565b81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081526020015f6001600160a01b031681525090565b600183019183908215612381579160200282015f5b8382111561234f57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261230b565b801561237f5782816101000a81549063ffffffff021916905560040160208160030104928301926001030261234f565b505b5061238d9291506123dd565b5090565b8260028101928215612381579160200282015b828111156123815782518255916020019190600101906123a4565b60405180604001604052806002906020820280368337509192915050565b5b8082111561238d575f81556001016123de565b5f60208284031215612401575f5ffd5b5035919050565b5f60208284031215612418575f5ffd5b813567ffffffffffffffff81111561242e575f5ffd5b82016101208185031215612440575f5ffd5b9392505050565b805f5b6002811015611df457815163ffffffff1684526020938401939091019060010161244a565b805f5b6002811015611df4578151845260209384019390910190600101612472565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b805182525f60208201516124d66020850182612447565b506040820151606084015260608201516124f3608085018261246f565b50608082015160c084015260a082015160e084015260c082015161010084015260e082015161252e6101208501826001600160a01b03169052565b5061010082015161022061014085015261254c610220850182612491565b90506101208301518482036101608601526125678282612491565b9150506101408301516125866101808601826001600160a01b03169052565b506101608301516101a08501526101808301516101c08501526101a08301518482036101e08601526125b88282612491565b9150506101c08301516125d76102008601826001600160a01b03169052565b509392505050565b828152604060208201525f6125f760408301846124bf565b949350505050565b6001600160a01b0381168114611c2d575f5ffd5b5f60208284031215612623575f5ffd5b8135612440816125ff565b8d81528c60208201528b60408201528a60608201528960808201526001600160a01b03891660a08201526101a060c08201525f61266f6101a083018a612491565b82810360e0840152612681818a612491565b6001600160a01b038916610100850152905086610120840152856101408401528281036101608401526126b48186612491565b9150506126cd6101808301846001600160a01b03169052565b9e9d5050505050505050505050505050565b602081525f61244060208301846124bf565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561272e5761272e6126f1565b604052919050565b5f82601f830112612745575f5ffd5b813567ffffffffffffffff81111561275f5761275f6126f1565b612772601f8201601f1916602001612705565b818152846020838601011115612786575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156127b2575f5ffd5b813567ffffffffffffffff8111156127c8575f5ffd5b6125f784828501612736565b5f5f83601f8401126127e4575f5ffd5b50813567ffffffffffffffff8111156127fb575f5ffd5b602083019150836020828501011115612812575f5ffd5b9250929050565b5f5f5f5f5f6060868803121561282d575f5ffd5b85359450602086013567ffffffffffffffff81111561284a575f5ffd5b612856888289016127d4565b909550935050604086013567ffffffffffffffff811115612875575f5ffd5b612881888289016127d4565b969995985093965092949392505050565b5f67ffffffffffffffff8211156128ab576128ab6126f1565b5060051b60200190565b5f82601f8301126128c4575f5ffd5b81356128d76128d282612892565b612705565b8082825260208201915060208360051b8601019250858311156128f8575f5ffd5b602085015b8381101561293957803567ffffffffffffffff81111561291b575f5ffd5b61292a886020838a0101612736565b845250602092830192016128fd565b5095945050505050565b5f60208284031215612953575f5ffd5b813567ffffffffffffffff811115612969575f5ffd5b6125f7848285016128b5565b5f5f60408385031215612986575f5ffd5b823591506020830135612998816125ff565b809150509250929050565b5f5f5f604084860312156129b5575f5ffd5b83359250602084013567ffffffffffffffff8111156129d2575f5ffd5b6129de868287016127d4565b9497909650939450505050565b5f5f5f5f5f5f60c08789031215612a00575f5ffd5b8635612a0b816125ff565b95506020870135612a1b816125ff565b94506040870135612a2b816125ff565b93506060870135612a3b816125ff565b92506080870135915060a087013567ffffffffffffffff811115612a5d575f5ffd5b612a6989828a016128b5565b9150509295509295509295565b634e487b7160e01b5f52603260045260245ffd5b803563ffffffff81168114612a9d575f5ffd5b919050565b5f60208284031215612ab2575f5ffd5b61244082612a8a565b805f5b6002811015611df45763ffffffff612ad583612a8a565b1684526020938401939190910190600101612abe565b604081016121958284612abb565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612b1e57612b1e612af9565b5060010190565b5f5f8335601e19843603018112612b3a575f5ffd5b83018035915067ffffffffffffffff821115612b54575f5ffd5b602001915036819003821315612812575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b88815287602082015260a060408201525f612baf60a08301888a612b68565b8281036060840152612bc2818789612b68565b90508281036080840152612bd7818587612b68565b9b9a5050505050505050505050565b5f60208284031215612bf6575f5ffd5b5051919050565b600181811c90821680612c1157607f821691505b60208210810361111757634e487b7160e01b5f52602260045260245ffd5b601f821115612c7657805f5260205f20601f840160051c81016020851015612c545750805b601f840160051c820191505b81811015612c73575f8155600101612c60565b50505b505050565b815167ffffffffffffffff811115612c9557612c956126f1565b612ca981612ca38454612bfd565b84612c2f565b6020601f821160018114612cdb575f8315612cc45750848201515b5f19600385901b1c1916600184901b178455612c73565b5f84815260208120601f198516915b82811015612d0a5787850151825560209485019460019092019101612cea565b5084821015612d2757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016125f76040830184612abb565b5f60208284031215612d61575f5ffd5b81518015158114612440575f5ffd5b67ffffffffffffffff831115612d8857612d886126f1565b612d9c83612d968354612bfd565b83612c2f565b5f601f841160018114612dcd575f8515612db65750838201355b5f19600387901b1c1916600186901b178355612c73565b5f83815260208120601f198716915b82811015612dfc5786850135825560209485019460019092019101612ddc565b5086821015612e18575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818382375f9101908152919050565b848152836020820152606060408201525f612e58606083018486612b68565b9695505050505050565b602081525f6125f7602083018486612b68565b8082018082111561219557612195612af9565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ef557603f19878603018452612ee0858351612491565b94506020938401939190910190600101612ec4565b50929695505050505050565b8481526001600160a01b0384166020820152606060408201525f612e58606083018486612b68565b5f60208284031215612f39575f5ffd5b815167ffffffffffffffff811115612f4f575f5ffd5b8201601f81018413612f5f575f5ffd5b8051612f6d6128d282612892565b8082825260208201915060208360051b850101925086831115612f8e575f5ffd5b6020840193505b82841015612e58578351612fa8816125ff565b825260209384019390910190612f95565b5f82612fd357634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602084019350602083015f5b828110156130115781516001600160a01b0316865260209586019590910190600101612fea565b5093949350505050565b5f8151808452602084019350602083015f5b8281101561301157815186526020958601959091019060010161302d565b6001600160a01b0384168152606060208201525f61306c6060830185612fd8565b8281036040840152612e58818561301b565b604081525f6130906040830185612fd8565b82810360208401526130a2818561301b565b9594505050505056fea164736f6c634300081c000a";
18
+ static readonly bytecode = "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613f05806100d65f395ff3fe608060405234801561000f575f5ffd5b5060043610610260575f3560e01c80638da5cb5b1161014b578063cb649617116100bf578063f0691cba11610084578063f0691cba14610657578063f2fde38b1461066a578063f81b8ef61461067d578063fad8e11114610690578063fd2f3d01146106a3578063ff72aa51146106b6575f5ffd5b8063cb649617146105e6578063cbd16872146105ef578063cf0f34c414610602578063cfbdc98d14610615578063e59e469514610644575f5ffd5b8063929a8faf11610110578063929a8faf1461054257806399c6679d146105635780639c8570c81461058b578063b68fd1be1461059e578063bb2d1b82146105b1578063c4ccafa2146105c4575f5ffd5b80638da5cb5b146104a55780638dcdd86b146104ad57806390173a41146104bf5780639117173c146104fa578063923123861461050d575f5ffd5b8063459d9294116101e25780636db5c8fd116101a75780636db5c8fd14610448578063715018a6146104515780637cfa9d74146104595780637edcd7ab1461046c57806381476ec21461047f5780638581424314610492575f5ffd5b8063459d9294146103be5780634e92ec63146103fc5780634fc772641461040f578063647846a51461042257806369c5b34714610435575f5ffd5b806336c5d38a1161022857806336c5d38a146103135780634017daf014610342578063406ed35c1461036c5780634147a3601461038c57806341739f12146103ab575f5ffd5b806302a3a9c9146102645780630ef81b2f1461027957806310bc6281146102b757806315cce224146102df578063205cd34c146102f2575b5f5ffd5b610277610272366004613108565b6106d7565b005b6102a1610287366004613123565b5f908152600860205260409020546001600160a01b031690565b6040516102ae919061313a565b60405180910390f35b6102a16102c5366004613123565b60086020525f90815260409020546001600160a01b031681565b6102776102ed366004613108565b610783565b61030561030036600461314e565b610828565b6040519081526020016102ae565b610335610321366004613123565b5f908152600d602052604090205460ff1690565b6040516102ae91906131ad565b610355610350366004613123565b610834565b6040516102ae9b9a999897969594939291906131e9565b61037f61037a366004613123565b610a3e565b6040516102ae91906133c8565b61030561039a366004613123565b600a6020525f908152604090205481565b6102776103b93660046133ea565b610d44565b6103ec6103cc3660046134b3565b805160208183018101805160098252928201919093012091525460ff1681565b60405190151581526020016102ae565b61027761040a366004613123565b610d58565b61027761041d366004613108565b610de7565b6003546102a1906001600160a01b031681565b61027761044336600461359b565b610e7a565b61030560045481565b610277610fe0565b610277610467366004613123565b610ff3565b6103ec61047a366004613688565b6110f1565b61027761048d3660046136ff565b611312565b6001546102a1906001600160a01b031681565b6102a1611402565b5f546102a1906001600160a01b031681565b6104c7611430565b6040516102ae91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b610277610508366004613123565b611484565b61052061051b366004613123565b61161c565b60408051825181526020808401519082015291810151908201526060016102ae565b610555610550366004613123565b611675565b6040516102ae92919061371f565b6102a1610571366004613123565b5f908152600e60205260409020546001600160a01b031690565b6103ec610599366004613688565b61169c565b6102776105ac366004613735565b6118cf565b6102776105bf366004613766565b611972565b6103ec6105d2366004613108565b60066020525f908152604090205460ff1681565b61030560055481565b6102776105fd366004613799565b611a18565b610277610610366004613123565b611acb565b610637610623366004613123565b5f908152600b602052604090205460ff1690565b6040516102ae91906137cc565b610277610652366004613108565b611b08565b6002546102a1906001600160a01b031681565b610277610678366004613108565b611ba2565b61033561068b366004613123565b611bdc565b61027761069e366004613108565b611d6c565b6102776106b1366004613108565b611e04565b6106c96106c436600461314e565b611e9b565b6040516102ae9291906137da565b6106df612548565b6001600160a01b03811661073a5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964204533526566756e644d616e6167657220616464726573730060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f9557d04c1c0b16f93f13b69aed23b3b6ab935bff3c53ac81d17896d3583542ed905f90a250565b61078b612548565b6001600160a01b038116158015906107b157506003546001600160a01b03828116911614155b81906107d15760405163eddf07f560e01b8152600401610731919061313a565b50600380546001600160a01b0319166001600160a01b0383161790556040517f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f39061081d90839061313a565b60405180910390a150565b620f4240805b50919050565b600760208190525f9182526040909120805460028201546005830154600684015494840180549395929491936001600160a01b0390931692610875906137f2565b80601f01602080910402602001604051908101604052809291908181526020018280546108a1906137f2565b80156108ec5780601f106108c3576101008083540402835291602001916108ec565b820191905f5260205f20905b8154815290600101906020018083116108cf57829003601f168201915b505050505090806008018054610901906137f2565b80601f016020809104026020016040519081016040528092919081815260200182805461092d906137f2565b80156109785780601f1061094f57610100808354040283529160200191610978565b820191905f5260205f20905b81548152906001019060200180831161095b57829003601f168201915b5050506009840154600a850154600b860154600c8701805496976001600160a01b0390941696929550909350906109ae906137f2565b80601f01602080910402602001604051908101604052809291908181526020018280546109da906137f2565b8015610a255780601f106109fc57610100808354040283529160200191610a25565b820191905f5260205f20905b815481529060010190602001808311610a0857829003601f168201915b505050600d90930154919250506001600160a01b03168b565b610a46612f72565b5f82815260076020908152604080832081516101a0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610a8157505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610ae75750505091835250506005820154602082015260068201546001600160a01b03166040820152600782018054606090920191610b34906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610b60906137f2565b8015610bab5780601f10610b8257610100808354040283529160200191610bab565b820191905f5260205f20905b815481529060010190602001808311610b8e57829003601f168201915b50505050508152602001600882018054610bc4906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf0906137f2565b8015610c3b5780601f10610c1257610100808354040283529160200191610c3b565b820191905f5260205f20905b815481529060010190602001808311610c1e57829003601f168201915b505050918352505060098201546001600160a01b03166020820152600a8201546040820152600b8201546060820152600c82018054608090920191610c7f906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab906137f2565b8015610cf65780601f10610ccd57610100808354040283529160200191610cf6565b820191905f5260205f20905b815481529060010190602001808311610cd957829003601f168201915b5050509183525050600d91909101546001600160a01b0390811660209092019190915260a082015191925083911661082e5760405163cd6f4a4f60e01b815260040161073191815260200190565b610d4c612548565b610d558161257a565b50565b610d60612548565b5f8181526008602052604090205481906001600160a01b0316610d99576040516381c4951960e01b815260040161073191815260200190565b505f818152600860205260409081902080546001600160a01b0319169055517f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc9061081d9083815260200190565b610def612548565b6001600160a01b0381165f90815260066020526040902054819060ff16610e2a576040516321ac7c5f60e01b8152600401610731919061313a565b506001600160a01b0381165f9081526006602052604090819020805460ff19169055517f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79061081d90839061313a565b5f610e83612707565b805490915060ff600160401b82041615906001600160401b03165f81158015610ea95750825b90505f826001600160401b03166001148015610ec45750303b155b905081158015610ed2575080155b15610ef05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f1a57845460ff60401b1916600160401b1785555b610f2333612731565b610f2c88611acb565b610f358c611d6c565b610f3e8b611b08565b610f478a6106d7565b610f5089610783565b610f598761257a565b610f62866118cf565b610f6a611402565b6001600160a01b03168d6001600160a01b031614610f8b57610f8b8d611ba2565b8315610fd157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050505050565b610fe8612548565b610ff15f612742565b565b5f546001600160a01b0316331461101c5760405162461bcd60e51b815260040161073190613824565b5f818152600b602052604090205460ff16600181600681111561104157611041613185565b1461106657816001826040516337e1404160e01b815260040161073193929190613855565b5f828152600b60205260409020805460ff19166002179055600f5461108b904261388a565b5f838152600c602052604080822092909255905183917fc44405af9078047712501f519e1fb900c2896c62b488336f84529c72ae16e6f191a2815f516020613ed95f395f51905f52600160026040516110e592919061389d565b60405180910390a25050565b5f5f6110fc87610a3e565b5f888152600b602052604090205490915060ff16600481600681111561112457611124613185565b148860048390919261114c576040516337e1404160e01b815260040161073193929190613855565b5050505f888152600c602090815260409182902082516060810184528154815260018201549281019290925260020154918101829052908990428110156111af576040516308f3034360e31b815260048101929092526024820152604401610731565b50505f898152600760205260409020600c016111cc888a83613917565b508261010001516001600160a01b0316632f0e1bbf8a8a8a6040516111f29291906139cb565b6040519081900381206001600160e01b031960e085901b16825261121d92918b908b90600401613a02565b602060405180830381865afa158015611238573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125c9190613a2b565b935087878561128057604051632f9f8ab960e01b8152600401610731929190613a4a565b50505f898152600b60205260409020805460ff191660051790556112a3896127b2565b887f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca16989896040516112d5929190613a4a565b60405180910390a2885f516020613ed95f395f51905f52600460056040516112fe92919061389d565b60405180910390a250505095945050505050565b5f546001600160a01b0316331461133b5760405162461bcd60e51b815260040161073190613824565b5f828152600b602052604090205460ff16600281600681111561136057611360613185565b1461138557826002826040516337e1404160e01b815260040161073193929190613855565b5f838152600b60209081526040808320805460ff191660031790556007909152808220600a018490555184917f11df18edb9bc9cd90a79068e0e208b630202148643d797d6150e7bacb733e63c91a2825f516020613ed95f395f51905f52600260036040516113f592919061389d565b60405180910390a2505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b61145760405180608001604052805f81526020015f81526020015f81526020015f81525090565b5060408051608081018252600f548152601054602082015260115491810191909152601254606082015290565b5f818152600b602052604090205460ff1660068160068111156114a9576114a9613185565b146114e65760405162461bcd60e51b815260206004820152600d60248201526c114cc81b9bdd0819985a5b1959609a1b6044820152606401610731565b5f828152600a6020526040902054806115385760405162461bcd60e51b8152602060048201526014602482015273139bc81c185e5b595b9d081d1bc81c99599d5b9960621b6044820152606401610731565b5f838152600a6020526040812081905561155184612a5f565b600254600354919250611571916001600160a01b03908116911684612b54565b6002546040516345ac612360e11b81526001600160a01b0390911690638b58c246906115a590879086908690600401613aa0565b5f604051808303815f87803b1580156115bc575f5ffd5b505af11580156115ce573d5f5f3e3d5ffd5b50505050837f5297818f48a66292b8b3e2caab83eec531b669bb20807fd38cf006adb2a0731783835160405161160e929190918252602082015260400190565b60405180910390a250505050565b61163d60405180606001604052805f81526020015f81526020015f81525090565b505f908152600c6020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b5f818152600b6020526040812054819060ff166116928482612bb1565b9250925050915091565b5f5f6116a787610a3e565b5f888152600c60209081526040918290208251606081018452815481526001820154928101839052600290910154928101929092529192509088904281101561170c576040516308f3034360e31b815260048101929092526024820152604401610731565b50506060820151602001518890428111156117435760405163017e35e560e71b815260048101929092526024820152604401610731565b505061014082015188901561176e57604051637eb9cea960e11b815260040161073191815260200190565b505f87876040516117809291906139cb565b604080519182900382205f8c8152600760205291909120600b0181905560a0850151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf906117d3908c9085908b908b90600401613a02565b6020604051808303815f875af11580156117ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118139190613a2b565b935087878561183757604051632f9f8ab960e01b8152600401610731929190613a4a565b50505f898152600b60205260409020805460ff1916600417905560115461185e904261388a565b5f8a8152600c602052604090819020600201919091555189907f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade071906118a6908b908b90613a4a565b60405180910390a2885f516020613ed95f395f51905f52600360046040516112fe92919061389d565b6118d7612548565b80515f5b8181101561193657600160098483815181106118f9576118f9613ac7565b602002602001015160405161190e9190613adb565b908152604051908190036020019020805491151560ff199092169190911790556001016118db565b507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81826040516119669190613af1565b60405180910390a15050565b5f546001600160a01b0316331461199b5760405162461bcd60e51b815260040161073190613824565b5f8160ff161180156119b15750600c8160ff1611155b6119f65760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103330b4b63ab932903932b0b9b7b760511b6044820152606401610731565b611a14828260ff16600c811115611a0f57611a0f613185565b612d39565b5050565b611a20612548565b6001600160a01b03811615801590611a5157505f828152600860205260409020546001600160a01b03828116911614155b8290611a73576040516381c4951960e01b815260040161073191815260200190565b505f8281526008602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381527ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb699101611966565b611ad3612548565b60048190556040518181527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b5235529060200161081d565b611b10612548565b6001600160a01b03811615801590611b3657506001546001600160a01b03828116911614155b8190611b56576040516320252f0b60e01b8152600401610731919061313a565b50600180546001600160a01b0319166001600160a01b0383161790556040517fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a79061081d90839061313a565b611baa612548565b6001600160a01b038116611bd3575f604051631e4fbdf760e01b8152600401610731919061313a565b610d5581612742565b5f818152600b602052604081205460ff1681816006811115611c0057611c00613185565b03611c2557826001826040516337e1404160e01b815260040161073193929190613855565b6005816006811115611c3957611c39613185565b03611c5a5760405163462c7bed60e01b815260048101849052602401610731565b6006816006811115611c6e57611c6e613185565b03611c8f57604051633de16e3560e11b815260048101849052602401610731565b5f611c9a8483612bb1565b9350905080611cbf57604051639f65d93560e01b815260048101859052602401610731565b5f848152600b60209081526040808320805460ff19908116600617909155600d9092529091208054859216600183600c811115611cfe57611cfe613185565b0217905550835f516020613ed95f395f51905f52836006604051611d2392919061389d565b60405180910390a2837fe20209be7caae6e76291267cfa711353981274bf127e94f16eb9ec44b68582bb8385604051611d5d929190613b54565b60405180910390a25050919050565b611d74612548565b6001600160a01b03811615801590611d9957505f546001600160a01b03828116911614155b8190611db9576040516375ac4eb760e11b8152600401610731919061313a565b505f80546001600160a01b0319166001600160a01b0383161790556040517f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b69061081d90839061313a565b611e0c612548565b6001600160a01b0381165f90815260066020526040902054819060ff1615611e485760405163b29d459560e01b8152600401610731919061313a565b506001600160a01b0381165f9081526006602052604090819020805460ff19166001179055517fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679061081d90839061313a565b5f611ea4612f72565b611eb16020840184613b87565b63ffffffff16611ec76040850160208601613b87565b63ffffffff1610158015611eec57505f611ee46020850185613b87565b63ffffffff16115b8390611f0c57604051633744092160e21b81526004016107319190613bd0565b50604083013542811015611f3657604051630b99e87960e01b815260040161073191815260200190565b5060608301356040840135811015611f645760405163174b5a0760e21b815260040161073191815260200190565b506011546010545f9190611f7c426060880135613bde565b611f86919061388a565b611f90919061388a565b905060045481108190611fb9576040516313b783af60e21b815260040161073191815260200190565b5060065f611fcd60a0870160808801613108565b6001600160a01b0316815260208101919091526040015f205460ff16611ff960a0860160808701613108565b906120185760405163295a6a6f60e11b8152600401610731919061313a565b505f61202385610828565b60058054955090915084905f61203883613bf1565b90915550506040805144602080830191909152818301879052825180830384018152606090920183528151910120808552815180830183529091879060029083908390808284375f92019190915250505060208501524360408086019190915280518082018252908781019060029083908390808284375f92019190915250505060608501526120ce60a0870160808801613108565b6001600160a01b031660a0808601919091526120ec90870187613c09565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050505060c085015261213160e0870187613c09565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060e0890194909452505050610120850181905261014085018190526040805160208101909152818152610160860152336101808601526121a660a0880160808901613108565b6001600160a01b031663fefd9a8b87846121c360a08c018c613c09565b6121d060c08e018e613c09565b8e8060e001906121e09190613c09565b6040518963ffffffff1660e01b8152600401612203989796959493929190613c4b565b6020604051808303815f875af115801561221f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122439190613ca1565b5f818152600860205260409020549091506001600160a01b0316818161227f576040516381c4951960e01b815260040161073191815260200190565b50608086018290526001600160a01b0381166101008701525f87815260076020908152604090912087518155908701518791906122c29060018301906002612ff9565b50604082015181600201556060820151816003019060026122e4929190613094565b506080820151600582015560a08201516006820180546001600160a01b0319166001600160a01b0390921691909117905560c082015160078201906123299082613cb8565b5060e0820151600882019061233e9082613cb8565b506101008201516009820180546001600160a01b0319166001600160a01b03909216919091179055610120820151600a820155610140820151600b820155610160820151600c8201906123919082613cb8565b506101809190910151600d90910180546001600160a01b0319166001600160a01b039283161790555f888152600a602052604090208590556003546123d99116333087612e8a565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b9061240c908a9087908d90600401613d6d565b6020604051808303815f875af1158015612428573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061244c9190613a2b565b61246957604051630d8dbe2560e01b815260040160405180910390fd5b5f878152600b60209081526040808320805460ff19166001179055600e82529091208054336001600160a01b03199091161790556010546060880151909101516124b3919061388a565b5f888152600c60205260409020600101556124d460a0890160808a01613108565b6001600160a01b03167fe009e1827a616eb52d6aa3823303e01f235985c9da7b43cbcc95f54b0338785d888860405161250e9291906137da565b60405180910390a2865f516020613ed95f395f51905f525f600160405161253692919061389d565b60405180910390a25050505050915091565b33612551611402565b6001600160a01b031614610ff1573360405163118cdaa760e01b8152600401610731919061313a565b80356125bd5760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420444b472077696e646f7760701b6044820152606401610731565b5f8160200135116126095760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420636f6d707574652077696e646f7760501b6044820152606401610731565b5f8160400135116126585760405162461bcd60e51b8152602060048201526019602482015278496e76616c69642064656372797074696f6e2077696e646f7760381b6044820152606401610731565b5f8160600135116126a25760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590819dc9858d9481c195c9a5bd960621b6044820152606401610731565b8035600f819055602080830135601081905560408085013560118190556060808701356012819055835196875294860193909352908401528201527f78e25a99f479f23adb3b0ac527204b39c8f57afa01a2595ad3b9b605bf0be22e9060800161081d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b612739612ec9565b610d5581612eee565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa1580156127f8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261281f9190810190613d88565b80519091505f816001600160401b0381111561283d5761283d613404565b604051908082528060200260200182016040528015612866578160200160208202803683370190505b505f858152600a602052604081205491925090612884908490613e17565b90505f5b838110156128b657818382815181106128a3576128a3613ac7565b6020908102919091010152600101612888565b505f858152600a60205260408082208054929055600354600154915163095ea7b360e01b81526001600160a01b039182169263095ea7b3926128ff929116908590600401613e36565b6020604051808303815f875af115801561291b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061293f9190613a2b565b50600154600354604051636ec640c760e11b81526001600160a01b039283169263dd8c818e926129789291169089908890600401613e7f565b5f604051808303815f87803b15801561298f575f5ffd5b505af11580156129a1573d5f5f3e3d5ffd5b505060035460015460405163095ea7b360e01b81526001600160a01b03928316945063095ea7b393506129dc92909116905f90600401613e36565b6020604051808303815f875af11580156129f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1c9190613a2b565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a8685604051612a4f929190613eb4565b60405180910390a2505050505050565b5f818152600d602052604090205460609060ff16600181600c811115612a8757612a87613185565b1480612aa45750600281600c811115612aa257612aa2613185565b145b15612adc575f5b604051908082528060200260200182016040528015612ad4578160200160208202803683370190505b509392505050565b5f54604051630a01649360e41b8152600481018590526001600160a01b039091169063a0164930906024015f60405180830381865afa925050508015612b4357506040513d5f823e601f3d908101601f19168201604052612b409190810190613d88565b60015b612b4d575f612aab565b9392505050565b612bac83846001600160a01b031663a9059cbb8585604051602401612b7a929190613e36565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612ef6565b505050565b5f828152600c60209081526040808320815160608101835281548152600182015493810193909352600201548282015282549051632800d82960e01b81526004810186905283929183916001600160a01b0390911690632800d82990602401602060405180830381865afa158015612c2b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c4f9190613ca1565b90506001856006811115612c6557612c65613185565b148015612c7157508042115b15612c8457600180935093505050612d32565b6002856006811115612c9857612c98613185565b148015612ca55750815142115b15612cb95760016003935093505050612d32565b6003856006811115612ccd57612ccd613185565b148015612cdd5750816020015142115b15612cf15760016006935093505050612d32565b6004856006811115612d0557612d05613185565b148015612d155750816040015142115b15612d29576001600a935093505050612d32565b5f5f9350935050505b9250929050565b5f828152600b602052604081205460ff1690816006811115612d5d57612d5d613185565b03612d8257826001826040516337e1404160e01b815260040161073193929190613855565b6005816006811115612d9657612d96613185565b03612db75760405163462c7bed60e01b815260048101849052602401610731565b6006816006811115612dcb57612dcb613185565b03612dec57604051633de16e3560e11b815260048101849052602401610731565b5f838152600b60209081526040808320805460ff19908116600617909155600d9092529091208054849216600183600c811115612e2b57612e2b613185565b0217905550825f516020613ed95f395f51905f52826006604051612e5092919061389d565b60405180910390a2827fe20209be7caae6e76291267cfa711353981274bf127e94f16eb9ec44b68582bb82846040516113f5929190613b54565b6040516001600160a01b038481166024830152838116604483015260648201839052612ec39186918216906323b872dd90608401612b7a565b50505050565b612ed1612f59565b610ff157604051631afcd79f60e31b815260040160405180910390fd5b611baa612ec9565b5f5f60205f8451602086015f885af180612f15576040513d5f823e3d81fd5b50505f513d91508115612f2c578060011415612f39565b6001600160a01b0384163b155b15612ec35783604051635274afe760e01b8152600401610731919061313a565b5f612f62612707565b54600160401b900460ff16919050565b604051806101a001604052805f8152602001612f8c6130c2565b81526020015f8152602001612f9f6130c2565b81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081526020015f6001600160a01b031681525090565b600183019183908215613084579160200282015f5b8382111561305257835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261300e565b80156130825782816101000a81549063ffffffff0219169055600401602081600301049283019260010302613052565b505b506130909291506130e0565b5090565b8260028101928215613084579160200282015b828111156130845782518255916020019190600101906130a7565b60405180604001604052806002906020820280368337509192915050565b5b80821115613090575f81556001016130e1565b6001600160a01b0381168114610d55575f5ffd5b5f60208284031215613118575f5ffd5b8135612b4d816130f4565b5f60208284031215613133575f5ffd5b5035919050565b6001600160a01b0391909116815260200190565b5f6020828403121561315e575f5ffd5b81356001600160401b03811115613173575f5ffd5b82016101008185031215612b4d575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b600d81106131a9576131a9613185565b9052565b6020810161272b8284613199565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8b81528a602082015289604082015260018060a01b038916606082015261016060808201525f61321d61016083018a6131bb565b82810360a084015261322f818a6131bb565b6001600160a01b03891660c085015260e084018890526101008401879052838103610120850152905061326281866131bb565b91505060018060a01b0383166101408301529c9b505050505050505050505050565b805f5b6002811015612ec357815163ffffffff16845260209384019390910190600101613287565b805f5b6002811015612ec35781518452602093840193909101906001016132af565b805182525f60208201516132e56020850182613284565b5060408201516060840152606082015161330260808501826132ac565b50608082015160c084015260a08201516001600160a01b03811660e08501525060c08201516101e061010085015261333e6101e08501826131bb565b905060e083015184820361012086015261335882826131bb565b9150506101008301516133776101408601826001600160a01b03169052565b506101208301516101608501526101408301516101808501526101608301518482036101a08601526133a982826131bb565b915050610180830151612ad46101c08601826001600160a01b03169052565b602081525f612b4d60208301846132ce565b5f6080828403121561082e575f5ffd5b5f608082840312156133fa575f5ffd5b612b4d83836133da565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561344057613440613404565b604052919050565b5f82601f830112613457575f5ffd5b81356001600160401b0381111561347057613470613404565b613483601f8201601f1916602001613418565b818152846020838601011115613497575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156134c3575f5ffd5b81356001600160401b038111156134d8575f5ffd5b6134e484828501613448565b949350505050565b5f6001600160401b0382111561350457613504613404565b5060051b60200190565b5f82601f83011261351d575f5ffd5b813561353061352b826134ec565b613418565b8082825260208201915060208360051b860101925085831115613551575f5ffd5b602085015b838110156135915780356001600160401b03811115613573575f5ffd5b613582886020838a0101613448565b84525060209283019201613556565b5095945050505050565b5f5f5f5f5f5f5f5f610160898b0312156135b3575f5ffd5b88356135be816130f4565b975060208901356135ce816130f4565b965060408901356135de816130f4565b955060608901356135ee816130f4565b945060808901356135fe816130f4565b935060a089013592506136148a60c08b016133da565b91506101408901356001600160401b0381111561362f575f5ffd5b61363b8b828c0161350e565b9150509295985092959890939650565b5f5f83601f84011261365b575f5ffd5b5081356001600160401b03811115613671575f5ffd5b602083019150836020828501011115612d32575f5ffd5b5f5f5f5f5f6060868803121561369c575f5ffd5b8535945060208601356001600160401b038111156136b8575f5ffd5b6136c48882890161364b565b90955093505060408601356001600160401b038111156136e2575f5ffd5b6136ee8882890161364b565b969995985093965092949392505050565b5f5f60408385031215613710575f5ffd5b50508035926020909101359150565b821515815260408101612b4d6020830184613199565b5f60208284031215613745575f5ffd5b81356001600160401b0381111561375a575f5ffd5b6134e48482850161350e565b5f5f60408385031215613777575f5ffd5b82359150602083013560ff8116811461378e575f5ffd5b809150509250929050565b5f5f604083850312156137aa575f5ffd5b82359150602083013561378e816130f4565b600781106131a9576131a9613185565b6020810161272b82846137bc565b828152604060208201525f6134e460408301846132ce565b600181811c9082168061380657607f821691505b60208210810361082e57634e487b7160e01b5f52602260045260245ffd5b6020808252601790820152764f6e6c79204369706865726e6f6465526567697374727960481b604082015260600190565b8381526060810161386960208301856137bc565b6134e460408301846137bc565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561272b5761272b613876565b604081016138ab82856137bc565b612b4d60208301846137bc565b601f821115612bac57805f5260205f20601f840160051c810160208510156138dd5750805b601f840160051c820191505b818110156138fc575f81556001016138e9565b5050505050565b5f19600383901b1c191660019190911b1790565b6001600160401b0383111561392e5761392e613404565b6139428361393c83546137f2565b836138b8565b5f601f84116001811461396e575f851561395c5750838201355b6139668682613903565b8455506138fc565b5f83815260208120601f198716915b8281101561399d578685013582556020948501946001909201910161397d565b50868210156139b9575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f613a216060830184866139da565b9695505050505050565b5f60208284031215613a3b575f5ffd5b81518015158114612b4d575f5ffd5b602081525f6134e46020830184866139da565b5f8151808452602084019350602083015f5b82811015613a965781516001600160a01b0316865260209586019590910190600101613a6f565b5093949350505050565b838152826020820152606060408201525f613abe6060830184613a5d565b95945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613b4857603f19878603018452613b338583516131bb565b94506020938401939190910190600101613b17565b50929695505050505050565b60408101613b6282856137bc565b612b4d6020830184613199565b803563ffffffff81168114613b82575f5ffd5b919050565b5f60208284031215613b97575f5ffd5b612b4d82613b6f565b805f5b6002811015612ec35763ffffffff613bba83613b6f565b1684526020938401939190910190600101613ba3565b6040810161272b8284613ba0565b8181038181111561272b5761272b613876565b5f60018201613c0257613c02613876565b5060010190565b5f5f8335601e19843603018112613c1e575f5ffd5b8301803591506001600160401b03821115613c37575f5ffd5b602001915036819003821315612d32575f5ffd5b88815287602082015260a060408201525f613c6a60a08301888a6139da565b8281036060840152613c7d8187896139da565b90508281036080840152613c928185876139da565b9b9a5050505050505050505050565b5f60208284031215613cb1575f5ffd5b5051919050565b81516001600160401b03811115613cd157613cd1613404565b613ce581613cdf84546137f2565b846138b8565b6020601f821160018114613d12575f8315613d005750848201515b613d0a8482613903565b8555506138fc565b5f84815260208120601f198516915b82811015613d415787850151825560209485019460019092019101613d21565b5084821015613d5e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016134e46040830184613ba0565b5f60208284031215613d98575f5ffd5b81516001600160401b03811115613dad575f5ffd5b8201601f81018413613dbd575f5ffd5b8051613dcb61352b826134ec565b8082825260208201915060208360051b850101925086831115613dec575f5ffd5b6020840193505b82841015613a21578351613e06816130f4565b825260209384019390910190613df3565b5f82613e3157634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b03929092168252602082015260400190565b5f8151808452602084019350602083015f5b82811015613a96578151865260209586019590910190600101613e61565b6001600160a01b03841681526060602082018190525f90613ea290830185613a5d565b8281036040840152613a218185613e4f565b604081525f613ec66040830185613a5d565b8281036020840152613abe8185613e4f56fe1b418a230a21d37a078bf8f16decbde8ccceacd77159371f62f0d4ea00d19967a164736f6c634300081c000a";
19
19
  static readonly abi: readonly [{
20
20
  readonly inputs: readonly [];
21
21
  readonly stateMutability: "nonpayable";
@@ -36,6 +36,18 @@ export declare class Enclave__factory extends ContractFactory {
36
36
  }];
37
37
  readonly name: "CiphertextOutputNotPublished";
38
38
  readonly type: "error";
39
+ }, {
40
+ readonly inputs: readonly [{
41
+ readonly internalType: "uint256";
42
+ readonly name: "e3Id";
43
+ readonly type: "uint256";
44
+ }, {
45
+ readonly internalType: "uint256";
46
+ readonly name: "expiration";
47
+ readonly type: "uint256";
48
+ }];
49
+ readonly name: "CommitteeDutiesCompleted";
50
+ readonly type: "error";
39
51
  }, {
40
52
  readonly inputs: readonly [];
41
53
  readonly name: "CommitteeSelectionFailed";
@@ -46,7 +58,7 @@ export declare class Enclave__factory extends ContractFactory {
46
58
  readonly name: "e3Id";
47
59
  readonly type: "uint256";
48
60
  }];
49
- readonly name: "E3AlreadyActivated";
61
+ readonly name: "E3AlreadyComplete";
50
62
  readonly type: "error";
51
63
  }, {
52
64
  readonly inputs: readonly [{
@@ -54,11 +66,7 @@ export declare class Enclave__factory extends ContractFactory {
54
66
  readonly name: "e3Id";
55
67
  readonly type: "uint256";
56
68
  }];
57
- readonly name: "E3DoesNotExist";
58
- readonly type: "error";
59
- }, {
60
- readonly inputs: readonly [];
61
- readonly name: "E3Expired";
69
+ readonly name: "E3AlreadyFailed";
62
70
  readonly type: "error";
63
71
  }, {
64
72
  readonly inputs: readonly [{
@@ -66,11 +74,7 @@ export declare class Enclave__factory extends ContractFactory {
66
74
  readonly name: "e3Id";
67
75
  readonly type: "uint256";
68
76
  }];
69
- readonly name: "E3NotActivated";
70
- readonly type: "error";
71
- }, {
72
- readonly inputs: readonly [];
73
- readonly name: "E3NotReady";
77
+ readonly name: "E3DoesNotExist";
74
78
  readonly type: "error";
75
79
  }, {
76
80
  readonly inputs: readonly [{
@@ -85,12 +89,8 @@ export declare class Enclave__factory extends ContractFactory {
85
89
  readonly internalType: "uint256";
86
90
  readonly name: "e3Id";
87
91
  readonly type: "uint256";
88
- }, {
89
- readonly internalType: "uint256";
90
- readonly name: "expiration";
91
- readonly type: "uint256";
92
92
  }];
93
- readonly name: "InputDeadlineNotPassed";
93
+ readonly name: "FailureConditionNotMet";
94
94
  readonly type: "error";
95
95
  }, {
96
96
  readonly inputs: readonly [{
@@ -99,10 +99,10 @@ export declare class Enclave__factory extends ContractFactory {
99
99
  readonly type: "uint256";
100
100
  }, {
101
101
  readonly internalType: "uint256";
102
- readonly name: "expiration";
102
+ readonly name: "inputDeadline";
103
103
  readonly type: "uint256";
104
104
  }];
105
- readonly name: "InputDeadlinePassed";
105
+ readonly name: "InputDeadlineNotReached";
106
106
  readonly type: "error";
107
107
  }, {
108
108
  readonly inputs: readonly [{
@@ -149,8 +149,28 @@ export declare class Enclave__factory extends ContractFactory {
149
149
  readonly name: "InvalidInitialization";
150
150
  readonly type: "error";
151
151
  }, {
152
- readonly inputs: readonly [];
153
- readonly name: "InvalidInput";
152
+ readonly inputs: readonly [{
153
+ readonly internalType: "uint256";
154
+ readonly name: "deadline";
155
+ readonly type: "uint256";
156
+ }];
157
+ readonly name: "InvalidInputDeadline";
158
+ readonly type: "error";
159
+ }, {
160
+ readonly inputs: readonly [{
161
+ readonly internalType: "uint256";
162
+ readonly name: "end";
163
+ readonly type: "uint256";
164
+ }];
165
+ readonly name: "InvalidInputDeadlineEnd";
166
+ readonly type: "error";
167
+ }, {
168
+ readonly inputs: readonly [{
169
+ readonly internalType: "uint256";
170
+ readonly name: "start";
171
+ readonly type: "uint256";
172
+ }];
173
+ readonly name: "InvalidInputDeadlineStart";
154
174
  readonly type: "error";
155
175
  }, {
156
176
  readonly inputs: readonly [{
@@ -161,8 +181,20 @@ export declare class Enclave__factory extends ContractFactory {
161
181
  readonly name: "InvalidOutput";
162
182
  readonly type: "error";
163
183
  }, {
164
- readonly inputs: readonly [];
165
- readonly name: "InvalidStartWindow";
184
+ readonly inputs: readonly [{
185
+ readonly internalType: "uint256";
186
+ readonly name: "e3Id";
187
+ readonly type: "uint256";
188
+ }, {
189
+ readonly internalType: "enum IEnclave.E3Stage";
190
+ readonly name: "expected";
191
+ readonly type: "uint8";
192
+ }, {
193
+ readonly internalType: "enum IEnclave.E3Stage";
194
+ readonly name: "actual";
195
+ readonly type: "uint8";
196
+ }];
197
+ readonly name: "InvalidStage";
166
198
  readonly type: "error";
167
199
  }, {
168
200
  readonly inputs: readonly [{
@@ -280,22 +312,62 @@ export declare class Enclave__factory extends ContractFactory {
280
312
  }, {
281
313
  readonly anonymous: false;
282
314
  readonly inputs: readonly [{
315
+ readonly indexed: true;
316
+ readonly internalType: "uint256";
317
+ readonly name: "e3Id";
318
+ readonly type: "uint256";
319
+ }];
320
+ readonly name: "CommitteeFinalized";
321
+ readonly type: "event";
322
+ }, {
323
+ readonly anonymous: false;
324
+ readonly inputs: readonly [{
325
+ readonly indexed: true;
326
+ readonly internalType: "uint256";
327
+ readonly name: "e3Id";
328
+ readonly type: "uint256";
329
+ }];
330
+ readonly name: "CommitteeFormed";
331
+ readonly type: "event";
332
+ }, {
333
+ readonly anonymous: false;
334
+ readonly inputs: readonly [{
335
+ readonly indexed: true;
336
+ readonly internalType: "uint256";
337
+ readonly name: "e3Id";
338
+ readonly type: "uint256";
339
+ }, {
283
340
  readonly indexed: false;
341
+ readonly internalType: "enum IEnclave.E3Stage";
342
+ readonly name: "failedAtStage";
343
+ readonly type: "uint8";
344
+ }, {
345
+ readonly indexed: false;
346
+ readonly internalType: "enum IEnclave.FailureReason";
347
+ readonly name: "reason";
348
+ readonly type: "uint8";
349
+ }];
350
+ readonly name: "E3Failed";
351
+ readonly type: "event";
352
+ }, {
353
+ readonly anonymous: false;
354
+ readonly inputs: readonly [{
355
+ readonly indexed: true;
284
356
  readonly internalType: "uint256";
285
357
  readonly name: "e3Id";
286
358
  readonly type: "uint256";
287
359
  }, {
288
360
  readonly indexed: false;
289
361
  readonly internalType: "uint256";
290
- readonly name: "expiration";
362
+ readonly name: "paymentAmount";
291
363
  readonly type: "uint256";
292
364
  }, {
293
365
  readonly indexed: false;
294
- readonly internalType: "bytes32";
295
- readonly name: "committeePublicKey";
296
- readonly type: "bytes32";
366
+ readonly internalType: "uint256";
367
+ readonly name: "honestNodeCount";
368
+ readonly type: "uint256";
297
369
  }];
298
- readonly name: "E3Activated";
370
+ readonly name: "E3FailureProcessed";
299
371
  readonly type: "event";
300
372
  }, {
301
373
  readonly anonymous: false;
@@ -317,6 +389,16 @@ export declare class Enclave__factory extends ContractFactory {
317
389
  }];
318
390
  readonly name: "E3ProgramEnabled";
319
391
  readonly type: "event";
392
+ }, {
393
+ readonly anonymous: false;
394
+ readonly inputs: readonly [{
395
+ readonly indexed: true;
396
+ readonly internalType: "address";
397
+ readonly name: "e3RefundManager";
398
+ readonly type: "address";
399
+ }];
400
+ readonly name: "E3RefundManagerSet";
401
+ readonly type: "event";
320
402
  }, {
321
403
  readonly anonymous: false;
322
404
  readonly inputs: readonly [{
@@ -339,16 +421,8 @@ export declare class Enclave__factory extends ContractFactory {
339
421
  readonly type: "uint256";
340
422
  }, {
341
423
  readonly internalType: "uint256[2]";
342
- readonly name: "startWindow";
424
+ readonly name: "inputWindow";
343
425
  readonly type: "uint256[2]";
344
- }, {
345
- readonly internalType: "uint256";
346
- readonly name: "duration";
347
- readonly type: "uint256";
348
- }, {
349
- readonly internalType: "uint256";
350
- readonly name: "expiration";
351
- readonly type: "uint256";
352
426
  }, {
353
427
  readonly internalType: "bytes32";
354
428
  readonly name: "encryptionSchemeId";
@@ -398,6 +472,26 @@ export declare class Enclave__factory extends ContractFactory {
398
472
  }];
399
473
  readonly name: "E3Requested";
400
474
  readonly type: "event";
475
+ }, {
476
+ readonly anonymous: false;
477
+ readonly inputs: readonly [{
478
+ readonly indexed: true;
479
+ readonly internalType: "uint256";
480
+ readonly name: "e3Id";
481
+ readonly type: "uint256";
482
+ }, {
483
+ readonly indexed: false;
484
+ readonly internalType: "enum IEnclave.E3Stage";
485
+ readonly name: "previousStage";
486
+ readonly type: "uint8";
487
+ }, {
488
+ readonly indexed: false;
489
+ readonly internalType: "enum IEnclave.E3Stage";
490
+ readonly name: "newStage";
491
+ readonly type: "uint8";
492
+ }];
493
+ readonly name: "E3StageChanged";
494
+ readonly type: "event";
401
495
  }, {
402
496
  readonly anonymous: false;
403
497
  readonly inputs: readonly [{
@@ -524,19 +618,32 @@ export declare class Enclave__factory extends ContractFactory {
524
618
  readonly name: "RewardsDistributed";
525
619
  readonly type: "event";
526
620
  }, {
621
+ readonly anonymous: false;
527
622
  readonly inputs: readonly [{
528
- readonly internalType: "uint256";
529
- readonly name: "e3Id";
530
- readonly type: "uint256";
531
- }];
532
- readonly name: "activate";
533
- readonly outputs: readonly [{
534
- readonly internalType: "bool";
535
- readonly name: "success";
536
- readonly type: "bool";
623
+ readonly components: readonly [{
624
+ readonly internalType: "uint256";
625
+ readonly name: "dkgWindow";
626
+ readonly type: "uint256";
627
+ }, {
628
+ readonly internalType: "uint256";
629
+ readonly name: "computeWindow";
630
+ readonly type: "uint256";
631
+ }, {
632
+ readonly internalType: "uint256";
633
+ readonly name: "decryptionWindow";
634
+ readonly type: "uint256";
635
+ }, {
636
+ readonly internalType: "uint256";
637
+ readonly name: "gracePeriod";
638
+ readonly type: "uint256";
639
+ }];
640
+ readonly indexed: false;
641
+ readonly internalType: "struct IEnclave.E3TimeoutConfig";
642
+ readonly name: "config";
643
+ readonly type: "tuple";
537
644
  }];
538
- readonly stateMutability: "nonpayable";
539
- readonly type: "function";
645
+ readonly name: "TimeoutConfigUpdated";
646
+ readonly type: "event";
540
647
  }, {
541
648
  readonly inputs: readonly [];
542
649
  readonly name: "bondingRegistry";
@@ -547,6 +654,24 @@ export declare class Enclave__factory extends ContractFactory {
547
654
  }];
548
655
  readonly stateMutability: "view";
549
656
  readonly type: "function";
657
+ }, {
658
+ readonly inputs: readonly [{
659
+ readonly internalType: "uint256";
660
+ readonly name: "e3Id";
661
+ readonly type: "uint256";
662
+ }];
663
+ readonly name: "checkFailureCondition";
664
+ readonly outputs: readonly [{
665
+ readonly internalType: "bool";
666
+ readonly name: "canFail";
667
+ readonly type: "bool";
668
+ }, {
669
+ readonly internalType: "enum IEnclave.FailureReason";
670
+ readonly name: "reason";
671
+ readonly type: "uint8";
672
+ }];
673
+ readonly stateMutability: "view";
674
+ readonly type: "function";
550
675
  }, {
551
676
  readonly inputs: readonly [];
552
677
  readonly name: "ciphernodeRegistry";
@@ -578,11 +703,7 @@ export declare class Enclave__factory extends ContractFactory {
578
703
  readonly type: "address";
579
704
  }];
580
705
  readonly name: "disableE3Program";
581
- readonly outputs: readonly [{
582
- readonly internalType: "bool";
583
- readonly name: "success";
584
- readonly type: "bool";
585
- }];
706
+ readonly outputs: readonly [];
586
707
  readonly stateMutability: "nonpayable";
587
708
  readonly type: "function";
588
709
  }, {
@@ -592,11 +713,7 @@ export declare class Enclave__factory extends ContractFactory {
592
713
  readonly type: "bytes32";
593
714
  }];
594
715
  readonly name: "disableEncryptionScheme";
595
- readonly outputs: readonly [{
596
- readonly internalType: "bool";
597
- readonly name: "success";
598
- readonly type: "bool";
599
- }];
716
+ readonly outputs: readonly [];
600
717
  readonly stateMutability: "nonpayable";
601
718
  readonly type: "function";
602
719
  }, {
@@ -641,6 +758,16 @@ export declare class Enclave__factory extends ContractFactory {
641
758
  }];
642
759
  readonly stateMutability: "view";
643
760
  readonly type: "function";
761
+ }, {
762
+ readonly inputs: readonly [];
763
+ readonly name: "e3RefundManager";
764
+ readonly outputs: readonly [{
765
+ readonly internalType: "contract IE3RefundManager";
766
+ readonly name: "";
767
+ readonly type: "address";
768
+ }];
769
+ readonly stateMutability: "view";
770
+ readonly type: "function";
644
771
  }, {
645
772
  readonly inputs: readonly [{
646
773
  readonly internalType: "uint256";
@@ -656,14 +783,6 @@ export declare class Enclave__factory extends ContractFactory {
656
783
  readonly internalType: "uint256";
657
784
  readonly name: "requestBlock";
658
785
  readonly type: "uint256";
659
- }, {
660
- readonly internalType: "uint256";
661
- readonly name: "duration";
662
- readonly type: "uint256";
663
- }, {
664
- readonly internalType: "uint256";
665
- readonly name: "expiration";
666
- readonly type: "uint256";
667
786
  }, {
668
787
  readonly internalType: "bytes32";
669
788
  readonly name: "encryptionSchemeId";
@@ -710,11 +829,7 @@ export declare class Enclave__factory extends ContractFactory {
710
829
  readonly type: "address";
711
830
  }];
712
831
  readonly name: "enableE3Program";
713
- readonly outputs: readonly [{
714
- readonly internalType: "bool";
715
- readonly name: "success";
716
- readonly type: "bool";
717
- }];
832
+ readonly outputs: readonly [];
718
833
  readonly stateMutability: "nonpayable";
719
834
  readonly type: "function";
720
835
  }, {
@@ -727,6 +842,33 @@ export declare class Enclave__factory extends ContractFactory {
727
842
  }];
728
843
  readonly stateMutability: "view";
729
844
  readonly type: "function";
845
+ }, {
846
+ readonly inputs: readonly [{
847
+ readonly internalType: "uint256";
848
+ readonly name: "e3Id";
849
+ readonly type: "uint256";
850
+ }];
851
+ readonly name: "getDeadlines";
852
+ readonly outputs: readonly [{
853
+ readonly components: readonly [{
854
+ readonly internalType: "uint256";
855
+ readonly name: "dkgDeadline";
856
+ readonly type: "uint256";
857
+ }, {
858
+ readonly internalType: "uint256";
859
+ readonly name: "computeDeadline";
860
+ readonly type: "uint256";
861
+ }, {
862
+ readonly internalType: "uint256";
863
+ readonly name: "decryptionDeadline";
864
+ readonly type: "uint256";
865
+ }];
866
+ readonly internalType: "struct IEnclave.E3Deadlines";
867
+ readonly name: "deadlines";
868
+ readonly type: "tuple";
869
+ }];
870
+ readonly stateMutability: "view";
871
+ readonly type: "function";
730
872
  }, {
731
873
  readonly inputs: readonly [{
732
874
  readonly internalType: "bytes32";
@@ -763,16 +905,8 @@ export declare class Enclave__factory extends ContractFactory {
763
905
  readonly type: "uint256";
764
906
  }, {
765
907
  readonly internalType: "uint256[2]";
766
- readonly name: "startWindow";
908
+ readonly name: "inputWindow";
767
909
  readonly type: "uint256[2]";
768
- }, {
769
- readonly internalType: "uint256";
770
- readonly name: "duration";
771
- readonly type: "uint256";
772
- }, {
773
- readonly internalType: "uint256";
774
- readonly name: "expiration";
775
- readonly type: "uint256";
776
910
  }, {
777
911
  readonly internalType: "bytes32";
778
912
  readonly name: "encryptionSchemeId";
@@ -824,12 +958,8 @@ export declare class Enclave__factory extends ContractFactory {
824
958
  readonly type: "uint32[2]";
825
959
  }, {
826
960
  readonly internalType: "uint256[2]";
827
- readonly name: "startWindow";
961
+ readonly name: "inputWindow";
828
962
  readonly type: "uint256[2]";
829
- }, {
830
- readonly internalType: "uint256";
831
- readonly name: "duration";
832
- readonly type: "uint256";
833
963
  }, {
834
964
  readonly internalType: "contract IE3Program";
835
965
  readonly name: "e3Program";
@@ -859,6 +989,75 @@ export declare class Enclave__factory extends ContractFactory {
859
989
  }];
860
990
  readonly stateMutability: "pure";
861
991
  readonly type: "function";
992
+ }, {
993
+ readonly inputs: readonly [{
994
+ readonly internalType: "uint256";
995
+ readonly name: "e3Id";
996
+ readonly type: "uint256";
997
+ }];
998
+ readonly name: "getE3Stage";
999
+ readonly outputs: readonly [{
1000
+ readonly internalType: "enum IEnclave.E3Stage";
1001
+ readonly name: "stage";
1002
+ readonly type: "uint8";
1003
+ }];
1004
+ readonly stateMutability: "view";
1005
+ readonly type: "function";
1006
+ }, {
1007
+ readonly inputs: readonly [{
1008
+ readonly internalType: "uint256";
1009
+ readonly name: "e3Id";
1010
+ readonly type: "uint256";
1011
+ }];
1012
+ readonly name: "getFailureReason";
1013
+ readonly outputs: readonly [{
1014
+ readonly internalType: "enum IEnclave.FailureReason";
1015
+ readonly name: "reason";
1016
+ readonly type: "uint8";
1017
+ }];
1018
+ readonly stateMutability: "view";
1019
+ readonly type: "function";
1020
+ }, {
1021
+ readonly inputs: readonly [{
1022
+ readonly internalType: "uint256";
1023
+ readonly name: "e3Id";
1024
+ readonly type: "uint256";
1025
+ }];
1026
+ readonly name: "getRequester";
1027
+ readonly outputs: readonly [{
1028
+ readonly internalType: "address";
1029
+ readonly name: "requester";
1030
+ readonly type: "address";
1031
+ }];
1032
+ readonly stateMutability: "view";
1033
+ readonly type: "function";
1034
+ }, {
1035
+ readonly inputs: readonly [];
1036
+ readonly name: "getTimeoutConfig";
1037
+ readonly outputs: readonly [{
1038
+ readonly components: readonly [{
1039
+ readonly internalType: "uint256";
1040
+ readonly name: "dkgWindow";
1041
+ readonly type: "uint256";
1042
+ }, {
1043
+ readonly internalType: "uint256";
1044
+ readonly name: "computeWindow";
1045
+ readonly type: "uint256";
1046
+ }, {
1047
+ readonly internalType: "uint256";
1048
+ readonly name: "decryptionWindow";
1049
+ readonly type: "uint256";
1050
+ }, {
1051
+ readonly internalType: "uint256";
1052
+ readonly name: "gracePeriod";
1053
+ readonly type: "uint256";
1054
+ }];
1055
+ readonly internalType: "struct IEnclave.E3TimeoutConfig";
1056
+ readonly name: "config";
1057
+ readonly type: "tuple";
1058
+ }];
1059
+ readonly stateMutability: "view";
1060
+ readonly type: "function";
862
1061
  }, {
863
1062
  readonly inputs: readonly [{
864
1063
  readonly internalType: "address";
@@ -872,6 +1071,10 @@ export declare class Enclave__factory extends ContractFactory {
872
1071
  readonly internalType: "contract IBondingRegistry";
873
1072
  readonly name: "_bondingRegistry";
874
1073
  readonly type: "address";
1074
+ }, {
1075
+ readonly internalType: "contract IE3RefundManager";
1076
+ readonly name: "_e3RefundManager";
1077
+ readonly type: "address";
875
1078
  }, {
876
1079
  readonly internalType: "contract IERC20";
877
1080
  readonly name: "_feeToken";
@@ -880,6 +1083,27 @@ export declare class Enclave__factory extends ContractFactory {
880
1083
  readonly internalType: "uint256";
881
1084
  readonly name: "_maxDuration";
882
1085
  readonly type: "uint256";
1086
+ }, {
1087
+ readonly components: readonly [{
1088
+ readonly internalType: "uint256";
1089
+ readonly name: "dkgWindow";
1090
+ readonly type: "uint256";
1091
+ }, {
1092
+ readonly internalType: "uint256";
1093
+ readonly name: "computeWindow";
1094
+ readonly type: "uint256";
1095
+ }, {
1096
+ readonly internalType: "uint256";
1097
+ readonly name: "decryptionWindow";
1098
+ readonly type: "uint256";
1099
+ }, {
1100
+ readonly internalType: "uint256";
1101
+ readonly name: "gracePeriod";
1102
+ readonly type: "uint256";
1103
+ }];
1104
+ readonly internalType: "struct IEnclave.E3TimeoutConfig";
1105
+ readonly name: "config";
1106
+ readonly type: "tuple";
883
1107
  }, {
884
1108
  readonly internalType: "bytes[]";
885
1109
  readonly name: "_e3ProgramsParams";
@@ -889,6 +1113,20 @@ export declare class Enclave__factory extends ContractFactory {
889
1113
  readonly outputs: readonly [];
890
1114
  readonly stateMutability: "nonpayable";
891
1115
  readonly type: "function";
1116
+ }, {
1117
+ readonly inputs: readonly [{
1118
+ readonly internalType: "uint256";
1119
+ readonly name: "e3Id";
1120
+ readonly type: "uint256";
1121
+ }];
1122
+ readonly name: "markE3Failed";
1123
+ readonly outputs: readonly [{
1124
+ readonly internalType: "enum IEnclave.FailureReason";
1125
+ readonly name: "reason";
1126
+ readonly type: "uint8";
1127
+ }];
1128
+ readonly stateMutability: "nonpayable";
1129
+ readonly type: "function";
892
1130
  }, {
893
1131
  readonly inputs: readonly [];
894
1132
  readonly name: "maxDuration";
@@ -909,6 +1147,44 @@ export declare class Enclave__factory extends ContractFactory {
909
1147
  }];
910
1148
  readonly stateMutability: "view";
911
1149
  readonly type: "function";
1150
+ }, {
1151
+ readonly inputs: readonly [{
1152
+ readonly internalType: "uint256";
1153
+ readonly name: "e3Id";
1154
+ readonly type: "uint256";
1155
+ }];
1156
+ readonly name: "onCommitteeFinalized";
1157
+ readonly outputs: readonly [];
1158
+ readonly stateMutability: "nonpayable";
1159
+ readonly type: "function";
1160
+ }, {
1161
+ readonly inputs: readonly [{
1162
+ readonly internalType: "uint256";
1163
+ readonly name: "e3Id";
1164
+ readonly type: "uint256";
1165
+ }, {
1166
+ readonly internalType: "bytes32";
1167
+ readonly name: "committeePublicKeyHash";
1168
+ readonly type: "bytes32";
1169
+ }];
1170
+ readonly name: "onCommitteePublished";
1171
+ readonly outputs: readonly [];
1172
+ readonly stateMutability: "nonpayable";
1173
+ readonly type: "function";
1174
+ }, {
1175
+ readonly inputs: readonly [{
1176
+ readonly internalType: "uint256";
1177
+ readonly name: "e3Id";
1178
+ readonly type: "uint256";
1179
+ }, {
1180
+ readonly internalType: "uint8";
1181
+ readonly name: "reason";
1182
+ readonly type: "uint8";
1183
+ }];
1184
+ readonly name: "onE3Failed";
1185
+ readonly outputs: readonly [];
1186
+ readonly stateMutability: "nonpayable";
1187
+ readonly type: "function";
912
1188
  }, {
913
1189
  readonly inputs: readonly [];
914
1190
  readonly name: "owner";
@@ -924,21 +1200,9 @@ export declare class Enclave__factory extends ContractFactory {
924
1200
  readonly internalType: "uint256";
925
1201
  readonly name: "e3Id";
926
1202
  readonly type: "uint256";
927
- }, {
928
- readonly internalType: "bytes";
929
- readonly name: "ciphertextOutput";
930
- readonly type: "bytes";
931
- }, {
932
- readonly internalType: "bytes";
933
- readonly name: "proof";
934
- readonly type: "bytes";
935
- }];
936
- readonly name: "publishCiphertextOutput";
937
- readonly outputs: readonly [{
938
- readonly internalType: "bool";
939
- readonly name: "success";
940
- readonly type: "bool";
941
1203
  }];
1204
+ readonly name: "processE3Failure";
1205
+ readonly outputs: readonly [];
942
1206
  readonly stateMutability: "nonpayable";
943
1207
  readonly type: "function";
944
1208
  }, {
@@ -948,10 +1212,14 @@ export declare class Enclave__factory extends ContractFactory {
948
1212
  readonly type: "uint256";
949
1213
  }, {
950
1214
  readonly internalType: "bytes";
951
- readonly name: "data";
1215
+ readonly name: "ciphertextOutput";
1216
+ readonly type: "bytes";
1217
+ }, {
1218
+ readonly internalType: "bytes";
1219
+ readonly name: "proof";
952
1220
  readonly type: "bytes";
953
1221
  }];
954
- readonly name: "publishInput";
1222
+ readonly name: "publishCiphertextOutput";
955
1223
  readonly outputs: readonly [{
956
1224
  readonly internalType: "bool";
957
1225
  readonly name: "success";
@@ -995,12 +1263,8 @@ export declare class Enclave__factory extends ContractFactory {
995
1263
  readonly type: "uint32[2]";
996
1264
  }, {
997
1265
  readonly internalType: "uint256[2]";
998
- readonly name: "startWindow";
1266
+ readonly name: "inputWindow";
999
1267
  readonly type: "uint256[2]";
1000
- }, {
1001
- readonly internalType: "uint256";
1002
- readonly name: "duration";
1003
- readonly type: "uint256";
1004
1268
  }, {
1005
1269
  readonly internalType: "contract IE3Program";
1006
1270
  readonly name: "e3Program";
@@ -1042,16 +1306,8 @@ export declare class Enclave__factory extends ContractFactory {
1042
1306
  readonly type: "uint256";
1043
1307
  }, {
1044
1308
  readonly internalType: "uint256[2]";
1045
- readonly name: "startWindow";
1309
+ readonly name: "inputWindow";
1046
1310
  readonly type: "uint256[2]";
1047
- }, {
1048
- readonly internalType: "uint256";
1049
- readonly name: "duration";
1050
- readonly type: "uint256";
1051
- }, {
1052
- readonly internalType: "uint256";
1053
- readonly name: "expiration";
1054
- readonly type: "uint256";
1055
1311
  }, {
1056
1312
  readonly internalType: "bytes32";
1057
1313
  readonly name: "encryptionSchemeId";
@@ -1102,11 +1358,7 @@ export declare class Enclave__factory extends ContractFactory {
1102
1358
  readonly type: "address";
1103
1359
  }];
1104
1360
  readonly name: "setBondingRegistry";
1105
- readonly outputs: readonly [{
1106
- readonly internalType: "bool";
1107
- readonly name: "success";
1108
- readonly type: "bool";
1109
- }];
1361
+ readonly outputs: readonly [];
1110
1362
  readonly stateMutability: "nonpayable";
1111
1363
  readonly type: "function";
1112
1364
  }, {
@@ -1116,11 +1368,7 @@ export declare class Enclave__factory extends ContractFactory {
1116
1368
  readonly type: "address";
1117
1369
  }];
1118
1370
  readonly name: "setCiphernodeRegistry";
1119
- readonly outputs: readonly [{
1120
- readonly internalType: "bool";
1121
- readonly name: "success";
1122
- readonly type: "bool";
1123
- }];
1371
+ readonly outputs: readonly [];
1124
1372
  readonly stateMutability: "nonpayable";
1125
1373
  readonly type: "function";
1126
1374
  }, {
@@ -1134,11 +1382,7 @@ export declare class Enclave__factory extends ContractFactory {
1134
1382
  readonly type: "address";
1135
1383
  }];
1136
1384
  readonly name: "setDecryptionVerifier";
1137
- readonly outputs: readonly [{
1138
- readonly internalType: "bool";
1139
- readonly name: "success";
1140
- readonly type: "bool";
1141
- }];
1385
+ readonly outputs: readonly [];
1142
1386
  readonly stateMutability: "nonpayable";
1143
1387
  readonly type: "function";
1144
1388
  }, {
@@ -1148,11 +1392,17 @@ export declare class Enclave__factory extends ContractFactory {
1148
1392
  readonly type: "bytes[]";
1149
1393
  }];
1150
1394
  readonly name: "setE3ProgramsParams";
1151
- readonly outputs: readonly [{
1152
- readonly internalType: "bool";
1153
- readonly name: "success";
1154
- readonly type: "bool";
1395
+ readonly outputs: readonly [];
1396
+ readonly stateMutability: "nonpayable";
1397
+ readonly type: "function";
1398
+ }, {
1399
+ readonly inputs: readonly [{
1400
+ readonly internalType: "contract IE3RefundManager";
1401
+ readonly name: "_e3RefundManager";
1402
+ readonly type: "address";
1155
1403
  }];
1404
+ readonly name: "setE3RefundManager";
1405
+ readonly outputs: readonly [];
1156
1406
  readonly stateMutability: "nonpayable";
1157
1407
  readonly type: "function";
1158
1408
  }, {
@@ -1162,11 +1412,7 @@ export declare class Enclave__factory extends ContractFactory {
1162
1412
  readonly type: "address";
1163
1413
  }];
1164
1414
  readonly name: "setFeeToken";
1165
- readonly outputs: readonly [{
1166
- readonly internalType: "bool";
1167
- readonly name: "success";
1168
- readonly type: "bool";
1169
- }];
1415
+ readonly outputs: readonly [];
1170
1416
  readonly stateMutability: "nonpayable";
1171
1417
  readonly type: "function";
1172
1418
  }, {
@@ -1176,11 +1422,34 @@ export declare class Enclave__factory extends ContractFactory {
1176
1422
  readonly type: "uint256";
1177
1423
  }];
1178
1424
  readonly name: "setMaxDuration";
1179
- readonly outputs: readonly [{
1180
- readonly internalType: "bool";
1181
- readonly name: "success";
1182
- readonly type: "bool";
1425
+ readonly outputs: readonly [];
1426
+ readonly stateMutability: "nonpayable";
1427
+ readonly type: "function";
1428
+ }, {
1429
+ readonly inputs: readonly [{
1430
+ readonly components: readonly [{
1431
+ readonly internalType: "uint256";
1432
+ readonly name: "dkgWindow";
1433
+ readonly type: "uint256";
1434
+ }, {
1435
+ readonly internalType: "uint256";
1436
+ readonly name: "computeWindow";
1437
+ readonly type: "uint256";
1438
+ }, {
1439
+ readonly internalType: "uint256";
1440
+ readonly name: "decryptionWindow";
1441
+ readonly type: "uint256";
1442
+ }, {
1443
+ readonly internalType: "uint256";
1444
+ readonly name: "gracePeriod";
1445
+ readonly type: "uint256";
1446
+ }];
1447
+ readonly internalType: "struct IEnclave.E3TimeoutConfig";
1448
+ readonly name: "config";
1449
+ readonly type: "tuple";
1183
1450
  }];
1451
+ readonly name: "setTimeoutConfig";
1452
+ readonly outputs: readonly [];
1184
1453
  readonly stateMutability: "nonpayable";
1185
1454
  readonly type: "function";
1186
1455
  }, {