@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
@@ -27,6 +27,22 @@ const _abi = [
27
27
  "name": "CiphertextOutputNotPublished",
28
28
  "type": "error"
29
29
  },
30
+ {
31
+ "inputs": [
32
+ {
33
+ "internalType": "uint256",
34
+ "name": "e3Id",
35
+ "type": "uint256"
36
+ },
37
+ {
38
+ "internalType": "uint256",
39
+ "name": "expiration",
40
+ "type": "uint256"
41
+ }
42
+ ],
43
+ "name": "CommitteeDutiesCompleted",
44
+ "type": "error"
45
+ },
30
46
  {
31
47
  "inputs": [],
32
48
  "name": "CommitteeSelectionFailed",
@@ -40,7 +56,7 @@ const _abi = [
40
56
  "type": "uint256"
41
57
  }
42
58
  ],
43
- "name": "E3AlreadyActivated",
59
+ "name": "E3AlreadyComplete",
44
60
  "type": "error"
45
61
  },
46
62
  {
@@ -51,12 +67,7 @@ const _abi = [
51
67
  "type": "uint256"
52
68
  }
53
69
  ],
54
- "name": "E3DoesNotExist",
55
- "type": "error"
56
- },
57
- {
58
- "inputs": [],
59
- "name": "E3Expired",
70
+ "name": "E3AlreadyFailed",
60
71
  "type": "error"
61
72
  },
62
73
  {
@@ -67,12 +78,7 @@ const _abi = [
67
78
  "type": "uint256"
68
79
  }
69
80
  ],
70
- "name": "E3NotActivated",
71
- "type": "error"
72
- },
73
- {
74
- "inputs": [],
75
- "name": "E3NotReady",
81
+ "name": "E3DoesNotExist",
76
82
  "type": "error"
77
83
  },
78
84
  {
@@ -92,14 +98,9 @@ const _abi = [
92
98
  "internalType": "uint256",
93
99
  "name": "e3Id",
94
100
  "type": "uint256"
95
- },
96
- {
97
- "internalType": "uint256",
98
- "name": "expiration",
99
- "type": "uint256"
100
101
  }
101
102
  ],
102
- "name": "InputDeadlineNotPassed",
103
+ "name": "FailureConditionNotMet",
103
104
  "type": "error"
104
105
  },
105
106
  {
@@ -111,11 +112,11 @@ const _abi = [
111
112
  },
112
113
  {
113
114
  "internalType": "uint256",
114
- "name": "expiration",
115
+ "name": "inputDeadline",
115
116
  "type": "uint256"
116
117
  }
117
118
  ],
118
- "name": "InputDeadlinePassed",
119
+ "name": "InputDeadlineNotReached",
119
120
  "type": "error"
120
121
  },
