@enclave-e3/contracts 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/README.md +46 -2
  2. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +135 -0
  3. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/artifacts.d.ts +27 -0
  4. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +77 -0
  5. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +126 -0
  6. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/artifacts.d.ts +43 -0
  7. package/artifacts/build-info/solc-0_8_28-5150b9e6b6cf4df4986fccba97bea37a16fdfebc.json +311 -0
  8. package/artifacts/build-info/solc-0_8_28-5150b9e6b6cf4df4986fccba97bea37a16fdfebc.output.json +1 -0
  9. package/artifacts/contracts/Enclave.sol/Enclave.json +239 -147
  10. package/artifacts/contracts/Enclave.sol/artifacts.d.ts +6 -6
  11. package/artifacts/contracts/interfaces/IBondingRegistry.sol/IBondingRegistry.json +881 -0
  12. package/artifacts/contracts/interfaces/IBondingRegistry.sol/artifacts.d.ts +27 -0
  13. package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +326 -10
  14. package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +2 -2
  15. package/artifacts/contracts/interfaces/IComputeProvider.sol/IComputeProvider.json +1 -1
  16. package/artifacts/contracts/interfaces/IComputeProvider.sol/artifacts.d.ts +1 -1
  17. package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/IDecryptionVerifier.json +1 -1
  18. package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/artifacts.d.ts +1 -1
  19. package/artifacts/contracts/interfaces/IE3Program.sol/IE3Program.json +21 -3
  20. package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +2 -2
  21. package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +247 -27
  22. package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +2 -2
  23. package/artifacts/contracts/interfaces/{IRegistryFilter.sol/IRegistryFilter.json → ISlashVerifier.sol/ISlashVerifier.json} +10 -10
  24. package/artifacts/contracts/interfaces/ISlashVerifier.sol/artifacts.d.ts +27 -0
  25. package/artifacts/contracts/interfaces/ISlashingManager.sol/ISlashingManager.json +759 -0
  26. package/artifacts/contracts/interfaces/ISlashingManager.sol/artifacts.d.ts +27 -0
  27. package/artifacts/contracts/lib/ExitQueueLib.sol/ExitQueueLib.json +116 -0
  28. package/artifacts/contracts/lib/ExitQueueLib.sol/artifacts.d.ts +27 -0
  29. package/artifacts/contracts/registry/BondingRegistry.sol/BondingRegistry.json +1217 -0
  30. package/artifacts/contracts/registry/BondingRegistry.sol/artifacts.d.ts +27 -0
  31. package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +351 -57
  32. package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +6 -6
  33. package/artifacts/contracts/slashing/SlashingManager.sol/SlashingManager.json +1107 -0
  34. package/artifacts/contracts/slashing/SlashingManager.sol/artifacts.d.ts +27 -0
  35. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +328 -12
  36. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +328 -12
  37. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +8 -8
  38. package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +4 -4
  39. package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +4 -4
  40. package/artifacts/contracts/test/MockDecryptionVerifier.sol/MockDecryptionVerifier.json +3 -3
  41. package/artifacts/contracts/test/MockDecryptionVerifier.sol/artifacts.d.ts +3 -3
  42. package/artifacts/contracts/test/MockE3Program.sol/MockE3Program.json +26 -32
  43. package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +4 -4
  44. package/artifacts/contracts/test/MockSlashingVerifier.sol/MockSlashingVerifier.json +38 -0
  45. package/artifacts/contracts/test/MockSlashingVerifier.sol/artifacts.d.ts +27 -0
  46. package/artifacts/contracts/test/MockStableToken.sol/MockUSDC.json +425 -0
  47. package/artifacts/contracts/test/MockStableToken.sol/artifacts.d.ts +27 -0
  48. package/artifacts/contracts/token/EnclaveTicketToken.sol/EnclaveTicketToken.json +1222 -0
  49. package/artifacts/contracts/token/EnclaveTicketToken.sol/artifacts.d.ts +27 -0
  50. package/artifacts/contracts/token/EnclaveToken.sol/EnclaveToken.json +1460 -0
  51. package/artifacts/contracts/token/EnclaveToken.sol/artifacts.d.ts +27 -0
  52. package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +3 -3
  53. package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +3 -3
  54. package/contracts/Enclave.sol +230 -81
  55. package/contracts/interfaces/IBondingRegistry.sol +446 -0
  56. package/contracts/interfaces/ICiphernodeRegistry.sol +153 -9
  57. package/contracts/interfaces/IComputeProvider.sol +12 -2
  58. package/contracts/interfaces/IDecryptionVerifier.sol +11 -6
  59. package/contracts/interfaces/IE3.sol +21 -17
  60. package/contracts/interfaces/IE3Program.sol +30 -17
  61. package/contracts/interfaces/IEnclave.sol +95 -21
  62. package/contracts/interfaces/ISlashVerifier.sol +23 -0
  63. package/contracts/interfaces/ISlashingManager.sol +426 -0
  64. package/contracts/lib/ExitQueueLib.sol +490 -0
  65. package/contracts/registry/BondingRegistry.sol +737 -0
  66. package/contracts/registry/CiphernodeRegistryOwnable.sol +393 -26
  67. package/contracts/slashing/SlashingManager.sol +367 -0
  68. package/contracts/test/MockCiphernodeRegistry.sol +118 -24
  69. package/contracts/test/MockComputeProvider.sol +2 -2
  70. package/contracts/test/MockE3Program.sol +17 -14
  71. package/contracts/test/MockSlashingVerifier.sol +19 -0
  72. package/contracts/test/MockStableToken.sol +28 -0
  73. package/contracts/token/EnclaveTicketToken.sol +243 -0
  74. package/contracts/token/EnclaveToken.sol +267 -0
  75. package/dist/hardhat.config.d.ts.map +1 -1
  76. package/dist/hardhat.config.js +35 -16
  77. package/dist/ignition/modules/{mockInputValidator.d.ts → bondingRegistry.d.ts} +1 -1
  78. package/dist/ignition/modules/bondingRegistry.d.ts.map +1 -0
  79. package/dist/ignition/modules/bondingRegistry.js +35 -0
  80. package/dist/ignition/modules/ciphernodeRegistry.d.ts.map +1 -1
  81. package/dist/ignition/modules/ciphernodeRegistry.js +12 -2
  82. package/dist/ignition/modules/enclave.d.ts.map +1 -1
  83. package/dist/ignition/modules/enclave.js +16 -7
  84. package/dist/ignition/modules/{naiveRegistryFilter.d.ts → enclaveTicketToken.d.ts} +1 -1
  85. package/dist/ignition/modules/enclaveTicketToken.d.ts.map +1 -0
  86. package/dist/ignition/modules/enclaveTicketToken.js +17 -0
  87. package/dist/ignition/modules/enclaveToken.d.ts +3 -0
  88. package/dist/ignition/modules/enclaveToken.d.ts.map +1 -0
  89. package/dist/ignition/modules/{mockInputValidator.js → enclaveToken.js} +4 -4
  90. package/dist/ignition/modules/mockCiphernodeRegistry.d.ts.map +1 -1
  91. package/dist/ignition/modules/mockCiphernodeRegistry.js +0 -1
  92. package/dist/ignition/modules/mockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
  93. package/dist/ignition/modules/mockCiphernodeRegistryEmptyKey.js +0 -1
  94. package/dist/ignition/modules/mockComputeProvider.d.ts.map +1 -1
  95. package/dist/ignition/modules/mockComputeProvider.js +0 -1
  96. package/dist/ignition/modules/mockDecryptionVerifier.d.ts.map +1 -1
  97. package/dist/ignition/modules/mockDecryptionVerifier.js +0 -1
  98. package/dist/ignition/modules/mockE3Program.d.ts.map +1 -1
  99. package/dist/ignition/modules/mockE3Program.js +1 -3
  100. package/dist/ignition/modules/mockSlashingVerifier.d.ts +3 -0
  101. package/dist/ignition/modules/mockSlashingVerifier.d.ts.map +1 -0
  102. package/dist/ignition/modules/mockSlashingVerifier.js +10 -0
  103. package/dist/ignition/modules/mockStableToken.d.ts +3 -0
  104. package/dist/ignition/modules/mockStableToken.d.ts.map +1 -0
  105. package/dist/ignition/modules/mockStableToken.js +11 -0
  106. package/dist/ignition/modules/poseidonT3.d.ts.map +1 -1
  107. package/dist/ignition/modules/poseidonT3.js +0 -1
  108. package/dist/ignition/modules/slashingManager.d.ts +3 -0
  109. package/dist/ignition/modules/slashingManager.d.ts.map +1 -0
  110. package/dist/ignition/modules/slashingManager.js +16 -0
  111. package/dist/scripts/cleanIgnitionState.d.ts +12 -0
  112. package/dist/scripts/cleanIgnitionState.d.ts.map +1 -0
  113. package/dist/scripts/cleanIgnitionState.js +41 -0
  114. package/dist/scripts/deployAndSave/bondingRegistry.d.ts +38 -0
  115. package/dist/scripts/deployAndSave/bondingRegistry.d.ts.map +1 -0
  116. package/dist/scripts/deployAndSave/bondingRegistry.js +133 -0
  117. package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.d.ts +11 -1
  118. package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.d.ts.map +1 -1
  119. package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.js +76 -19
  120. package/dist/scripts/deployAndSave/enclave.d.ts +16 -2
  121. package/dist/scripts/deployAndSave/enclave.d.ts.map +1 -1
  122. package/dist/scripts/deployAndSave/enclave.js +89 -22
  123. package/dist/scripts/deployAndSave/enclaveTicketToken.d.ts +20 -0
  124. package/dist/scripts/deployAndSave/enclaveTicketToken.d.ts.map +1 -0
  125. package/dist/scripts/deployAndSave/enclaveTicketToken.js +41 -0
  126. package/dist/scripts/deployAndSave/enclaveToken.d.ts +18 -0
  127. package/dist/scripts/deployAndSave/enclaveToken.d.ts.map +1 -0
  128. package/dist/scripts/deployAndSave/enclaveToken.js +57 -0
  129. package/dist/scripts/deployAndSave/mockComputeProvider.d.ts.map +1 -1
  130. package/dist/scripts/deployAndSave/mockComputeProvider.js +5 -5
  131. package/dist/scripts/deployAndSave/mockDecryptionVerifier.d.ts.map +1 -1
  132. package/dist/scripts/deployAndSave/mockDecryptionVerifier.js +5 -5
  133. package/dist/scripts/deployAndSave/mockProgram.d.ts +1 -2
  134. package/dist/scripts/deployAndSave/mockProgram.d.ts.map +1 -1
  135. package/dist/scripts/deployAndSave/mockProgram.js +7 -19
  136. package/dist/scripts/deployAndSave/mockStableToken.d.ts +18 -0
  137. package/dist/scripts/deployAndSave/mockStableToken.d.ts.map +1 -0
  138. package/dist/scripts/deployAndSave/mockStableToken.js +36 -0
  139. package/dist/scripts/deployAndSave/poseidonT3.d.ts +11 -0
  140. package/dist/scripts/deployAndSave/poseidonT3.d.ts.map +1 -0
  141. package/dist/scripts/deployAndSave/poseidonT3.js +41 -0
  142. package/dist/scripts/deployAndSave/slashingManager.d.ts +19 -0
  143. package/dist/scripts/deployAndSave/slashingManager.d.ts.map +1 -0
  144. package/dist/scripts/deployAndSave/slashingManager.js +38 -0
  145. package/dist/scripts/deployEnclave.d.ts.map +1 -1
  146. package/dist/scripts/deployEnclave.js +109 -23
  147. package/dist/scripts/deployMocks.d.ts +0 -1
  148. package/dist/scripts/deployMocks.d.ts.map +1 -1
  149. package/dist/scripts/deployMocks.js +3 -6
  150. package/dist/scripts/index.d.ts +7 -2
  151. package/dist/scripts/index.d.ts.map +1 -1
  152. package/dist/scripts/index.js +7 -2
  153. package/dist/scripts/proxy.d.ts +22 -0
  154. package/dist/scripts/proxy.d.ts.map +1 -0
  155. package/dist/scripts/proxy.js +36 -0
  156. package/dist/scripts/runVerification.d.ts +2 -0
  157. package/dist/scripts/runVerification.d.ts.map +1 -0
  158. package/dist/scripts/runVerification.js +16 -0
  159. package/dist/scripts/upgrade/bondingRegistry.d.ts +6 -0
  160. package/dist/scripts/upgrade/bondingRegistry.d.ts.map +1 -0
  161. package/dist/scripts/upgrade/bondingRegistry.js +49 -0
  162. package/dist/scripts/upgrade/ciphernodeRegistryOwnable.d.ts +6 -0
  163. package/dist/scripts/upgrade/ciphernodeRegistryOwnable.d.ts.map +1 -0
  164. package/dist/scripts/upgrade/ciphernodeRegistryOwnable.js +52 -0
  165. package/dist/scripts/upgrade/enclave.d.ts +6 -0
  166. package/dist/scripts/upgrade/enclave.d.ts.map +1 -0
  167. package/dist/scripts/upgrade/enclave.js +49 -0
  168. package/dist/scripts/utils.d.ts +51 -2
  169. package/dist/scripts/utils.d.ts.map +1 -1
  170. package/dist/scripts/utils.js +67 -4
  171. package/dist/scripts/verify.d.ts +6 -0
  172. package/dist/scripts/verify.d.ts.map +1 -0
  173. package/dist/scripts/verify.js +142 -0
  174. package/dist/tasks/ciphernode.d.ts +2 -0
  175. package/dist/tasks/ciphernode.d.ts.map +1 -1
  176. package/dist/tasks/ciphernode.js +290 -19
  177. package/dist/tasks/enclave.d.ts.map +1 -1
  178. package/dist/tasks/enclave.js +76 -31
  179. package/dist/test/Enclave.spec.js +377 -370
  180. package/dist/test/Registry/BondingRegistry.spec.d.ts +2 -0
  181. package/dist/test/Registry/BondingRegistry.spec.d.ts.map +1 -0
  182. package/dist/test/Registry/BondingRegistry.spec.js +684 -0
  183. package/dist/test/Registry/CiphernodeRegistryOwnable.spec.d.ts.map +1 -0
  184. package/dist/test/Registry/CiphernodeRegistryOwnable.spec.js +374 -0
  185. package/dist/test/Slashing/SlashingManager.spec.d.ts +2 -0
  186. package/dist/test/Slashing/SlashingManager.spec.d.ts.map +1 -0
  187. package/dist/test/Slashing/SlashingManager.spec.js +672 -0
  188. package/dist/types/@openzeppelin/contracts/index.d.ts +3 -0
  189. package/dist/types/@openzeppelin/contracts/index.d.ts.map +1 -0
  190. package/dist/types/@openzeppelin/contracts/proxy/index.d.ts +3 -0
  191. package/dist/types/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
  192. package/dist/types/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts +97 -0
  193. package/dist/types/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts.map +1 -0
  194. package/dist/types/{contracts/registry/NaiveRegistryFilter.js → @openzeppelin/contracts/proxy/transparent/ProxyAdmin.js} +0 -4
  195. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts +81 -0
  196. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts.map +1 -0
  197. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.js +12 -0
  198. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts +52 -0
  199. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts.map +1 -0
  200. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.js +8 -0
  201. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +3 -0
  202. package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts.map +1 -0
  203. package/dist/types/@openzeppelin/contracts/proxy/transparent/index.d.ts +4 -0
  204. package/dist/types/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
  205. package/dist/types/@openzeppelin/index.d.ts +3 -0
  206. package/dist/types/@openzeppelin/index.d.ts.map +1 -0
  207. package/dist/types/contracts/Enclave.d.ts +126 -53
  208. package/dist/types/contracts/Enclave.d.ts.map +1 -1
  209. package/dist/types/contracts/Enclave.js +12 -0
  210. package/dist/types/contracts/index.d.ts +6 -0
  211. package/dist/types/contracts/index.d.ts.map +1 -1
  212. package/dist/types/contracts/interfaces/IBondingRegistry.d.ts +622 -0
  213. package/dist/types/contracts/interfaces/IBondingRegistry.d.ts.map +1 -0
  214. package/dist/types/contracts/interfaces/IBondingRegistry.js +24 -0
  215. package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts +245 -15
  216. package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts.map +1 -1
  217. package/dist/types/contracts/interfaces/ICiphernodeRegistry.js +16 -0
  218. package/dist/types/contracts/interfaces/IE3Program.d.ts +20 -10
  219. package/dist/types/contracts/interfaces/IE3Program.d.ts.map +1 -1
  220. package/dist/types/contracts/interfaces/IEnclave.d.ts +149 -20
  221. package/dist/types/contracts/interfaces/IEnclave.d.ts.map +1 -1
  222. package/dist/types/contracts/interfaces/IEnclave.js +12 -0
  223. package/dist/types/contracts/interfaces/{IRegistryFilter.d.ts → ISlashVerifier.d.ts} +16 -16
  224. package/dist/types/contracts/interfaces/ISlashVerifier.d.ts.map +1 -0
  225. package/dist/types/contracts/interfaces/ISlashVerifier.js +1 -0
  226. package/dist/types/contracts/interfaces/ISlashingManager.d.ts +384 -0
  227. package/dist/types/contracts/interfaces/ISlashingManager.d.ts.map +1 -0
  228. package/dist/types/contracts/interfaces/ISlashingManager.js +24 -0
  229. package/dist/types/contracts/interfaces/index.d.ts +3 -2
  230. package/dist/types/contracts/interfaces/index.d.ts.map +1 -1
  231. package/dist/types/contracts/lib/ExitQueueLib.d.ts +73 -0
  232. package/dist/types/contracts/lib/ExitQueueLib.d.ts.map +1 -0
  233. package/dist/types/contracts/lib/ExitQueueLib.js +12 -0
  234. package/dist/types/contracts/lib/index.d.ts +2 -0
  235. package/dist/types/contracts/lib/index.d.ts.map +1 -0
  236. package/dist/types/contracts/lib/index.js +1 -0
  237. package/dist/types/contracts/registry/BondingRegistry.d.ts +821 -0
  238. package/dist/types/contracts/registry/BondingRegistry.d.ts.map +1 -0
  239. package/dist/types/contracts/registry/BondingRegistry.js +44 -0
  240. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts +194 -34
  241. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts.map +1 -1
  242. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.js +20 -0
  243. package/dist/types/contracts/registry/index.d.ts +1 -1
  244. package/dist/types/contracts/registry/index.d.ts.map +1 -1
  245. package/dist/types/contracts/slashing/SlashingManager.d.ts +592 -0
  246. package/dist/types/contracts/slashing/SlashingManager.d.ts.map +1 -0
  247. package/dist/types/contracts/slashing/SlashingManager.js +36 -0
  248. package/dist/types/contracts/slashing/index.d.ts +2 -0
  249. package/dist/types/contracts/slashing/index.d.ts.map +1 -0
  250. package/dist/types/contracts/slashing/index.js +1 -0
  251. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts +247 -17
  252. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts.map +1 -1
  253. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.js +16 -0
  254. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts +247 -17
  255. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
  256. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.js +16 -0
  257. package/dist/types/contracts/test/MockE3Program.d.ts +20 -14
  258. package/dist/types/contracts/test/MockE3Program.d.ts.map +1 -1
  259. package/dist/types/contracts/test/{MockInputValidator.d.ts → MockSlashingVerifier.d.ts} +15 -15
  260. package/dist/types/contracts/test/MockSlashingVerifier.d.ts.map +1 -0
  261. package/dist/types/contracts/test/MockSlashingVerifier.js +1 -0
  262. package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.d.ts +227 -0
  263. package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.d.ts.map +1 -0
  264. package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.js +12 -0
  265. package/dist/types/contracts/test/MockStableToken.sol/index.d.ts +2 -0
  266. package/dist/types/contracts/test/MockStableToken.sol/index.d.ts.map +1 -0
  267. package/dist/types/contracts/test/MockStableToken.sol/index.js +1 -0
  268. package/dist/types/contracts/test/index.d.ts +3 -3
  269. package/dist/types/contracts/test/index.d.ts.map +1 -1
  270. package/dist/types/contracts/token/EnclaveTicketToken.d.ts +574 -0
  271. package/dist/types/contracts/token/EnclaveTicketToken.d.ts.map +1 -0
  272. package/dist/types/contracts/token/EnclaveTicketToken.js +24 -0
  273. package/dist/types/contracts/token/EnclaveToken.d.ts +775 -0
  274. package/dist/types/contracts/token/EnclaveToken.d.ts.map +1 -0
  275. package/dist/types/contracts/token/EnclaveToken.js +48 -0
  276. package/dist/types/contracts/token/index.d.ts +3 -0
  277. package/dist/types/contracts/token/index.d.ts.map +1 -0
  278. package/dist/types/contracts/token/index.js +1 -0
  279. package/dist/types/factories/@openzeppelin/contracts/index.d.ts +2 -0
  280. package/dist/types/factories/@openzeppelin/contracts/index.d.ts.map +1 -0
  281. package/dist/types/factories/@openzeppelin/contracts/index.js +4 -0
  282. package/dist/types/factories/@openzeppelin/contracts/proxy/index.d.ts +2 -0
  283. package/dist/types/factories/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
  284. package/dist/types/factories/@openzeppelin/contracts/proxy/index.js +4 -0
  285. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +118 -0
  286. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -0
  287. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +157 -0
  288. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts +57 -0
  289. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts.map +1 -0
  290. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.js +78 -0
  291. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +105 -0
  292. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts.map +1 -0
  293. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +141 -0
  294. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +3 -0
  295. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts.map +1 -0
  296. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.js +5 -0
  297. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
  298. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
  299. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.js +5 -0
  300. package/dist/types/factories/@openzeppelin/index.d.ts +2 -0
  301. package/dist/types/factories/@openzeppelin/index.d.ts.map +1 -0
  302. package/dist/types/factories/@openzeppelin/index.js +4 -0
  303. package/dist/types/factories/contracts/Enclave__factory.d.ts +190 -104
  304. package/dist/types/factories/contracts/Enclave__factory.d.ts.map +1 -1
  305. package/dist/types/factories/contracts/Enclave__factory.js +241 -134
  306. package/dist/types/factories/contracts/index.d.ts +3 -0
  307. package/dist/types/factories/contracts/index.d.ts.map +1 -1
  308. package/dist/types/factories/contracts/index.js +3 -0
  309. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts +678 -0
  310. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts.map +1 -0
  311. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.js +882 -0
  312. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts +253 -9
  313. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts.map +1 -1
  314. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.js +325 -9
  315. package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts +16 -2
  316. package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts.map +1 -1
  317. package/dist/types/factories/contracts/interfaces/IE3Program__factory.js +20 -2
  318. package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts +190 -24
  319. package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts.map +1 -1
  320. package/dist/types/factories/contracts/interfaces/IEnclave__factory.js +246 -26
  321. package/dist/types/factories/contracts/interfaces/ISlashVerifier__factory.d.ts +26 -0
  322. package/dist/types/factories/contracts/interfaces/ISlashVerifier__factory.d.ts.map +1 -0
  323. package/dist/types/factories/contracts/interfaces/{IRegistryFilter__factory.js → ISlashVerifier__factory.js} +7 -7
  324. package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.d.ts +594 -0
  325. package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.d.ts.map +1 -0
  326. package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.js +760 -0
  327. package/dist/types/factories/contracts/interfaces/index.d.ts +3 -2
  328. package/dist/types/factories/contracts/interfaces/index.d.ts.map +1 -1
  329. package/dist/types/factories/contracts/interfaces/index.js +3 -2
  330. package/dist/types/factories/contracts/lib/ExitQueueLib__factory.d.ts +107 -0
  331. package/dist/types/factories/contracts/lib/ExitQueueLib__factory.d.ts.map +1 -0
  332. package/dist/types/factories/contracts/lib/ExitQueueLib__factory.js +138 -0
  333. package/dist/types/factories/contracts/lib/index.d.ts +2 -0
  334. package/dist/types/factories/contracts/lib/index.d.ts.map +1 -0
  335. package/dist/types/factories/contracts/lib/index.js +4 -0
  336. package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts +958 -0
  337. package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts.map +1 -0
  338. package/dist/types/factories/contracts/registry/BondingRegistry__factory.js +1239 -0
  339. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts +272 -40
  340. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts.map +1 -1
  341. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.js +343 -49
  342. package/dist/types/factories/contracts/registry/index.d.ts +1 -1
  343. package/dist/types/factories/contracts/registry/index.d.ts.map +1 -1
  344. package/dist/types/factories/contracts/registry/index.js +1 -1
  345. package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts +879 -0
  346. package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts.map +1 -0
  347. package/dist/types/factories/contracts/slashing/SlashingManager__factory.js +1129 -0
  348. package/dist/types/factories/contracts/slashing/index.d.ts +2 -0
  349. package/dist/types/factories/contracts/slashing/index.d.ts.map +1 -0
  350. package/dist/types/factories/contracts/slashing/index.js +4 -0
  351. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts +254 -10
  352. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts.map +1 -1
  353. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.js +326 -10
  354. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts +254 -10
  355. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts.map +1 -1
  356. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.js +326 -10
  357. package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts +2 -2
  358. package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts.map +1 -1
  359. package/dist/types/factories/contracts/test/MockComputeProvider__factory.js +2 -2
  360. package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.d.ts +1 -1
  361. package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.d.ts.map +1 -1
  362. package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.js +1 -1
  363. package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts +23 -27
  364. package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts.map +1 -1
  365. package/dist/types/factories/contracts/test/MockE3Program__factory.js +28 -34
  366. package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.d.ts +43 -0
  367. package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.d.ts.map +1 -0
  368. package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.js +60 -0
  369. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts +338 -0
  370. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts.map +1 -0
  371. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.js +447 -0
  372. package/dist/types/factories/contracts/test/MockStableToken.sol/index.d.ts +2 -0
  373. package/dist/types/factories/contracts/test/MockStableToken.sol/index.d.ts.map +1 -0
  374. package/dist/types/factories/contracts/test/MockStableToken.sol/index.js +4 -0
  375. package/dist/types/factories/contracts/test/index.d.ts +2 -2
  376. package/dist/types/factories/contracts/test/index.d.ts.map +1 -1
  377. package/dist/types/factories/contracts/test/index.js +2 -2
  378. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts +894 -0
  379. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts.map +1 -0
  380. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.js +1175 -0
  381. package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts +1101 -0
  382. package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts.map +1 -0
  383. package/dist/types/factories/contracts/token/EnclaveToken__factory.js +1439 -0
  384. package/dist/types/factories/contracts/token/index.d.ts +3 -0
  385. package/dist/types/factories/contracts/token/index.d.ts.map +1 -0
  386. package/dist/types/factories/contracts/token/index.js +5 -0
  387. package/dist/types/factories/index.d.ts +1 -0
  388. package/dist/types/factories/index.d.ts.map +1 -1
  389. package/dist/types/factories/index.js +1 -0
  390. package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.d.ts +1 -1
  391. package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.d.ts.map +1 -1
  392. package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.js +1 -1
  393. package/dist/types/index.d.ts +28 -12
  394. package/dist/types/index.d.ts.map +1 -1
  395. package/dist/types/index.js +13 -6
  396. package/package.json +30 -21
  397. package/LICENSE.md +0 -165
  398. package/artifacts/build-info/solc-0_8_27-9aea5e3f6e25811e781e96c22e8edaf1eb1a01c5.json +0 -130
  399. package/artifacts/build-info/solc-0_8_27-9aea5e3f6e25811e781e96c22e8edaf1eb1a01c5.output.json +0 -1
  400. package/artifacts/contracts/interfaces/IInputValidator.sol/IInputValidator.json +0 -38
  401. package/artifacts/contracts/interfaces/IInputValidator.sol/artifacts.d.ts +0 -27
  402. package/artifacts/contracts/interfaces/IRegistryFilter.sol/artifacts.d.ts +0 -27
  403. package/artifacts/contracts/registry/NaiveRegistryFilter.sol/NaiveRegistryFilter.json +0 -309
  404. package/artifacts/contracts/registry/NaiveRegistryFilter.sol/artifacts.d.ts +0 -27
  405. package/artifacts/contracts/test/MockInputValidator.sol/MockInputValidator.json +0 -43
  406. package/artifacts/contracts/test/MockInputValidator.sol/artifacts.d.ts +0 -27
  407. package/artifacts/contracts/test/MockRegistryFilter.sol/IRegistry.json +0 -37
  408. package/artifacts/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.json +0 -262
  409. package/artifacts/contracts/test/MockRegistryFilter.sol/artifacts.d.ts +0 -43
  410. package/contracts/interfaces/IInputValidator.sol +0 -18
  411. package/contracts/interfaces/IRegistryFilter.sol +0 -13
  412. package/contracts/registry/NaiveRegistryFilter.sol +0 -124
  413. package/contracts/test/MockInputValidator.sol +0 -29
  414. package/contracts/test/MockRegistryFilter.sol +0 -117
  415. package/dist/ignition/modules/mockInputValidator.d.ts.map +0 -1
  416. package/dist/ignition/modules/naiveRegistryFilter.d.ts.map +0 -1
  417. package/dist/ignition/modules/naiveRegistryFilter.js +0 -16
  418. package/dist/scripts/deployAndSave/mockInputValidator.d.ts +0 -6
  419. package/dist/scripts/deployAndSave/mockInputValidator.d.ts.map +0 -1
  420. package/dist/scripts/deployAndSave/mockInputValidator.js +0 -18
  421. package/dist/scripts/deployAndSave/naiveRegistryFilter.d.ts +0 -11
  422. package/dist/scripts/deployAndSave/naiveRegistryFilter.d.ts.map +0 -1
  423. package/dist/scripts/deployAndSave/naiveRegistryFilter.js +0 -41
  424. package/dist/test/CiphernodeRegistry/CiphernodeRegistryOwnable.spec.d.ts.map +0 -1
  425. package/dist/test/CiphernodeRegistry/CiphernodeRegistryOwnable.spec.js +0 -279
  426. package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.d.ts +0 -2
  427. package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.d.ts.map +0 -1
  428. package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.js +0 -160
  429. package/dist/types/contracts/interfaces/IInputValidator.d.ts +0 -36
  430. package/dist/types/contracts/interfaces/IInputValidator.d.ts.map +0 -1
  431. package/dist/types/contracts/interfaces/IRegistryFilter.d.ts.map +0 -1
  432. package/dist/types/contracts/registry/NaiveRegistryFilter.d.ts +0 -187
  433. package/dist/types/contracts/registry/NaiveRegistryFilter.d.ts.map +0 -1
  434. package/dist/types/contracts/test/MockInputValidator.d.ts.map +0 -1
  435. package/dist/types/contracts/test/MockRegistryFilter.sol/IRegistry.d.ts +0 -38
  436. package/dist/types/contracts/test/MockRegistryFilter.sol/IRegistry.d.ts.map +0 -1
  437. package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.d.ts +0 -163
  438. package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.d.ts.map +0 -1
  439. package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.js +0 -8
  440. package/dist/types/contracts/test/MockRegistryFilter.sol/index.d.ts +0 -3
  441. package/dist/types/contracts/test/MockRegistryFilter.sol/index.d.ts.map +0 -1
  442. package/dist/types/factories/contracts/interfaces/IInputValidator__factory.d.ts +0 -26
  443. package/dist/types/factories/contracts/interfaces/IInputValidator__factory.d.ts.map +0 -1
  444. package/dist/types/factories/contracts/interfaces/IInputValidator__factory.js +0 -39
  445. package/dist/types/factories/contracts/interfaces/IRegistryFilter__factory.d.ts +0 -26
  446. package/dist/types/factories/contracts/interfaces/IRegistryFilter__factory.d.ts.map +0 -1
  447. package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.d.ts +0 -251
  448. package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.d.ts.map +0 -1
  449. package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.js +0 -331
  450. package/dist/types/factories/contracts/test/MockInputValidator__factory.d.ts +0 -47
  451. package/dist/types/factories/contracts/test/MockInputValidator__factory.d.ts.map +0 -1
  452. package/dist/types/factories/contracts/test/MockInputValidator__factory.js +0 -65
  453. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.d.ts +0 -26
  454. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.d.ts.map +0 -1
  455. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.js +0 -38
  456. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.d.ts +0 -216
  457. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.d.ts.map +0 -1
  458. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.js +0 -284
  459. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.d.ts +0 -3
  460. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.d.ts.map +0 -1
  461. package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.js +0 -5
  462. /package/dist/test/{CiphernodeRegistry → Registry}/CiphernodeRegistryOwnable.spec.d.ts +0 -0
  463. /package/dist/types/{contracts/test/MockRegistryFilter.sol → @openzeppelin/contracts}/index.js +0 -0
  464. /package/dist/types/{contracts/interfaces/IInputValidator.js → @openzeppelin/contracts/proxy/index.js} +0 -0
  465. /package/dist/types/{contracts/interfaces/IRegistryFilter.js → @openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.js} +0 -0
  466. /package/dist/types/{contracts/test/MockInputValidator.js → @openzeppelin/contracts/proxy/transparent/index.js} +0 -0
  467. /package/dist/types/{contracts/test/MockRegistryFilter.sol/IRegistry.js → @openzeppelin/index.js} +0 -0
