@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,40 +1,23 @@
1
1
  import type { Addressable } from "ethers";
2
2
  import { ContractFactory, ContractTransactionResponse } from "ethers";
3
- import type { Signer, BytesLike, BigNumberish, AddressLike, ContractDeployTransaction, ContractRunner } from "ethers";
3
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
4
4
  import type { NonPayableOverrides } from "../../common.js";
5
5
  import type { Enclave, EnclaveInterface } from "../../contracts/Enclave.js";
6
- type EnclaveConstructorParams = [linkLibraryAddresses: EnclaveLibraryAddresses, signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
6
+ type EnclaveConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
7
7
  export declare class Enclave__factory extends ContractFactory {
8
8
  constructor(...args: EnclaveConstructorParams);
9
- static linkBytecode(linkLibraryAddresses: EnclaveLibraryAddresses): string;
10
- getDeployTransaction(_owner: AddressLike, _ciphernodeRegistry: AddressLike, _maxDuration: BigNumberish, _e3ProgramsParams: BytesLike[], overrides?: NonPayableOverrides & {
9
+ getDeployTransaction(overrides?: NonPayableOverrides & {
11
10
  from?: string;
12
11
  }): Promise<ContractDeployTransaction>;
13
- deploy(_owner: AddressLike, _ciphernodeRegistry: AddressLike, _maxDuration: BigNumberish, _e3ProgramsParams: BytesLike[], overrides?: NonPayableOverrides & {
12
+ deploy(overrides?: NonPayableOverrides & {
14
13
  from?: string;
15
14
  }): Promise<Enclave & {
16
15
  deploymentTransaction(): ContractTransactionResponse;
17
16
  }>;
18
17
  connect(runner: ContractRunner | null): Enclave__factory;
19
- static readonly bytecode = "0x608060405234801561000f575f5ffd5b5060405161366038038061366083398101604081905261002e916104c2565b61003a84848484610043565b505050506106c4565b5f5160206136405f395f51905f52805468010000000000000000810460ff1615906001600160401b03165f811580156100795750825b90505f826001600160401b031660011480156100945750303b155b9050811580156100a2575080155b156100c05760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100ee57845460ff60401b1916680100000000000000001785555b6100f733610190565b610100876101a4565b5061010a886101ec565b506101148661029c565b505f5160206136205f395f51905f52546001600160a01b038a811691161461013f5761013f89610346565b831561018557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610198610380565b6101a1816103bd565b50565b5f6101ad6103c5565b5060018181556040518281527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b523552906020015b60405180910390a1919050565b5f6101f56103c5565b6001600160a01b0382161580159061021a57505f546001600160a01b03838116911614155b829061024a576040516375ac4eb760e11b81526001600160a01b0390911660048201526024015b60405180910390fd5b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b6906020016101df565b5f6102a56103c5565b81515f5b8181101561030457600160088583815181106102c7576102c7610616565b60200260200101516040516102dc919061062a565b908152604051908190036020019020805491151560ff199092169190911790556001016102a9565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516103389190610640565b60405180910390a150919050565b61034e6103c5565b6001600160a01b03811661037757604051631e4fbdf760e01b81525f6004820152602401610241565b6101a18161040d565b5f5160206136405f395f51905f525468010000000000000000900460ff166103bb57604051631afcd79f60e31b815260040160405180910390fd5b565b61034e610380565b336103e45f5160206136205f395f51905f52546001600160a01b031690565b6001600160a01b0316146103bb5760405163118cdaa760e01b8152336004820152602401610241565b5f5160206136205f395f51905f5280546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b03811681146101a1575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156104ba576104ba61047e565b604052919050565b5f5f5f5f608085870312156104d5575f5ffd5b84516104e08161046a565b60208601519094506104f18161046a565b6040860151606087015191945092506001600160401b03811115610513575f5ffd5b8501601f81018713610523575f5ffd5b80516001600160401b0381111561053c5761053c61047e565b8060051b61054c60208201610492565b9182526020818401810192908101908a841115610567575f5ffd5b6020850192505b838310156106075782516001600160401b0381111561058b575f5ffd5b8501603f81018c1361059b575f5ffd5b60208101516001600160401b038111156105b7576105b761047e565b6105ca601f8201601f1916602001610492565b8181526040838301018e10156105de575f5ffd5b8160408401602083015e5f6020838301015280855250505060208201915060208301925061056e565b979a9699509497505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156106b857603f19878603018452815180518087528060208301602089015e5f602082890101526020601f19601f83011688010196505050602082019150602084019350600181019050610666565b50929695505050505050565b612f4f806106d15f395ff3fe6080604052600436106101af575f3560e01c80638dcdd86b116100e7578063cf0f34c411610087578063ddef9ea111610062578063ddef9ea11461055c578063f2fde38b146105a3578063fad8e111146105c2578063fd2f3d01146105e1575f5ffd5b8063cf0f34c4146104fd578063d002e1271461051c578063d016b08d1461053d575f5ffd5b8063b68fd1be116100c2578063b68fd1be1461047c578063c4ccafa21461049b578063cb649617146104c9578063cbd16872146104de575f5ffd5b80638dcdd86b146104145780639c8570c814610432578063b3c88d6714610451575f5ffd5b80634fc77264116101525780636db5c8fd1161012d5780636db5c8fd14610390578063715018a6146103a55780637edcd7ab146103b95780638da5cb5b146103d8575f5ffd5b80634fc7726414610331578063503f3288146103505780635314e9fa14610371575f5ffd5b80634017daf01161018d5780634017daf014610265578063406ed35c1461029c578063459d9294146102c85780634e92ec6314610312575f5ffd5b80630e092fc3146101b35780630ef81b2f146101e557806310bc628114610231575b5f5ffd5b3480156101be575f5ffd5b506101d26101cd366004612251565b610600565b6040519081526020015b60405180910390f35b3480156101f0575f5ffd5b506102196101ff366004612251565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101dc565b34801561023c575f5ffd5b5061021961024b366004612251565b60076020525f90815260409020546001600160a01b031681565b348015610270575f5ffd5b5061028461027f366004612251565b61066d565b6040516101dc9c9b9a99989796959493929190612296565b3480156102a7575f5ffd5b506102bb6102b6366004612251565b6107f1565b6040516101dc9190612477565b3480156102d3575f5ffd5b506103026102e236600461254e565b805160208183018101805160088252928201919093012091525460ff1681565b60405190151581526020016101dc565b34801561031d575f5ffd5b5061030261032c366004612251565b610a7d565b34801561033c575f5ffd5b5061030261034b36600461259c565b610b1e565b34801561035b575f5ffd5b5061036f61036a36600461265b565b610bc2565b005b34801561037c575f5ffd5b5061030261038b366004612708565b610d2d565b34801561039b575f5ffd5b506101d260015481565b3480156103b0575f5ffd5b5061036f610ef1565b3480156103c4575f5ffd5b506103026103d3366004612750565b610f04565b3480156103e3575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610219565b34801561041f575f5ffd5b505f54610219906001600160a01b031681565b34801561043d575f5ffd5b5061030261044c366004612750565b6110bc565b34801561045c575f5ffd5b506101d261046b366004612251565b60066020525f908152604090205481565b348015610487575f5ffd5b506103026104963660046127c9565b61125e565b3480156104a6575f5ffd5b506103026104b536600461259c565b60036020525f908152604090205460ff1681565b3480156104d4575f5ffd5b506101d260025481565b3480156104e9575f5ffd5b506103026104f83660046127fb565b611308565b348015610508575f5ffd5b50610302610517366004612251565b6113c9565b61052f61052a366004612829565b611408565b6040516101dc929190612861565b348015610548575f5ffd5b50610302610557366004612708565b611a0f565b348015610567575f5ffd5b5061058e610576366004612251565b60056020525f90815260409020805460019091015482565b604080519283526020830191909152016101dc565b3480156105ae575f5ffd5b5061036f6105bd36600461259c565b611c17565b3480156105cd575f5ffd5b506103026105dc36600461259c565b611c54565b3480156105ec575f5ffd5b506103026105fb36600461259c565b611cff565b5f8181526004602052604081206008015482906001600160a01b03166106455760405163cd6f4a4f60e01b815260040161063c91815260200190565b60405180910390fd5b505f828152600560209081526040808320600181015484526002019091529020545b92915050565b60046020525f90815260409020805460028201546005830154600684015460078501546008860154600987018054969795969495939492936001600160a01b03909216926106ba90612879565b80601f01602080910402602001604051908101604052809291908181526020018280546106e690612879565b80156107315780601f1061070857610100808354040283529160200191610731565b820191905f5260205f20905b81548152906001019060200180831161071457829003601f168201915b505050600a840154600b850154600c860154600d870154600e8801805497986001600160a01b0395861698949095169650919450929161077090612879565b80601f016020809104026020016040519081016040528092919081815260200182805461079c90612879565b80156107e75780601f106107be576101008083540402835291602001916107e7565b820191905f5260205f20905b8154815290600101906020018083116107ca57829003601f168201915b505050505090508c565b6107f96120ca565b5f82815260046020908152604080832081516101c0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161083457505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b81548152602001906001019080831161089a57505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a0909201916108fb90612879565b80601f016020809104026020016040519081016040528092919081815260200182805461092790612879565b80156109725780601f1061094957610100808354040283529160200191610972565b820191905f5260205f20905b81548152906001019060200180831161095557829003601f168201915b5050509183525050600a8201546001600160a01b039081166020830152600b830154166040820152600c8201546060820152600d8201546080820152600e8201805460a0909201916109c390612879565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef90612879565b8015610a3a5780601f10610a1157610100808354040283529160200191610a3a565b820191905f5260205f20905b815481529060010190602001808311610a1d57829003601f168201915b5050509190925250505060e081015190915082906001600160a01b0316610a775760405163cd6f4a4f60e01b815260040161063c91815260200190565b50919050565b5f610a86611da9565b5f8281526007602052604090205482906001600160a01b0316610abf576040516381c4951960e01b815260040161063c91815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610b119084815260200190565b60405180910390a1919050565b5f610b27611da9565b6001600160a01b0382165f90815260036020526040902054829060ff16610b6d576040516321ac7c5f60e01b81526001600160a01b03909116600482015260240161063c565b50506001600160a01b0381165f81815260036020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610b11565b5f610bcb611e04565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015610bf75750825b90505f8267ffffffffffffffff166001148015610c135750303b155b905081158015610c21575080155b15610c3f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c7357845468ff00000000000000001916680100000000000000001785555b610c7c33611e2c565b610c85876113c9565b50610c8f88611c54565b50610c998661125e565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038a8116911614610cd757610cd789611c17565b8315610d2257845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f5f610d38856107f1565b90508060a001515f148590610d6357604051633e26347b60e21b815260040161063c91815260200190565b50606081015151421015610d8a5760405163a0750b5160e01b815260040160405180910390fd5b606081015160200151421115610db357604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018890526001600160a01b039091169063e82f3b7090602401602060405180830381865afa158015610dfa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1e91906128bf565b9050808585604051610e319291906128d6565b604051809103902014610e5757604051630d8dbe2560e01b815260040160405180910390fd5b5f826080015142610e6891906128f9565b5f888152600460205260409081902060060182905551909150610e8e90879087906128d6565b604080519182900382205f8a8152600460205291909120600c01557f50df9e2c9fc5a7f4a07e403fa0300b88fcc8c6943bdff4b8ae71f55b7fd95f8990610edc90899084908a908a90612934565b60405180910390a15060019695505050505050565b610ef9611da9565b610f025f611e3d565b565b5f5f610f0f876107f1565b90505f8160a00151118790610f3a5760405163166b4d0360e01b815260040161063c91815260200190565b506101808101518790610f635760405163032c20ef60e21b815260040161063c91815260200190565b506101a081015151879015610f8e576040516360ec327960e01b815260040161063c91815260200190565b505f878152600460205260409020600e01610faa86888361299f565b508061014001516001600160a01b0316632f0e1bbf888888604051610fd09291906128d6565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252611013929189908990600401612934565b602060405180830381865afa15801561102e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110529190612a59565b915085858361107657604051632f9f8ab960e01b815260040161063c929190612a78565b5050867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca16987876040516110aa929190612a78565b60405180910390a25095945050505050565b5f5f6110c7876107f1565b90505f8160a001511187906110f25760405163166b4d0360e01b815260040161063c91815260200190565b5060a0810151879042811115611124576040516370c05fb960e11b81526004810192909252602482015260440161063c565b505061018081015187901561114f57604051637eb9cea960e11b815260040161063c91815260200190565b505f86866040516111619291906128d6565b604080519182900382205f8b815260046020819052929020600d0181905560e0850151632f0e1bbf60e01b84529093506001600160a01b031691632f0e1bbf916111b3918c9186918b918b9101612934565b6020604051808303815f875af11580156111cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f39190612a59565b925086868461121757604051632f9f8ab960e01b815260040161063c929190612a78565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade071888860405161124b929190612a78565b60405180910390a2505095945050505050565b5f611267611da9565b81515f5b818110156112c65760016008858381518110611289576112896128ab565b602002602001015160405161129e9190612a8b565b908152604051908190036020019020805491151560ff1990921691909117905560010161126b565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516112fa9190612aa1565b60405180910390a150919050565b5f611311611da9565b6001600160a01b0382161580159061134257505f838152600760205260409020546001600160a01b03838116911614155b8390611364576040516381c4951960e01b815260040161063c91815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6113d2611da9565b5060018181556040518281527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610b11565b5f6114116120ca565b348061143357604051638c4fcd9360e01b815260040161063c91815260200190565b506114446040840160208501612b1c565b63ffffffff1661145a6060850160408601612b1c565b63ffffffff161015801561148257505f61147a6040850160208601612b1c565b63ffffffff16115b83602001906114a557604051633744092160e21b815260040161063c9190612b65565b5060608301356080840135108015906114c2575042608084013510155b6114df576040516308594fb760e01b815260040160405180910390fd5b5f8360a001351180156114f857506001548360a0013511155b8360a001359061151e576040516313b783af60e21b815260040161063c91815260200190565b5060035f61153260e0860160c0870161259c565b6001600160a01b0316815260208101919091526040015f205460ff1661155e60e0850160c0860161259c565b906115885760405163295a6a6f60e11b81526001600160a01b03909116600482015260240161063c565b5060028054925082905f61159b83612b73565b9091555050604080514460208201529081018390525f9060600160408051601f198184030181529181528151602092830120808552815180830183529093509186019060029083908390808284375f9201919091525050506020830152436040808401919091528051808201825290606086019060029083908390808284375f9201829052506060860193909352505060a080860135608085015283015261164960e0850160c0860161259c565b6001600160a01b031660e08084019190915261166790850185612b8b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101008701949094525050506101608301819052610180830181905260408051602081019091528181526101a0840152806116d760e0870160c0880161259c565b6001600160a01b031663a61d7e3e86856116f460e08b018b612b8b565b6117026101008d018d612b8b565b6040518763ffffffff1660e01b815260040161172396959493929190612bce565b60408051808303815f875af115801561173e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117629190612c0d565b5f8281526007602052604090205491935091506001600160a01b031682816117a0576040516381c4951960e01b815260040161063c91815260200190565b50816001600160a01b0381166117d557604051633ca1cee360e11b81526001600160a01b03909116600482015260240161063c565b5060c085018390526001600160a01b0380831661012087015281166101408601525f86815260046020908152604090912086518155908601518691906118219060018301906002612156565b50604082015181600201556060820151816003019060026118439291906121f1565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b03909216919091179055610100820151600982019061189d9082612c31565b50610120820151600a820180546001600160a01b039283166001600160a01b031991821617909155610140840151600b84018054919093169116179055610160820151600c820155610180820151600d8201556101a0820151600e8201906119059082612c31565b50505f546001600160a01b03169050639ccb58d58761192760208b018b61259c565b8a6020016040518463ffffffff1660e01b815260040161194993929190612cec565b6020604051808303815f875af1158015611965573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119899190612a59565b6119a657604051630d8dbe2560e01b815260040160405180910390fd5b6119b660e0880160c0890161259c565b6001600160a01b03167fe31ba2ed37bce9c2bca28aabe3990572a1694b7a208f61e5cced4471fa33c8e587876119ef60208c018c61259c565b6040516119fe93929190612d0f565b60405180910390a250505050915091565b5f5f611a1a856107f1565b90505f8160a00151118590611a455760405163166b4d0360e01b815260040161063c91815260200190565b5060a08101518590428111611a765760405163142c294360e31b81526004810192909252602482015260440161063c565b50505f85815260066020526040902054611a918160016128f9565b5f8781526006602052604080822092909255610120840151915163caf9278560e01b815290916001600160a01b03169063caf9278590611ad99033908a908a90600401612d40565b5f604051808303815f875af1158015611af4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b1b9190810190612d62565b90505f73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe604051806040016040528085805190602001205f1c8152602001868152506040518263ffffffff1660e01b8152600401611b729190612dd7565b602060405180830381865af4158015611b8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb191906128bf565b5f898152600560205260409020909150611bcb9082611ead565b5060019450877f7555a0b1b87fe36304326aed23f5c78102b63922b1141f8df7d4593eff2021dd838386604051611c0493929190612e07565b60405180910390a2505050509392505050565b611c1f611da9565b6001600160a01b038116611c4857604051631e4fbdf760e01b81525f600482015260240161063c565b611c5181611e3d565b50565b5f611c5d611da9565b6001600160a01b03821615801590611c8257505f546001600160a01b03838116911614155b8290611cad576040516375ac4eb760e11b81526001600160a01b03909116600482015260240161063c565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610b11565b5f611d08611da9565b6001600160a01b0382165f90815260036020526040902054829060ff1615611d4f5760405163b29d459560e01b81526001600160a01b03909116600482015260240161063c565b50506001600160a01b0381165f81815260036020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610b11565b33611ddb7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f025760405163118cdaa760e01b815233600482015260240161063c565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610667565b611e3461207f565b611c51816120a4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018210611eee576040516361c0541760e11b815260040160405180910390fd5b815f03611f0e576040516314b48df160e11b815260040160405180910390fd5b5f82815260038401602052604090205415611f3c576040516312c50cad60e11b815260040160405180910390fd5b825460018085015490611f509083906128f9565b611f5b826002612f0e565b1015611f6d57611f6a81612b73565b90505b60018501819055835f5b82811015612045578084901c60011660010361202a576040805180820182525f83815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe91611fe49190600401612dd7565b602060405180830381865af4158015611fff573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202391906128bf565b915061203d565b5f81815260028801602052604090208290555b600101611f77565b5061204f83612b73565b8087555f928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b6120876120ac565b610f0257604051631afcd79f60e31b815260040160405180910390fd5b611c1f61207f565b5f6120b5611e04565b5468010000000000000000900460ff16919050565b604051806101c001604052805f81526020016120e461221f565b81526020015f81526020016120f761221f565b81526020015f81526020015f81526020015f81526020015f6001600160a01b03168152602001606081526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f8152602001606081525090565b6001830191839082156121e1579160200282015f5b838211156121af57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261216b565b80156121df5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026121af565b505b506121ed92915061223d565b5090565b82600281019282156121e1579160200282015b828111156121e1578251825591602001919060010190612204565b60405180604001604052806002906020820280368337509192915050565b5b808211156121ed575f815560010161223e565b5f60208284031215612261575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8c81528b60208201528a60408201528960608201528860808201526001600160a01b03881660a082015261018060c08201525f6122d7610180830189612268565b6001600160a01b03881660e08401526001600160a01b03871661010084015285610120840152846101408401528281036101608401526123178185612268565b9f9e505050505050505050505050505050565b805f5b600281101561235257815163ffffffff1684526020938401939091019060010161232d565b50505050565b805f5b600281101561235257815184526020938401939091019060010161235b565b805182525f6020820151612391602085018261232a565b506040820151606084015260608201516123ae6080850182612358565b50608082015160c084015260a082015160e084015260c082015161010084015260e08201516123e96101208501826001600160a01b03169052565b50610100820151610200610140850152612407610200850182612268565b90506101208301516124256101608601826001600160a01b03169052565b506101408301516001600160a01b038116610180860152506101608301516101a08501526101808301516101c08501526101a08301518482036101e086015261246e8282612268565b95945050505050565b602081525f612489602083018461237a565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156124cd576124cd612490565b604052919050565b5f67ffffffffffffffff8211156124ee576124ee612490565b50601f01601f191660200190565b5f82601f83011261250b575f5ffd5b813561251e612519826124d5565b6124a4565b818152846020838601011115612532575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561255e575f5ffd5b813567ffffffffffffffff811115612574575f5ffd5b612580848285016124fc565b949350505050565b6001600160a01b0381168114611c51575f5ffd5b5f602082840312156125ac575f5ffd5b813561248981612588565b5f82601f8301126125c6575f5ffd5b813567ffffffffffffffff8111156125e0576125e0612490565b8060051b6125f0602082016124a4565b9182526020818501810192908101908684111561260b575f5ffd5b6020860192505b8383101561265157823567ffffffffffffffff811115612630575f5ffd5b61263f886020838a01016124fc565b83525060209283019290910190612612565b9695505050505050565b5f5f5f5f6080858703121561266e575f5ffd5b843561267981612588565b9350602085013561268981612588565b925060408501359150606085013567ffffffffffffffff8111156126ab575f5ffd5b6126b7878288016125b7565b91505092959194509250565b5f5f83601f8401126126d3575f5ffd5b50813567ffffffffffffffff8111156126ea575f5ffd5b602083019150836020828501011115612701575f5ffd5b9250929050565b5f5f5f6040848603121561271a575f5ffd5b83359250602084013567ffffffffffffffff811115612737575f5ffd5b612743868287016126c3565b9497909650939450505050565b5f5f5f5f5f60608688031215612764575f5ffd5b85359450602086013567ffffffffffffffff811115612781575f5ffd5b61278d888289016126c3565b909550935050604086013567ffffffffffffffff8111156127ac575f5ffd5b6127b8888289016126c3565b969995985093965092949392505050565b5f602082840312156127d9575f5ffd5b813567ffffffffffffffff8111156127ef575f5ffd5b612580848285016125b7565b5f5f6040838503121561280c575f5ffd5b82359150602083013561281e81612588565b809150509250929050565b5f60208284031215612839575f5ffd5b813567ffffffffffffffff81111561284f575f5ffd5b82016101208185031215612489575f5ffd5b828152604060208201525f612580604083018461237a565b600181811c9082168061288d57607f821691505b602082108103610a7757634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156128cf575f5ffd5b5051919050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610667576106676128e5565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f61265160608301848661290c565b601f82111561299a57805f5260205f20601f840160051c810160208510156129785750805b601f840160051c820191505b81811015612997575f8155600101612984565b50505b505050565b67ffffffffffffffff8311156129b7576129b7612490565b6129cb836129c58354612879565b83612953565b5f601f8411600181146129fc575f85156129e55750838201355b5f19600387901b1c1916600186901b178355612997565b5f83815260208120601f198716915b82811015612a2b5786850135825560209485019460019092019101612a0b565b5086821015612a47575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60208284031215612a69575f5ffd5b81518015158114612489575f5ffd5b602081525f61258060208301848661290c565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612af857603f19878603018452612ae3858351612268565b94506020938401939190910190600101612ac7565b50929695505050505050565b803563ffffffff81168114612b17575f5ffd5b919050565b5f60208284031215612b2c575f5ffd5b61248982612b04565b805f5b60028110156123525763ffffffff612b4f83612b04565b1684526020938401939190910190600101612b38565b604081016106678284612b35565b5f60018201612b8457612b846128e5565b5060010190565b5f5f8335601e19843603018112612ba0575f5ffd5b83018035915067ffffffffffffffff821115612bba575f5ffd5b602001915036819003821315612701575f5ffd5b868152856020820152608060408201525f612bed60808301868861290c565b8281036060840152612c0081858761290c565b9998505050505050505050565b5f5f60408385031215612c1e575f5ffd5b8251602084015190925061281e81612588565b815167ffffffffffffffff811115612c4b57612c4b612490565b612c5f81612c598454612879565b84612953565b6020601f821160018114612c91575f8315612c7a5750848201515b5f19600385901b1c1916600184901b178455612997565b5f84815260208120601f198516915b82811015612cc05787850151825560209485019460019092019101612ca0565b5084821015612cdd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8381526001600160a01b0383166020820152608081016125806040830184612b35565b838152606060208201525f612d27606083018561237a565b90506001600160a01b0383166040830152949350505050565b6001600160a01b0384168152604060208201525f61246e60408301848661290c565b5f60208284031215612d72575f5ffd5b815167ffffffffffffffff811115612d88575f5ffd5b8201601f81018413612d98575f5ffd5b8051612da6612519826124d5565b818152856020838501011115612dba575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6040810181835f5b6002811015612dfe578151835260209283019290910190600101612ddf565b50505092915050565b606081525f612e196060830186612268565b60208301949094525060400152919050565b6001815b6001841115612e6657808504811115612e4a57612e4a6128e5565b6001841615612e5857908102905b60019390931c928002612e2f565b935093915050565b5f82612e7c57506001610667565b81612e8857505f610667565b8160018114612e9e5760028114612ea857612ec4565b6001915050610667565b60ff841115612eb957612eb96128e5565b50506001821b610667565b5060208310610133831016604e8410600b8410161715612ee7575081810a610667565b612ef35f198484612e2b565b805f1904821115612f0657612f066128e5565b029392505050565b5f6124898383612e6e56fea26469706673582212208e38d9a14a92dfd1c9d8d96a51b9ca6d95dd63685c684b18e99a8e1e20af1b0364736f6c634300081b00339016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00";
18
+ static readonly bytecode = "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613053806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101dc575f3560e01c80638581424311610109578063cbd168721161009e578063efe0308b1161006e578063efe0308b146104ae578063f2fde38b146104c1578063fad8e111146104d4578063fd2f3d01146104e7575f5ffd5b8063cbd1687214610462578063cf0f34c414610475578063d016b08d14610488578063e59e46951461049b575f5ffd5b8063ac4e410c116100d9578063ac4e410c14610411578063b68fd1be14610424578063c4ccafa214610437578063cb64961714610459575f5ffd5b806385814243146103a95780638da5cb5b146103bc5780638dcdd86b146103ec5780639c8570c8146103fe575f5ffd5b8063459d92941161017f578063647846a51161014f578063647846a5146103705780636db5c8fd14610383578063715018a61461038c5780637edcd7ab14610396575f5ffd5b8063459d9294146103095780634e92ec63146103375780634fc772641461034a5780635314e9fa1461035d575f5ffd5b806315cce224116101ba57806315cce2241461026e5780634017daf014610291578063406ed35c146102bc5780634147a360146102dc575f5ffd5b80630ef81b2f146101e057806310bc6281146102255780631408d1221461024d575b5f5ffd5b6102086101ee3660046123e2565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6102086102333660046123e2565b60076020525f90815260409020546001600160a01b031681565b61026061025b3660046123f9565b6104fa565b60405161021c9291906125b2565b61028161027c3660046125e6565b610af9565b604051901515815260200161021c565b6102a461029f3660046123e2565b610baf565b60405161021c9c9b9a99989796959493929190612601565b6102cf6102ca3660046123e2565b610db9565b60405161021c919061269a565b6102fb6102ea3660046123e2565b60096020525f908152604090205481565b60405190815260200161021c565b61028161031736600461275d565b805160208183018101805160088252928201919093012091525460ff1681565b6102816103453660046123e2565b6110c8565b6102816103583660046125e6565b61115c565b61028161036b3660046127d4565b611200565b600254610208906001600160a01b031681565b6102fb60035481565b6103946113c4565b005b6102816103a436600461281c565b6113d7565b600154610208906001600160a01b031681565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610208565b5f54610208906001600160a01b031681565b61028161040c36600461281c565b611598565b6102fb61041f3660046123f9565b61173b565b610281610432366004612946565b611745565b6102816104453660046125e6565b60056020525f908152604090205460ff1681565b6102fb60045481565b610281610470366004612978565b6117ef565b6102816104833660046123e2565b6118b0565b6102816104963660046127d4565b6118f2565b6102816104a93660046125e6565b6119c9565b6103946104bc3660046129a6565b611a72565b6103946104cf3660046125e6565b611bf3565b6102816104e23660046125e6565b611c30565b6102816104f53660046125e6565b611cdb565b5f610503612263565b5f61050d8461173b565b905061051c6020850185612a5d565b63ffffffff166105326040860160208701612a5d565b63ffffffff161015801561055757505f61054f6020860186612a5d565b63ffffffff16115b849061058057604051633744092160e21b81526004016105779190612aa6565b60405180910390fd5b50604084013560608501351080159061059d575042606085013510155b6105ba576040516308594fb760e01b815260040160405180910390fd5b5f84608001351180156105d35750600354846080013511155b8460800135906105f9576040516313b783af60e21b815260040161057791815260200190565b5060055f61060d60c0870160a088016125e6565b6001600160a01b0316815260208101919091526040015f205460ff1661063960c0860160a087016125e6565b906106635760405163295a6a6f60e11b81526001600160a01b039091166004820152602401610577565b5060048054935083905f61067683612ac8565b90915550506040805144602080830191909152818301869052825180830384018152606090920183528151910120808452815180830183529091869060029083908390808284375f92019190915250505060208401524360408085019190915280518082018252908681019060029083908390808284375f920182905250606087019390935250506080808701359085015260a0808501919091526107219060c087019087016125e6565b6001600160a01b031660e084015261073c60c0860186612ae0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506101008085019190915261078590860186612ae0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101208801949094525050506101608401819052610180840181905260408051602081019091528181526101a08501526107f460c0870160a088016125e6565b6001600160a01b031663a61d7e3e868461081160c08b018b612ae0565b61081e60e08d018d612ae0565b6040518763ffffffff1660e01b815260040161083f96959493929190612b4b565b6020604051808303815f875af115801561085b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087f9190612b8a565b5f818152600760205260409020549091506001600160a01b031681816108bb576040516381c4951960e01b815260040161057791815260200190565b5060c085018290526001600160a01b0381166101408601525f86815260066020908152604090912086518155908601518691906108fe90600183019060026122e7565b5060408201518160020155606082015181600301906002610920929190612382565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b03909216919091179055610100820151600982019061097a9082612c1f565b50610120820151600a8201906109909082612c1f565b50610140820151600b820180546001600160a01b0319166001600160a01b03909216919091179055610160820151600c820155610180820151600d8201556101a0820151600e8201906109e39082612c1f565b5050505f868152600960205260409020849055600254610a0e906001600160a01b0316333087611d85565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b90610a4190899087908c90600401612cda565b6020604051808303815f875af1158015610a5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a819190612cf5565b610a9e57604051630d8dbe2560e01b815260040160405180910390fd5b610aae60c0880160a089016125e6565b6001600160a01b03167f5faeb768c9b6835deb3f2cce4b94a91d0391dc4803ddf6edb6699fad8dd270418787604051610ae89291906125b2565b60405180910390a250505050915091565b5f610b02611dfa565b6001600160a01b03821615801590610b2857506002546001600160a01b03838116911614155b8290610b535760405163eddf07f560e01b81526001600160a01b039091166004820152602401610577565b5050600280546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f3906020015b60405180910390a1919050565b600660208190525f91825260409091208054600282015460058301549383015460078401546008850154600986018054959794969495939492936001600160a01b039092169291610bff90612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2b90612ba1565b8015610c765780601f10610c4d57610100808354040283529160200191610c76565b820191905f5260205f20905b815481529060010190602001808311610c5957829003601f168201915b50505050509080600a018054610c8b90612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb790612ba1565b8015610d025780601f10610cd957610100808354040283529160200191610d02565b820191905f5260205f20905b815481529060010190602001808311610ce557829003601f168201915b505050600b840154600c850154600d860154600e8701805496976001600160a01b039094169692955090935090610d3890612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6490612ba1565b8015610daf5780601f10610d8657610100808354040283529160200191610daf565b820191905f5260205f20905b815481529060010190602001808311610d9257829003601f168201915b505050505090508c565b610dc1612263565b5f82815260066020908152604080832081516101c0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610dfc57505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610e6257505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a090920191610ec390612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610eef90612ba1565b8015610f3a5780601f10610f1157610100808354040283529160200191610f3a565b820191905f5260205f20905b815481529060010190602001808311610f1d57829003601f168201915b50505050508152602001600a82018054610f5390612ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7f90612ba1565b8015610fca5780601f10610fa157610100808354040283529160200191610fca565b820191905f5260205f20905b815481529060010190602001808311610fad57829003601f168201915b5050509183525050600b8201546001600160a01b03166020820152600c8201546040820152600d8201546060820152600e8201805460809092019161100e90612ba1565b80601f016020809104026020016040519081016040528092919081815260200182805461103a90612ba1565b80156110855780601f1061105c57610100808354040283529160200191611085565b820191905f5260205f20905b81548152906001019060200180831161106857829003601f168201915b5050509190925250505060e081015190915082906001600160a01b03166110c25760405163cd6f4a4f60e01b815260040161057791815260200190565b50919050565b5f6110d1611dfa565b5f8281526007602052604090205482906001600160a01b031661110a576040516381c4951960e01b815260040161057791815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610ba29084815260200190565b5f611165611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff166111ab576040516321ac7c5f60e01b81526001600160a01b039091166004820152602401610577565b50506001600160a01b0381165f81815260056020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610ba2565b5f5f61120b85610db9565b90508060a001515f14859061123657604051633e26347b60e21b815260040161057791815260200190565b5060608101515142101561125d5760405163a0750b5160e01b815260040160405180910390fd5b60608101516020015142111561128657604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018890526001600160a01b039091169063e82f3b7090602401602060405180830381865afa1580156112cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f19190612b8a565b9050808585604051611304929190612d14565b60405180910390201461132a57604051630d8dbe2560e01b815260040160405180910390fd5b5f82608001514261133b9190612d23565b5f8881526006602081905260409182902001829055519091506113619087908790612d14565b604080519182900382205f8a8152600660205291909120600c01557f50df9e2c9fc5a7f4a07e403fa0300b88fcc8c6943bdff4b8ae71f55b7fd95f89906113af90899084908a908a90612d36565b60405180910390a15060019695505050505050565b6113cc611dfa565b6113d55f611e55565b565b5f5f6113e287610db9565b90505f8160a0015111879061140d5760405163166b4d0360e01b815260040161057791815260200190565b5061018081015187906114365760405163032c20ef60e21b815260040161057791815260200190565b506101a081015151879015611461576040516360ec327960e01b815260040161057791815260200190565b505f878152600660205260409020600e0161147d868883612d5f565b508061014001516001600160a01b0316632f0e1bbf8888886040516114a3929190612d14565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1682526114e6929189908990600401612d36565b602060405180830381865afa158015611501573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115259190612cf5565b915085858361154957604051632f9f8ab960e01b8152600401610577929190612e19565b505061155487611ec5565b867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca1698787604051611586929190612e19565b60405180910390a25095945050505050565b5f5f6115a387610db9565b90505f8160a001511187906115ce5760405163166b4d0360e01b815260040161057791815260200190565b5060a0810151879042811115611600576040516370c05fb960e11b815260048101929092526024820152604401610577565b505061018081015187901561162b57604051637eb9cea960e11b815260040161057791815260200190565b505f868660405161163d929190612d14565b604080519182900382205f8b8152600660205291909120600d0181905560e0840151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf90611690908b9085908a908a90600401612d36565b6020604051808303815f875af11580156116ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d09190612cf5565b92508686846116f457604051632f9f8ab960e01b8152600401610577929190612e19565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade0718888604051611728929190612e19565b60405180910390a2505095945050505050565b620f4240806110c2565b5f61174e611dfa565b81515f5b818110156117ad576001600885838151811061177057611770612a31565b60200260200101516040516117859190612e2c565b908152604051908190036020019020805491151560ff19909216919091179055600101611752565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516117e19190612e42565b60405180910390a150919050565b5f6117f8611dfa565b6001600160a01b0382161580159061182957505f838152600760205260409020546001600160a01b03838116911614155b839061184b576040516381c4951960e01b815260040161057791815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6118b9611dfa565b5060038190556040518181526001907fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610ba2565b5f5f6118fd85610db9565b90505f8160a001511185906119285760405163166b4d0360e01b815260040161057791815260200190565b5060a081015185904281116119595760405163142c294360e31b815260048101929092526024820152604401610577565b50508060e001516001600160a01b031663d927910e863387876040518563ffffffff1660e01b81526004016119919493929190612ea5565b5f604051808303815f87803b1580156119a8575f5ffd5b505af11580156119ba573d5f5f3e3d5ffd5b50600198975050505050505050565b5f6119d2611dfa565b6001600160a01b038216158015906119f857506001546001600160a01b03838116911614155b8290611a23576040516320252f0b60e01b81526001600160a01b039091166004820152602401610577565b5050600180546001600160a01b0319166001600160a01b03831690811782556040519081527fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a790602001610ba2565b5f611a7b612171565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015611aa75750825b90505f8267ffffffffffffffff166001148015611ac35750303b155b905081158015611ad1575080155b15611aef5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b2357845468ff00000000000000001916680100000000000000001785555b611b2c3361219b565b611b35876118b0565b50611b3f8a611c30565b50611b49896119c9565b50611b5388610af9565b50611b5d86611745565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038c8116911614611b9b57611b9b8b611bf3565b8315611be657845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b611bfb611dfa565b6001600160a01b038116611c2457604051631e4fbdf760e01b81525f6004820152602401610577565b611c2d81611e55565b50565b5f611c39611dfa565b6001600160a01b03821615801590611c5e57505f546001600160a01b03838116911614155b8290611c89576040516375ac4eb760e11b81526001600160a01b039091166004820152602401610577565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610ba2565b5f611ce4611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff1615611d2b5760405163b29d459560e01b81526001600160a01b039091166004820152602401610577565b50506001600160a01b0381165f81815260056020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610ba2565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b179052611df49085906121ac565b50505050565b33611e2c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146113d55760405163118cdaa760e01b8152336004820152602401610577565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa158015611f0b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f329190810190612ecd565b80519091505f8167ffffffffffffffff811115611f5157611f516126ac565b604051908082528060200260200182016040528015611f7a578160200160208202803683370190505b505f8581526009602052604081205491925090611f98908490612f5d565b90505f5b83811015611fca5781838281518110611fb757611fb7612a31565b6020908102919091010152600101611f9c565b505f858152600960205260408082208054929055600254600154915163095ea7b360e01b81526001600160a01b0392831660048201526024810184905291169063095ea7b3906044016020604051808303815f875af115801561202f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120539190612cf5565b50600154600254604051636ec640c760e11b81526001600160a01b039283169263dd8c818e9261208c9291169089908890600401612fef565b5f604051808303815f87803b1580156120a3575f5ffd5b505af11580156120b5573d5f5f3e3d5ffd5b505060025460015460405163095ea7b360e01b81526001600160a01b0391821660048201525f60248201529116925063095ea7b391506044016020604051808303815f875af115801561210a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e9190612cf5565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a8685604051612161929190613022565b60405180910390a2505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b6121a3612218565b611c2d8161223d565b5f5f60205f8451602086015f885af1806121cb576040513d5f823e3d81fd5b50505f513d915081156121e25780600114156121ef565b6001600160a01b0384163b155b15611df457604051635274afe760e01b81526001600160a01b0385166004820152602401610577565b612220612245565b6113d557604051631afcd79f60e31b815260040160405180910390fd5b611bfb612218565b5f61224e612171565b5468010000000000000000900460ff16919050565b604051806101c001604052805f815260200161227d6123b0565b81526020015f81526020016122906123b0565b81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081525090565b600183019183908215612372579160200282015f5b8382111561234057835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026122fc565b80156123705782816101000a81549063ffffffff0219169055600401602081600301049283019260010302612340565b505b5061237e9291506123ce565b5090565b8260028101928215612372579160200282015b82811115612372578251825591602001919060010190612395565b60405180604001604052806002906020820280368337509192915050565b5b8082111561237e575f81556001016123cf565b5f602082840312156123f2575f5ffd5b5035919050565b5f60208284031215612409575f5ffd5b813567ffffffffffffffff81111561241f575f5ffd5b82016101208185031215612431575f5ffd5b9392505050565b805f5b6002811015611df457815163ffffffff1684526020938401939091019060010161243b565b805f5b6002811015611df4578151845260209384019390910190600101612463565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b805182525f60208201516124c76020850182612438565b506040820151606084015260608201516124e46080850182612460565b50608082015160c084015260a082015160e084015260c082015161010084015260e082015161251f6101208501826001600160a01b03169052565b5061010082015161020061014085015261253d610200850182612482565b90506101208301518482036101608601526125588282612482565b9150506101408301516125776101808601826001600160a01b03169052565b506101608301516101a08501526101808301516101c08501526101a08301518482036101e08601526125a98282612482565b95945050505050565b828152604060208201525f6125ca60408301846124b0565b949350505050565b6001600160a01b0381168114611c2d575f5ffd5b5f602082840312156125f6575f5ffd5b8135612431816125d2565b8c81528b60208201528a60408201528960608201528860808201526001600160a01b03881660a082015261018060c08201525f612642610180830189612482565b82810360e08401526126548189612482565b90506001600160a01b03871661010084015285610120840152846101408401528281036101608401526126878185612482565b9f9e505050505050505050505050505050565b602081525f61243160208301846124b0565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156126e9576126e96126ac565b604052919050565b5f82601f830112612700575f5ffd5b813567ffffffffffffffff81111561271a5761271a6126ac565b61272d601f8201601f19166020016126c0565b818152846020838601011115612741575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561276d575f5ffd5b813567ffffffffffffffff811115612783575f5ffd5b6125ca848285016126f1565b5f5f83601f84011261279f575f5ffd5b50813567ffffffffffffffff8111156127b6575f5ffd5b6020830191508360208285010111156127cd575f5ffd5b9250929050565b5f5f5f604084860312156127e6575f5ffd5b83359250602084013567ffffffffffffffff811115612803575f5ffd5b61280f8682870161278f565b9497909650939450505050565b5f5f5f5f5f60608688031215612830575f5ffd5b85359450602086013567ffffffffffffffff81111561284d575f5ffd5b6128598882890161278f565b909550935050604086013567ffffffffffffffff811115612878575f5ffd5b6128848882890161278f565b969995985093965092949392505050565b5f67ffffffffffffffff8211156128ae576128ae6126ac565b5060051b60200190565b5f82601f8301126128c7575f5ffd5b81356128da6128d582612895565b6126c0565b8082825260208201915060208360051b8601019250858311156128fb575f5ffd5b602085015b8381101561293c57803567ffffffffffffffff81111561291e575f5ffd5b61292d886020838a01016126f1565b84525060209283019201612900565b5095945050505050565b5f60208284031215612956575f5ffd5b813567ffffffffffffffff81111561296c575f5ffd5b6125ca848285016128b8565b5f5f60408385031215612989575f5ffd5b82359150602083013561299b816125d2565b809150509250929050565b5f5f5f5f5f5f60c087890312156129bb575f5ffd5b86356129c6816125d2565b955060208701356129d6816125d2565b945060408701356129e6816125d2565b935060608701356129f6816125d2565b92506080870135915060a087013567ffffffffffffffff811115612a18575f5ffd5b612a2489828a016128b8565b9150509295509295509295565b634e487b7160e01b5f52603260045260245ffd5b803563ffffffff81168114612a58575f5ffd5b919050565b5f60208284031215612a6d575f5ffd5b61243182612a45565b805f5b6002811015611df45763ffffffff612a9083612a45565b1684526020938401939190910190600101612a79565b604081016121958284612a76565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612ad957612ad9612ab4565b5060010190565b5f5f8335601e19843603018112612af5575f5ffd5b83018035915067ffffffffffffffff821115612b0f575f5ffd5b6020019150368190038213156127cd575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b868152856020820152608060408201525f612b6a608083018688612b23565b8281036060840152612b7d818587612b23565b9998505050505050505050565b5f60208284031215612b9a575f5ffd5b5051919050565b600181811c90821680612bb557607f821691505b6020821081036110c257634e487b7160e01b5f52602260045260245ffd5b601f821115612c1a57805f5260205f20601f840160051c81016020851015612bf85750805b601f840160051c820191505b81811015612c17575f8155600101612c04565b50505b505050565b815167ffffffffffffffff811115612c3957612c396126ac565b612c4d81612c478454612ba1565b84612bd3565b6020601f821160018114612c7f575f8315612c685750848201515b5f19600385901b1c1916600184901b178455612c17565b5f84815260208120601f198516915b82811015612cae5787850151825560209485019460019092019101612c8e565b5084821015612ccb57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016125ca6040830184612a76565b5f60208284031215612d05575f5ffd5b81518015158114612431575f5ffd5b818382375f9101908152919050565b8082018082111561219557612195612ab4565b848152836020820152606060408201525f612d55606083018486612b23565b9695505050505050565b67ffffffffffffffff831115612d7757612d776126ac565b612d8b83612d858354612ba1565b83612bd3565b5f601f841160018114612dbc575f8515612da55750838201355b5f19600387901b1c1916600186901b178355612c17565b5f83815260208120601f198716915b82811015612deb5786850135825560209485019460019092019101612dcb565b5086821015612e07575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b602081525f6125ca602083018486612b23565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612e9957603f19878603018452612e84858351612482565b94506020938401939190910190600101612e68565b50929695505050505050565b8481526001600160a01b0384166020820152606060408201525f612d55606083018486612b23565b5f60208284031215612edd575f5ffd5b815167ffffffffffffffff811115612ef3575f5ffd5b8201601f81018413612f03575f5ffd5b8051612f116128d582612895565b8082825260208201915060208360051b850101925086831115612f32575f5ffd5b6020840193505b82841015612d55578351612f4c816125d2565b825260209384019390910190612f39565b5f82612f7757634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602084019350602083015f5b82811015612fb55781516001600160a01b0316865260209586019590910190600101612f8e565b5093949350505050565b5f8151808452602084019350602083015f5b82811015612fb5578151865260209586019590910190600101612fd1565b6001600160a01b0384168152606060208201525f6130106060830185612f7c565b8281036040840152612d558185612fbf565b604081525f6130346040830185612f7c565b82810360208401526125a98185612fbf56fea164736f6c634300081c000a";
20
19
  static readonly abi: readonly [{
21
- readonly inputs: readonly [{
22
- readonly internalType: "address";
23
- readonly name: "_owner";
24
- readonly type: "address";
25
- }, {
26
- readonly internalType: "contract ICiphernodeRegistry";
27
- readonly name: "_ciphernodeRegistry";
28
- readonly type: "address";
29
- }, {
30
- readonly internalType: "uint256";
31
- readonly name: "_maxDuration";
32
- readonly type: "uint256";
33
- }, {
34
- readonly internalType: "bytes[]";
35
- readonly name: "_e3ProgramsParams";
36
- readonly type: "bytes[]";
37
- }];
20
+ readonly inputs: readonly [];
38
21
  readonly stateMutability: "nonpayable";
39
22
  readonly type: "constructor";
40
23
  }, {
@@ -123,19 +106,19 @@ export declare class Enclave__factory extends ContractFactory {
123
106
  readonly type: "error";
124
107
  }, {
125
108
  readonly inputs: readonly [{
126
- readonly internalType: "contract ICiphernodeRegistry";
127
- readonly name: "ciphernodeRegistry";
109
+ readonly internalType: "contract IBondingRegistry";
110
+ readonly name: "bondingRegistry";
128
111
  readonly type: "address";
129
112
  }];
130
- readonly name: "InvalidCiphernodeRegistry";
113
+ readonly name: "InvalidBondingRegistry";
131
114
  readonly type: "error";
132
115
  }, {
133
116
  readonly inputs: readonly [{
134
- readonly internalType: "contract IInputValidator";
135
- readonly name: "inputValidator";
117
+ readonly internalType: "contract ICiphernodeRegistry";
118
+ readonly name: "ciphernodeRegistry";
136
119
  readonly type: "address";
137
120
  }];
138
- readonly name: "InvalidComputationRequest";
121
+ readonly name: "InvalidCiphernodeRegistry";
139
122
  readonly type: "error";
140
123
  }, {
141
124
  readonly inputs: readonly [{
@@ -153,6 +136,14 @@ export declare class Enclave__factory extends ContractFactory {
153
136
  }];
154
137
  readonly name: "InvalidEncryptionScheme";
155
138
  readonly type: "error";
139
+ }, {
140
+ readonly inputs: readonly [{
141
+ readonly internalType: "contract IERC20";
142
+ readonly name: "feeToken";
143
+ readonly type: "address";
144
+ }];
145
+ readonly name: "InvalidFeeToken";
146
+ readonly type: "error";
156
147
  }, {
157
148
  readonly inputs: readonly [];
158
149
  readonly name: "InvalidInitialization";
@@ -181,18 +172,6 @@ export declare class Enclave__factory extends ContractFactory {
181
172
  }];
182
173
  readonly name: "InvalidThreshold";
183
174
  readonly type: "error";
184
- }, {
185
- readonly inputs: readonly [];
186
- readonly name: "LeafAlreadyExists";
187
- readonly type: "error";
188
- }, {
189
- readonly inputs: readonly [];
190
- readonly name: "LeafCannotBeZero";
191
- readonly type: "error";
192
- }, {
193
- readonly inputs: readonly [];
194
- readonly name: "LeafGreaterThanSnarkScalarField";
195
- readonly type: "error";
196
175
  }, {
197
176
  readonly inputs: readonly [{
198
177
  readonly internalType: "address";
@@ -245,6 +224,14 @@ export declare class Enclave__factory extends ContractFactory {
245
224
  }];
246
225
  readonly name: "PlaintextOutputAlreadyPublished";
247
226
  readonly type: "error";
227
+ }, {
228
+ readonly inputs: readonly [{
229
+ readonly internalType: "address";
230
+ readonly name: "token";
231
+ readonly type: "address";
232
+ }];
233
+ readonly name: "SafeERC20FailedOperation";
234
+ readonly type: "error";
248
235
  }, {
249
236
  readonly anonymous: false;
250
237
  readonly inputs: readonly [{
@@ -255,6 +242,16 @@ export declare class Enclave__factory extends ContractFactory {
255
242
  }];
256
243
  readonly name: "AllowedE3ProgramsParamsSet";
257
244
  readonly type: "event";
245
+ }, {
246
+ readonly anonymous: false;
247
+ readonly inputs: readonly [{
248
+ readonly indexed: false;
249
+ readonly internalType: "address";
250
+ readonly name: "bondingRegistry";
251
+ readonly type: "address";
252
+ }];
253
+ readonly name: "BondingRegistrySet";
254
+ readonly type: "event";
258
255
  }, {
259
256
  readonly anonymous: false;
260
257
  readonly inputs: readonly [{
@@ -365,9 +362,9 @@ export declare class Enclave__factory extends ContractFactory {
365
362
  readonly name: "e3ProgramParams";
366
363
  readonly type: "bytes";
367
364
  }, {
368
- readonly internalType: "contract IInputValidator";
369
- readonly name: "inputValidator";
370
- readonly type: "address";
365
+ readonly internalType: "bytes";
366
+ readonly name: "customParams";
367
+ readonly type: "bytes";
371
368
  }, {
372
369
  readonly internalType: "contract IDecryptionVerifier";
373
370
  readonly name: "decryptionVerifier";
@@ -389,11 +386,6 @@ export declare class Enclave__factory extends ContractFactory {
389
386
  readonly internalType: "struct E3";
390
387
  readonly name: "e3";
391
388
  readonly type: "tuple";
392
- }, {
393
- readonly indexed: false;
394
- readonly internalType: "address";
395
- readonly name: "filter";
396
- readonly type: "address";
397
389
  }, {
398
390
  readonly indexed: true;
399
391
  readonly internalType: "contract IE3Program";
@@ -422,6 +414,16 @@ export declare class Enclave__factory extends ContractFactory {
422
414
  }];
423
415
  readonly name: "EncryptionSchemeEnabled";
424
416
  readonly type: "event";
417
+ }, {
418
+ readonly anonymous: false;
419
+ readonly inputs: readonly [{
420
+ readonly indexed: false;
421
+ readonly internalType: "address";
422
+ readonly name: "feeToken";
423
+ readonly type: "address";
424
+ }];
425
+ readonly name: "FeeTokenSet";
426
+ readonly type: "event";
425
427
  }, {
426
428
  readonly anonymous: false;
427
429
  readonly inputs: readonly [{
@@ -497,6 +499,26 @@ export declare class Enclave__factory extends ContractFactory {
497
499
  }];
498
500
  readonly name: "PlaintextOutputPublished";
499
501
  readonly type: "event";
502
+ }, {
503
+ readonly anonymous: false;
504
+ readonly inputs: readonly [{
505
+ readonly indexed: true;
506
+ readonly internalType: "uint256";
507
+ readonly name: "e3Id";
508
+ readonly type: "uint256";
509
+ }, {
510
+ readonly indexed: false;
511
+ readonly internalType: "address[]";
512
+ readonly name: "nodes";
513
+ readonly type: "address[]";
514
+ }, {
515
+ readonly indexed: false;
516
+ readonly internalType: "uint256[]";
517
+ readonly name: "amounts";
518
+ readonly type: "uint256[]";
519
+ }];
520
+ readonly name: "RewardsDistributed";
521
+ readonly type: "event";
500
522
  }, {
501
523
  readonly inputs: readonly [{
502
524
  readonly internalType: "uint256";
@@ -515,6 +537,16 @@ export declare class Enclave__factory extends ContractFactory {
515
537
  }];
516
538
  readonly stateMutability: "nonpayable";
517
539
  readonly type: "function";
540
+ }, {
541
+ readonly inputs: readonly [];
542
+ readonly name: "bondingRegistry";
543
+ readonly outputs: readonly [{
544
+ readonly internalType: "contract IBondingRegistry";
545
+ readonly name: "";
546
+ readonly type: "address";
547
+ }];
548
+ readonly stateMutability: "view";
549
+ readonly type: "function";
518
550
  }, {
519
551
  readonly inputs: readonly [];
520
552
  readonly name: "ciphernodeRegistry";
@@ -567,6 +599,20 @@ export declare class Enclave__factory extends ContractFactory {
567
599
  }];
568
600
  readonly stateMutability: "nonpayable";
569
601
  readonly type: "function";
602
+ }, {
603
+ readonly inputs: readonly [{
604
+ readonly internalType: "uint256";
605
+ readonly name: "e3Id";
606
+ readonly type: "uint256";
607
+ }];
608
+ readonly name: "e3Payments";
609
+ readonly outputs: readonly [{
610
+ readonly internalType: "uint256";
611
+ readonly name: "e3Payment";
612
+ readonly type: "uint256";
613
+ }];
614
+ readonly stateMutability: "view";
615
+ readonly type: "function";
570
616
  }, {
571
617
  readonly inputs: readonly [{
572
618
  readonly internalType: "contract IE3Program";
@@ -631,9 +677,9 @@ export declare class Enclave__factory extends ContractFactory {
631
677
  readonly name: "e3ProgramParams";
632
678
  readonly type: "bytes";
633
679
  }, {
634
- readonly internalType: "contract IInputValidator";
635
- readonly name: "inputValidator";
636
- readonly type: "address";
680
+ readonly internalType: "bytes";
681
+ readonly name: "customParams";
682
+ readonly type: "bytes";
637
683
  }, {
638
684
  readonly internalType: "contract IDecryptionVerifier";
639
685
  readonly name: "decryptionVerifier";
@@ -667,6 +713,16 @@ export declare class Enclave__factory extends ContractFactory {
667
713
  }];
668
714
  readonly stateMutability: "nonpayable";
669
715
  readonly type: "function";
716
+ }, {
717
+ readonly inputs: readonly [];
718
+ readonly name: "feeToken";
719
+ readonly outputs: readonly [{
720
+ readonly internalType: "contract IERC20";
721
+ readonly name: "";
722
+ readonly type: "address";
723
+ }];
724
+ readonly stateMutability: "view";
725
+ readonly type: "function";
670
726
  }, {
671
727
  readonly inputs: readonly [{
672
728
  readonly internalType: "bytes32";
@@ -726,9 +782,9 @@ export declare class Enclave__factory extends ContractFactory {
726
782
  readonly name: "e3ProgramParams";
727
783
  readonly type: "bytes";
728
784
  }, {
729
- readonly internalType: "contract IInputValidator";
730
- readonly name: "inputValidator";
731
- readonly type: "address";
785
+ readonly internalType: "bytes";
786
+ readonly name: "customParams";
787
+ readonly type: "bytes";
732
788
  }, {
733
789
  readonly internalType: "contract IDecryptionVerifier";
734
790
  readonly name: "decryptionVerifier";
@@ -754,17 +810,46 @@ export declare class Enclave__factory extends ContractFactory {
754
810
  readonly type: "function";
755
811
  }, {
756
812
  readonly inputs: readonly [{
757
- readonly internalType: "uint256";
758
- readonly name: "e3Id";
759
- readonly type: "uint256";
813
+ readonly components: readonly [{
814
+ readonly internalType: "uint32[2]";
815
+ readonly name: "threshold";
816
+ readonly type: "uint32[2]";
817
+ }, {
818
+ readonly internalType: "uint256[2]";
819
+ readonly name: "startWindow";
820
+ readonly type: "uint256[2]";
821
+ }, {
822
+ readonly internalType: "uint256";
823
+ readonly name: "duration";
824
+ readonly type: "uint256";
825
+ }, {
826
+ readonly internalType: "contract IE3Program";
827
+ readonly name: "e3Program";
828
+ readonly type: "address";
829
+ }, {
830
+ readonly internalType: "bytes";
831
+ readonly name: "e3ProgramParams";
832
+ readonly type: "bytes";
833
+ }, {
834
+ readonly internalType: "bytes";
835
+ readonly name: "computeProviderParams";
836
+ readonly type: "bytes";
837
+ }, {
838
+ readonly internalType: "bytes";
839
+ readonly name: "customParams";
840
+ readonly type: "bytes";
841
+ }];
842
+ readonly internalType: "struct IEnclave.E3RequestParams";
843
+ readonly name: "";
844
+ readonly type: "tuple";
760
845
  }];
761
- readonly name: "getInputRoot";
846
+ readonly name: "getE3Quote";
762
847
  readonly outputs: readonly [{
763
848
  readonly internalType: "uint256";
764
- readonly name: "";
849
+ readonly name: "fee";
765
850
  readonly type: "uint256";
766
851
  }];
767
- readonly stateMutability: "view";
852
+ readonly stateMutability: "pure";
768
853
  readonly type: "function";
769
854
  }, {
770
855
  readonly inputs: readonly [{
@@ -775,6 +860,14 @@ export declare class Enclave__factory extends ContractFactory {
775
860
  readonly internalType: "contract ICiphernodeRegistry";
776
861
  readonly name: "_ciphernodeRegistry";
777
862
  readonly type: "address";
863
+ }, {
864
+ readonly internalType: "contract IBondingRegistry";
865
+ readonly name: "_bondingRegistry";
866
+ readonly type: "address";
867
+ }, {
868
+ readonly internalType: "contract IERC20";
869
+ readonly name: "_feeToken";
870
+ readonly type: "address";
778
871
  }, {
779
872
  readonly internalType: "uint256";
780
873
  readonly name: "_maxDuration";
@@ -788,38 +881,6 @@ export declare class Enclave__factory extends ContractFactory {
788
881
  readonly outputs: readonly [];
789
882
  readonly stateMutability: "nonpayable";
790
883
  readonly type: "function";
791
- }, {
792
- readonly inputs: readonly [{
793
- readonly internalType: "uint256";
794
- readonly name: "e3Id";
795
- readonly type: "uint256";
796
- }];
797
- readonly name: "inputCounts";
798
- readonly outputs: readonly [{
799
- readonly internalType: "uint256";
800
- readonly name: "inputCount";
801
- readonly type: "uint256";
802
- }];
803
- readonly stateMutability: "view";
804
- readonly type: "function";
805
- }, {
806
- readonly inputs: readonly [{
807
- readonly internalType: "uint256";
808
- readonly name: "e3Id";
809
- readonly type: "uint256";
810
- }];
811
- readonly name: "inputs";
812
- readonly outputs: readonly [{
813
- readonly internalType: "uint256";
814
- readonly name: "size";
815
- readonly type: "uint256";
816
- }, {
817
- readonly internalType: "uint256";
818
- readonly name: "depth";
819
- readonly type: "uint256";
820
- }];
821
- readonly stateMutability: "view";
822
- readonly type: "function";
823
884
  }, {
824
885
  readonly inputs: readonly [];
825
886
  readonly name: "maxDuration";
@@ -921,10 +982,6 @@ export declare class Enclave__factory extends ContractFactory {
921
982
  }, {
922
983
  readonly inputs: readonly [{
923
984
  readonly components: readonly [{
924
- readonly internalType: "address";
925
- readonly name: "filter";
926
- readonly type: "address";
927
- }, {
928
985
  readonly internalType: "uint32[2]";
929
986
  readonly name: "threshold";
930
987
  readonly type: "uint32[2]";
@@ -948,6 +1005,10 @@ export declare class Enclave__factory extends ContractFactory {
948
1005
  readonly internalType: "bytes";
949
1006
  readonly name: "computeProviderParams";
950
1007
  readonly type: "bytes";
1008
+ }, {
1009
+ readonly internalType: "bytes";
1010
+ readonly name: "customParams";
1011
+ readonly type: "bytes";
951
1012
  }];
952
1013
  readonly internalType: "struct IEnclave.E3RequestParams";
953
1014
  readonly name: "requestParams";
@@ -996,9 +1057,9 @@ export declare class Enclave__factory extends ContractFactory {
996
1057
  readonly name: "e3ProgramParams";
997
1058
  readonly type: "bytes";
998
1059
  }, {
999
- readonly internalType: "contract IInputValidator";
1000
- readonly name: "inputValidator";
1001
- readonly type: "address";
1060
+ readonly internalType: "bytes";
1061
+ readonly name: "customParams";
1062
+ readonly type: "bytes";
1002
1063
  }, {
1003
1064
  readonly internalType: "contract IDecryptionVerifier";
1004
1065
  readonly name: "decryptionVerifier";
@@ -1020,7 +1081,21 @@ export declare class Enclave__factory extends ContractFactory {
1020
1081
  readonly name: "e3";
1021
1082
  readonly type: "tuple";
1022
1083
  }];
1023
- readonly stateMutability: "payable";
1084
+ readonly stateMutability: "nonpayable";
1085
+ readonly type: "function";
1086
+ }, {
1087
+ readonly inputs: readonly [{
1088
+ readonly internalType: "contract IBondingRegistry";
1089
+ readonly name: "_bondingRegistry";
1090
+ readonly type: "address";
1091
+ }];
1092
+ readonly name: "setBondingRegistry";
1093
+ readonly outputs: readonly [{
1094
+ readonly internalType: "bool";
1095
+ readonly name: "success";
1096
+ readonly type: "bool";
1097
+ }];
1098
+ readonly stateMutability: "nonpayable";
1024
1099
  readonly type: "function";
1025
1100
  }, {
1026
1101
  readonly inputs: readonly [{
@@ -1068,6 +1143,20 @@ export declare class Enclave__factory extends ContractFactory {
1068
1143
  }];
1069
1144
  readonly stateMutability: "nonpayable";
1070
1145
  readonly type: "function";
1146
+ }, {
1147
+ readonly inputs: readonly [{
1148
+ readonly internalType: "contract IERC20";
1149
+ readonly name: "_feeToken";
1150
+ readonly type: "address";
1151
+ }];
1152
+ readonly name: "setFeeToken";
1153
+ readonly outputs: readonly [{
1154
+ readonly internalType: "bool";
1155
+ readonly name: "success";
1156
+ readonly type: "bool";
1157
+ }];
1158
+ readonly stateMutability: "nonpayable";
1159
+ readonly type: "function";
1071
1160
  }, {
1072
1161
  readonly inputs: readonly [{
1073
1162
  readonly internalType: "uint256";
@@ -1097,8 +1186,5 @@ export declare class Enclave__factory extends ContractFactory {
1097
1186
  attach(address: string | Addressable): Enclave;
1098
1187
  static connect(address: string, runner?: ContractRunner | null): Enclave;
1099
1188
  }
1100
- export interface EnclaveLibraryAddresses {
1101
- ["npm/poseidon-solidity@0.0.5/PoseidonT3.sol:PoseidonT3"]: string;
1102
- }
1103
1189
  export {};
1104
1190
  //# sourceMappingURL=Enclave__factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Enclave__factory.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/Enclave__factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAY,eAAe,EAAE,2BAA2B,EAAa,MAAM,QAAQ,CAAA;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACrH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAs4CxE,KAAK,wBAAwB,GACzB,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAChE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAUtD,qBAAa,gBAAiB,SAAQ,eAAe;gBAGjD,GAAG,IAAI,EAAE,wBAAwB;IAenC,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,uBAAuB,GAAG,MAAM;IAWjE,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAGhO,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9E,OAAO,CAAC,OAAO,GAAG;QACtH,qBAAqB,IAAI,2BAA2B,CAAC;KACtD,CAAC;IAEK,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,gBAAgB;IAKjE,MAAM,CAAC,QAAQ,CAAC,QAAQ,ws2BAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,gBAAgB;IAIjC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO;IAGzD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO;CAGvE;AAGD,MAAM,WAAW,uBAAuB;IAClC,CAAC,uDAAuD,CAAC,EAAE,MAAM,CAAC;CACvE"}
1
+ {"version":3,"file":"Enclave__factory.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/Enclave__factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAY,eAAe,EAAE,2BAA2B,EAAa,MAAM,QAAQ,CAAA;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AA4/CxE,KAAK,wBAAwB,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMtG,qBAAa,gBAAiB,SAAQ,eAAe;gBAErC,GAAG,IAAI,EAAE,wBAAwB;IAStC,oBAAoB,CAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAG7G,MAAM,CAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACzB,OAAO,CAAC,OAAO,GAAG;QACxD,qBAAqB,IAAI,2BAA2B,CAAC;KACtD,CAAC;IAEK,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,gBAAgB;IAKjE,MAAM,CAAC,QAAQ,CAAC,QAAQ,0lxBAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,gBAAgB;IAIjC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO;IAGzD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO;CAGvE"}