121
122
  {
@@ -179,8 +180,36 @@ const _abi = [
179
180
  "type": "error"
180
181
  },
181
182
  {
182
- "inputs": [],
183
- "name": "InvalidInput",
183
+ "inputs": [
184
+ {
185
+ "internalType": "uint256",
186
+ "name": "deadline",
187
+ "type": "uint256"
188
+ }
189
+ ],
190
+ "name": "InvalidInputDeadline",
191
+ "type": "error"
192
+ },
193
+ {
194
+ "inputs": [
195
+ {
196
+ "internalType": "uint256",
197
+ "name": "end",
198
+ "type": "uint256"
199
+ }
200
+ ],
201
+ "name": "InvalidInputDeadlineEnd",
202
+ "type": "error"
203
+ },
204
+ {
205
+ "inputs": [
206
+ {
207
+ "internalType": "uint256",
208
+ "name": "start",
209
+ "type": "uint256"
210
+ }
211
+ ],
212
+ "name": "InvalidInputDeadlineStart",
184
213
  "type": "error"
185
214
  },
186
215
  {
@@ -195,8 +224,24 @@ const _abi = [
195
224
  "type": "error"
196
225
  },
197
226
  {
198
- "inputs": [],
199
- "name": "InvalidStartWindow",
227
+ "inputs": [
228
+ {
229
+ "internalType": "uint256",
230
+ "name": "e3Id",
231
+ "type": "uint256"
232
+ },
233
+ {
234
+ "internalType": "enum IEnclave.E3Stage",
235
+ "name": "expected",
236
+ "type": "uint8"
237
+ },
238
+ {
239
+ "internalType": "enum IEnclave.E3Stage",
240
+ "name": "actual",
241
+ "type": "uint8"
242
+ }
243
+ ],
244
+ "name": "InvalidStage",
200
245
  "type": "error"
201
246
  },
202
247
  {
@@ -353,8 +398,59 @@ const _abi = [
353
398
  {
354
399
  "anonymous": false,
355
400
  "inputs": [
401
+ {
402
+ "indexed": true,
403
+ "internalType": "uint256",
404
+ "name": "e3Id",
405
+ "type": "uint256"
406
+ }
407
+ ],
408
+ "name": "CommitteeFinalized",
409
+ "type": "event"
410
+ },
411
+ {
412
+ "anonymous": false,
413
+ "inputs": [
414
+ {
415
+ "indexed": true,
416
+ "internalType": "uint256",
417
+ "name": "e3Id",
418
+ "type": "uint256"
419
+ }
420
+ ],
421
+ "name": "CommitteeFormed",
422
+ "type": "event"
423
+ },
424
+ {
425
+ "anonymous": false,
426
+ "inputs": [
427
+ {
428
+ "indexed": true,
429
+ "internalType": "uint256",
430
+ "name": "e3Id",
431
+ "type": "uint256"
432
+ },
433
+ {
434
+ "indexed": false,
435
+ "internalType": "enum IEnclave.E3Stage",
436
+ "name": "failedAtStage",
437
+ "type": "uint8"
438
+ },
356
439
  {
357
440
  "indexed": false,
441
+ "internalType": "enum IEnclave.FailureReason",
442
+ "name": "reason",
443
+ "type": "uint8"
444
+ }
445
+ ],
446
+ "name": "E3Failed",
447
+ "type": "event"
448
+ },
449
+ {
450
+ "anonymous": false,
451
+ "inputs": [
452
+ {
453
+ "indexed": true,
358
454
  "internalType": "uint256",
359
455
  "name": "e3Id",
360
456
  "type": "uint256"
@@ -362,17 +458,17 @@ const _abi = [
362
458
  {
363
459
  "indexed": false,
364
460
  "internalType": "uint256",
365
- "name": "expiration",
461
+ "name": "paymentAmount",
366
462
  "type": "uint256"
367
463
  },
368
464
  {
369
465
  "indexed": false,
370
- "internalType": "bytes32",
371
- "name": "committeePublicKey",
372
- "type": "bytes32"
466
+ "internalType": "uint256",
467
+ "name": "honestNodeCount",
468
+ "type": "uint256"
373
469
  }
374
470
  ],
375
- "name": "E3Activated",
471
+ "name": "E3FailureProcessed",
376
472
  "type": "event"
377
473
  },
378
474
  {
@@ -401,6 +497,19 @@ const _abi = [
401
497
  "name": "E3ProgramEnabled",
402
498
  "type": "event"
403
499
  },
500
+ {
501
+ "anonymous": false,
502
+ "inputs": [
503
+ {
504
+ "indexed": true,
505
+ "internalType": "address",
506
+ "name": "e3RefundManager",
507
+ "type": "address"
508
+ }
509
+ ],
510
+ "name": "E3RefundManagerSet",
511
+ "type": "event"
512
+ },
404
513
  {
405
514
  "anonymous": false,
406
515
  "inputs": [
@@ -429,19 +538,9 @@ const _abi = [
429
538
  },
430
539
  {
431
540
  "internalType": "uint256[2]",
432
- "name": "startWindow",
541
+ "name": "inputWindow",
433
542
  "type": "uint256[2]"
434
543
  },
435
- {
436
- "internalType": "uint256",
437
- "name": "duration",
438
- "type": "uint256"
439
- },
440
- {
441
- "internalType": "uint256",
442
- "name": "expiration",
443
- "type": "uint256"
444
- },
445
544
  {
446
545
  "internalType": "bytes32",
447
546
  "name": "encryptionSchemeId",
@@ -503,6 +602,31 @@ const _abi = [
503
602
  "name": "E3Requested",
504
603
  "type": "event"
505
604
  },
605
+ {
606
+ "anonymous": false,
607
+ "inputs": [
608
+ {
609
+ "indexed": true,
610
+ "internalType": "uint256",
611
+ "name": "e3Id",
612
+ "type": "uint256"
613
+ },
614
+ {
615
+ "indexed": false,
616
+ "internalType": "enum IEnclave.E3Stage",
617
+ "name": "previousStage",
618
+ "type": "uint8"
619
+ },
620
+ {
621
+ "indexed": false,
622
+ "internalType": "enum IEnclave.E3Stage",
623
+ "name": "newStage",
624
+ "type": "uint8"
625
+ }
626
+ ],
627
+ "name": "E3StageChanged",
628
+ "type": "event"
629
+ },
506
630
  {
507
631
  "anonymous": false,
508
632
  "inputs": [
@@ -663,23 +787,39 @@ const _abi = [
663
787
  "type": "event"
664
788
  },
665
789
  {
790
+ "anonymous": false,
666
791
  "inputs": [
667
792
  {
668
- "internalType": "uint256",
669
- "name": "e3Id",
670
- "type": "uint256"
671
- }
672
- ],
673
- "name": "activate",
674
- "outputs": [
675
- {
676
- "internalType": "bool",
677
- "name": "success",
678
- "type": "bool"
793
+ "components": [
794
+ {
795
+ "internalType": "uint256",
796
+ "name": "dkgWindow",
797
+ "type": "uint256"
798
+ },
799
+ {
800
+ "internalType": "uint256",
801
+ "name": "computeWindow",
802
+ "type": "uint256"
803
+ },
804
+ {
805
+ "internalType": "uint256",
806
+ "name": "decryptionWindow",
807
+ "type": "uint256"
808
+ },
809
+ {
810
+ "internalType": "uint256",
811
+ "name": "gracePeriod",
812
+ "type": "uint256"
813
+ }
814
+ ],
815
+ "indexed": false,
816
+ "internalType": "struct IEnclave.E3TimeoutConfig",
817
+ "name": "config",
818
+ "type": "tuple"
679
819
  }
680
820
  ],
681
- "stateMutability": "nonpayable",
682
- "type": "function"
821
+ "name": "TimeoutConfigUpdated",
822
+ "type": "event"
683
823
  },
684
824
  {
685
825
  "inputs": [],
@@ -694,6 +834,30 @@ const _abi = [
694
834
  "stateMutability": "view",
695
835
  "type": "function"
696
836
  },
837
+ {
838
+ "inputs": [
839
+ {
840
+ "internalType": "uint256",
841
+ "name": "e3Id",
842
+ "type": "uint256"
843
+ }
844
+ ],
845
+ "name": "checkFailureCondition",
846
+ "outputs": [
847
+ {
848
+ "internalType": "bool",
849
+ "name": "canFail",
850
+ "type": "bool"
851
+ },
852
+ {
853
+ "internalType": "enum IEnclave.FailureReason",
854
+ "name": "reason",
855
+ "type": "uint8"
856
+ }
857
+ ],
858
+ "stateMutability": "view",
859
+ "type": "function"
860
+ },
697
861
  {
698
862
  "inputs": [],
699
863
  "name": "ciphernodeRegistry",
@@ -735,13 +899,7 @@ const _abi = [
735
899
  }
736
900
  ],
737
901
  "name": "disableE3Program",
738
- "outputs": [
739
- {
740
- "internalType": "bool",
741
- "name": "success",
742
- "type": "bool"
743
- }
744
- ],
902
+ "outputs": [],
745
903
  "stateMutability": "nonpayable",
746
904
  "type": "function"
747
905
  },
@@ -754,13 +912,7 @@ const _abi = [
754
912
  }
755
913
  ],
756
914
  "name": "disableEncryptionScheme",
757
- "outputs": [
758
- {
759
- "internalType": "bool",
760
- "name": "success",
761
- "type": "bool"
762
- }
763
- ],
915
+ "outputs": [],
764
916
  "stateMutability": "nonpayable",
765
917
  "type": "function"
766
918
  },
@@ -821,6 +973,19 @@ const _abi = [
821
973
  "stateMutability": "view",
822
974
  "type": "function"
823
975
  },
976
+ {
977
+ "inputs": [],
978
+ "name": "e3RefundManager",
979
+ "outputs": [
980
+ {
981
+ "internalType": "contract IE3RefundManager",
982
+ "name": "",
983
+ "type": "address"
984
+ }
985
+ ],
986
+ "stateMutability": "view",
987
+ "type": "function"
988
+ },
824
989
  {
825
990
  "inputs": [
826
991
  {
@@ -841,16 +1006,6 @@ const _abi = [
841
1006
  "name": "requestBlock",
842
1007
  "type": "uint256"
843
1008
  },
844
- {
845
- "internalType": "uint256",
846
- "name": "duration",
847
- "type": "uint256"
848
- },
849
- {
850
- "internalType": "uint256",
851
- "name": "expiration",
852
- "type": "uint256"
853
- },
854
1009
  {
855
1010
  "internalType": "bytes32",
856
1011
  "name": "encryptionSchemeId",
@@ -909,13 +1064,7 @@ const _abi = [
909
1064
  }
910
1065
  ],
911
1066
  "name": "enableE3Program",
912
- "outputs": [
913
- {
914
- "internalType": "bool",
915
- "name": "success",
916
- "type": "bool"
917
- }
918
- ],
1067
+ "outputs": [],
919
1068
  "stateMutability": "nonpayable",
920
1069
  "type": "function"
921
1070
  },
@@ -935,11 +1084,47 @@ const _abi = [
935
1084
  {
936
1085
  "inputs": [
937
1086
  {
938
- "internalType": "bytes32",
939
- "name": "encryptionSchemeId",
940
- "type": "bytes32"
941
- }
942
- ],
1087
+ "internalType": "uint256",
1088
+ "name": "e3Id",
1089
+ "type": "uint256"
1090
+ }
1091
+ ],
1092
+ "name": "getDeadlines",
1093
+ "outputs": [
1094
+ {
1095
+ "components": [
1096
+ {
1097
+ "internalType": "uint256",
1098
+ "name": "dkgDeadline",
1099
+ "type": "uint256"
1100
+ },
1101
+ {
1102
+ "internalType": "uint256",
1103
+ "name": "computeDeadline",
1104
+ "type": "uint256"
1105
+ },
1106
+ {
1107
+ "internalType": "uint256",
1108
+ "name": "decryptionDeadline",
1109
+ "type": "uint256"
1110
+ }
1111
+ ],
1112
+ "internalType": "struct IEnclave.E3Deadlines",
1113
+ "name": "deadlines",
1114
+ "type": "tuple"
1115
+ }
1116
+ ],
1117
+ "stateMutability": "view",
1118
+ "type": "function"
1119
+ },
1120
+ {
1121
+ "inputs": [
1122
+ {
1123
+ "internalType": "bytes32",
1124
+ "name": "encryptionSchemeId",
1125
+ "type": "bytes32"
1126
+ }
1127
+ ],
943
1128
  "name": "getDecryptionVerifier",
944
1129
  "outputs": [
945
1130
  {
@@ -980,19 +1165,9 @@ const _abi = [
980
1165
  },
981
1166
  {
982
1167
  "internalType": "uint256[2]",
983
- "name": "startWindow",
1168
+ "name": "inputWindow",
984
1169
  "type": "uint256[2]"
985
1170
  },
986
- {
987
- "internalType": "uint256",
988
- "name": "duration",
989
- "type": "uint256"
990
- },
991
- {
992
- "internalType": "uint256",
993
- "name": "expiration",
994
- "type": "uint256"
995
- },
996
1171
  {
997
1172
  "internalType": "bytes32",
998
1173
  "name": "encryptionSchemeId",
@@ -1058,14 +1233,9 @@ const _abi = [
1058
1233
  },
1059
1234
  {
1060
1235
  "internalType": "uint256[2]",
1061
- "name": "startWindow",
1236
+ "name": "inputWindow",
1062
1237
  "type": "uint256[2]"
1063
1238
  },
1064
- {
1065
- "internalType": "uint256",
1066
- "name": "duration",
1067
- "type": "uint256"
1068
- },
1069
1239
  {
1070
1240
  "internalType": "contract IE3Program",
1071
1241
  "name": "e3Program",
@@ -1103,6 +1273,98 @@ const _abi = [
1103
1273
  "stateMutability": "pure",
1104
1274
  "type": "function"
1105
1275
  },
1276
+ {
1277
+ "inputs": [
1278
+ {
1279
+ "internalType": "uint256",
1280
+ "name": "e3Id",
1281
+ "type": "uint256"
1282
+ }
1283
+ ],
1284
+ "name": "getE3Stage",
1285
+ "outputs": [
1286
+ {
1287
+ "internalType": "enum IEnclave.E3Stage",
1288
+ "name": "stage",
1289
+ "type": "uint8"
1290
+ }
1291
+ ],
1292
+ "stateMutability": "view",
1293
+ "type": "function"
1294
+ },
1295
+ {
1296
+ "inputs": [
1297
+ {
1298
+ "internalType": "uint256",
1299
+ "name": "e3Id",
1300
+ "type": "uint256"
1301
+ }
1302
+ ],
1303
+ "name": "getFailureReason",
1304
+ "outputs": [
1305
+ {
1306
+ "internalType": "enum IEnclave.FailureReason",
1307
+ "name": "reason",
1308
+ "type": "uint8"
1309
+ }
1310
+ ],
1311
+ "stateMutability": "view",
1312
+ "type": "function"
1313
+ },
1314
+ {
1315
+ "inputs": [
1316
+ {
1317
+ "internalType": "uint256",
1318
+ "name": "e3Id",
1319
+ "type": "uint256"
1320
+ }
1321
+ ],
1322
+ "name": "getRequester",
1323
+ "outputs": [
1324
+ {
1325
+ "internalType": "address",
1326
+ "name": "requester",
1327
+ "type": "address"
1328
+ }
1329
+ ],
1330
+ "stateMutability": "view",
1331
+ "type": "function"
1332
+ },
1333
+ {
1334
+ "inputs": [],
1335
+ "name": "getTimeoutConfig",
1336
+ "outputs": [
1337
+ {
1338
+ "components": [
1339
+ {
1340
+ "internalType": "uint256",
1341
+ "name": "dkgWindow",
1342
+ "type": "uint256"
1343
+ },
1344
+ {
1345
+ "internalType": "uint256",
1346
+ "name": "computeWindow",
1347
+ "type": "uint256"
1348
+ },
1349
+ {
1350
+ "internalType": "uint256",
1351
+ "name": "decryptionWindow",
1352
+ "type": "uint256"
1353
+ },
1354
+ {
1355
+ "internalType": "uint256",
1356
+ "name": "gracePeriod",
1357
+ "type": "uint256"
1358
+ }
1359
+ ],
1360
+ "internalType": "struct IEnclave.E3TimeoutConfig",
1361
+ "name": "config",
1362
+ "type": "tuple"
1363
+ }
1364
+ ],
1365
+ "stateMutability": "view",
1366
+ "type": "function"
1367
+ },
1106
1368
  {
1107
1369
  "inputs": [
1108
1370
  {
@@ -1120,6 +1382,11 @@ const _abi = [
1120
1382
  "name": "_bondingRegistry",
1121
1383
  "type": "address"
1122
1384
  },
1385
+ {
1386
+ "internalType": "contract IE3RefundManager",
1387
+ "name": "_e3RefundManager",
1388
+ "type": "address"
1389
+ },
1123
1390
  {
1124
1391
  "internalType": "contract IERC20",
1125
1392
  "name": "_feeToken",
@@ -1130,6 +1397,33 @@ const _abi = [
1130
1397
  "name": "_maxDuration",
1131
1398
  "type": "uint256"
1132
1399
  },
1400
+ {
1401
+ "components": [
1402
+ {
1403
+ "internalType": "uint256",
1404
+ "name": "dkgWindow",
1405
+ "type": "uint256"
1406
+ },
1407
+ {
1408
+ "internalType": "uint256",
1409
+ "name": "computeWindow",
1410
+ "type": "uint256"
1411
+ },
1412
+ {
1413
+ "internalType": "uint256",
1414
+ "name": "decryptionWindow",
1415
+ "type": "uint256"
1416
+ },
1417
+ {
1418
+ "internalType": "uint256",
1419
+ "name": "gracePeriod",
1420
+ "type": "uint256"
1421
+ }
1422
+ ],
1423
+ "internalType": "struct IEnclave.E3TimeoutConfig",
1424
+ "name": "config",
1425
+ "type": "tuple"
1426
+ },
1133
1427
  {
1134
1428
  "internalType": "bytes[]",
1135
1429
  "name": "_e3ProgramsParams",
@@ -1141,6 +1435,25 @@ const _abi = [
1141
1435
  "stateMutability": "nonpayable",
1142
1436
  "type": "function"
1143
1437
  },
1438
+ {
1439
+ "inputs": [
1440
+ {
1441
+ "internalType": "uint256",
1442
+ "name": "e3Id",
1443
+ "type": "uint256"
1444
+ }
1445
+ ],
1446
+ "name": "markE3Failed",
1447
+ "outputs": [
1448
+ {
1449
+ "internalType": "enum IEnclave.FailureReason",
1450
+ "name": "reason",
1451
+ "type": "uint8"
1452
+ }
1453
+ ],
1454
+ "stateMutability": "nonpayable",
1455
+ "type": "function"
1456
+ },
1144
1457
  {
1145
1458
  "inputs": [],
1146
1459
  "name": "maxDuration",
@@ -1168,16 +1481,16 @@ const _abi = [
1168
1481
  "type": "function"
1169
1482
  },
1170
1483
  {
1171
- "inputs": [],
1172
- "name": "owner",
1173
- "outputs": [
1484
+ "inputs": [
1174
1485
  {
1175
- "internalType": "address",
1176
- "name": "",
1177
- "type": "address"
1486
+ "internalType": "uint256",
1487
+ "name": "e3Id",
1488
+ "type": "uint256"
1178
1489
  }
1179
1490
  ],
1180
- "stateMutability": "view",
1491
+ "name": "onCommitteeFinalized",
1492
+ "outputs": [],
1493
+ "stateMutability": "nonpayable",
1181
1494
  "type": "function"
1182
1495
  },
1183
1496
  {
@@ -1188,24 +1501,57 @@ const _abi = [
1188
1501
  "type": "uint256"
1189
1502
  },
1190
1503
  {
1191
- "internalType": "bytes",
1192
- "name": "ciphertextOutput",
1193
- "type": "bytes"
1504
+ "internalType": "bytes32",
1505
+ "name": "committeePublicKeyHash",
1506
+ "type": "bytes32"
1507
+ }
1508
+ ],
1509
+ "name": "onCommitteePublished",
1510
+ "outputs": [],
1511
+ "stateMutability": "nonpayable",
1512
+ "type": "function"
1513
+ },
1514
+ {
1515
+ "inputs": [
1516
+ {
1517
+ "internalType": "uint256",
1518
+ "name": "e3Id",
1519
+ "type": "uint256"
1194
1520
  },
1195
1521
  {
1196
- "internalType": "bytes",
1197
- "name": "proof",
1198
- "type": "bytes"
1522
+ "internalType": "uint8",
1523
+ "name": "reason",
1524
+ "type": "uint8"
1199
1525
  }
1200
1526
  ],
1201
- "name": "publishCiphertextOutput",
1527
+ "name": "onE3Failed",
1528
+ "outputs": [],
1529
+ "stateMutability": "nonpayable",
1530
+ "type": "function"
1531
+ },
1532
+ {
1533
+ "inputs": [],
1534
+ "name": "owner",
1202
1535
  "outputs": [
1203
1536
  {
1204
- "internalType": "bool",
1205
- "name": "success",
1206
- "type": "bool"
1537
+ "internalType": "address",
1538
+ "name": "",
1539
+ "type": "address"
1207
1540
  }
1208
1541
  ],
1542
+ "stateMutability": "view",
1543
+ "type": "function"
1544
+ },
1545
+ {
1546
+ "inputs": [
1547
+ {
1548
+ "internalType": "uint256",
1549
+ "name": "e3Id",
1550
+ "type": "uint256"
1551
+ }
1552
+ ],
1553
+ "name": "processE3Failure",
1554
+ "outputs": [],
1209
1555
  "stateMutability": "nonpayable",
1210
1556
  "type": "function"
1211
1557
  },
@@ -1218,11 +1564,16 @@ const _abi = [
1218
1564
  },
1219
1565
  {
1220
1566
  "internalType": "bytes",
1221
- "name": "data",
1567
+ "name": "ciphertextOutput",
1568
+ "type": "bytes"
1569
+ },
1570
+ {
1571
+ "internalType": "bytes",
1572
+ "name": "proof",
1222
1573
  "type": "bytes"
1223
1574
  }
1224
1575
  ],
1225
- "name": "publishInput",
1576
+ "name": "publishCiphertextOutput",
1226
1577
  "outputs": [
1227
1578
  {
1228
1579
  "internalType": "bool",
@@ -1280,14 +1631,9 @@ const _abi = [
1280
1631
  },
1281
1632
  {
1282
1633
  "internalType": "uint256[2]",
1283
- "name": "startWindow",
1634
+ "name": "inputWindow",
1284
1635
  "type": "uint256[2]"
1285
1636
  },
1286
- {
1287
- "internalType": "uint256",
1288
- "name": "duration",
1289
- "type": "uint256"
1290
- },
1291
1637
  {
1292
1638
  "internalType": "contract IE3Program",
1293
1639
  "name": "e3Program",
@@ -1340,19 +1686,9 @@ const _abi = [
1340
1686
  },
1341
1687
  {
1342
1688
  "internalType": "uint256[2]",
1343
- "name": "startWindow",
1689
+ "name": "inputWindow",
1344
1690
  "type": "uint256[2]"
1345
1691
  },
1346
- {
1347
- "internalType": "uint256",
1348
- "name": "duration",
1349
- "type": "uint256"
1350
- },
1351
- {
1352
- "internalType": "uint256",
1353
- "name": "expiration",
1354
- "type": "uint256"
1355
- },
1356
1692
  {
1357
1693
  "internalType": "bytes32",
1358
1694
  "name": "encryptionSchemeId",
@@ -1416,13 +1752,7 @@ const _abi = [
1416
1752
  }
1417
1753
  ],
1418
1754
  "name": "setBondingRegistry",
1419
- "outputs": [
1420
- {
1421
- "internalType": "bool",
1422
- "name": "success",
1423
- "type": "bool"
1424
- }
1425
- ],
1755
+ "outputs": [],
1426
1756
  "stateMutability": "nonpayable",
1427
1757
  "type": "function"
1428
1758
  },
@@ -1435,13 +1765,7 @@ const _abi = [
1435
1765
  }
1436
1766
  ],
1437
1767
  "name": "setCiphernodeRegistry",
1438
- "outputs": [
1439
- {
1440
- "internalType": "bool",
1441
- "name": "success",
1442
- "type": "bool"
1443
- }
1444
- ],
1768
+ "outputs": [],
1445
1769
  "stateMutability": "nonpayable",
1446
1770
  "type": "function"
1447
1771
  },
@@ -1459,13 +1783,7 @@ const _abi = [
1459
1783
  }
1460
1784
  ],
1461
1785
  "name": "setDecryptionVerifier",
1462
- "outputs": [
1463
- {
1464
- "internalType": "bool",
1465
- "name": "success",
1466
- "type": "bool"
1467
- }
1468
- ],
1786
+ "outputs": [],
1469
1787
  "stateMutability": "nonpayable",
1470
1788
  "type": "function"
1471
1789
  },
@@ -1478,13 +1796,20 @@ const _abi = [
1478
1796
  }
1479
1797
  ],
1480
1798
  "name": "setE3ProgramsParams",
1481
- "outputs": [
1799
+ "outputs": [],
1800
+ "stateMutability": "nonpayable",
1801
+ "type": "function"
1802
+ },
1803
+ {
1804
+ "inputs": [
1482
1805
  {
1483
- "internalType": "bool",
1484
- "name": "success",
1485
- "type": "bool"
1806
+ "internalType": "contract IE3RefundManager",
1807
+ "name": "_e3RefundManager",
1808
+ "type": "address"
1486
1809
  }
1487
1810
  ],
1811
+ "name": "setE3RefundManager",
1812
+ "outputs": [],
1488
1813
  "stateMutability": "nonpayable",
1489
1814
  "type": "function"
1490
1815
  },
@@ -1497,13 +1822,7 @@ const _abi = [
1497
1822
  }
1498
1823
  ],
1499
1824
  "name": "setFeeToken",
1500
- "outputs": [
1501
- {
1502
- "internalType": "bool",
1503
- "name": "success",
1504
- "type": "bool"
1505
- }
1506
- ],
1825
+ "outputs": [],
1507
1826
  "stateMutability": "nonpayable",
1508
1827
  "type": "function"
1509
1828
  },
@@ -1516,13 +1835,42 @@ const _abi = [
1516
1835
  }
1517
1836
  ],
1518
1837
  "name": "setMaxDuration",
1519
- "outputs": [
1838
+ "outputs": [],
1839
+ "stateMutability": "nonpayable",
1840
+ "type": "function"
1841
+ },
1842
+ {
1843
+ "inputs": [
1520
1844
  {
1521
- "internalType": "bool",
1522
- "name": "success",
1523
- "type": "bool"
1845
+ "components": [
1846
+ {
1847
+ "internalType": "uint256",
1848
+ "name": "dkgWindow",
1849
+ "type": "uint256"
1850
+ },
1851
+ {
1852
+ "internalType": "uint256",
1853
+ "name": "computeWindow",
1854
+ "type": "uint256"
1855
+ },
1856
+ {
1857
+ "internalType": "uint256",
1858
+ "name": "decryptionWindow",
1859
+ "type": "uint256"
1860
+ },
1861
+ {
1862
+ "internalType": "uint256",
1863
+ "name": "gracePeriod",
1864
+ "type": "uint256"
1865
+ }
1866
+ ],
1867
+ "internalType": "struct IEnclave.E3TimeoutConfig",
1868
+ "name": "config",
1869
+ "type": "tuple"
1524
1870
  }
1525
1871
  ],
1872
+ "name": "setTimeoutConfig",
1873
+ "outputs": [],
1526
1874
  "stateMutability": "nonpayable",
1527
1875
  "type": "function"
1528
1876
  },
@@ -1540,7 +1888,7 @@ const _abi = [
1540
1888
  "type": "function"
1541
1889
  }
1542
1890
  ];
1543
- const _bytecode = "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6130b8806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101dc575f3560e01c80638da5cb5b11610109578063cbd168721161009e578063efe0308b1161006e578063efe0308b146104af578063f2fde38b146104c2578063fad8e111146104d5578063fd2f3d01146104e8575f5ffd5b8063cbd1687214610463578063cf0f34c414610476578063d016b08d14610489578063e59e46951461049c575f5ffd5b8063b260c42a116100d9578063b260c42a14610412578063b68fd1be14610425578063c4ccafa214610438578063cb6496171461045a575f5ffd5b80638da5cb5b146103aa5780638dcdd86b146103da5780639c8570c8146103ec578063ac4e410c146103ff575f5ffd5b8063459d92941161017f5780636db5c8fd1161014f5780636db5c8fd14610371578063715018a61461037a5780637edcd7ab146103845780638581424314610397575f5ffd5b8063459d92941461030a5780634e92ec63146103385780634fc772641461034b578063647846a51461035e575f5ffd5b806315cce224116101ba57806315cce2241461026e5780634017daf014610291578063406ed35c146102bd5780634147a360146102dd575f5ffd5b80630ef81b2f146101e057806310bc6281146102255780631408d1221461024d575b5f5ffd5b6102086101ee3660046123f1565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6102086102333660046123f1565b60076020525f90815260409020546001600160a01b031681565b61026061025b366004612408565b6104fb565b60405161021c9291906125df565b61028161027c366004612613565b610b2e565b604051901515815260200161021c565b6102a461029f3660046123f1565b610be4565b60405161021c9d9c9b9a9998979695949392919061262e565b6102d06102cb3660046123f1565b610dfd565b60405161021c91906126df565b6102fc6102eb3660046123f1565b60096020525f908152604090205481565b60405190815260200161021c565b6102816103183660046127a2565b805160208183018101805160088252928201919093012091525460ff1681565b6102816103463660046123f1565b61111d565b610281610359366004612613565b6111b1565b600254610208906001600160a01b031681565b6102fc60035481565b610382611255565b005b610281610392366004612819565b611268565b600154610208906001600160a01b031681565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610208565b5f54610208906001600160a01b031681565b6102816103fa366004612819565b611429565b6102fc61040d366004612408565b6115cc565b6102816104203660046123f1565b6115d6565b610281610433366004612943565b611745565b610281610446366004612613565b60056020525f908152604090205460ff1681565b6102fc60045481565b610281610471366004612975565b6117ef565b6102816104843660046123f1565b6118b0565b6102816104973660046129a3565b6118f2565b6102816104aa366004612613565b6119c9565b6103826104bd3660046129eb565b611a72565b6103826104d0366004612613565b611bf3565b6102816104e3366004612613565b611c30565b6102816104f6366004612613565b611cdb565b5f610504612263565b5f61050e846115cc565b905061051d6020850185612aa2565b63ffffffff166105336040860160208701612aa2565b63ffffffff161015801561055857505f6105506020860186612aa2565b63ffffffff16115b849061058157604051633744092160e21b81526004016105789190612aeb565b60405180910390fd5b50604084013560608501351080159061059e575042606085013510155b6105bb576040516308594fb760e01b815260040160405180910390fd5b5f84608001351180156105d45750600354846080013511155b8460800135906105fa576040516313b783af60e21b815260040161057891815260200190565b5060055f61060e60c0870160a08801612613565b6001600160a01b0316815260208101919091526040015f205460ff1661063a60c0860160a08701612613565b906106645760405163295a6a6f60e11b81526001600160a01b039091166004820152602401610578565b5060048054935083905f61067783612b0d565b90915550506040805144602080830191909152818301869052825180830384018152606090920183528151910120808452815180830183529091869060029083908390808284375f92019190915250505060208401524360408085019190915280518082018252908681019060029083908390808284375f920182905250606087019390935250506080808701359085015260a0808501919091526107229060c08701908701612613565b6001600160a01b031660e084015261073d60c0860186612b25565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506101008085019190915261078690860186612b25565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101208801949094525050506101608401819052610180840181905260408051602081019091528181526101a0850152336101c08501526107fc60c0870160a08801612613565b6001600160a01b031663fefd9a8b868461081960c08b018b612b25565b61082660e08d018d612b25565b6108346101008f018f612b25565b6040518963ffffffff1660e01b8152600401610857989796959493929190612b90565b6020604051808303815f875af1158015610873573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108979190612be6565b5f818152600760205260409020549091506001600160a01b031681816108d3576040516381c4951960e01b815260040161057891815260200190565b5060c085018290526001600160a01b0381166101408601525f868152600660209081526040909120865181559086015186919061091690600183019060026122f6565b5060408201518160020155606082015181600301906002610938929190612391565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b0390921691909117905561010082015160098201906109929082612c7b565b50610120820151600a8201906109a89082612c7b565b50610140820151600b820180546001600160a01b0319166001600160a01b03909216919091179055610160820151600c820155610180820151600d8201556101a0820151600e8201906109fb9082612c7b565b506101c09190910151600f90910180546001600160a01b0319166001600160a01b039283161790555f878152600960205260409020859055600254610a439116333087611d85565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b90610a7690899087908c90600401612d36565b6020604051808303815f875af1158015610a92573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab69190612d51565b610ad357604051630d8dbe2560e01b815260040160405180910390fd5b610ae360c0880160a08901612613565b6001600160a01b03167f4ecb0221c454f0d5b8f84e30e1140e22464fe24db107d56ce81dadfaa1549a838787604051610b1d9291906125df565b60405180910390a250505050915091565b5f610b37611dfa565b6001600160a01b03821615801590610b5d57506002546001600160a01b03838116911614155b8290610b885760405163eddf07f560e01b81526001600160a01b039091166004820152602401610578565b5050600280546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f3906020015b60405180910390a1919050565b600660208190525f91825260409091208054600282015460058301549383015460078401546008850154600986018054959794969495939492936001600160a01b039092169291610c3490612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6090612bfd565b8015610cab5780601f10610c8257610100808354040283529160200191610cab565b820191905f5260205f20905b815481529060010190602001808311610c8e57829003601f168201915b50505050509080600a018054610cc090612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610cec90612bfd565b8015610d375780601f10610d0e57610100808354040283529160200191610d37565b820191905f5260205f20905b815481529060010190602001808311610d1a57829003601f168201915b505050600b840154600c850154600d860154600e8701805496976001600160a01b039094169692955090935090610d6d90612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9990612bfd565b8015610de45780601f10610dbb57610100808354040283529160200191610de4565b820191905f5260205f20905b815481529060010190602001808311610dc757829003601f168201915b505050600f90930154919250506001600160a01b03168d565b610e05612263565b5f82815260066020908152604080832081516101e0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610e4057505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610ea657505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a090920191610f0790612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3390612bfd565b8015610f7e5780601f10610f5557610100808354040283529160200191610f7e565b820191905f5260205f20905b815481529060010190602001808311610f6157829003601f168201915b50505050508152602001600a82018054610f9790612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc390612bfd565b801561100e5780601f10610fe55761010080835404028352916020019161100e565b820191905f5260205f20905b815481529060010190602001808311610ff157829003601f168201915b5050509183525050600b8201546001600160a01b03166020820152600c8201546040820152600d8201546060820152600e8201805460809092019161105290612bfd565b80601f016020809104026020016040519081016040528092919081815260200182805461107e90612bfd565b80156110c95780601f106110a0576101008083540402835291602001916110c9565b820191905f5260205f20905b8154815290600101906020018083116110ac57829003601f168201915b5050509183525050600f91909101546001600160a01b0390811660209092019190915260e08201519192508391166111175760405163cd6f4a4f60e01b815260040161057891815260200190565b50919050565b5f611126611dfa565b5f8281526007602052604090205482906001600160a01b031661115f576040516381c4951960e01b815260040161057891815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610bd79084815260200190565b5f6111ba611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff16611200576040516321ac7c5f60e01b81526001600160a01b039091166004820152602401610578565b50506001600160a01b0381165f81815260056020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610bd7565b61125d611dfa565b6112665f611e55565b565b5f5f61127387610dfd565b90505f8160a0015111879061129e5760405163166b4d0360e01b815260040161057891815260200190565b5061018081015187906112c75760405163032c20ef60e21b815260040161057891815260200190565b506101a0810151518790156112f2576040516360ec327960e01b815260040161057891815260200190565b505f878152600660205260409020600e0161130e868883612d70565b508061014001516001600160a01b0316632f0e1bbf888888604051611334929190612e2a565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252611377929189908990600401612e39565b602060405180830381865afa158015611392573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b69190612d51565b91508585836113da57604051632f9f8ab960e01b8152600401610578929190612e62565b50506113e587611ec5565b867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca1698787604051611417929190612e62565b60405180910390a25095945050505050565b5f5f61143487610dfd565b90505f8160a0015111879061145f5760405163166b4d0360e01b815260040161057891815260200190565b5060a0810151879042811115611491576040516370c05fb960e11b815260048101929092526024820152604401610578565b50506101808101518790156114bc57604051637eb9cea960e11b815260040161057891815260200190565b505f86866040516114ce929190612e2a565b604080519182900382205f8b8152600660205291909120600d0181905560e0840151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf90611521908b9085908a908a90600401612e39565b6020604051808303815f875af115801561153d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115619190612d51565b925086868461158557604051632f9f8ab960e01b8152600401610578929190612e62565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade07188886040516115b9929190612e62565b60405180910390a2505095945050505050565b620f424080611117565b5f5f6115e183610dfd565b90508060a001515f14839061160c57604051633e26347b60e21b815260040161057891815260200190565b506060810151514210156116335760405163a0750b5160e01b815260040160405180910390fd5b60608101516020015142111561165c57604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018690526001600160a01b039091169063e82f3b7090602401602060405180830381865afa1580156116a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c79190612be6565b90505f8260800151426116da9190612e75565b5f86815260066020818152604092839020918201849055600c90910185905581518881529081018390529081018490529091507f38d3b0e32ac79e8b5ba6e95ad66f2ff3ef525893ba853ac583cd0a7c14d09e8c9060600160405180910390a1506001949350505050565b5f61174e611dfa565b81515f5b818110156117ad576001600885838151811061177057611770612a76565b60200260200101516040516117859190612e88565b908152604051908190036020019020805491151560ff19909216919091179055600101611752565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516117e19190612e9e565b60405180910390a150919050565b5f6117f8611dfa565b6001600160a01b0382161580159061182957505f838152600760205260409020546001600160a01b03838116911614155b839061184b576040516381c4951960e01b815260040161057891815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6118b9611dfa565b5060038190556040518181526001907fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610bd7565b5f5f6118fd85610dfd565b90505f8160a001511185906119285760405163166b4d0360e01b815260040161057891815260200190565b5060a081015185904281116119595760405163142c294360e31b815260048101929092526024820152604401610578565b50508060e001516001600160a01b031663d927910e863387876040518563ffffffff1660e01b81526004016119919493929190612f01565b5f604051808303815f87803b1580156119a8575f5ffd5b505af11580156119ba573d5f5f3e3d5ffd5b50600198975050505050505050565b5f6119d2611dfa565b6001600160a01b038216158015906119f857506001546001600160a01b03838116911614155b8290611a23576040516320252f0b60e01b81526001600160a01b039091166004820152602401610578565b5050600180546001600160a01b0319166001600160a01b03831690811782556040519081527fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a790602001610bd7565b5f611a7b612171565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015611aa75750825b90505f8267ffffffffffffffff166001148015611ac35750303b155b905081158015611ad1575080155b15611aef5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b2357845468ff00000000000000001916680100000000000000001785555b611b2c3361219b565b611b35876118b0565b50611b3f8a611c30565b50611b49896119c9565b50611b5388610b2e565b50611b5d86611745565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038c8116911614611b9b57611b9b8b611bf3565b8315611be657845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b611bfb611dfa565b6001600160a01b038116611c2457604051631e4fbdf760e01b81525f6004820152602401610578565b611c2d81611e55565b50565b5f611c39611dfa565b6001600160a01b03821615801590611c5e57505f546001600160a01b03838116911614155b8290611c89576040516375ac4eb760e11b81526001600160a01b039091166004820152602401610578565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610bd7565b5f611ce4611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff1615611d2b5760405163b29d459560e01b81526001600160a01b039091166004820152602401610578565b50506001600160a01b0381165f81815260056020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610bd7565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b179052611df49085906121ac565b50505050565b33611e2c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146112665760405163118cdaa760e01b8152336004820152602401610578565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa158015611f0b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f329190810190612f29565b80519091505f8167ffffffffffffffff811115611f5157611f516126f1565b604051908082528060200260200182016040528015611f7a578160200160208202803683370190505b505f8581526009602052604081205491925090611f98908490612fb9565b90505f5b83811015611fca5781838281518110611fb757611fb7612a76565b6020908102919091010152600101611f9c565b505f858152600960205260408082208054929055600254600154915163095ea7b360e01b81526001600160a01b0392831660048201526024810184905291169063095ea7b3906044016020604051808303815f875af115801561202f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120539190612d51565b50600154600254604051636ec640c760e11b81526001600160a01b039283169263dd8c818e9261208c929116908990889060040161304b565b5f604051808303815f87803b1580156120a3575f5ffd5b505af11580156120b5573d5f5f3e3d5ffd5b505060025460015460405163095ea7b360e01b81526001600160a01b0391821660048201525f60248201529116925063095ea7b391506044016020604051808303815f875af115801561210a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e9190612d51565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a868560405161216192919061307e565b60405180910390a2505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b6121a3612218565b611c2d8161223d565b5f5f60205f8451602086015f885af1806121cb576040513d5f823e3d81fd5b50505f513d915081156121e25780600114156121ef565b6001600160a01b0384163b155b15611df457604051635274afe760e01b81526001600160a01b0385166004820152602401610578565b612220612245565b61126657604051631afcd79f60e31b815260040160405180910390fd5b611bfb612218565b5f61224e612171565b5468010000000000000000900460ff16919050565b604051806101e001604052805f815260200161227d6123bf565b81526020015f81526020016122906123bf565b81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081526020015f6001600160a01b031681525090565b600183019183908215612381579160200282015f5b8382111561234f57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261230b565b801561237f5782816101000a81549063ffffffff021916905560040160208160030104928301926001030261234f565b505b5061238d9291506123dd565b5090565b8260028101928215612381579160200282015b828111156123815782518255916020019190600101906123a4565b60405180604001604052806002906020820280368337509192915050565b5b8082111561238d575f81556001016123de565b5f60208284031215612401575f5ffd5b5035919050565b5f60208284031215612418575f5ffd5b813567ffffffffffffffff81111561242e575f5ffd5b82016101208185031215612440575f5ffd5b9392505050565b805f5b6002811015611df457815163ffffffff1684526020938401939091019060010161244a565b805f5b6002811015611df4578151845260209384019390910190600101612472565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b805182525f60208201516124d66020850182612447565b506040820151606084015260608201516124f3608085018261246f565b50608082015160c084015260a082015160e084015260c082015161010084015260e082015161252e6101208501826001600160a01b03169052565b5061010082015161022061014085015261254c610220850182612491565b90506101208301518482036101608601526125678282612491565b9150506101408301516125866101808601826001600160a01b03169052565b506101608301516101a08501526101808301516101c08501526101a08301518482036101e08601526125b88282612491565b9150506101c08301516125d76102008601826001600160a01b03169052565b509392505050565b828152604060208201525f6125f760408301846124bf565b949350505050565b6001600160a01b0381168114611c2d575f5ffd5b5f60208284031215612623575f5ffd5b8135612440816125ff565b8d81528c60208201528b60408201528a60608201528960808201526001600160a01b03891660a08201526101a060c08201525f61266f6101a083018a612491565b82810360e0840152612681818a612491565b6001600160a01b038916610100850152905086610120840152856101408401528281036101608401526126b48186612491565b9150506126cd6101808301846001600160a01b03169052565b9e9d5050505050505050505050505050565b602081525f61244060208301846124bf565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561272e5761272e6126f1565b604052919050565b5f82601f830112612745575f5ffd5b813567ffffffffffffffff81111561275f5761275f6126f1565b612772601f8201601f1916602001612705565b818152846020838601011115612786575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156127b2575f5ffd5b813567ffffffffffffffff8111156127c8575f5ffd5b6125f784828501612736565b5f5f83601f8401126127e4575f5ffd5b50813567ffffffffffffffff8111156127fb575f5ffd5b602083019150836020828501011115612812575f5ffd5b9250929050565b5f5f5f5f5f6060868803121561282d575f5ffd5b85359450602086013567ffffffffffffffff81111561284a575f5ffd5b612856888289016127d4565b909550935050604086013567ffffffffffffffff811115612875575f5ffd5b612881888289016127d4565b969995985093965092949392505050565b5f67ffffffffffffffff8211156128ab576128ab6126f1565b5060051b60200190565b5f82601f8301126128c4575f5ffd5b81356128d76128d282612892565b612705565b8082825260208201915060208360051b8601019250858311156128f8575f5ffd5b602085015b8381101561293957803567ffffffffffffffff81111561291b575f5ffd5b61292a886020838a0101612736565b845250602092830192016128fd565b5095945050505050565b5f60208284031215612953575f5ffd5b813567ffffffffffffffff811115612969575f5ffd5b6125f7848285016128b5565b5f5f60408385031215612986575f5ffd5b823591506020830135612998816125ff565b809150509250929050565b5f5f5f604084860312156129b5575f5ffd5b83359250602084013567ffffffffffffffff8111156129d2575f5ffd5b6129de868287016127d4565b9497909650939450505050565b5f5f5f5f5f5f60c08789031215612a00575f5ffd5b8635612a0b816125ff565b95506020870135612a1b816125ff565b94506040870135612a2b816125ff565b93506060870135612a3b816125ff565b92506080870135915060a087013567ffffffffffffffff811115612a5d575f5ffd5b612a6989828a016128b5565b9150509295509295509295565b634e487b7160e01b5f52603260045260245ffd5b803563ffffffff81168114612a9d575f5ffd5b919050565b5f60208284031215612ab2575f5ffd5b61244082612a8a565b805f5b6002811015611df45763ffffffff612ad583612a8a565b1684526020938401939190910190600101612abe565b604081016121958284612abb565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612b1e57612b1e612af9565b5060010190565b5f5f8335601e19843603018112612b3a575f5ffd5b83018035915067ffffffffffffffff821115612b54575f5ffd5b602001915036819003821315612812575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b88815287602082015260a060408201525f612baf60a08301888a612b68565b8281036060840152612bc2818789612b68565b90508281036080840152612bd7818587612b68565b9b9a5050505050505050505050565b5f60208284031215612bf6575f5ffd5b5051919050565b600181811c90821680612c1157607f821691505b60208210810361111757634e487b7160e01b5f52602260045260245ffd5b601f821115612c7657805f5260205f20601f840160051c81016020851015612c545750805b601f840160051c820191505b81811015612c73575f8155600101612c60565b50505b505050565b815167ffffffffffffffff811115612c9557612c956126f1565b612ca981612ca38454612bfd565b84612c2f565b6020601f821160018114612cdb575f8315612cc45750848201515b5f19600385901b1c1916600184901b178455612c73565b5f84815260208120601f198516915b82811015612d0a5787850151825560209485019460019092019101612cea565b5084821015612d2757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016125f76040830184612abb565b5f60208284031215612d61575f5ffd5b81518015158114612440575f5ffd5b67ffffffffffffffff831115612d8857612d886126f1565b612d9c83612d968354612bfd565b83612c2f565b5f601f841160018114612dcd575f8515612db65750838201355b5f19600387901b1c1916600186901b178355612c73565b5f83815260208120601f198716915b82811015612dfc5786850135825560209485019460019092019101612ddc565b5086821015612e18575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818382375f9101908152919050565b848152836020820152606060408201525f612e58606083018486612b68565b9695505050505050565b602081525f6125f7602083018486612b68565b8082018082111561219557612195612af9565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ef557603f19878603018452612ee0858351612491565b94506020938401939190910190600101612ec4565b50929695505050505050565b8481526001600160a01b0384166020820152606060408201525f612e58606083018486612b68565b5f60208284031215612f39575f5ffd5b815167ffffffffffffffff811115612f4f575f5ffd5b8201601f81018413612f5f575f5ffd5b8051612f6d6128d282612892565b8082825260208201915060208360051b850101925086831115612f8e575f5ffd5b6020840193505b82841015612e58578351612fa8816125ff565b825260209384019390910190612f95565b5f82612fd357634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602084019350602083015f5b828110156130115781516001600160a01b0316865260209586019590910190600101612fea565b5093949350505050565b5f8151808452602084019350602083015f5b8281101561301157815186526020958601959091019060010161302d565b6001600160a01b0384168152606060208201525f61306c6060830185612fd8565b8281036040840152612e58818561301b565b604081525f6130906040830185612fd8565b82810360208401526130a2818561301b565b9594505050505056fea164736f6c634300081c000a";
1891
+ const _bytecode = "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613f05806100d65f395ff3fe608060405234801561000f575f5ffd5b5060043610610260575f3560e01c80638da5cb5b1161014b578063cb649617116100bf578063f0691cba11610084578063f0691cba14610657578063f2fde38b1461066a578063f81b8ef61461067d578063fad8e11114610690578063fd2f3d01146106a3578063ff72aa51146106b6575f5ffd5b8063cb649617146105e6578063cbd16872146105ef578063cf0f34c414610602578063cfbdc98d14610615578063e59e469514610644575f5ffd5b8063929a8faf11610110578063929a8faf1461054257806399c6679d146105635780639c8570c81461058b578063b68fd1be1461059e578063bb2d1b82146105b1578063c4ccafa2146105c4575f5ffd5b80638da5cb5b146104a55780638dcdd86b146104ad57806390173a41146104bf5780639117173c146104fa578063923123861461050d575f5ffd5b8063459d9294116101e25780636db5c8fd116101a75780636db5c8fd14610448578063715018a6146104515780637cfa9d74146104595780637edcd7ab1461046c57806381476ec21461047f5780638581424314610492575f5ffd5b8063459d9294146103be5780634e92ec63146103fc5780634fc772641461040f578063647846a51461042257806369c5b34714610435575f5ffd5b806336c5d38a1161022857806336c5d38a146103135780634017daf014610342578063406ed35c1461036c5780634147a3601461038c57806341739f12146103ab575f5ffd5b806302a3a9c9146102645780630ef81b2f1461027957806310bc6281146102b757806315cce224146102df578063205cd34c146102f2575b5f5ffd5b610277610272366004613108565b6106d7565b005b6102a1610287366004613123565b5f908152600860205260409020546001600160a01b031690565b6040516102ae919061313a565b60405180910390f35b6102a16102c5366004613123565b60086020525f90815260409020546001600160a01b031681565b6102776102ed366004613108565b610783565b61030561030036600461314e565b610828565b6040519081526020016102ae565b610335610321366004613123565b5f908152600d602052604090205460ff1690565b6040516102ae91906131ad565b610355610350366004613123565b610834565b6040516102ae9b9a999897969594939291906131e9565b61037f61037a366004613123565b610a3e565b6040516102ae91906133c8565b61030561039a366004613123565b600a6020525f908152604090205481565b6102776103b93660046133ea565b610d44565b6103ec6103cc3660046134b3565b805160208183018101805160098252928201919093012091525460ff1681565b60405190151581526020016102ae565b61027761040a366004613123565b610d58565b61027761041d366004613108565b610de7565b6003546102a1906001600160a01b031681565b61027761044336600461359b565b610e7a565b61030560045481565b610277610fe0565b610277610467366004613123565b610ff3565b6103ec61047a366004613688565b6110f1565b61027761048d3660046136ff565b611312565b6001546102a1906001600160a01b031681565b6102a1611402565b5f546102a1906001600160a01b031681565b6104c7611430565b6040516102ae91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b610277610508366004613123565b611484565b61052061051b366004613123565b61161c565b60408051825181526020808401519082015291810151908201526060016102ae565b610555610550366004613123565b611675565b6040516102ae92919061371f565b6102a1610571366004613123565b5f908152600e60205260409020546001600160a01b031690565b6103ec610599366004613688565b61169c565b6102776105ac366004613735565b6118cf565b6102776105bf366004613766565b611972565b6103ec6105d2366004613108565b60066020525f908152604090205460ff1681565b61030560055481565b6102776105fd366004613799565b611a18565b610277610610366004613123565b611acb565b610637610623366004613123565b5f908152600b602052604090205460ff1690565b6040516102ae91906137cc565b610277610652366004613108565b611b08565b6002546102a1906001600160a01b031681565b610277610678366004613108565b611ba2565b61033561068b366004613123565b611bdc565b61027761069e366004613108565b611d6c565b6102776106b1366004613108565b611e04565b6106c96106c436600461314e565b611e9b565b6040516102ae9291906137da565b6106df612548565b6001600160a01b03811661073a5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964204533526566756e644d616e6167657220616464726573730060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f9557d04c1c0b16f93f13b69aed23b3b6ab935bff3c53ac81d17896d3583542ed905f90a250565b61078b612548565b6001600160a01b038116158015906107b157506003546001600160a01b03828116911614155b81906107d15760405163eddf07f560e01b8152600401610731919061313a565b50600380546001600160a01b0319166001600160a01b0383161790556040517f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f39061081d90839061313a565b60405180910390a150565b620f4240805b50919050565b600760208190525f9182526040909120805460028201546005830154600684015494840180549395929491936001600160a01b0390931692610875906137f2565b80601f01602080910402602001604051908101604052809291908181526020018280546108a1906137f2565b80156108ec5780601f106108c3576101008083540402835291602001916108ec565b820191905f5260205f20905b8154815290600101906020018083116108cf57829003601f168201915b505050505090806008018054610901906137f2565b80601f016020809104026020016040519081016040528092919081815260200182805461092d906137f2565b80156109785780601f1061094f57610100808354040283529160200191610978565b820191905f5260205f20905b81548152906001019060200180831161095b57829003601f168201915b5050506009840154600a850154600b860154600c8701805496976001600160a01b0390941696929550909350906109ae906137f2565b80601f01602080910402602001604051908101604052809291908181526020018280546109da906137f2565b8015610a255780601f106109fc57610100808354040283529160200191610a25565b820191905f5260205f20905b815481529060010190602001808311610a0857829003601f168201915b505050600d90930154919250506001600160a01b03168b565b610a46612f72565b5f82815260076020908152604080832081516101a0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610a8157505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610ae75750505091835250506005820154602082015260068201546001600160a01b03166040820152600782018054606090920191610b34906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610b60906137f2565b8015610bab5780601f10610b8257610100808354040283529160200191610bab565b820191905f5260205f20905b815481529060010190602001808311610b8e57829003601f168201915b50505050508152602001600882018054610bc4906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf0906137f2565b8015610c3b5780601f10610c1257610100808354040283529160200191610c3b565b820191905f5260205f20905b815481529060010190602001808311610c1e57829003601f168201915b505050918352505060098201546001600160a01b03166020820152600a8201546040820152600b8201546060820152600c82018054608090920191610c7f906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab906137f2565b8015610cf65780601f10610ccd57610100808354040283529160200191610cf6565b820191905f5260205f20905b815481529060010190602001808311610cd957829003601f168201915b5050509183525050600d91909101546001600160a01b0390811660209092019190915260a082015191925083911661082e5760405163cd6f4a4f60e01b815260040161073191815260200190565b610d4c612548565b610d558161257a565b50565b610d60612548565b5f8181526008602052604090205481906001600160a01b0316610d99576040516381c4951960e01b815260040161073191815260200190565b505f818152600860205260409081902080546001600160a01b0319169055517f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc9061081d9083815260200190565b610def612548565b6001600160a01b0381165f90815260066020526040902054819060ff16610e2a576040516321ac7c5f60e01b8152600401610731919061313a565b506001600160a01b0381165f9081526006602052604090819020805460ff19169055517f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79061081d90839061313a565b5f610e83612707565b805490915060ff600160401b82041615906001600160401b03165f81158015610ea95750825b90505f826001600160401b03166001148015610ec45750303b155b905081158015610ed2575080155b15610ef05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f1a57845460ff60401b1916600160401b1785555b610f2333612731565b610f2c88611acb565b610f358c611d6c565b610f3e8b611b08565b610f478a6106d7565b610f5089610783565b610f598761257a565b610f62866118cf565b610f6a611402565b6001600160a01b03168d6001600160a01b031614610f8b57610f8b8d611ba2565b8315610fd157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050505050565b610fe8612548565b610ff15f612742565b565b5f546001600160a01b0316331461101c5760405162461bcd60e51b815260040161073190613824565b5f818152600b602052604090205460ff16600181600681111561104157611041613185565b1461106657816001826040516337e1404160e01b815260040161073193929190613855565b5f828152600b60205260409020805460ff19166002179055600f5461108b904261388a565b5f838152600c602052604080822092909255905183917fc44405af9078047712501f519e1fb900c2896c62b488336f84529c72ae16e6f191a2815f516020613ed95f395f51905f52600160026040516110e592919061389d565b60405180910390a25050565b5f5f6110fc87610a3e565b5f888152600b602052604090205490915060ff16600481600681111561112457611124613185565b148860048390919261114c576040516337e1404160e01b815260040161073193929190613855565b5050505f888152600c602090815260409182902082516060810184528154815260018201549281019290925260020154918101829052908990428110156111af576040516308f3034360e31b815260048101929092526024820152604401610731565b50505f898152600760205260409020600c016111cc888a83613917565b508261010001516001600160a01b0316632f0e1bbf8a8a8a6040516111f29291906139cb565b6040519081900381206001600160e01b031960e085901b16825261121d92918b908b90600401613a02565b602060405180830381865afa158015611238573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125c9190613a2b565b935087878561128057604051632f9f8ab960e01b8152600401610731929190613a4a565b50505f898152600b60205260409020805460ff191660051790556112a3896127b2565b887f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca16989896040516112d5929190613a4a565b60405180910390a2885f516020613ed95f395f51905f52600460056040516112fe92919061389d565b60405180910390a250505095945050505050565b5f546001600160a01b0316331461133b5760405162461bcd60e51b815260040161073190613824565b5f828152600b602052604090205460ff16600281600681111561136057611360613185565b1461138557826002826040516337e1404160e01b815260040161073193929190613855565b5f838152600b60209081526040808320805460ff191660031790556007909152808220600a018490555184917f11df18edb9bc9cd90a79068e0e208b630202148643d797d6150e7bacb733e63c91a2825f516020613ed95f395f51905f52600260036040516113f592919061389d565b60405180910390a2505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b61145760405180608001604052805f81526020015f81526020015f81526020015f81525090565b5060408051608081018252600f548152601054602082015260115491810191909152601254606082015290565b5f818152600b602052604090205460ff1660068160068111156114a9576114a9613185565b146114e65760405162461bcd60e51b815260206004820152600d60248201526c114cc81b9bdd0819985a5b1959609a1b6044820152606401610731565b5f828152600a6020526040902054806115385760405162461bcd60e51b8152602060048201526014602482015273139bc81c185e5b595b9d081d1bc81c99599d5b9960621b6044820152606401610731565b5f838152600a6020526040812081905561155184612a5f565b600254600354919250611571916001600160a01b03908116911684612b54565b6002546040516345ac612360e11b81526001600160a01b0390911690638b58c246906115a590879086908690600401613aa0565b5f604051808303815f87803b1580156115bc575f5ffd5b505af11580156115ce573d5f5f3e3d5ffd5b50505050837f5297818f48a66292b8b3e2caab83eec531b669bb20807fd38cf006adb2a0731783835160405161160e929190918252602082015260400190565b60405180910390a250505050565b61163d60405180606001604052805f81526020015f81526020015f81525090565b505f908152600c6020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b5f818152600b6020526040812054819060ff166116928482612bb1565b9250925050915091565b5f5f6116a787610a3e565b5f888152600c60209081526040918290208251606081018452815481526001820154928101839052600290910154928101929092529192509088904281101561170c576040516308f3034360e31b815260048101929092526024820152604401610731565b50506060820151602001518890428111156117435760405163017e35e560e71b815260048101929092526024820152604401610731565b505061014082015188901561176e57604051637eb9cea960e11b815260040161073191815260200190565b505f87876040516117809291906139cb565b604080519182900382205f8c8152600760205291909120600b0181905560a0850151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf906117d3908c9085908b908b90600401613a02565b6020604051808303815f875af11580156117ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118139190613a2b565b935087878561183757604051632f9f8ab960e01b8152600401610731929190613a4a565b50505f898152600b60205260409020805460ff1916600417905560115461185e904261388a565b5f8a8152600c602052604090819020600201919091555189907f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade071906118a6908b908b90613a4a565b60405180910390a2885f516020613ed95f395f51905f52600360046040516112fe92919061389d565b6118d7612548565b80515f5b8181101561193657600160098483815181106118f9576118f9613ac7565b602002602001015160405161190e9190613adb565b908152604051908190036020019020805491151560ff199092169190911790556001016118db565b507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81826040516119669190613af1565b60405180910390a15050565b5f546001600160a01b0316331461199b5760405162461bcd60e51b815260040161073190613824565b5f8160ff161180156119b15750600c8160ff1611155b6119f65760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103330b4b63ab932903932b0b9b7b760511b6044820152606401610731565b611a14828260ff16600c811115611a0f57611a0f613185565b612d39565b5050565b611a20612548565b6001600160a01b03811615801590611a5157505f828152600860205260409020546001600160a01b03828116911614155b8290611a73576040516381c4951960e01b815260040161073191815260200190565b505f8281526008602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381527ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb699101611966565b611ad3612548565b60048190556040518181527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b5235529060200161081d565b611b10612548565b6001600160a01b03811615801590611b3657506001546001600160a01b03828116911614155b8190611b56576040516320252f0b60e01b8152600401610731919061313a565b50600180546001600160a01b0319166001600160a01b0383161790556040517fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a79061081d90839061313a565b611baa612548565b6001600160a01b038116611bd3575f604051631e4fbdf760e01b8152600401610731919061313a565b610d5581612742565b5f818152600b602052604081205460ff1681816006811115611c0057611c00613185565b03611c2557826001826040516337e1404160e01b815260040161073193929190613855565b6005816006811115611c3957611c39613185565b03611c5a5760405163462c7bed60e01b815260048101849052602401610731565b6006816006811115611c6e57611c6e613185565b03611c8f57604051633de16e3560e11b815260048101849052602401610731565b5f611c9a8483612bb1565b9350905080611cbf57604051639f65d93560e01b815260048101859052602401610731565b5f848152600b60209081526040808320805460ff19908116600617909155600d9092529091208054859216600183600c811115611cfe57611cfe613185565b0217905550835f516020613ed95f395f51905f52836006604051611d2392919061389d565b60405180910390a2837fe20209be7caae6e76291267cfa711353981274bf127e94f16eb9ec44b68582bb8385604051611d5d929190613b54565b60405180910390a25050919050565b611d74612548565b6001600160a01b03811615801590611d9957505f546001600160a01b03828116911614155b8190611db9576040516375ac4eb760e11b8152600401610731919061313a565b505f80546001600160a01b0319166001600160a01b0383161790556040517f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b69061081d90839061313a565b611e0c612548565b6001600160a01b0381165f90815260066020526040902054819060ff1615611e485760405163b29d459560e01b8152600401610731919061313a565b506001600160a01b0381165f9081526006602052604090819020805460ff19166001179055517fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679061081d90839061313a565b5f611ea4612f72565b611eb16020840184613b87565b63ffffffff16611ec76040850160208601613b87565b63ffffffff1610158015611eec57505f611ee46020850185613b87565b63ffffffff16115b8390611f0c57604051633744092160e21b81526004016107319190613bd0565b50604083013542811015611f3657604051630b99e87960e01b815260040161073191815260200190565b5060608301356040840135811015611f645760405163174b5a0760e21b815260040161073191815260200190565b506011546010545f9190611f7c426060880135613bde565b611f86919061388a565b611f90919061388a565b905060045481108190611fb9576040516313b783af60e21b815260040161073191815260200190565b5060065f611fcd60a0870160808801613108565b6001600160a01b0316815260208101919091526040015f205460ff16611ff960a0860160808701613108565b906120185760405163295a6a6f60e11b8152600401610731919061313a565b505f61202385610828565b60058054955090915084905f61203883613bf1565b90915550506040805144602080830191909152818301879052825180830384018152606090920183528151910120808552815180830183529091879060029083908390808284375f92019190915250505060208501524360408086019190915280518082018252908781019060029083908390808284375f92019190915250505060608501526120ce60a0870160808801613108565b6001600160a01b031660a0808601919091526120ec90870187613c09565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050505060c085015261213160e0870187613c09565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060e0890194909452505050610120850181905261014085018190526040805160208101909152818152610160860152336101808601526121a660a0880160808901613108565b6001600160a01b031663fefd9a8b87846121c360a08c018c613c09565b6121d060c08e018e613c09565b8e8060e001906121e09190613c09565b6040518963ffffffff1660e01b8152600401612203989796959493929190613c4b565b6020604051808303815f875af115801561221f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122439190613ca1565b5f818152600860205260409020549091506001600160a01b0316818161227f576040516381c4951960e01b815260040161073191815260200190565b50608086018290526001600160a01b0381166101008701525f87815260076020908152604090912087518155908701518791906122c29060018301906002612ff9565b50604082015181600201556060820151816003019060026122e4929190613094565b506080820151600582015560a08201516006820180546001600160a01b0319166001600160a01b0390921691909117905560c082015160078201906123299082613cb8565b5060e0820151600882019061233e9082613cb8565b506101008201516009820180546001600160a01b0319166001600160a01b03909216919091179055610120820151600a820155610140820151600b820155610160820151600c8201906123919082613cb8565b506101809190910151600d90910180546001600160a01b0319166001600160a01b039283161790555f888152600a602052604090208590556003546123d99116333087612e8a565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b9061240c908a9087908d90600401613d6d565b6020604051808303815f875af1158015612428573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061244c9190613a2b565b61246957604051630d8dbe2560e01b815260040160405180910390fd5b5f878152600b60209081526040808320805460ff19166001179055600e82529091208054336001600160a01b03199091161790556010546060880151909101516124b3919061388a565b5f888152600c60205260409020600101556124d460a0890160808a01613108565b6001600160a01b03167fe009e1827a616eb52d6aa3823303e01f235985c9da7b43cbcc95f54b0338785d888860405161250e9291906137da565b60405180910390a2865f516020613ed95f395f51905f525f600160405161253692919061389d565b60405180910390a25050505050915091565b33612551611402565b6001600160a01b031614610ff1573360405163118cdaa760e01b8152600401610731919061313a565b80356125bd5760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420444b472077696e646f7760701b6044820152606401610731565b5f8160200135116126095760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420636f6d707574652077696e646f7760501b6044820152606401610731565b5f8160400135116126585760405162461bcd60e51b8152602060048201526019602482015278496e76616c69642064656372797074696f6e2077696e646f7760381b6044820152606401610731565b5f8160600135116126a25760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590819dc9858d9481c195c9a5bd960621b6044820152606401610731565b8035600f819055602080830135601081905560408085013560118190556060808701356012819055835196875294860193909352908401528201527f78e25a99f479f23adb3b0ac527204b39c8f57afa01a2595ad3b9b605bf0be22e9060800161081d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b612739612ec9565b610d5581612eee565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa1580156127f8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261281f9190810190613d88565b80519091505f816001600160401b0381111561283d5761283d613404565b604051908082528060200260200182016040528015612866578160200160208202803683370190505b505f858152600a602052604081205491925090612884908490613e17565b90505f5b838110156128b657818382815181106128a3576128a3613ac7565b6020908102919091010152600101612888565b505f858152600a60205260408082208054929055600354600154915163095ea7b360e01b81526001600160a01b039182169263095ea7b3926128ff929116908590600401613e36565b6020604051808303815f875af115801561291b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061293f9190613a2b565b50600154600354604051636ec640c760e11b81526001600160a01b039283169263dd8c818e926129789291169089908890600401613e7f565b5f604051808303815f87803b15801561298f575f5ffd5b505af11580156129a1573d5f5f3e3d5ffd5b505060035460015460405163095ea7b360e01b81526001600160a01b03928316945063095ea7b393506129dc92909116905f90600401613e36565b6020604051808303815f875af11580156129f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1c9190613a2b565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a8685604051612a4f929190613eb4565b60405180910390a2505050505050565b5f818152600d602052604090205460609060ff16600181600c811115612a8757612a87613185565b1480612aa45750600281600c811115612aa257612aa2613185565b145b15612adc575f5b604051908082528060200260200182016040528015612ad4578160200160208202803683370190505b509392505050565b5f54604051630a01649360e41b8152600481018590526001600160a01b039091169063a0164930906024015f60405180830381865afa925050508015612b4357506040513d5f823e601f3d908101601f19168201604052612b409190810190613d88565b60015b612b4d575f612aab565b9392505050565b612bac83846001600160a01b031663a9059cbb8585604051602401612b7a929190613e36565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612ef6565b505050565b5f828152600c60209081526040808320815160608101835281548152600182015493810193909352600201548282015282549051632800d82960e01b81526004810186905283929183916001600160a01b0390911690632800d82990602401602060405180830381865afa158015612c2b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c4f9190613ca1565b90506001856006811115612c6557612c65613185565b148015612c7157508042115b15612c8457600180935093505050612d32565b6002856006811115612c9857612c98613185565b148015612ca55750815142115b15612cb95760016003935093505050612d32565b6003856006811115612ccd57612ccd613185565b148015612cdd5750816020015142115b15612cf15760016006935093505050612d32565b6004856006811115612d0557612d05613185565b148015612d155750816040015142115b15612d29576001600a935093505050612d32565b5f5f9350935050505b9250929050565b5f828152600b602052604081205460ff1690816006811115612d5d57612d5d613185565b03612d8257826001826040516337e1404160e01b815260040161073193929190613855565b6005816006811115612d9657612d96613185565b03612db75760405163462c7bed60e01b815260048101849052602401610731565b6006816006811115612dcb57612dcb613185565b03612dec57604051633de16e3560e11b815260048101849052602401610731565b5f838152600b60209081526040808320805460ff19908116600617909155600d9092529091208054849216600183600c811115612e2b57612e2b613185565b0217905550825f516020613ed95f395f51905f52826006604051612e5092919061389d565b60405180910390a2827fe20209be7caae6e76291267cfa711353981274bf127e94f16eb9ec44b68582bb82846040516113f5929190613b54565b6040516001600160a01b038481166024830152838116604483015260648201839052612ec39186918216906323b872dd90608401612b7a565b50505050565b612ed1612f59565b610ff157604051631afcd79f60e31b815260040160405180910390fd5b611baa612ec9565b5f5f60205f8451602086015f885af180612f15576040513d5f823e3d81fd5b50505f513d91508115612f2c578060011415612f39565b6001600160a01b0384163b155b15612ec35783604051635274afe760e01b8152600401610731919061313a565b5f612f62612707565b54600160401b900460ff16919050565b604051806101a001604052805f8152602001612f8c6130c2565b81526020015f8152602001612f9f6130c2565b81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081526020015f6001600160a01b031681525090565b600183019183908215613084579160200282015f5b8382111561305257835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261300e565b80156130825782816101000a81549063ffffffff0219169055600401602081600301049283019260010302613052565b505b506130909291506130e0565b5090565b8260028101928215613084579160200282015b828111156130845782518255916020019190600101906130a7565b60405180604001604052806002906020820280368337509192915050565b5b80821115613090575f81556001016130e1565b6001600160a01b0381168114610d55575f5ffd5b5f60208284031215613118575f5ffd5b8135612b4d816130f4565b5f60208284031215613133575f5ffd5b5035919050565b6001600160a01b0391909116815260200190565b5f6020828403121561315e575f5ffd5b81356001600160401b03811115613173575f5ffd5b82016101008185031215612b4d575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b600d81106131a9576131a9613185565b9052565b6020810161272b8284613199565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8b81528a602082015289604082015260018060a01b038916606082015261016060808201525f61321d61016083018a6131bb565b82810360a084015261322f818a6131bb565b6001600160a01b03891660c085015260e084018890526101008401879052838103610120850152905061326281866131bb565b91505060018060a01b0383166101408301529c9b505050505050505050505050565b805f5b6002811015612ec357815163ffffffff16845260209384019390910190600101613287565b805f5b6002811015612ec35781518452602093840193909101906001016132af565b805182525f60208201516132e56020850182613284565b5060408201516060840152606082015161330260808501826132ac565b50608082015160c084015260a08201516001600160a01b03811660e08501525060c08201516101e061010085015261333e6101e08501826131bb565b905060e083015184820361012086015261335882826131bb565b9150506101008301516133776101408601826001600160a01b03169052565b506101208301516101608501526101408301516101808501526101608301518482036101a08601526133a982826131bb565b915050610180830151612ad46101c08601826001600160a01b03169052565b602081525f612b4d60208301846132ce565b5f6080828403121561082e575f5ffd5b5f608082840312156133fa575f5ffd5b612b4d83836133da565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561344057613440613404565b604052919050565b5f82601f830112613457575f5ffd5b81356001600160401b0381111561347057613470613404565b613483601f8201601f1916602001613418565b818152846020838601011115613497575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156134c3575f5ffd5b81356001600160401b038111156134d8575f5ffd5b6134e484828501613448565b949350505050565b5f6001600160401b0382111561350457613504613404565b5060051b60200190565b5f82601f83011261351d575f5ffd5b813561353061352b826134ec565b613418565b8082825260208201915060208360051b860101925085831115613551575f5ffd5b602085015b838110156135915780356001600160401b03811115613573575f5ffd5b613582886020838a0101613448565b84525060209283019201613556565b5095945050505050565b5f5f5f5f5f5f5f5f610160898b0312156135b3575f5ffd5b88356135be816130f4565b975060208901356135ce816130f4565b965060408901356135de816130f4565b955060608901356135ee816130f4565b945060808901356135fe816130f4565b935060a089013592506136148a60c08b016133da565b91506101408901356001600160401b0381111561362f575f5ffd5b61363b8b828c0161350e565b9150509295985092959890939650565b5f5f83601f84011261365b575f5ffd5b5081356001600160401b03811115613671575f5ffd5b602083019150836020828501011115612d32575f5ffd5b5f5f5f5f5f6060868803121561369c575f5ffd5b8535945060208601356001600160401b038111156136b8575f5ffd5b6136c48882890161364b565b90955093505060408601356001600160401b038111156136e2575f5ffd5b6136ee8882890161364b565b969995985093965092949392505050565b5f5f60408385031215613710575f5ffd5b50508035926020909101359150565b821515815260408101612b4d6020830184613199565b5f60208284031215613745575f5ffd5b81356001600160401b0381111561375a575f5ffd5b6134e48482850161350e565b5f5f60408385031215613777575f5ffd5b82359150602083013560ff8116811461378e575f5ffd5b809150509250929050565b5f5f604083850312156137aa575f5ffd5b82359150602083013561378e816130f4565b600781106131a9576131a9613185565b6020810161272b82846137bc565b828152604060208201525f6134e460408301846132ce565b600181811c9082168061380657607f821691505b60208210810361082e57634e487b7160e01b5f52602260045260245ffd5b6020808252601790820152764f6e6c79204369706865726e6f6465526567697374727960481b604082015260600190565b8381526060810161386960208301856137bc565b6134e460408301846137bc565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561272b5761272b613876565b604081016138ab82856137bc565b612b4d60208301846137bc565b601f821115612bac57805f5260205f20601f840160051c810160208510156138dd5750805b601f840160051c820191505b818110156138fc575f81556001016138e9565b5050505050565b5f19600383901b1c191660019190911b1790565b6001600160401b0383111561392e5761392e613404565b6139428361393c83546137f2565b836138b8565b5f601f84116001811461396e575f851561395c5750838201355b6139668682613903565b8455506138fc565b5f83815260208120601f198716915b8281101561399d578685013582556020948501946001909201910161397d565b50868210156139b9575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f613a216060830184866139da565b9695505050505050565b5f60208284031215613a3b575f5ffd5b81518015158114612b4d575f5ffd5b602081525f6134e46020830184866139da565b5f8151808452602084019350602083015f5b82811015613a965781516001600160a01b0316865260209586019590910190600101613a6f565b5093949350505050565b838152826020820152606060408201525f613abe6060830184613a5d565b95945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613b4857603f19878603018452613b338583516131bb565b94506020938401939190910190600101613b17565b50929695505050505050565b60408101613b6282856137bc565b612b4d6020830184613199565b803563ffffffff81168114613b82575f5ffd5b919050565b5f60208284031215613b97575f5ffd5b612b4d82613b6f565b805f5b6002811015612ec35763ffffffff613bba83613b6f565b1684526020938401939190910190600101613ba3565b6040810161272b8284613ba0565b8181038181111561272b5761272b613876565b5f60018201613c0257613c02613876565b5060010190565b5f5f8335601e19843603018112613c1e575f5ffd5b8301803591506001600160401b03821115613c37575f5ffd5b602001915036819003821315612d32575f5ffd5b88815287602082015260a060408201525f613c6a60a08301888a6139da565b8281036060840152613c7d8187896139da565b90508281036080840152613c928185876139da565b9b9a5050505050505050505050565b5f60208284031215613cb1575f5ffd5b5051919050565b81516001600160401b03811115613cd157613cd1613404565b613ce581613cdf84546137f2565b846138b8565b6020601f821160018114613d12575f8315613d005750848201515b613d0a8482613903565b8555506138fc565b5f84815260208120601f198516915b82811015613d415787850151825560209485019460019092019101613d21565b5084821015613d5e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016134e46040830184613ba0565b5f60208284031215613d98575f5ffd5b81516001600160401b03811115613dad575f5ffd5b8201601f81018413613dbd575f5ffd5b8051613dcb61352b826134ec565b8082825260208201915060208360051b850101925086831115613dec575f5ffd5b6020840193505b82841015613a21578351613e06816130f4565b825260209384019390910190613df3565b5f82613e3157634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b03929092168252602082015260400190565b5f8151808452602084019350602083015f5b82811015613a96578151865260209586019590910190600101613e61565b6001600160a01b03841681526060602082018190525f90613ea290830185613a5d565b8281036040840152613a218185613e4f565b604081525f613ec66040830185613a5d565b8281036020840152613abe8185613e4f56fe1b418a230a21d37a078bf8f16decbde8ccceacd77159371f62f0d4ea00d19967a164736f6c634300081c000a";
1544
1892
  const isSuperArgs = (xs) => xs.length > 1;
1545
1893
  export class Enclave__factory extends ContractFactory {
1546
1894
  constructor(...args) {