@@ -1,28 +1,7 @@
1
1
  import { Contract, ContractFactory, Interface } from "ethers";
2
2
  const _abi = [
3
3
  {
4
- "inputs": [
5
- {
6
- "internalType": "address",
7
- "name": "_owner",
8
- "type": "address"
9
- },
10
- {
11
- "internalType": "contract ICiphernodeRegistry",
12
- "name": "_ciphernodeRegistry",
13
- "type": "address"
14
- },
15
- {
16
- "internalType": "uint256",
17
- "name": "_maxDuration",
18
- "type": "uint256"
19
- },
20
- {
21
- "internalType": "bytes[]",
22
- "name": "_e3ProgramsParams",
23
- "type": "bytes[]"
24
- }
25
- ],
4
+ "inputs": [],
26
5
  "stateMutability": "nonpayable",
27
6
  "type": "constructor"
28
7
  },
@@ -142,23 +121,23 @@ const _abi = [
142
121
  {
143
122
  "inputs": [
144
123
  {
145
- "internalType": "contract ICiphernodeRegistry",
146
- "name": "ciphernodeRegistry",
124
+ "internalType": "contract IBondingRegistry",
125
+ "name": "bondingRegistry",
147
126
  "type": "address"
148
127
  }
149
128
  ],
150
- "name": "InvalidCiphernodeRegistry",
129
+ "name": "InvalidBondingRegistry",
151
130
  "type": "error"
152
131
  },
153
132
  {
154
133
  "inputs": [
155
134
  {
156
- "internalType": "contract IInputValidator",
157
- "name": "inputValidator",
135
+ "internalType": "contract ICiphernodeRegistry",
136
+ "name": "ciphernodeRegistry",
158
137
  "type": "address"
159
138
  }
160
139
  ],
161
- "name": "InvalidComputationRequest",
140
+ "name": "InvalidCiphernodeRegistry",
162
141
  "type": "error"
163
142
  },
164
143
  {
@@ -183,6 +162,17 @@ const _abi = [
183
162
  "name": "InvalidEncryptionScheme",
184
163
  "type": "error"
185
164
  },
165
+ {
166
+ "inputs": [
167
+ {
168
+ "internalType": "contract IERC20",
169
+ "name": "feeToken",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "InvalidFeeToken",
174
+ "type": "error"
175
+ },
186
176
  {
187
177
  "inputs": [],
188
178
  "name": "InvalidInitialization",
@@ -220,21 +210,6 @@ const _abi = [
220
210
  "name": "InvalidThreshold",
221
211
  "type": "error"
222
212
  },
223
- {
224
- "inputs": [],
225
- "name": "LeafAlreadyExists",
226
- "type": "error"
227
- },
228
- {
229
- "inputs": [],
230
- "name": "LeafCannotBeZero",
231
- "type": "error"
232
- },
233
- {
234
- "inputs": [],
235
- "name": "LeafGreaterThanSnarkScalarField",
236
- "type": "error"
237
- },
238
213
  {
239
214
  "inputs": [
240
215
  {
@@ -306,6 +281,17 @@ const _abi = [
306
281
  "name": "PlaintextOutputAlreadyPublished",
307
282
  "type": "error"
308
283
  },
284
+ {
285
+ "inputs": [
286
+ {
287
+ "internalType": "address",
288
+ "name": "token",
289
+ "type": "address"
290
+ }
291
+ ],
292
+ "name": "SafeERC20FailedOperation",
293
+ "type": "error"
294
+ },
309
295
  {
310
296
  "anonymous": false,
311
297
  "inputs": [
@@ -319,6 +305,19 @@ const _abi = [
319
305
  "name": "AllowedE3ProgramsParamsSet",
320
306
  "type": "event"
321
307
  },
308
+ {
309
+ "anonymous": false,
310
+ "inputs": [
311
+ {
312
+ "indexed": false,
313
+ "internalType": "address",
314
+ "name": "bondingRegistry",
315
+ "type": "address"
316
+ }
317
+ ],
318
+ "name": "BondingRegistrySet",
319
+ "type": "event"
320
+ },
322
321
  {
323
322
  "anonymous": false,
324
323
  "inputs": [
@@ -459,9 +458,9 @@ const _abi = [
459
458
  "type": "bytes"
460
459
  },
461
460
  {
462
- "internalType": "contract IInputValidator",
463
- "name": "inputValidator",
464
- "type": "address"
461
+ "internalType": "bytes",
462
+ "name": "customParams",
463
+ "type": "bytes"
465
464
  },
466
465
  {
467
466
  "internalType": "contract IDecryptionVerifier",
@@ -489,12 +488,6 @@ const _abi = [
489
488
  "name": "e3",
490
489
  "type": "tuple"
491
490
  },
492
- {
493
- "indexed": false,
494
- "internalType": "address",
495
- "name": "filter",
496
- "type": "address"
497
- },
498
491
  {
499
492
  "indexed": true,
500
493
  "internalType": "contract IE3Program",
@@ -531,6 +524,19 @@ const _abi = [
531
524
  "name": "EncryptionSchemeEnabled",
532
525
  "type": "event"
533
526
  },
527
+ {
528
+ "anonymous": false,
529
+ "inputs": [
530
+ {
531
+ "indexed": false,
532
+ "internalType": "address",
533
+ "name": "feeToken",
534
+ "type": "address"
535
+ }
536
+ ],
537
+ "name": "FeeTokenSet",
538
+ "type": "event"
539
+ },
534
540
  {
535
541
  "anonymous": false,
536
542
  "inputs": [
@@ -626,6 +632,31 @@ const _abi = [
626
632
  "name": "PlaintextOutputPublished",
627
633
  "type": "event"
628
634
  },
635
+ {
636
+ "anonymous": false,
637
+ "inputs": [
638
+ {
639
+ "indexed": true,
640
+ "internalType": "uint256",
641
+ "name": "e3Id",
642
+ "type": "uint256"
643
+ },
644
+ {
645
+ "indexed": false,
646
+ "internalType": "address[]",
647
+ "name": "nodes",
648
+ "type": "address[]"
649
+ },
650
+ {
651
+ "indexed": false,
652
+ "internalType": "uint256[]",
653
+ "name": "amounts",
654
+ "type": "uint256[]"
655
+ }
656
+ ],
657
+ "name": "RewardsDistributed",
658
+ "type": "event"
659
+ },
629
660
  {
630
661
  "inputs": [
631
662
  {
@@ -650,6 +681,19 @@ const _abi = [
650
681
  "stateMutability": "nonpayable",
651
682
  "type": "function"
652
683
  },
684
+ {
685
+ "inputs": [],
686
+ "name": "bondingRegistry",
687
+ "outputs": [
688
+ {
689
+ "internalType": "contract IBondingRegistry",
690
+ "name": "",
691
+ "type": "address"
692
+ }
693
+ ],
694
+ "stateMutability": "view",
695
+ "type": "function"
696
+ },
653
697
  {
654
698
  "inputs": [],
655
699
  "name": "ciphernodeRegistry",
@@ -720,6 +764,25 @@ const _abi = [
720
764
  "stateMutability": "nonpayable",
721
765
  "type": "function"
722
766
  },
767
+ {
768
+ "inputs": [
769
+ {
770
+ "internalType": "uint256",
771
+ "name": "e3Id",
772
+ "type": "uint256"
773
+ }
774
+ ],
775
+ "name": "e3Payments",
776
+ "outputs": [
777
+ {
778
+ "internalType": "uint256",
779
+ "name": "e3Payment",
780
+ "type": "uint256"
781
+ }
782
+ ],
783
+ "stateMutability": "view",
784
+ "type": "function"
785
+ },
723
786
  {
724
787
  "inputs": [
725
788
  {
@@ -804,9 +867,9 @@ const _abi = [
804
867
  "type": "bytes"
805
868
  },
806
869
  {
807
- "internalType": "contract IInputValidator",
808
- "name": "inputValidator",
809
- "type": "address"
870
+ "internalType": "bytes",
871
+ "name": "customParams",
872
+ "type": "bytes"
810
873
  },
811
874
  {
812
875
  "internalType": "contract IDecryptionVerifier",
@@ -851,6 +914,19 @@ const _abi = [
851
914
  "stateMutability": "nonpayable",
852
915
  "type": "function"
853
916
  },
917
+ {
918
+ "inputs": [],
919
+ "name": "feeToken",
920
+ "outputs": [
921
+ {
922
+ "internalType": "contract IERC20",
923
+ "name": "",
924
+ "type": "address"
925
+ }
926
+ ],
927
+ "stateMutability": "view",
928
+ "type": "function"
929
+ },
854
930
  {
855
931
  "inputs": [
856
932
  {
@@ -928,9 +1004,9 @@ const _abi = [
928
1004
  "type": "bytes"
929
1005
  },
930
1006
  {
931
- "internalType": "contract IInputValidator",
932
- "name": "inputValidator",
933
- "type": "address"
1007
+ "internalType": "bytes",
1008
+ "name": "customParams",
1009
+ "type": "bytes"
934
1010
  },
935
1011
  {
936
1012
  "internalType": "contract IDecryptionVerifier",
@@ -964,20 +1040,57 @@ const _abi = [
964
1040
  {
965
1041
  "inputs": [
966
1042
  {
967
- "internalType": "uint256",
968
- "name": "e3Id",
969
- "type": "uint256"
1043
+ "components": [
1044
+ {
1045
+ "internalType": "uint32[2]",
1046
+ "name": "threshold",
1047
+ "type": "uint32[2]"
1048
+ },
1049
+ {
1050
+ "internalType": "uint256[2]",
1051
+ "name": "startWindow",
1052
+ "type": "uint256[2]"
1053
+ },
1054
+ {
1055
+ "internalType": "uint256",
1056
+ "name": "duration",
1057
+ "type": "uint256"
1058
+ },
1059
+ {
1060
+ "internalType": "contract IE3Program",
1061
+ "name": "e3Program",
1062
+ "type": "address"
1063
+ },
1064
+ {
1065
+ "internalType": "bytes",
1066
+ "name": "e3ProgramParams",
1067
+ "type": "bytes"
1068
+ },
1069
+ {
1070
+ "internalType": "bytes",
1071
+ "name": "computeProviderParams",
1072
+ "type": "bytes"
1073
+ },
1074
+ {
1075
+ "internalType": "bytes",
1076
+ "name": "customParams",
1077
+ "type": "bytes"
1078
+ }
1079
+ ],
1080
+ "internalType": "struct IEnclave.E3RequestParams",
1081
+ "name": "",
1082
+ "type": "tuple"
970
1083
  }
971
1084
  ],
972
- "name": "getInputRoot",
1085
+ "name": "getE3Quote",
973
1086
  "outputs": [
974
1087
  {
975
1088
  "internalType": "uint256",
976
- "name": "",
1089
+ "name": "fee",
977
1090
  "type": "uint256"
978
1091
  }
979
1092
  ],
980
- "stateMutability": "view",
1093
+ "stateMutability": "pure",
981
1094
  "type": "function"
982
1095
  },
983
1096
  {
@@ -992,6 +1105,16 @@ const _abi = [
992
1105
  "name": "_ciphernodeRegistry",
993
1106
  "type": "address"
994
1107
  },
1108
+ {
1109
+ "internalType": "contract IBondingRegistry",
1110
+ "name": "_bondingRegistry",
1111
+ "type": "address"
1112
+ },
1113
+ {
1114
+ "internalType": "contract IERC20",
1115
+ "name": "_feeToken",
1116
+ "type": "address"
1117
+ },
995
1118
  {
996
1119
  "internalType": "uint256",
997
1120
  "name": "_maxDuration",
@@ -1008,49 +1131,6 @@ const _abi = [
1008
1131
  "stateMutability": "nonpayable",
1009
1132
  "type": "function"
1010
1133
  },
1011
- {
1012
- "inputs": [
1013
- {
1014
- "internalType": "uint256",
1015
- "name": "e3Id",
1016
- "type": "uint256"
1017
- }
1018
- ],
1019
- "name": "inputCounts",
1020
- "outputs": [
1021
- {
1022
- "internalType": "uint256",
1023
- "name": "inputCount",
1024
- "type": "uint256"
1025
- }
1026
- ],
1027
- "stateMutability": "view",
1028
- "type": "function"
1029
- },
1030
- {
1031
- "inputs": [
1032
- {
1033
- "internalType": "uint256",
1034
- "name": "e3Id",
1035
- "type": "uint256"
1036
- }
1037
- ],
1038
- "name": "inputs",
1039
- "outputs": [
1040
- {
1041
- "internalType": "uint256",
1042
- "name": "size",
1043
- "type": "uint256"
1044
- },
1045
- {
1046
- "internalType": "uint256",
1047
- "name": "depth",
1048
- "type": "uint256"
1049
- }
1050
- ],
1051
- "stateMutability": "view",
1052
- "type": "function"
1053
- },
1054
1134
  {
1055
1135
  "inputs": [],
1056
1136
  "name": "maxDuration",
@@ -1183,11 +1263,6 @@ const _abi = [
1183
1263
  "inputs": [
1184
1264
  {
1185
1265
  "components": [
1186
- {
1187
- "internalType": "address",
1188
- "name": "filter",
1189
- "type": "address"
1190
- },
1191
1266
  {
1192
1267
  "internalType": "uint32[2]",
1193
1268
  "name": "threshold",
@@ -1217,6 +1292,11 @@ const _abi = [
1217
1292
  "internalType": "bytes",
1218
1293
  "name": "computeProviderParams",
1219
1294
  "type": "bytes"
1295
+ },
1296
+ {
1297
+ "internalType": "bytes",
1298
+ "name": "customParams",
1299
+ "type": "bytes"
1220
1300
  }
1221
1301
  ],
1222
1302
  "internalType": "struct IEnclave.E3RequestParams",
@@ -1279,9 +1359,9 @@ const _abi = [
1279
1359
  "type": "bytes"
1280
1360
  },
1281
1361
  {
1282
- "internalType": "contract IInputValidator",
1283
- "name": "inputValidator",
1284
- "type": "address"
1362
+ "internalType": "bytes",
1363
+ "name": "customParams",
1364
+ "type": "bytes"
1285
1365
  },
1286
1366
  {
1287
1367
  "internalType": "contract IDecryptionVerifier",
@@ -1309,7 +1389,26 @@ const _abi = [
1309
1389
  "type": "tuple"
1310
1390
  }
1311
1391
  ],
1312
- "stateMutability": "payable",
1392
+ "stateMutability": "nonpayable",
1393
+ "type": "function"
1394
+ },
1395
+ {
1396
+ "inputs": [
1397
+ {
1398
+ "internalType": "contract IBondingRegistry",
1399
+ "name": "_bondingRegistry",
1400
+ "type": "address"
1401
+ }
1402
+ ],
1403
+ "name": "setBondingRegistry",
1404
+ "outputs": [
1405
+ {
1406
+ "internalType": "bool",
1407
+ "name": "success",
1408
+ "type": "bool"
1409
+ }
1410
+ ],
1411
+ "stateMutability": "nonpayable",
1313
1412
  "type": "function"
1314
1413
  },
1315
1414
  {
@@ -1374,6 +1473,25 @@ const _abi = [
1374
1473
  "stateMutability": "nonpayable",
1375
1474
  "type": "function"
1376
1475
  },
1476
+ {
1477
+ "inputs": [
1478
+ {
1479
+ "internalType": "contract IERC20",
1480
+ "name": "_feeToken",
1481
+ "type": "address"
1482
+ }
1483
+ ],
1484
+ "name": "setFeeToken",
1485
+ "outputs": [
1486
+ {
1487
+ "internalType": "bool",
1488
+ "name": "success",
1489
+ "type": "bool"
1490
+ }
1491
+ ],
1492
+ "stateMutability": "nonpayable",
1493
+ "type": "function"
1494
+ },
1377
1495
  {
1378
1496
  "inputs": [
1379
1497
  {
@@ -1407,33 +1525,23 @@ const _abi = [
1407
1525
  "type": "function"
1408
1526
  }
1409
1527
  ];
1410
- const _bytecode = "0x608060405234801561000f575f5ffd5b5060405161366038038061366083398101604081905261002e916104c2565b61003a84848484610043565b505050506106c4565b5f5160206136405f395f51905f52805468010000000000000000810460ff1615906001600160401b03165f811580156100795750825b90505f826001600160401b031660011480156100945750303b155b9050811580156100a2575080155b156100c05760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100ee57845460ff60401b1916680100000000000000001785555b6100f733610190565b610100876101a4565b5061010a886101ec565b506101148661029c565b505f5160206136205f395f51905f52546001600160a01b038a811691161461013f5761013f89610346565b831561018557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610198610380565b6101a1816103bd565b50565b5f6101ad6103c5565b5060018181556040518281527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b523552906020015b60405180910390a1919050565b5f6101f56103c5565b6001600160a01b0382161580159061021a57505f546001600160a01b03838116911614155b829061024a576040516375ac4eb760e11b81526001600160a01b0390911660048201526024015b60405180910390fd5b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b6906020016101df565b5f6102a56103c5565b81515f5b8181101561030457600160088583815181106102c7576102c7610616565b60200260200101516040516102dc919061062a565b908152604051908190036020019020805491151560ff199092169190911790556001016102a9565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516103389190610640565b60405180910390a150919050565b61034e6103c5565b6001600160a01b03811661037757604051631e4fbdf760e01b81525f6004820152602401610241565b6101a18161040d565b5f5160206136405f395f51905f525468010000000000000000900460ff166103bb57604051631afcd79f60e31b815260040160405180910390fd5b565b61034e610380565b336103e45f5160206136205f395f51905f52546001600160a01b031690565b6001600160a01b0316146103bb5760405163118cdaa760e01b8152336004820152602401610241565b5f5160206136205f395f51905f5280546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b03811681146101a1575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156104ba576104ba61047e565b604052919050565b5f5f5f5f608085870312156104d5575f5ffd5b84516104e08161046a565b60208601519094506104f18161046a565b6040860151606087015191945092506001600160401b03811115610513575f5ffd5b8501601f81018713610523575f5ffd5b80516001600160401b0381111561053c5761053c61047e565b8060051b61054c60208201610492565b9182526020818401810192908101908a841115610567575f5ffd5b6020850192505b838310156106075782516001600160401b0381111561058b575f5ffd5b8501603f81018c1361059b575f5ffd5b60208101516001600160401b038111156105b7576105b761047e565b6105ca601f8201601f1916602001610492565b8181526040838301018e10156105de575f5ffd5b8160408401602083015e5f6020838301015280855250505060208201915060208301925061056e565b979a9699509497505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156106b857603f19878603018452815180518087528060208301602089015e5f602082890101526020601f19601f83011688010196505050602082019150602084019350600181019050610666565b50929695505050505050565b612f4f806106d15f395ff3fe6080604052600436106101af575f3560e01c80638dcdd86b116100e7578063cf0f34c411610087578063ddef9ea111610062578063ddef9ea11461055c578063f2fde38b146105a3578063fad8e111146105c2578063fd2f3d01146105e1575f5ffd5b8063cf0f34c4146104fd578063d002e1271461051c578063d016b08d1461053d575f5ffd5b8063b68fd1be116100c2578063b68fd1be1461047c578063c4ccafa21461049b578063cb649617146104c9578063cbd16872146104de575f5ffd5b80638dcdd86b146104145780639c8570c814610432578063b3c88d6714610451575f5ffd5b80634fc77264116101525780636db5c8fd1161012d5780636db5c8fd14610390578063715018a6146103a55780637edcd7ab146103b95780638da5cb5b146103d8575f5ffd5b80634fc7726414610331578063503f3288146103505780635314e9fa14610371575f5ffd5b80634017daf01161018d5780634017daf014610265578063406ed35c1461029c578063459d9294146102c85780634e92ec6314610312575f5ffd5b80630e092fc3146101b35780630ef81b2f146101e557806310bc628114610231575b5f5ffd5b3480156101be575f5ffd5b506101d26101cd366004612251565b610600565b6040519081526020015b60405180910390f35b3480156101f0575f5ffd5b506102196101ff366004612251565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101dc565b34801561023c575f5ffd5b5061021961024b366004612251565b60076020525f90815260409020546001600160a01b031681565b348015610270575f5ffd5b5061028461027f366004612251565b61066d565b6040516101dc9c9b9a99989796959493929190612296565b3480156102a7575f5ffd5b506102bb6102b6366004612251565b6107f1565b6040516101dc9190612477565b3480156102d3575f5ffd5b506103026102e236600461254e565b805160208183018101805160088252928201919093012091525460ff1681565b60405190151581526020016101dc565b34801561031d575f5ffd5b5061030261032c366004612251565b610a7d565b34801561033c575f5ffd5b5061030261034b36600461259c565b610b1e565b34801561035b575f5ffd5b5061036f61036a36600461265b565b610bc2565b005b34801561037c575f5ffd5b5061030261038b366004612708565b610d2d565b34801561039b575f5ffd5b506101d260015481565b3480156103b0575f5ffd5b5061036f610ef1565b3480156103c4575f5ffd5b506103026103d3366004612750565b610f04565b3480156103e3575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610219565b34801561041f575f5ffd5b505f54610219906001600160a01b031681565b34801561043d575f5ffd5b5061030261044c366004612750565b6110bc565b34801561045c575f5ffd5b506101d261046b366004612251565b60066020525f908152604090205481565b348015610487575f5ffd5b506103026104963660046127c9565b61125e565b3480156104a6575f5ffd5b506103026104b536600461259c565b60036020525f908152604090205460ff1681565b3480156104d4575f5ffd5b506101d260025481565b3480156104e9575f5ffd5b506103026104f83660046127fb565b611308565b348015610508575f5ffd5b50610302610517366004612251565b6113c9565b61052f61052a366004612829565b611408565b6040516101dc929190612861565b348015610548575f5ffd5b50610302610557366004612708565b611a0f565b348015610567575f5ffd5b5061058e610576366004612251565b60056020525f90815260409020805460019091015482565b604080519283526020830191909152016101dc565b3480156105ae575f5ffd5b5061036f6105bd36600461259c565b611c17565b3480156105cd575f5ffd5b506103026105dc36600461259c565b611c54565b3480156105ec575f5ffd5b506103026105fb36600461259c565b611cff565b5f8181526004602052604081206008015482906001600160a01b03166106455760405163cd6f4a4f60e01b815260040161063c91815260200190565b60405180910390fd5b505f828152600560209081526040808320600181015484526002019091529020545b92915050565b60046020525f90815260409020805460028201546005830154600684015460078501546008860154600987018054969795969495939492936001600160a01b03909216926106ba90612879565b80601f01602080910402602001604051908101604052809291908181526020018280546106e690612879565b80156107315780601f1061070857610100808354040283529160200191610731565b820191905f5260205f20905b81548152906001019060200180831161071457829003601f168201915b505050600a840154600b850154600c860154600d870154600e8801805497986001600160a01b0395861698949095169650919450929161077090612879565b80601f016020809104026020016040519081016040528092919081815260200182805461079c90612879565b80156107e75780601f106107be576101008083540402835291602001916107e7565b820191905f5260205f20905b8154815290600101906020018083116107ca57829003601f168201915b505050505090508c565b6107f96120ca565b5f82815260046020908152604080832081516101c0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161083457505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b81548152602001906001019080831161089a57505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a0909201916108fb90612879565b80601f016020809104026020016040519081016040528092919081815260200182805461092790612879565b80156109725780601f1061094957610100808354040283529160200191610972565b820191905f5260205f20905b81548152906001019060200180831161095557829003601f168201915b5050509183525050600a8201546001600160a01b039081166020830152600b830154166040820152600c8201546060820152600d8201546080820152600e8201805460a0909201916109c390612879565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef90612879565b8015610a3a5780601f10610a1157610100808354040283529160200191610a3a565b820191905f5260205f20905b815481529060010190602001808311610a1d57829003601f168201915b5050509190925250505060e081015190915082906001600160a01b0316610a775760405163cd6f4a4f60e01b815260040161063c91815260200190565b50919050565b5f610a86611da9565b5f8281526007602052604090205482906001600160a01b0316610abf576040516381c4951960e01b815260040161063c91815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610b119084815260200190565b60405180910390a1919050565b5f610b27611da9565b6001600160a01b0382165f90815260036020526040902054829060ff16610b6d576040516321ac7c5f60e01b81526001600160a01b03909116600482015260240161063c565b50506001600160a01b0381165f81815260036020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610b11565b5f610bcb611e04565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015610bf75750825b90505f8267ffffffffffffffff166001148015610c135750303b155b905081158015610c21575080155b15610c3f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c7357845468ff00000000000000001916680100000000000000001785555b610c7c33611e2c565b610c85876113c9565b50610c8f88611c54565b50610c998661125e565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038a8116911614610cd757610cd789611c17565b8315610d2257845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f5f610d38856107f1565b90508060a001515f148590610d6357604051633e26347b60e21b815260040161063c91815260200190565b50606081015151421015610d8a5760405163a0750b5160e01b815260040160405180910390fd5b606081015160200151421115610db357604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018890526001600160a01b039091169063e82f3b7090602401602060405180830381865afa158015610dfa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1e91906128bf565b9050808585604051610e319291906128d6565b604051809103902014610e5757604051630d8dbe2560e01b815260040160405180910390fd5b5f826080015142610e6891906128f9565b5f888152600460205260409081902060060182905551909150610e8e90879087906128d6565b604080519182900382205f8a8152600460205291909120600c01557f50df9e2c9fc5a7f4a07e403fa0300b88fcc8c6943bdff4b8ae71f55b7fd95f8990610edc90899084908a908a90612934565b60405180910390a15060019695505050505050565b610ef9611da9565b610f025f611e3d565b565b5f5f610f0f876107f1565b90505f8160a00151118790610f3a5760405163166b4d0360e01b815260040161063c91815260200190565b506101808101518790610f635760405163032c20ef60e21b815260040161063c91815260200190565b506101a081015151879015610f8e576040516360ec327960e01b815260040161063c91815260200190565b505f878152600460205260409020600e01610faa86888361299f565b508061014001516001600160a01b0316632f0e1bbf888888604051610fd09291906128d6565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252611013929189908990600401612934565b602060405180830381865afa15801561102e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110529190612a59565b915085858361107657604051632f9f8ab960e01b815260040161063c929190612a78565b5050867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca16987876040516110aa929190612a78565b60405180910390a25095945050505050565b5f5f6110c7876107f1565b90505f8160a001511187906110f25760405163166b4d0360e01b815260040161063c91815260200190565b5060a0810151879042811115611124576040516370c05fb960e11b81526004810192909252602482015260440161063c565b505061018081015187901561114f57604051637eb9cea960e11b815260040161063c91815260200190565b505f86866040516111619291906128d6565b604080519182900382205f8b815260046020819052929020600d0181905560e0850151632f0e1bbf60e01b84529093506001600160a01b031691632f0e1bbf916111b3918c9186918b918b9101612934565b6020604051808303815f875af11580156111cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f39190612a59565b925086868461121757604051632f9f8ab960e01b815260040161063c929190612a78565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade071888860405161124b929190612a78565b60405180910390a2505095945050505050565b5f611267611da9565b81515f5b818110156112c65760016008858381518110611289576112896128ab565b602002602001015160405161129e9190612a8b565b908152604051908190036020019020805491151560ff1990921691909117905560010161126b565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516112fa9190612aa1565b60405180910390a150919050565b5f611311611da9565b6001600160a01b0382161580159061134257505f838152600760205260409020546001600160a01b03838116911614155b8390611364576040516381c4951960e01b815260040161063c91815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6113d2611da9565b5060018181556040518281527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610b11565b5f6114116120ca565b348061143357604051638c4fcd9360e01b815260040161063c91815260200190565b506114446040840160208501612b1c565b63ffffffff1661145a6060850160408601612b1c565b63ffffffff161015801561148257505f61147a6040850160208601612b1c565b63ffffffff16115b83602001906114a557604051633744092160e21b815260040161063c9190612b65565b5060608301356080840135108015906114c2575042608084013510155b6114df576040516308594fb760e01b815260040160405180910390fd5b5f8360a001351180156114f857506001548360a0013511155b8360a001359061151e576040516313b783af60e21b815260040161063c91815260200190565b5060035f61153260e0860160c0870161259c565b6001600160a01b0316815260208101919091526040015f205460ff1661155e60e0850160c0860161259c565b906115885760405163295a6a6f60e11b81526001600160a01b03909116600482015260240161063c565b5060028054925082905f61159b83612b73565b9091555050604080514460208201529081018390525f9060600160408051601f198184030181529181528151602092830120808552815180830183529093509186019060029083908390808284375f9201919091525050506020830152436040808401919091528051808201825290606086019060029083908390808284375f9201829052506060860193909352505060a080860135608085015283015261164960e0850160c0860161259c565b6001600160a01b031660e08084019190915261166790850185612b8b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101008701949094525050506101608301819052610180830181905260408051602081019091528181526101a0840152806116d760e0870160c0880161259c565b6001600160a01b031663a61d7e3e86856116f460e08b018b612b8b565b6117026101008d018d612b8b565b6040518763ffffffff1660e01b815260040161172396959493929190612bce565b60408051808303815f875af115801561173e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117629190612c0d565b5f8281526007602052604090205491935091506001600160a01b031682816117a0576040516381c4951960e01b815260040161063c91815260200190565b50816001600160a01b0381166117d557604051633ca1cee360e11b81526001600160a01b03909116600482015260240161063c565b5060c085018390526001600160a01b0380831661012087015281166101408601525f86815260046020908152604090912086518155908601518691906118219060018301906002612156565b50604082015181600201556060820151816003019060026118439291906121f1565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b03909216919091179055610100820151600982019061189d9082612c31565b50610120820151600a820180546001600160a01b039283166001600160a01b031991821617909155610140840151600b84018054919093169116179055610160820151600c820155610180820151600d8201556101a0820151600e8201906119059082612c31565b50505f546001600160a01b03169050639ccb58d58761192760208b018b61259c565b8a6020016040518463ffffffff1660e01b815260040161194993929190612cec565b6020604051808303815f875af1158015611965573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119899190612a59565b6119a657604051630d8dbe2560e01b815260040160405180910390fd5b6119b660e0880160c0890161259c565b6001600160a01b03167fe31ba2ed37bce9c2bca28aabe3990572a1694b7a208f61e5cced4471fa33c8e587876119ef60208c018c61259c565b6040516119fe93929190612d0f565b60405180910390a250505050915091565b5f5f611a1a856107f1565b90505f8160a00151118590611a455760405163166b4d0360e01b815260040161063c91815260200190565b5060a08101518590428111611a765760405163142c294360e31b81526004810192909252602482015260440161063c565b50505f85815260066020526040902054611a918160016128f9565b5f8781526006602052604080822092909255610120840151915163caf9278560e01b815290916001600160a01b03169063caf9278590611ad99033908a908a90600401612d40565b5f604051808303815f875af1158015611af4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b1b9190810190612d62565b90505f73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe604051806040016040528085805190602001205f1c8152602001868152506040518263ffffffff1660e01b8152600401611b729190612dd7565b602060405180830381865af4158015611b8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb191906128bf565b5f898152600560205260409020909150611bcb9082611ead565b5060019450877f7555a0b1b87fe36304326aed23f5c78102b63922b1141f8df7d4593eff2021dd838386604051611c0493929190612e07565b60405180910390a2505050509392505050565b611c1f611da9565b6001600160a01b038116611c4857604051631e4fbdf760e01b81525f600482015260240161063c565b611c5181611e3d565b50565b5f611c5d611da9565b6001600160a01b03821615801590611c8257505f546001600160a01b03838116911614155b8290611cad576040516375ac4eb760e11b81526001600160a01b03909116600482015260240161063c565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610b11565b5f611d08611da9565b6001600160a01b0382165f90815260036020526040902054829060ff1615611d4f5760405163b29d459560e01b81526001600160a01b03909116600482015260240161063c565b50506001600160a01b0381165f81815260036020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610b11565b33611ddb7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f025760405163118cdaa760e01b815233600482015260240161063c565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610667565b611e3461207f565b611c51816120a4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018210611eee576040516361c0541760e11b815260040160405180910390fd5b815f03611f0e576040516314b48df160e11b815260040160405180910390fd5b5f82815260038401602052604090205415611f3c576040516312c50cad60e11b815260040160405180910390fd5b825460018085015490611f509083906128f9565b611f5b826002612f0e565b1015611f6d57611f6a81612b73565b90505b60018501819055835f5b82811015612045578084901c60011660010361202a576040805180820182525f83815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe91611fe49190600401612dd7565b602060405180830381865af4158015611fff573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202391906128bf565b915061203d565b5f81815260028801602052604090208290555b600101611f77565b5061204f83612b73565b8087555f928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b6120876120ac565b610f0257604051631afcd79f60e31b815260040160405180910390fd5b611c1f61207f565b5f6120b5611e04565b5468010000000000000000900460ff16919050565b604051806101c001604052805f81526020016120e461221f565b81526020015f81526020016120f761221f565b81526020015f81526020015f81526020015f81526020015f6001600160a01b03168152602001606081526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f8152602001606081525090565b6001830191839082156121e1579160200282015f5b838211156121af57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261216b565b80156121df5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026121af565b505b506121ed92915061223d565b5090565b82600281019282156121e1579160200282015b828111156121e1578251825591602001919060010190612204565b60405180604001604052806002906020820280368337509192915050565b5b808211156121ed575f815560010161223e565b5f60208284031215612261575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8c81528b60208201528a60408201528960608201528860808201526001600160a01b03881660a082015261018060c08201525f6122d7610180830189612268565b6001600160a01b03881660e08401526001600160a01b03871661010084015285610120840152846101408401528281036101608401526123178185612268565b9f9e505050505050505050505050505050565b805f5b600281101561235257815163ffffffff1684526020938401939091019060010161232d565b50505050565b805f5b600281101561235257815184526020938401939091019060010161235b565b805182525f6020820151612391602085018261232a565b506040820151606084015260608201516123ae6080850182612358565b50608082015160c084015260a082015160e084015260c082015161010084015260e08201516123e96101208501826001600160a01b03169052565b50610100820151610200610140850152612407610200850182612268565b90506101208301516124256101608601826001600160a01b03169052565b506101408301516001600160a01b038116610180860152506101608301516101a08501526101808301516101c08501526101a08301518482036101e086015261246e8282612268565b95945050505050565b602081525f612489602083018461237a565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156124cd576124cd612490565b604052919050565b5f67ffffffffffffffff8211156124ee576124ee612490565b50601f01601f191660200190565b5f82601f83011261250b575f5ffd5b813561251e612519826124d5565b6124a4565b818152846020838601011115612532575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561255e575f5ffd5b813567ffffffffffffffff811115612574575f5ffd5b612580848285016124fc565b949350505050565b6001600160a01b0381168114611c51575f5ffd5b5f602082840312156125ac575f5ffd5b813561248981612588565b5f82601f8301126125c6575f5ffd5b813567ffffffffffffffff8111156125e0576125e0612490565b8060051b6125f0602082016124a4565b9182526020818501810192908101908684111561260b575f5ffd5b6020860192505b8383101561265157823567ffffffffffffffff811115612630575f5ffd5b61263f886020838a01016124fc565b83525060209283019290910190612612565b9695505050505050565b5f5f5f5f6080858703121561266e575f5ffd5b843561267981612588565b9350602085013561268981612588565b925060408501359150606085013567ffffffffffffffff8111156126ab575f5ffd5b6126b7878288016125b7565b91505092959194509250565b5f5f83601f8401126126d3575f5ffd5b50813567ffffffffffffffff8111156126ea575f5ffd5b602083019150836020828501011115612701575f5ffd5b9250929050565b5f5f5f6040848603121561271a575f5ffd5b83359250602084013567ffffffffffffffff811115612737575f5ffd5b612743868287016126c3565b9497909650939450505050565b5f5f5f5f5f60608688031215612764575f5ffd5b85359450602086013567ffffffffffffffff811115612781575f5ffd5b61278d888289016126c3565b909550935050604086013567ffffffffffffffff8111156127ac575f5ffd5b6127b8888289016126c3565b969995985093965092949392505050565b5f602082840312156127d9575f5ffd5b813567ffffffffffffffff8111156127ef575f5ffd5b612580848285016125b7565b5f5f6040838503121561280c575f5ffd5b82359150602083013561281e81612588565b809150509250929050565b5f60208284031215612839575f5ffd5b813567ffffffffffffffff81111561284f575f5ffd5b82016101208185031215612489575f5ffd5b828152604060208201525f612580604083018461237a565b600181811c9082168061288d57607f821691505b602082108103610a7757634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156128cf575f5ffd5b5051919050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610667576106676128e5565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f61265160608301848661290c565b601f82111561299a57805f5260205f20601f840160051c810160208510156129785750805b601f840160051c820191505b81811015612997575f8155600101612984565b50505b505050565b67ffffffffffffffff8311156129b7576129b7612490565b6129cb836129c58354612879565b83612953565b5f601f8411600181146129fc575f85156129e55750838201355b5f19600387901b1c1916600186901b178355612997565b5f83815260208120601f198716915b82811015612a2b5786850135825560209485019460019092019101612a0b565b5086821015612a47575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60208284031215612a69575f5ffd5b81518015158114612489575f5ffd5b602081525f61258060208301848661290c565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612af857603f19878603018452612ae3858351612268565b94506020938401939190910190600101612ac7565b50929695505050505050565b803563ffffffff81168114612b17575f5ffd5b919050565b5f60208284031215612b2c575f5ffd5b61248982612b04565b805f5b60028110156123525763ffffffff612b4f83612b04565b1684526020938401939190910190600101612b38565b604081016106678284612b35565b5f60018201612b8457612b846128e5565b5060010190565b5f5f8335601e19843603018112612ba0575f5ffd5b83018035915067ffffffffffffffff821115612bba575f5ffd5b602001915036819003821315612701575f5ffd5b868152856020820152608060408201525f612bed60808301868861290c565b8281036060840152612c0081858761290c565b9998505050505050505050565b5f5f60408385031215612c1e575f5ffd5b8251602084015190925061281e81612588565b815167ffffffffffffffff811115612c4b57612c4b612490565b612c5f81612c598454612879565b84612953565b6020601f821160018114612c91575f8315612c7a5750848201515b5f19600385901b1c1916600184901b178455612997565b5f84815260208120601f198516915b82811015612cc05787850151825560209485019460019092019101612ca0565b5084821015612cdd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8381526001600160a01b0383166020820152608081016125806040830184612b35565b838152606060208201525f612d27606083018561237a565b90506001600160a01b0383166040830152949350505050565b6001600160a01b0384168152604060208201525f61246e60408301848661290c565b5f60208284031215612d72575f5ffd5b815167ffffffffffffffff811115612d88575f5ffd5b8201601f81018413612d98575f5ffd5b8051612da6612519826124d5565b818152856020838501011115612dba575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6040810181835f5b6002811015612dfe578151835260209283019290910190600101612ddf565b50505092915050565b606081525f612e196060830186612268565b60208301949094525060400152919050565b6001815b6001841115612e6657808504811115612e4a57612e4a6128e5565b6001841615612e5857908102905b60019390931c928002612e2f565b935093915050565b5f82612e7c57506001610667565b81612e8857505f610667565b8160018114612e9e5760028114612ea857612ec4565b6001915050610667565b60ff841115612eb957612eb96128e5565b50506001821b610667565b5060208310610133831016604e8410600b8410161715612ee7575081810a610667565b612ef35f198484612e2b565b805f1904821115612f0657612f066128e5565b029392505050565b5f6124898383612e6e56fea26469706673582212208e38d9a14a92dfd1c9d8d96a51b9ca6d95dd63685c684b18e99a8e1e20af1b0364736f6c634300081b00339016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00";
1411
- const isSuperArgs = (xs) => {
1412
- return typeof xs[0] === 'string'
1413
- || Array.isArray(xs[0])
1414
- || '_isInterface' in xs[0];
1415
- };
1528
+ const _bytecode = "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613053806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101dc575f3560e01c80638581424311610109578063cbd168721161009e578063efe0308b1161006e578063efe0308b146104ae578063f2fde38b146104c1578063fad8e111146104d4578063fd2f3d01146104e7575f5ffd5b8063cbd1687214610462578063cf0f34c414610475578063d016b08d14610488578063e59e46951461049b575f5ffd5b8063ac4e410c116100d9578063ac4e410c14610411578063b68fd1be14610424578063c4ccafa214610437578063cb64961714610459575f5ffd5b806385814243146103a95780638da5cb5b146103bc5780638dcdd86b146103ec5780639c8570c8146103fe575f5ffd5b8063459d92941161017f578063647846a51161014f578063647846a5146103705780636db5c8fd14610383578063715018a61461038c5780637edcd7ab14610396575f5ffd5b8063459d9294146103095780634e92ec63146103375780634fc772641461034a5780635314e9fa1461035d575f5ffd5b806315cce224116101ba57806315cce2241461026e5780634017daf014610291578063406ed35c146102bc5780634147a360146102dc575f5ffd5b80630ef81b2f146101e057806310bc6281146102255780631408d1221461024d575b5f5ffd5b6102086101ee3660046123e2565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6102086102333660046123e2565b60076020525f90815260409020546001600160a01b031681565b61026061025b3660046123f9565b6104fa565b60405161021c9291906125b2565b61028161027c3660046125e6565b610af9565b604051901515815260200161021c565b6102a461029f3660046123e2565b610baf565b60405161021c9c9b9a99989796959493929190612601565b6102cf6102ca3660046123e2565b610db9565b60405161021c919061269a565b6102fb6102ea3660046123e2565b60096020525f908152604090205481565b60405190815260200161021c565b61028161031736600461275d565b805160208183018101805160088252928201919093012091525460ff1681565b6102816103453660046123e2565b6110c8565b6102816103583660046125e6565b61115c565b61028161036b3660046127d4565b611200565b600254610208906001600160a01b031681565b6102fb60035481565b6103946113c4565b005b6102816103a436600461281c565b6113d7565b600154610208906001600160a01b031681565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610208565b5f54610208906001600160a01b031681565b61028161040c36600461281c565b611598565b6102fb61041f3660046123f9565b61173b565b610281610432366004612946565b611745565b6102816104453660046125e6565b60056020525f908152604090205460ff1681565b6102fb60045481565b610281610470366004612978565b6117ef565b6102816104833660046123e2565b6118b0565b6102816104963660046127d4565b6118f2565b6102816104a93660046125e6565b6119c9565b6103946104bc3660046129a6565b611a72565b6103946104cf3660046125e6565b611bf3565b6102816104e23660046125e6565b611c30565b6102816104f53660046125e6565b611cdb565b5f610503612263565b5f61050d8461173b565b905061051c6020850185612a5d565b63ffffffff166105326040860160208701612a5d565b63ffffffff161015801561055757505f61054f6020860186612a5d565b63ffffffff16115b849061058057604051633744092160e21b81526004016105779190612aa6565b60405180910390fd5b50604084013560608501351080159061059d575042606085013510155b6105ba576040516308594fb760e01b815260040160405180910390fd5b5f84608001351180156105d35750600354846080013511155b8460800135906105f9576040516313b783af60e21b815260040161057791815260200190565b5060055f61060d60c0870160a088016125e6565b6001600160a01b0316815260208101919091526040015f205460ff1661063960c0860160a087016125e6565b906106635760405163295a6a6f60e11b81526001600160a01b039091166004820152602401610577565b5060048054935083905f61067683612ac8565b90915550506040805144602080830191909152818301869052825180830384018152606090920183528151910120808452815180830183529091869060029083908390808284375f92019190915250505060208401524360408085019190915280518082018252908681019060029083908390808284375f920182905250606087019390935250506080808701359085015260a0808501919091526107219060c087019087016125e6565b6001600160a01b031660e084015261073c60c0860186612ae0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506101008085019190915261078590860186612ae0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101208801949094525050506101608401819052610180840181905260408051602081019091528181526101a08501526107f460c0870160a088016125e6565b6001600160a01b031663a61d7e3e868461081160c08b018b612ae0565b61081e60e08d018d612ae0565b6040518763ffffffff1660e01b815260040161083f96959493929190612b4b565b6020604051808303815f875af115801561085b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087f9190612b8a565b5f818152600760205260409020549091506001600160a01b031681816108bb576040516381c4951960e01b815260040161057791815260200190565b5060c085018290526001600160a01b0381166101408601525f86815260066020908152604090912086518155908601518691906108fe90600183019060026122e7565b5060408201518160020155606082015181600301906002610920929190612382565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b03909216919091179055610100820151600982019061097a9082612c1f565b50610120820151600a8201906109909082612c1f565b50610140820151600b820180546001600160a01b0319166001600160a01b03909216919091179055610160820151600c820155610180820151600d8201556101a0820151600e8201906109e39082612c1f565b5050505f868152600960205260409020849055600254610a0e906001600160a01b0316333087611d85565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b90610a4190899087908c90600401612cda565b6020604051808303815f875af1158015610a5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a819190612cf5565b610a9e57604051630d8dbe2560e01b815260040160405180910390fd5b610aae60c0880160a089016125e6565b6001600160a01b03167f5faeb768c9b6835deb3f2cce4b94a91d0391dc4803ddf6edb6699fad8dd270418787604051610ae89291906125b2565b60405180910390a250505050915091565b5f610b02611dfa565b6001600160a01b03821615801590610b2857506002546001600160a01b03838116911614155b8290610b535760405163eddf07f560e01b81526001600160a01b039091166004820152602401610577565b5050600280546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f3906020015b60405180910390a1919050565b600660208190525f91825260409091208054600282015460058301549383015460078401546008850154600986018054959794969495939492936001600160a01b039092169291610bff90612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2b90612ba1565b8015610c765780601f10610c4d57610100808354040283529160200191610c76565b820191905f5260205f20905b815481529060010190602001808311610c5957829003601f168201915b50505050509080600a018054610c8b90612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb790612ba1565b8015610d025780601f10610cd957610100808354040283529160200191610d02565b820191905f5260205f20905b815481529060010190602001808311610ce557829003601f168201915b505050600b840154600c850154600d860154600e8701805496976001600160a01b039094169692955090935090610d3890612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6490612ba1565b8015610daf5780601f10610d8657610100808354040283529160200191610daf565b820191905f5260205f20905b815481529060010190602001808311610d9257829003601f168201915b505050505090508c565b610dc1612263565b5f82815260066020908152604080832081516101c0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610dfc57505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610e6257505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a090920191610ec390612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610eef90612ba1565b8015610f3a5780601f10610f1157610100808354040283529160200191610f3a565b820191905f5260205f20905b815481529060010190602001808311610f1d57829003601f168201915b50505050508152602001600a82018054610f5390612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7f90612ba1565b8015610fca5780601f10610fa157610100808354040283529160200191610fca565b820191905f5260205f20905b815481529060010190602001808311610fad57829003601f168201915b5050509183525050600b8201546001600160a01b03166020820152600c8201546040820152600d8201546060820152600e8201805460809092019161100e90612ba1565b80601f016020809104026020016040519081016040528092919081815260200182805461103a90612ba1565b80156110855780601f1061105c57610100808354040283529160200191611085565b820191905f5260205f20905b81548152906001019060200180831161106857829003601f168201915b5050509190925250505060e081015190915082906001600160a01b03166110c25760405163cd6f4a4f60e01b815260040161057791815260200190565b50919050565b5f6110d1611dfa565b5f8281526007602052604090205482906001600160a01b031661110a576040516381c4951960e01b815260040161057791815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610ba29084815260200190565b5f611165611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff166111ab576040516321ac7c5f60e01b81526001600160a01b039091166004820152602401610577565b50506001600160a01b0381165f81815260056020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610ba2565b5f5f61120b85610db9565b90508060a001515f14859061123657604051633e26347b60e21b815260040161057791815260200190565b5060608101515142101561125d5760405163a0750b5160e01b815260040160405180910390fd5b60608101516020015142111561128657604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018890526001600160a01b039091169063e82f3b7090602401602060405180830381865afa1580156112cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f19190612b8a565b9050808585604051611304929190612d14565b60405180910390201461132a57604051630d8dbe2560e01b815260040160405180910390fd5b5f82608001514261133b9190612d23565b5f8881526006602081905260409182902001829055519091506113619087908790612d14565b604080519182900382205f8a8152600660205291909120600c01557f50df9e2c9fc5a7f4a07e403fa0300b88fcc8c6943bdff4b8ae71f55b7fd95f89906113af90899084908a908a90612d36565b60405180910390a15060019695505050505050565b6113cc611dfa565b6113d55f611e55565b565b5f5f6113e287610db9565b90505f8160a0015111879061140d5760405163166b4d0360e01b815260040161057791815260200190565b5061018081015187906114365760405163032c20ef60e21b815260040161057791815260200190565b506101a081015151879015611461576040516360ec327960e01b815260040161057791815260200190565b505f878152600660205260409020600e0161147d868883612d5f565b508061014001516001600160a01b0316632f0e1bbf8888886040516114a3929190612d14565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1682526114e6929189908990600401612d36565b602060405180830381865afa158015611501573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115259190612cf5565b915085858361154957604051632f9f8ab960e01b8152600401610577929190612e19565b505061155487611ec5565b867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca1698787604051611586929190612e19565b60405180910390a25095945050505050565b5f5f6115a387610db9565b90505f8160a001511187906115ce5760405163166b4d0360e01b815260040161057791815260200190565b5060a0810151879042811115611600576040516370c05fb960e11b815260048101929092526024820152604401610577565b505061018081015187901561162b57604051637eb9cea960e11b815260040161057791815260200190565b505f868660405161163d929190612d14565b604080519182900382205f8b8152600660205291909120600d0181905560e0840151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf90611690908b9085908a908a90600401612d36565b6020604051808303815f875af11580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d09190612cf5565b92508686846116f457604051632f9f8ab960e01b8152600401610577929190612e19565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade0718888604051611728929190612e19565b60405180910390a2505095945050505050565b620f4240806110c2565b5f61174e611dfa565b81515f5b818110156117ad576001600885838151811061177057611770612a31565b60200260200101516040516117859190612e2c565b908152604051908190036020019020805491151560ff19909216919091179055600101611752565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516117e19190612e42565b60405180910390a150919050565b5f6117f8611dfa565b6001600160a01b0382161580159061182957505f838152600760205260409020546001600160a01b03838116911614155b839061184b576040516381c4951960e01b815260040161057791815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6118b9611dfa565b5060038190556040518181526001907fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610ba2565b5f5f6118fd85610db9565b90505f8160a001511185906119285760405163166b4d0360e01b815260040161057791815260200190565b5060a081015185904281116119595760405163142c294360e31b815260048101929092526024820152604401610577565b50508060e001516001600160a01b031663d927910e863387876040518563ffffffff1660e01b81526004016119919493929190612ea5565b5f604051808303815f87803b1580156119a8575f5ffd5b505af11580156119ba573d5f5f3e3d5ffd5b50600198975050505050505050565b5f6119d2611dfa565b6001600160a01b038216158015906119f857506001546001600160a01b03838116911614155b8290611a23576040516320252f0b60e01b81526001600160a01b039091166004820152602401610577565b5050600180546001600160a01b0319166001600160a01b03831690811782556040519081527fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a790602001610ba2565b5f611a7b612171565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015611aa75750825b90505f8267ffffffffffffffff166001148015611ac35750303b155b905081158015611ad1575080155b15611aef5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b2357845468ff00000000000000001916680100000000000000001785555b611b2c3361219b565b611b35876118b0565b50611b3f8a611c30565b50611b49896119c9565b50611b5388610af9565b50611b5d86611745565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038c8116911614611b9b57611b9b8b611bf3565b8315611be657845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b611bfb611dfa565b6001600160a01b038116611c2457604051631e4fbdf760e01b81525f6004820152602401610577565b611c2d81611e55565b50565b5f611c39611dfa565b6001600160a01b03821615801590611c5e57505f546001600160a01b03838116911614155b8290611c89576040516375ac4eb760e11b81526001600160a01b039091166004820152602401610577565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610ba2565b5f611ce4611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff1615611d2b5760405163b29d459560e01b81526001600160a01b039091166004820152602401610577565b50506001600160a01b0381165f81815260056020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610ba2565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b179052611df49085906121ac565b50505050565b33611e2c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146113d55760405163118cdaa760e01b8152336004820152602401610577565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa158015611f0b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f329190810190612ecd565b80519091505f8167ffffffffffffffff811115611f5157611f516126ac565b604051908082528060200260200182016040528015611f7a578160200160208202803683370190505b505f8581526009602052604081205491925090611f98908490612f5d565b90505f5b83811015611fca5781838281518110611fb757611fb7612a31565b6020908102919091010152600101611f9c565b505f858152600960205260408082208054929055600254600154915163095ea7b360e01b81526001600160a01b0392831660048201526024810184905291169063095ea7b3906044016020604051808303815f875af115801561202f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120539190612cf5565b50600154600254604051636ec640c760e11b81526001600160a01b039283169263dd8c818e9261208c9291169089908890600401612fef565b5f604051808303815f87803b1580156120a3575f5ffd5b505af11580156120b5573d5f5f3e3d5ffd5b505060025460015460405163095ea7b360e01b81526001600160a01b0391821660048201525f60248201529116925063095ea7b391506044016020604051808303815f875af115801561210a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e9190612cf5565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a8685604051612161929190613022565b60405180910390a2505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b6121a3612218565b611c2d8161223d565b5f5f60205f8451602086015f885af1806121cb576040513d5f823e3d81fd5b50505f513d915081156121e25780600114156121ef565b6001600160a01b0384163b155b15611df457604051635274afe760e01b81526001600160a01b0385166004820152602401610577565b612220612245565b6113d557604051631afcd79f60e31b815260040160405180910390fd5b611bfb612218565b5f61224e612171565b5468010000000000000000900460ff16919050565b604051806101c001604052805f815260200161227d6123b0565b81526020015f81526020016122906123b0565b81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081525090565b600183019183908215612372579160200282015f5b8382111561234057835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026122fc565b80156123705782816101000a81549063ffffffff0219169055600401602081600301049283019260010302612340565b505b5061237e9291506123ce565b5090565b8260028101928215612372579160200282015b82811115612372578251825591602001919060010190612395565b60405180604001604052806002906020820280368337509192915050565b5b8082111561237e575f81556001016123cf565b5f602082840312156123f2575f5ffd5b5035919050565b5f60208284031215612409575f5ffd5b813567ffffffffffffffff81111561241f575f5ffd5b82016101208185031215612431575f5ffd5b9392505050565b805f5b6002811015611df457815163ffffffff1684526020938401939091019060010161243b565b805f5b6002811015611df4578151845260209384019390910190600101612463565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b805182525f60208201516124c76020850182612438565b506040820151606084015260608201516124e46080850182612460565b50608082015160c084015260a082015160e084015260c082015161010084015260e082015161251f6101208501826001600160a01b03169052565b5061010082015161020061014085015261253d610200850182612482565b90506101208301518482036101608601526125588282612482565b9150506101408301516125776101808601826001600160a01b03169052565b506101608301516101a08501526101808301516101c08501526101a08301518482036101e08601526125a98282612482565b95945050505050565b828152604060208201525f6125ca60408301846124b0565b949350505050565b6001600160a01b0381168114611c2d575f5ffd5b5f602082840312156125f6575f5ffd5b8135612431816125d2565b8c81528b60208201528a60408201528960608201528860808201526001600160a01b03881660a082015261018060c08201525f612642610180830189612482565b82810360e08401526126548189612482565b90506001600160a01b03871661010084015285610120840152846101408401528281036101608401526126878185612482565b9f9e505050505050505050505050505050565b602081525f61243160208301846124b0565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156126e9576126e96126ac565b604052919050565b5f82601f830112612700575f5ffd5b813567ffffffffffffffff81111561271a5761271a6126ac565b61272d601f8201601f19166020016126c0565b818152846020838601011115612741575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561276d575f5ffd5b813567ffffffffffffffff811115612783575f5ffd5b6125ca848285016126f1565b5f5f83601f84011261279f575f5ffd5b50813567ffffffffffffffff8111156127b6575f5ffd5b6020830191508360208285010111156127cd575f5ffd5b9250929050565b5f5f5f604084860312156127e6575f5ffd5b83359250602084013567ffffffffffffffff811115612803575f5ffd5b61280f8682870161278f565b9497909650939450505050565b5f5f5f5f5f60608688031215612830575f5ffd5b85359450602086013567ffffffffffffffff81111561284d575f5ffd5b6128598882890161278f565b909550935050604086013567ffffffffffffffff811115612878575f5ffd5b6128848882890161278f565b969995985093965092949392505050565b5f67ffffffffffffffff8211156128ae576128ae6126ac565b5060051b60200190565b5f82601f8301126128c7575f5ffd5b81356128da6128d582612895565b6126c0565b8082825260208201915060208360051b8601019250858311156128fb575f5ffd5b602085015b8381101561293c57803567ffffffffffffffff81111561291e575f5ffd5b61292d886020838a01016126f1565b84525060209283019201612900565b5095945050505050565b5f60208284031215612956575f5ffd5b813567ffffffffffffffff81111561296c575f5ffd5b6125ca848285016128b8565b5f5f60408385031215612989575f5ffd5b82359150602083013561299b816125d2565b809150509250929050565b5f5f5f5f5f5f60c087890312156129bb575f5ffd5b86356129c6816125d2565b955060208701356129d6816125d2565b945060408701356129e6816125d2565b935060608701356129f6816125d2565b92506080870135915060a087013567ffffffffffffffff811115612a18575f5ffd5b612a2489828a016128b8565b9150509295509295509295565b634e487b7160e01b5f52603260045260245ffd5b803563ffffffff81168114612a58575f5ffd5b919050565b5f60208284031215612a6d575f5ffd5b61243182612a45565b805f5b6002811015611df45763ffffffff612a9083612a45565b1684526020938401939190910190600101612a79565b604081016121958284612a76565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612ad957612ad9612ab4565b5060010190565b5f5f8335601e19843603018112612af5575f5ffd5b83018035915067ffffffffffffffff821115612b0f575f5ffd5b6020019150368190038213156127cd575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b868152856020820152608060408201525f612b6a608083018688612b23565b8281036060840152612b7d818587612b23565b9998505050505050505050565b5f60208284031215612b9a575f5ffd5b5051919050565b600181811c90821680612bb557607f821691505b6020821081036110c257634e487b7160e01b5f52602260045260245ffd5b601f821115612c1a57805f5260205f20601f840160051c81016020851015612bf85750805b601f840160051c820191505b81811015612c17575f8155600101612c04565b50505b505050565b815167ffffffffffffffff811115612c3957612c396126ac565b612c4d81612c478454612ba1565b84612bd3565b6020601f821160018114612c7f575f8315612c685750848201515b5f19600385901b1c1916600184901b178455612c17565b5f84815260208120601f198516915b82811015612cae5787850151825560209485019460019092019101612c8e565b5084821015612ccb57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016125ca6040830184612a76565b5f60208284031215612d05575f5ffd5b81518015158114612431575f5ffd5b818382375f9101908152919050565b8082018082111561219557612195612ab4565b848152836020820152606060408201525f612d55606083018486612b23565b9695505050505050565b67ffffffffffffffff831115612d7757612d776126ac565b612d8b83612d858354612ba1565b83612bd3565b5f601f841160018114612dbc575f8515612da55750838201355b5f19600387901b1c1916600186901b178355612c17565b5f83815260208120601f198716915b82811015612deb5786850135825560209485019460019092019101612dcb565b5086821015612e07575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b602081525f6125ca602083018486612b23565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612e9957603f19878603018452612e84858351612482565b94506020938401939190910190600101612e68565b50929695505050505050565b8481526001600160a01b0384166020820152606060408201525f612d55606083018486612b23565b5f60208284031215612edd575f5ffd5b815167ffffffffffffffff811115612ef3575f5ffd5b8201601f81018413612f03575f5ffd5b8051612f116128d582612895565b8082825260208201915060208360051b850101925086831115612f32575f5ffd5b6020840193505b82841015612d55578351612f4c816125d2565b825260209384019390910190612f39565b5f82612f7757634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602084019350602083015f5b82811015612fb55781516001600160a01b0316865260209586019590910190600101612f8e565b5093949350505050565b5f8151808452602084019350602083015f5b82811015612fb5578151865260209586019590910190600101612fd1565b6001600160a01b0384168152606060208201525f6130106060830185612f7c565b8281036040840152612d558185612fbf565b604081525f6130346040830185612f7c565b82810360208401526125a98185612fbf56fea164736f6c634300081c000a";
1529
+ const isSuperArgs = (xs) => xs.length > 1;
1416
1530
  export class Enclave__factory extends ContractFactory {
1417
1531
  constructor(...args) {
1418
1532
  if (isSuperArgs(args)) {
1419
1533
  super(...args);
1420
1534
  }
1421
1535
  else {
1422
- const [linkLibraryAddresses, signer] = args;
1423
- super(_abi, Enclave__factory.linkBytecode(linkLibraryAddresses), signer);
1536
+ super(_abi, _bytecode, args[0]);
1424
1537
  }
1425
1538
  }
1426
- static linkBytecode(linkLibraryAddresses) {
1427
- let linkedBytecode = _bytecode;
1428
- linkedBytecode = linkedBytecode.replace(new RegExp("__\\$078c82ddf6c95d34ea184ef1dd6130d136\\$__", "g"), linkLibraryAddresses["npm/poseidon-solidity@0.0.5/PoseidonT3.sol:PoseidonT3"].replace(/^0x/, '').toLowerCase());
1429
- return linkedBytecode;
1430
- }
1431
- getDeployTransaction(_owner, _ciphernodeRegistry, _maxDuration, _e3ProgramsParams, overrides) {
1432
- return super.getDeployTransaction(_owner, _ciphernodeRegistry, _maxDuration, _e3ProgramsParams, overrides || {});
1539
+ getDeployTransaction(overrides) {
1540
+ return super.getDeployTransaction(overrides || {});
1433
1541
  }
1434
1542
  ;
1435
- deploy(_owner, _ciphernodeRegistry, _maxDuration, _e3ProgramsParams, overrides) {
1436
- return super.deploy(_owner, _ciphernodeRegistry, _maxDuration, _e3ProgramsParams, overrides || {});
1543
+ deploy(overrides) {
1544
+ return super.deploy(overrides || {});
1437
1545
  }
1438
1546
  connect(runner) {
1439
1547
  return super.connect(runner);
@@ -1450,4 +1558,3 @@ export class Enclave__factory extends ContractFactory {
1450
1558
  return new Contract(address, _abi, runner);
1451
1559
  }
1452
1560
  }
1453
- ;