@enclave-e3/contracts 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +3 -3
  2. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/artifacts.d.ts +3 -3
  3. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -1
  4. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +3 -3
  5. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/artifacts.d.ts +4 -4
  6. package/artifacts/build-info/{solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.json → solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.json} +27 -12
  7. package/artifacts/build-info/solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.output.json +1 -0
  8. package/artifacts/contracts/E3RefundManager.sol/E3RefundManager.json +684 -0
  9. package/artifacts/contracts/E3RefundManager.sol/artifacts.d.ts +27 -0
  10. package/artifacts/contracts/Enclave.sol/Enclave.json +530 -182
  11. package/artifacts/contracts/Enclave.sol/artifacts.d.ts +4 -4
  12. package/artifacts/contracts/interfaces/IBondingRegistry.sol/IBondingRegistry.json +14 -1
  13. package/artifacts/contracts/interfaces/IBondingRegistry.sol/artifacts.d.ts +2 -2
  14. package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +55 -5
  15. package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +2 -2
  16. package/artifacts/contracts/interfaces/IComputeProvider.sol/IComputeProvider.json +1 -1
  17. package/artifacts/contracts/interfaces/IComputeProvider.sol/artifacts.d.ts +1 -1
  18. package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/IDecryptionVerifier.json +1 -1
  19. package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/artifacts.d.ts +1 -1
  20. package/artifacts/contracts/interfaces/IE3Program.sol/IE3Program.json +19 -24
  21. package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +2 -2
  22. package/artifacts/contracts/interfaces/IE3RefundManager.sol/IE3RefundManager.json +470 -0
  23. package/artifacts/contracts/interfaces/IE3RefundManager.sol/artifacts.d.ts +27 -0
  24. package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +383 -128
  25. package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +2 -2
  26. package/artifacts/contracts/interfaces/ISlashVerifier.sol/ISlashVerifier.json +1 -1
  27. package/artifacts/contracts/interfaces/ISlashVerifier.sol/artifacts.d.ts +1 -1
  28. package/artifacts/contracts/interfaces/ISlashingManager.sol/ISlashingManager.json +1 -1
  29. package/artifacts/contracts/interfaces/ISlashingManager.sol/artifacts.d.ts +1 -1
  30. package/artifacts/contracts/lib/ExitQueueLib.sol/ExitQueueLib.json +1 -1
  31. package/artifacts/contracts/lib/ExitQueueLib.sol/artifacts.d.ts +1 -1
  32. package/artifacts/contracts/registry/BondingRegistry.sol/BondingRegistry.json +16 -3
  33. package/artifacts/contracts/registry/BondingRegistry.sol/artifacts.d.ts +4 -4
  34. package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +91 -25
  35. package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +6 -6
  36. package/artifacts/contracts/slashing/SlashingManager.sol/SlashingManager.json +3 -3
  37. package/artifacts/contracts/slashing/SlashingManager.sol/artifacts.d.ts +3 -3
  38. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +57 -7
  39. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +57 -7
  40. package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +8 -8
  41. package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +3 -3
  42. package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +3 -3
  43. package/artifacts/contracts/test/MockDecryptionVerifier.sol/MockDecryptionVerifier.json +1 -1
  44. package/artifacts/contracts/test/MockDecryptionVerifier.sol/artifacts.d.ts +1 -1
  45. package/artifacts/contracts/test/MockE3Program.sol/MockE3Program.json +21 -26
  46. package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +4 -4
  47. package/artifacts/contracts/test/MockSlashingVerifier.sol/MockSlashingVerifier.json +1 -1
  48. package/artifacts/contracts/test/MockSlashingVerifier.sol/artifacts.d.ts +1 -1
  49. package/artifacts/contracts/test/MockStableToken.sol/MockUSDC.json +3 -3
  50. package/artifacts/contracts/test/MockStableToken.sol/artifacts.d.ts +3 -3
  51. package/artifacts/contracts/token/EnclaveTicketToken.sol/EnclaveTicketToken.json +14 -22
  52. package/artifacts/contracts/token/EnclaveTicketToken.sol/artifacts.d.ts +4 -4
  53. package/artifacts/contracts/token/EnclaveToken.sol/EnclaveToken.json +10 -10
  54. package/artifacts/contracts/token/EnclaveToken.sol/artifacts.d.ts +4 -4
  55. package/artifacts/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.json +89 -0
  56. package/artifacts/contracts/verifier/DkgPkVerifier.sol/CommitmentSchemeLib.json +13 -0
  57. package/artifacts/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.json +186 -0
  58. package/artifacts/contracts/verifier/DkgPkVerifier.sol/FrLib.json +13 -0
  59. package/artifacts/contracts/verifier/DkgPkVerifier.sol/Honk.json +13 -0
  60. package/artifacts/contracts/verifier/DkgPkVerifier.sol/HonkVerificationKey.json +13 -0
  61. package/artifacts/contracts/verifier/DkgPkVerifier.sol/IVerifier.json +38 -0
  62. package/artifacts/contracts/verifier/DkgPkVerifier.sol/RelationsLib.json +13 -0
  63. package/artifacts/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.json +400 -0
  64. package/artifacts/contracts/verifier/DkgPkVerifier.sol/artifacts.d.ts +155 -0
  65. package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +1 -1
  66. package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +1 -1
  67. package/contracts/E3RefundManager.sol +365 -0
  68. package/contracts/Enclave.sol +426 -119
  69. package/contracts/interfaces/IBondingRegistry.sol +6 -0
  70. package/contracts/interfaces/ICiphernodeRegistry.sol +29 -7
  71. package/contracts/interfaces/IE3.sol +2 -6
  72. package/contracts/interfaces/IE3Program.sol +3 -7
  73. package/contracts/interfaces/IE3RefundManager.sol +150 -0
  74. package/contracts/interfaces/IEnclave.sol +186 -64
  75. package/contracts/registry/BondingRegistry.sol +9 -0
  76. package/contracts/registry/CiphernodeRegistryOwnable.sol +89 -42
  77. package/contracts/test/MockCiphernodeRegistry.sol +20 -6
  78. package/contracts/test/MockE3Program.sol +3 -8
  79. package/contracts/verifier/DkgPkVerifier.sol +3140 -0
  80. package/dist/hardhat.config.d.ts.map +1 -1
  81. package/dist/hardhat.config.js +4 -4
  82. package/dist/ignition/modules/dkgPkVerifier.d.ts +3 -0
  83. package/dist/ignition/modules/dkgPkVerifier.d.ts.map +1 -0
  84. package/dist/ignition/modules/dkgPkVerifier.js +10 -0
  85. package/dist/ignition/modules/e3RefundManager.d.ts +3 -0
  86. package/dist/ignition/modules/e3RefundManager.d.ts.map +1 -0
  87. package/dist/ignition/modules/e3RefundManager.js +23 -0
  88. package/dist/ignition/modules/enclave.d.ts.map +1 -1
  89. package/dist/ignition/modules/enclave.js +10 -0
  90. package/dist/scripts/deployAndSave/e3RefundManager.d.ts +20 -0
  91. package/dist/scripts/deployAndSave/e3RefundManager.d.ts.map +1 -0
  92. package/dist/scripts/deployAndSave/e3RefundManager.js +55 -0
  93. package/dist/scripts/deployAndSave/enclave.d.ts +13 -1
  94. package/dist/scripts/deployAndSave/enclave.d.ts.map +1 -1
  95. package/dist/scripts/deployAndSave/enclave.js +8 -1
  96. package/dist/scripts/deployAndSave/verifiers.d.ts +29 -0
  97. package/dist/scripts/deployAndSave/verifiers.d.ts.map +1 -0
  98. package/dist/scripts/deployAndSave/verifiers.js +109 -0
  99. package/dist/scripts/deployEnclave.d.ts.map +1 -1
  100. package/dist/scripts/deployEnclave.js +36 -0
  101. package/dist/scripts/deployVerifiers.d.ts +2 -0
  102. package/dist/scripts/deployVerifiers.d.ts.map +1 -0
  103. package/dist/scripts/deployVerifiers.js +33 -0
  104. package/dist/scripts/index.d.ts +1 -0
  105. package/dist/scripts/index.d.ts.map +1 -1
  106. package/dist/scripts/index.js +1 -0
  107. package/dist/tasks/enclave.d.ts +0 -2
  108. package/dist/tasks/enclave.d.ts.map +1 -1
  109. package/dist/tasks/enclave.js +8 -72
  110. package/dist/tasks/program.d.ts +2 -0
  111. package/dist/tasks/program.d.ts.map +1 -0
  112. package/dist/tasks/program.js +55 -0
  113. package/dist/test/E3Lifecycle/E3Integration.spec.d.ts +2 -0
  114. package/dist/test/E3Lifecycle/E3Integration.spec.d.ts.map +1 -0
  115. package/dist/test/E3Lifecycle/E3Integration.spec.js +757 -0
  116. package/dist/test/Enclave.spec.js +83 -406
  117. package/dist/test/Registry/CiphernodeRegistryOwnable.spec.js +133 -59
  118. package/dist/types/contracts/E3RefundManager.d.ts +379 -0
  119. package/dist/types/contracts/E3RefundManager.d.ts.map +1 -0
  120. package/dist/types/contracts/E3RefundManager.js +24 -0
  121. package/dist/types/contracts/Enclave.d.ts +325 -73
  122. package/dist/types/contracts/Enclave.d.ts.map +1 -1
  123. package/dist/types/contracts/Enclave.js +27 -3
  124. package/dist/types/contracts/index.d.ts +3 -0
  125. package/dist/types/contracts/index.d.ts.map +1 -1
  126. package/dist/types/contracts/interfaces/IBondingRegistry.d.ts +11 -1
  127. package/dist/types/contracts/interfaces/IBondingRegistry.d.ts.map +1 -1
  128. package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts +35 -7
  129. package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts.map +1 -1
  130. package/dist/types/contracts/interfaces/ICiphernodeRegistry.js +4 -0
  131. package/dist/types/contracts/interfaces/IE3Program.d.ts +16 -18
  132. package/dist/types/contracts/interfaces/IE3Program.d.ts.map +1 -1
  133. package/dist/types/contracts/interfaces/IE3RefundManager.d.ts +238 -0
  134. package/dist/types/contracts/interfaces/IE3RefundManager.d.ts.map +1 -0
  135. package/dist/types/contracts/interfaces/IE3RefundManager.js +16 -0
  136. package/dist/types/contracts/interfaces/IEnclave.d.ts +290 -62
  137. package/dist/types/contracts/interfaces/IEnclave.d.ts.map +1 -1
  138. package/dist/types/contracts/interfaces/IEnclave.js +27 -3
  139. package/dist/types/contracts/interfaces/index.d.ts +1 -0
  140. package/dist/types/contracts/interfaces/index.d.ts.map +1 -1
  141. package/dist/types/contracts/registry/BondingRegistry.d.ts +11 -1
  142. package/dist/types/contracts/registry/BondingRegistry.d.ts.map +1 -1
  143. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts +35 -7
  144. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts.map +1 -1
  145. package/dist/types/contracts/registry/CiphernodeRegistryOwnable.js +4 -0
  146. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts +35 -7
  147. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts.map +1 -1
  148. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.js +4 -0
  149. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts +35 -7
  150. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
  151. package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.js +4 -0
  152. package/dist/types/contracts/test/MockE3Program.d.ts +16 -18
  153. package/dist/types/contracts/test/MockE3Program.d.ts.map +1 -1
  154. package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts +36 -0
  155. package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts.map +1 -0
  156. package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.js +1 -0
  157. package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts +36 -0
  158. package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts.map +1 -0
  159. package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.js +1 -0
  160. package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts +36 -0
  161. package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts.map +1 -0
  162. package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.js +1 -0
  163. package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts +138 -0
  164. package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts.map +1 -0
  165. package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.js +1 -0
  166. package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
  167. package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
  168. package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.js +1 -0
  169. package/dist/types/contracts/verifier/index.d.ts +3 -0
  170. package/dist/types/contracts/verifier/index.d.ts.map +1 -0
  171. package/dist/types/contracts/verifier/index.js +1 -0
  172. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
  173. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -1
  174. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
  175. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +1 -1
  176. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts.map +1 -1
  177. package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +1 -1
  178. package/dist/types/factories/contracts/E3RefundManager__factory.d.ts +540 -0
  179. package/dist/types/factories/contracts/E3RefundManager__factory.d.ts.map +1 -0
  180. package/dist/types/factories/contracts/E3RefundManager__factory.js +706 -0
  181. package/dist/types/factories/contracts/Enclave__factory.d.ts +412 -143
  182. package/dist/types/factories/contracts/Enclave__factory.d.ts.map +1 -1
  183. package/dist/types/factories/contracts/Enclave__factory.js +528 -180
  184. package/dist/types/factories/contracts/index.d.ts +2 -0
  185. package/dist/types/factories/contracts/index.d.ts.map +1 -1
  186. package/dist/types/factories/contracts/index.js +2 -0
  187. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts +10 -0
  188. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts.map +1 -1
  189. package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.js +13 -0
  190. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts +42 -4
  191. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts.map +1 -1
  192. package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.js +54 -4
  193. package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts +14 -18
  194. package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts.map +1 -1
  195. package/dist/types/factories/contracts/interfaces/IE3Program__factory.js +18 -23
  196. package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts +358 -0
  197. package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts.map +1 -0
  198. package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.js +471 -0
  199. package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts +303 -103
  200. package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts.map +1 -1
  201. package/dist/types/factories/contracts/interfaces/IEnclave__factory.js +382 -127
  202. package/dist/types/factories/contracts/interfaces/index.d.ts +1 -0
  203. package/dist/types/factories/contracts/interfaces/index.d.ts.map +1 -1
  204. package/dist/types/factories/contracts/interfaces/index.js +1 -0
  205. package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts +11 -1
  206. package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts.map +1 -1
  207. package/dist/types/factories/contracts/registry/BondingRegistry__factory.js +14 -1
  208. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts +62 -12
  209. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts.map +1 -1
  210. package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.js +79 -13
  211. package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts +1 -1
  212. package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts.map +1 -1
  213. package/dist/types/factories/contracts/slashing/SlashingManager__factory.js +1 -1
  214. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts +43 -5
  215. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts.map +1 -1
  216. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.js +55 -5
  217. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts +43 -5
  218. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts.map +1 -1
  219. package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.js +55 -5
  220. package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts +1 -1
  221. package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts.map +1 -1
  222. package/dist/types/factories/contracts/test/MockComputeProvider__factory.js +1 -1
  223. package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts +15 -19
  224. package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts.map +1 -1
  225. package/dist/types/factories/contracts/test/MockE3Program__factory.js +19 -24
  226. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts +1 -1
  227. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts.map +1 -1
  228. package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.js +1 -1
  229. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts +1 -1
  230. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts.map +1 -1
  231. package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.js +1 -1
  232. package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts +1 -1
  233. package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts.map +1 -1
  234. package/dist/types/factories/contracts/token/EnclaveToken__factory.js +1 -1
  235. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts +66 -0
  236. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts.map +1 -0
  237. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.js +90 -0
  238. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts +87 -0
  239. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts.map +1 -0
  240. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.js +122 -0
  241. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts +26 -0
  242. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts.map +1 -0
  243. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.js +39 -0
  244. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts +323 -0
  245. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts.map +1 -0
  246. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.js +422 -0
  247. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
  248. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
  249. package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.js +7 -0
  250. package/dist/types/factories/contracts/verifier/index.d.ts +2 -0
  251. package/dist/types/factories/contracts/verifier/index.d.ts.map +1 -0
  252. package/dist/types/factories/contracts/verifier/index.js +4 -0
  253. package/dist/types/index.d.ts +12 -0
  254. package/dist/types/index.d.ts.map +1 -1
  255. package/dist/types/index.js +6 -0
  256. package/package.json +17 -3
  257. package/artifacts/build-info/solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.output.json +0 -1
@@ -39,6 +39,11 @@
39
39
  "name": "CommitteeAlreadyRequested",
40
40
  "type": "error"
41
41
  },
42
+ {
43
+ "inputs": [],
44
+ "name": "CommitteeDeadlineReached",
45
+ "type": "error"
46
+ },
42
47
  {
43
48
  "inputs": [],
44
49
  "name": "CommitteeNotFinalized",
@@ -59,6 +64,22 @@
59
64
  "name": "CommitteeNotRequested",
60
65
  "type": "error"
61
66
  },
67
+ {
68
+ "inputs": [
69
+ {
70
+ "internalType": "uint256",
71
+ "name": "requested",
72
+ "type": "uint256"
73
+ },
74
+ {
75
+ "internalType": "uint256",
76
+ "name": "available",
77
+ "type": "uint256"
78
+ }
79
+ ],
80
+ "name": "InsufficientCiphernodes",
81
+ "type": "error"
82
+ },
62
83
  {
63
84
  "inputs": [],
64
85
  "name": "InvalidInitialization",
@@ -157,11 +178,6 @@
157
178
  "name": "OwnableUnauthorizedAccount",
158
179
  "type": "error"
159
180
  },
160
- {
161
- "inputs": [],
162
- "name": "SubmissionDeadlineReached",
163
- "type": "error"
164
- },
165
181
  {
166
182
  "inputs": [],
167
183
  "name": "SubmissionWindowClosed",
@@ -305,6 +321,31 @@
305
321
  "name": "CommitteeFinalized",
306
322
  "type": "event"
307
323
  },
324
+ {
325
+ "anonymous": false,
326
+ "inputs": [
327
+ {
328
+ "indexed": true,
329
+ "internalType": "uint256",
330
+ "name": "e3Id",
331
+ "type": "uint256"
332
+ },
333
+ {
334
+ "indexed": false,
335
+ "internalType": "uint256",
336
+ "name": "nodesSubmitted",
337
+ "type": "uint256"
338
+ },
339
+ {
340
+ "indexed": false,
341
+ "internalType": "uint256",
342
+ "name": "thresholdRequired",
343
+ "type": "uint256"
344
+ }
345
+ ],
346
+ "name": "CommitteeFormationFailed",
347
+ "type": "event"
348
+ },
308
349
  {
309
350
  "anonymous": false,
310
351
  "inputs": [
@@ -360,7 +401,7 @@
360
401
  {
361
402
  "indexed": false,
362
403
  "internalType": "uint256",
363
- "name": "submissionDeadline",
404
+ "name": "committeeDeadline",
364
405
  "type": "uint256"
365
406
  }
366
407
  ],
@@ -474,7 +515,7 @@
474
515
  "name": "bondingRegistry",
475
516
  "outputs": [
476
517
  {
477
- "internalType": "address",
518
+ "internalType": "contract IBondingRegistry",
478
519
  "name": "",
479
520
  "type": "address"
480
521
  }
@@ -524,7 +565,7 @@
524
565
  "name": "enclave",
525
566
  "outputs": [
526
567
  {
527
- "internalType": "address",
568
+ "internalType": "contract IEnclave",
528
569
  "name": "",
529
570
  "type": "address"
530
571
  }
@@ -541,7 +582,13 @@
541
582
  }
542
583
  ],
543
584
  "name": "finalizeCommittee",
544
- "outputs": [],
585
+ "outputs": [
586
+ {
587
+ "internalType": "bool",
588
+ "name": "success",
589
+ "type": "bool"
590
+ }
591
+ ],
545
592
  "stateMutability": "nonpayable",
546
593
  "type": "function"
547
594
  },
@@ -558,6 +605,25 @@
558
605
  "stateMutability": "view",
559
606
  "type": "function"
560
607
  },
608
+ {
609
+ "inputs": [
610
+ {
611
+ "internalType": "uint256",
612
+ "name": "e3Id",
613
+ "type": "uint256"
614
+ }
615
+ ],
616
+ "name": "getCommitteeDeadline",
617
+ "outputs": [
618
+ {
619
+ "internalType": "uint256",
620
+ "name": "",
621
+ "type": "uint256"
622
+ }
623
+ ],
624
+ "stateMutability": "view",
625
+ "type": "function"
626
+ },
561
627
  {
562
628
  "inputs": [
563
629
  {
@@ -585,7 +651,7 @@
585
651
  "type": "address"
586
652
  },
587
653
  {
588
- "internalType": "address",
654
+ "internalType": "contract IEnclave",
589
655
  "name": "_enclave",
590
656
  "type": "address"
591
657
  },
@@ -838,7 +904,7 @@
838
904
  {
839
905
  "inputs": [
840
906
  {
841
- "internalType": "address",
907
+ "internalType": "contract IBondingRegistry",
842
908
  "name": "_bondingRegistry",
843
909
  "type": "address"
844
910
  }
@@ -851,7 +917,7 @@
851
917
  {
852
918
  "inputs": [
853
919
  {
854
- "internalType": "address",
920
+ "internalType": "contract IEnclave",
855
921
  "name": "_enclave",
856
922
  "type": "address"
857
923
  }
@@ -932,30 +998,30 @@
932
998
  "type": "function"
933
999
  }
934
1000
  ],
935
- "bytecode": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6122a1806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101c6575f3560e01c80639f0f874a116100fe578063dbb06c931161009e578063ebf0c7171161006e578063ebf0c7171461040d578063f2fde38b14610423578063f379b0df14610436578063f6fc05d514610459575f5ffd5b8063dbb06c93146103c2578063e59e4695146103d4578063e6745e13146103e7578063e82f3b70146103fa575f5ffd5b8063c2b40ae4116100d9578063c2b40ae414610360578063c3a0ec301461037f578063ca2869a014610390578063da881e5a146103af575f5ffd5b80639f0f874a14610324578063a01649301461032d578063a04e60651461034d575f5ffd5b806385814243116101695780638cb89ecb116101445780638cb89ecb146102ac5780638d1ddfb1146102d95780638da5cb5b146102e15780639015d37114610311575f5ffd5b8063858142431461025b5780638a78bb15146102865780638b530cb514610299575f5ffd5b80632e7b716d116101a45780632e7b716d1461021a5780634d6861a61461022d57806370e36bbe14610240578063715018a614610253575f5ffd5b80630f3e3412146101ca5780631794bb3c146101df578063291a691b146101f2575b5f5ffd5b6101dd6101d8366004611d2e565b610462565b005b6101dd6101ed366004611d5b565b6104a5565b610205610200366004611d95565b610651565b60405190151581526020015b60405180910390f35b610205610228366004611dce565b610759565b61020561023b366004611d2e565b610809565b6101dd61024e366004611dce565b610847565b6101dd6108bd565b60015461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610211565b6101dd610294366004611dce565b6108d0565b6101dd6102a7366004611e2f565b6109d8565b6102cb6102ba366004611d2e565b60096020525f908152604090205481565b604051908152602001610211565b6004546102cb565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661026e565b61020561031f366004611dce565b610b11565b6102cb60035481565b61034061033b366004611d2e565b610b30565b6040516102119190611ede565b6101dd61035b366004611f29565b610bc6565b6102cb61036e366004611d2e565b60086020525f908152604090205481565b6001546001600160a01b031661026e565b6102cb61039e366004611d2e565b5f9081526008602052604090205490565b6101dd6103bd366004611d2e565b610cf4565b5f5461026e906001600160a01b031681565b6101dd6103e2366004611dce565b610dfd565b6101dd6103f5366004611f78565b610e75565b6102cb610408366004611d2e565b611016565b6005545f908152600660205260409020546102cb565b6101dd610431366004611dce565b611047565b600454600554610444919082565b60408051928352602083019190915201610211565b6102cb60025481565b61046a611081565b60038190556040518181527fbe772dc189863d512fa01e489c8eac204975aef1a8662d8b5a333804b5207ab79060200160405180910390a150565b5f6104ae6110dc565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104da5750825b90505f8267ffffffffffffffff1660011480156104f65750303b155b905081158015610504575080155b156105225760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561055657845468ff00000000000000001916680100000000000000001785555b6001600160a01b03881661057d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0387166105a45760405163d92e233d60e01b815260040160405180910390fd5b6105ad33611104565b6105b687610847565b6105bf86610462565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038981169116146105fc576105fc88611047565b831561064757845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f80546001600160a01b0316331461067c5760405163e4c2a7eb60e01b815260040160405180910390fd5b5f848152600a60205260409020805460ff16156106ac576040516374ff462560e11b815260040160405180910390fd5b805461ffff19166001908117825581018490554360028201556003546106d29042611fac565b60038201556106e660058201846002611c3d565b506005545f908152600660209081526040808320548884526008909252918290205560028201546003830154915187927f381d281d32f95ef8fe4e5f3b263ea6a32d03d331e1a141ae1da996dc02a7a17092610746928992899291611fbf565b60405180910390a2506001949350505050565b5f61076382610b11565b61076e57505f919050565b6001546001600160a01b0316610797576040516350ca893360e01b815260040160405180910390fd5b600154604051639f8a13d760e01b81526001600160a01b03848116600483015290911690639f8a13d790602401602060405180830381865afa1580156107df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108039190612015565b92915050565b5f818152600a60205260408120805460ff16158061082d57508054610100900460ff165b1561083a57505f92915050565b6003015442111592915050565b61084f611081565b6001600160a01b0381166108765760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038316908117825560405190917f2c8267accd82e977550ed2349c73311183cd22e306347be4453c8d130995e3c991a250565b6108c5611081565b6108ce5f611115565b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031633148061091257506001546001600160a01b031633145b61092f57604051632864c4e160e01b815260040160405180910390fd5b61093881610b11565b6109d5578061095160046001600160a01b038316611185565b5060028054905f61096183612034565b9190505550816001600160a01b03167f3318d261fe14a5761d2d1e21555652f623d2134c430a9883c9ad6e958bb0db536109ae836001600160a01b0316600461135790919063ffffffff16565b600254600454604080519384526020840192909252908201526060015b60405180910390a2505b50565b6109e0611081565b5f868152600a60205260409020805460ff16610a0f57604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff16610a3657604051634f4b461f60e11b815260040160405180910390fd5b600481015415610a595760405163632a22bb60e01b815260040160405180910390fd5b60078101548514610ab15760405162461bcd60e51b815260206004820152601360248201527f4e6f646520636f756e74206d69736d617463680000000000000000000000000060448201526064015b60405180910390fd5b600481018290555f87815260096020526040908190208390555187907ff7472ea3a028fe8a86ab1c9a3e2176b284c8c3a22675c101e0fa21c140b6678d90610b0090899089908990899061204c565b60405180910390a250505050505050565b6001600160a01b0381165f908152600760205260408120541515610803565b5f818152600a60205260409020600481015460609190610b63576040516322e679e360e11b815260040160405180910390fd5b80600701805480602002602001604051908101604052809291908181526020018280548015610bb957602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610b9b575b5050505050915050919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316331480610c0857506001546001600160a01b031633145b610c2557604051632864c4e160e01b815260040160405180910390fd5b610c2e83610b11565b8390610c59576040516381e5828960e01b81526001600160a01b039091166004820152602401610aa8565b50825f610c7060046001600160a01b038416611357565b9050610c8860046001600160a01b03841686866113a9565b5060028054905f610c98836120c1565b90915550506002546004546040805184815260208101939093528201526001600160a01b038616907f8c008e3835f6c79bfcdb89f0f6ca8705e0b01049ee84a90b0e4da1c7ba9405d59060600160405180910390a25050505050565b5f818152600a60205260409020805460ff16610d2357604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff1615610d4b57604051631860f69960e31b815260040160405180910390fd5b8060030154421015610d7057604051632f021e8d60e11b815260040160405180910390fd5b6005810154600682015464010000000090910463ffffffff161115610da8576040516359fa4a9360e01b815260040160405180910390fd5b805461ff001916610100178155600681018054610dc9916007840191611cde565b50817fed38c6266ebed7c01d311349a7fa67e0ef0f1d2f4760d60dbb34ca4799a2e132826006016040516109cb91906120ea565b610e05611081565b6001600160a01b038116610e2c5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a7905f90a250565b5f828152600a60205260409020805460ff16610ea457604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff1615610ecc57604051631860f69960e31b815260040160405180910390fd5b8060030154421115610ef057604051624bbbe560e51b815260040160405180910390fd5b335f90815260088201602052604090205460ff1615610f225760405163257309f160e11b815260040160405180910390fd5b610f2b33610759565b610f485760405163149fbcfd60e11b815260040160405180910390fd5b610f533383856113c0565b6001810154604080516bffffffffffffffffffffffff193360601b16602080830191909152603482018690526054820187905260748083019490945282518083039094018452609490910190915281519101205f90335f8181526008850160205260409020805460ff19166001179055909150610fd2908390836115b2565b506040805184815260208101839052339186917f52999628fb1cb05707e842278833b22e511f11746202cecdf221968b0b89e8bd910160405180910390a350505050565b5f8181526009602052604090205480611042576040516322e679e360e11b815260040160405180910390fd5b919050565b61104f611081565b6001600160a01b03811661107857604051631e4fbdf760e01b81525f6004820152602401610aa8565b6109d581611115565b336110b37f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108ce5760405163118cdaa760e01b8152336004820152602401610aa8565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610803565b61110c611733565b6109d581611758565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182106111c6576040516361c0541760e11b815260040160405180910390fd5b815f036111e6576040516314b48df160e11b815260040160405180910390fd5b5f82815260038401602052604090205415611214576040516312c50cad60e11b815260040160405180910390fd5b825460018085015490611228908390611fac565b611233826002612210565b10156112455761124281612034565b90505b60018501819055835f5b8281101561131d578084901c600116600103611302576040805180820182525f83815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe916112bc919060040161221b565b602060405180830381865af41580156112d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fb919061224b565b9150611315565b5f81815260028801602052604090208290555b60010161124f565b5061132783612034565b8087555f928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b5f818152600383016020526040812054810361138657604051631c811d5b60e21b815260040160405180910390fd5b5f8281526003840160205260409020546113a290600190612262565b9392505050565b5f6113b785855f8686611760565b95945050505050565b5f82116113e05760405163aeaddff160e01b815260040160405180910390fd5b6001546001600160a01b0316611409576040516350ca893360e01b815260040160405180910390fd5b5f818152600a602052604081206001805460028301549293926001600160a01b039091169163bb03bd7191889161143f91612262565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa15801561149e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c2919061224b565b90505f60015f9054906101000a90046001600160a01b03166001600160a01b0316631209b1f66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611515573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611539919061224b565b90505f811161155b5760405163aeaddff160e01b815260040160405180910390fd5b5f6115668284612275565b90505f81116115885760405163149fbcfd60e11b815260040160405180910390fd5b808611156115a95760405163aeaddff160e01b815260040160405180910390fd5b50505050505050565b60058301546006840180545f92640100000000900463ffffffff169081111561161f57508054600180820183555f928352602080842090920180546001600160a01b0319166001600160a01b038816908117909155835260098701909152604090912083905590506113a2565b5f5f90505f876009015f855f8154811061163b5761163b6120d6565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054905060015b84548110156116c3575f896009015f878481548110611685576116856120d6565b5f9182526020808320909101546001600160a01b031683528201929092526040019020549050828111156116ba578092508193505b50600101611664565b508086106116d7575f9450505050506113a2565b868483815481106116ea576116ea6120d6565b5f91825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918916815260098a019091526040902086905550600193505050509392505050565b61173b611c1f565b6108ce57604051631afcd79f60e31b815260040160405180910390fd5b61104f611733565b5f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184106117a1576040516361c0541760e11b815260040160405180910390fd5b5f8581526003870160205260409020546117ce57604051631c811d5b60e21b815260040160405180910390fd5b5f848152600387016020526040902054156117fc576040516312c50cad60e11b815260040160405180910390fd5b5f6118078787611357565b8754909150859087905f9061181e90600190612262565b60018b01549091505f90815b81811015611b9a578087901c6001166001036119eb577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018a8a85818110611873576118736120d6565b9050602002013510611898576040516361c0541760e11b815260040160405180910390fd5b73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808d8d888181106118cf576118cf6120d6565b905060200201358152602001898152506040518263ffffffff1660e01b81526004016118fb919061221b565b602060405180830381865af4158015611916573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193a919061224b565b955073__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808d8d88818110611973576119736120d6565b905060200201358152602001888152506040518263ffffffff1660e01b815260040161199f919061221b565b602060405180830381865af41580156119ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119de919061224b565b9450826001019250611b92565b86811c84821c14611b7f577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018a8a85818110611a2957611a296120d6565b9050602002013510611a4e576040516361c0541760e11b815260040160405180910390fd5b5f81815260028e016020526040902054859003611a78575f81815260028e01602052604090208690555b73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808981526020018d8d88818110611ab557611ab56120d6565b905060200201358152506040518263ffffffff1660e01b8152600401611adb919061221b565b602060405180830381865af4158015611af6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1a919061224b565b955073__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808881526020018d8d88818110611b5957611b596120d6565b905060200201358152506040518263ffffffff1660e01b815260040161199f919061221b565b5f81815260028e01602052604090208690555b60010161182a565b5060018c01545f90815260028d0160205260409020548414611bcf57604051631fd4986360e11b815260040160405180910390fd5b5f81815260028d01602052604090208590558915611bff575f8b815260038d016020526040808220548c83529120555b5050505f88815260038a0160205260408120555091505095945050505050565b5f611c286110dc565b5468010000000000000000900460ff16919050565b600183019183908215611cce579160200282015f5b83821115611c9c57833563ffffffff1683826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302611c52565b8015611ccc5782816101000a81549063ffffffff0219169055600401602081600301049283019260010302611c9c565b505b50611cda929150611d1a565b5090565b828054828255905f5260205f20908101928215611cce575f5260205f209182015b82811115611cce578254825591600101919060010190611cff565b5b80821115611cda575f8155600101611d1b565b5f60208284031215611d3e575f5ffd5b5035919050565b80356001600160a01b0381168114611042575f5ffd5b5f5f5f60608486031215611d6d575f5ffd5b611d7684611d45565b9250611d8460208501611d45565b929592945050506040919091013590565b5f5f5f60808486031215611da7575f5ffd5b833592506020840135915060808401851015611dc1575f5ffd5b6040840190509250925092565b5f60208284031215611dde575f5ffd5b6113a282611d45565b5f5f83601f840112611df7575f5ffd5b50813567ffffffffffffffff811115611e0e575f5ffd5b6020830191508360208260051b8501011115611e28575f5ffd5b9250929050565b5f5f5f5f5f5f60808789031215611e44575f5ffd5b86359550602087013567ffffffffffffffff811115611e61575f5ffd5b611e6d89828a01611de7565b909650945050604087013567ffffffffffffffff811115611e8c575f5ffd5b8701601f81018913611e9c575f5ffd5b803567ffffffffffffffff811115611eb2575f5ffd5b896020828401011115611ec3575f5ffd5b96999598509396602090940195946060909401359392505050565b602080825282518282018190525f918401906040840190835b81811015611f1e5783516001600160a01b0316835260209384019390920191600101611ef7565b509095945050505050565b5f5f5f60408486031215611f3b575f5ffd5b611f4484611d45565b9250602084013567ffffffffffffffff811115611f5f575f5ffd5b611f6b86828701611de7565b9497909650939450505050565b5f5f60408385031215611f89575f5ffd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561080357610803611f98565b84815260a0810160208201855f5b600281101561200057813563ffffffff8116808214611fea575f5ffd5b8452506020928301929190910190600101611fcd565b50505060608201939093526080015292915050565b5f60208284031215612025575f5ffd5b815180151581146113a2575f5ffd5b5f6001820161204557612045611f98565b5060010190565b604080825281018490525f8560608301825b8781101561208c576001600160a01b0361207784611d45565b1682526020928301929091019060010161205e565b508381036020850152848152848660208301375f602086830101526020601f19601f8701168201019250505095945050505050565b5f816120cf576120cf611f98565b505f190190565b634e487b7160e01b5f52603260045260245ffd5b602080825282548282018190525f848152918220906040840190835b81811015611f1e5783546001600160a01b0316835260019384019360209093019201612106565b6001815b60018411156121685780850481111561214c5761214c611f98565b600184161561215a57908102905b60019390931c928002612131565b935093915050565b5f8261217e57506001610803565b8161218a57505f610803565b81600181146121a057600281146121aa576121c6565b6001915050610803565b60ff8411156121bb576121bb611f98565b50506001821b610803565b5060208310610133831016604e8410600b84101617156121e9575081810a610803565b6121f55f19848461212d565b805f190482111561220857612208611f98565b029392505050565b5f6113a28383612170565b6040810181835f5b6002811015612242578151835260209283019290910190600101612223565b50505092915050565b5f6020828403121561225b575f5ffd5b5051919050565b8181038181111561080357610803611f98565b5f8261228f57634e487b7160e01b5f52601260045260245ffd5b50049056fea164736f6c634300081c000a",
936
- "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106101c6575f3560e01c80639f0f874a116100fe578063dbb06c931161009e578063ebf0c7171161006e578063ebf0c7171461040d578063f2fde38b14610423578063f379b0df14610436578063f6fc05d514610459575f5ffd5b8063dbb06c93146103c2578063e59e4695146103d4578063e6745e13146103e7578063e82f3b70146103fa575f5ffd5b8063c2b40ae4116100d9578063c2b40ae414610360578063c3a0ec301461037f578063ca2869a014610390578063da881e5a146103af575f5ffd5b80639f0f874a14610324578063a01649301461032d578063a04e60651461034d575f5ffd5b806385814243116101695780638cb89ecb116101445780638cb89ecb146102ac5780638d1ddfb1146102d95780638da5cb5b146102e15780639015d37114610311575f5ffd5b8063858142431461025b5780638a78bb15146102865780638b530cb514610299575f5ffd5b80632e7b716d116101a45780632e7b716d1461021a5780634d6861a61461022d57806370e36bbe14610240578063715018a614610253575f5ffd5b80630f3e3412146101ca5780631794bb3c146101df578063291a691b146101f2575b5f5ffd5b6101dd6101d8366004611d2e565b610462565b005b6101dd6101ed366004611d5b565b6104a5565b610205610200366004611d95565b610651565b60405190151581526020015b60405180910390f35b610205610228366004611dce565b610759565b61020561023b366004611d2e565b610809565b6101dd61024e366004611dce565b610847565b6101dd6108bd565b60015461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610211565b6101dd610294366004611dce565b6108d0565b6101dd6102a7366004611e2f565b6109d8565b6102cb6102ba366004611d2e565b60096020525f908152604090205481565b604051908152602001610211565b6004546102cb565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661026e565b61020561031f366004611dce565b610b11565b6102cb60035481565b61034061033b366004611d2e565b610b30565b6040516102119190611ede565b6101dd61035b366004611f29565b610bc6565b6102cb61036e366004611d2e565b60086020525f908152604090205481565b6001546001600160a01b031661026e565b6102cb61039e366004611d2e565b5f9081526008602052604090205490565b6101dd6103bd366004611d2e565b610cf4565b5f5461026e906001600160a01b031681565b6101dd6103e2366004611dce565b610dfd565b6101dd6103f5366004611f78565b610e75565b6102cb610408366004611d2e565b611016565b6005545f908152600660205260409020546102cb565b6101dd610431366004611dce565b611047565b600454600554610444919082565b60408051928352602083019190915201610211565b6102cb60025481565b61046a611081565b60038190556040518181527fbe772dc189863d512fa01e489c8eac204975aef1a8662d8b5a333804b5207ab79060200160405180910390a150565b5f6104ae6110dc565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f811580156104da5750825b90505f8267ffffffffffffffff1660011480156104f65750303b155b905081158015610504575080155b156105225760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561055657845468ff00000000000000001916680100000000000000001785555b6001600160a01b03881661057d5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0387166105a45760405163d92e233d60e01b815260040160405180910390fd5b6105ad33611104565b6105b687610847565b6105bf86610462565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038981169116146105fc576105fc88611047565b831561064757845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f80546001600160a01b0316331461067c5760405163e4c2a7eb60e01b815260040160405180910390fd5b5f848152600a60205260409020805460ff16156106ac576040516374ff462560e11b815260040160405180910390fd5b805461ffff19166001908117825581018490554360028201556003546106d29042611fac565b60038201556106e660058201846002611c3d565b506005545f908152600660209081526040808320548884526008909252918290205560028201546003830154915187927f381d281d32f95ef8fe4e5f3b263ea6a32d03d331e1a141ae1da996dc02a7a17092610746928992899291611fbf565b60405180910390a2506001949350505050565b5f61076382610b11565b61076e57505f919050565b6001546001600160a01b0316610797576040516350ca893360e01b815260040160405180910390fd5b600154604051639f8a13d760e01b81526001600160a01b03848116600483015290911690639f8a13d790602401602060405180830381865afa1580156107df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108039190612015565b92915050565b5f818152600a60205260408120805460ff16158061082d57508054610100900460ff165b1561083a57505f92915050565b6003015442111592915050565b61084f611081565b6001600160a01b0381166108765760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038316908117825560405190917f2c8267accd82e977550ed2349c73311183cd22e306347be4453c8d130995e3c991a250565b6108c5611081565b6108ce5f611115565b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031633148061091257506001546001600160a01b031633145b61092f57604051632864c4e160e01b815260040160405180910390fd5b61093881610b11565b6109d5578061095160046001600160a01b038316611185565b5060028054905f61096183612034565b9190505550816001600160a01b03167f3318d261fe14a5761d2d1e21555652f623d2134c430a9883c9ad6e958bb0db536109ae836001600160a01b0316600461135790919063ffffffff16565b600254600454604080519384526020840192909252908201526060015b60405180910390a2505b50565b6109e0611081565b5f868152600a60205260409020805460ff16610a0f57604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff16610a3657604051634f4b461f60e11b815260040160405180910390fd5b600481015415610a595760405163632a22bb60e01b815260040160405180910390fd5b60078101548514610ab15760405162461bcd60e51b815260206004820152601360248201527f4e6f646520636f756e74206d69736d617463680000000000000000000000000060448201526064015b60405180910390fd5b600481018290555f87815260096020526040908190208390555187907ff7472ea3a028fe8a86ab1c9a3e2176b284c8c3a22675c101e0fa21c140b6678d90610b0090899089908990899061204c565b60405180910390a250505050505050565b6001600160a01b0381165f908152600760205260408120541515610803565b5f818152600a60205260409020600481015460609190610b63576040516322e679e360e11b815260040160405180910390fd5b80600701805480602002602001604051908101604052809291908181526020018280548015610bb957602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610b9b575b5050505050915050919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316331480610c0857506001546001600160a01b031633145b610c2557604051632864c4e160e01b815260040160405180910390fd5b610c2e83610b11565b8390610c59576040516381e5828960e01b81526001600160a01b039091166004820152602401610aa8565b50825f610c7060046001600160a01b038416611357565b9050610c8860046001600160a01b03841686866113a9565b5060028054905f610c98836120c1565b90915550506002546004546040805184815260208101939093528201526001600160a01b038616907f8c008e3835f6c79bfcdb89f0f6ca8705e0b01049ee84a90b0e4da1c7ba9405d59060600160405180910390a25050505050565b5f818152600a60205260409020805460ff16610d2357604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff1615610d4b57604051631860f69960e31b815260040160405180910390fd5b8060030154421015610d7057604051632f021e8d60e11b815260040160405180910390fd5b6005810154600682015464010000000090910463ffffffff161115610da8576040516359fa4a9360e01b815260040160405180910390fd5b805461ff001916610100178155600681018054610dc9916007840191611cde565b50817fed38c6266ebed7c01d311349a7fa67e0ef0f1d2f4760d60dbb34ca4799a2e132826006016040516109cb91906120ea565b610e05611081565b6001600160a01b038116610e2c5760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a7905f90a250565b5f828152600a60205260409020805460ff16610ea457604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff1615610ecc57604051631860f69960e31b815260040160405180910390fd5b8060030154421115610ef057604051624bbbe560e51b815260040160405180910390fd5b335f90815260088201602052604090205460ff1615610f225760405163257309f160e11b815260040160405180910390fd5b610f2b33610759565b610f485760405163149fbcfd60e11b815260040160405180910390fd5b610f533383856113c0565b6001810154604080516bffffffffffffffffffffffff193360601b16602080830191909152603482018690526054820187905260748083019490945282518083039094018452609490910190915281519101205f90335f8181526008850160205260409020805460ff19166001179055909150610fd2908390836115b2565b506040805184815260208101839052339186917f52999628fb1cb05707e842278833b22e511f11746202cecdf221968b0b89e8bd910160405180910390a350505050565b5f8181526009602052604090205480611042576040516322e679e360e11b815260040160405180910390fd5b919050565b61104f611081565b6001600160a01b03811661107857604051631e4fbdf760e01b81525f6004820152602401610aa8565b6109d581611115565b336110b37f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108ce5760405163118cdaa760e01b8152336004820152602401610aa8565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610803565b61110c611733565b6109d581611758565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182106111c6576040516361c0541760e11b815260040160405180910390fd5b815f036111e6576040516314b48df160e11b815260040160405180910390fd5b5f82815260038401602052604090205415611214576040516312c50cad60e11b815260040160405180910390fd5b825460018085015490611228908390611fac565b611233826002612210565b10156112455761124281612034565b90505b60018501819055835f5b8281101561131d578084901c600116600103611302576040805180820182525f83815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe916112bc919060040161221b565b602060405180830381865af41580156112d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fb919061224b565b9150611315565b5f81815260028801602052604090208290555b60010161124f565b5061132783612034565b8087555f928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b5f818152600383016020526040812054810361138657604051631c811d5b60e21b815260040160405180910390fd5b5f8281526003840160205260409020546113a290600190612262565b9392505050565b5f6113b785855f8686611760565b95945050505050565b5f82116113e05760405163aeaddff160e01b815260040160405180910390fd5b6001546001600160a01b0316611409576040516350ca893360e01b815260040160405180910390fd5b5f818152600a602052604081206001805460028301549293926001600160a01b039091169163bb03bd7191889161143f91612262565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa15801561149e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c2919061224b565b90505f60015f9054906101000a90046001600160a01b03166001600160a01b0316631209b1f66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611515573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611539919061224b565b90505f811161155b5760405163aeaddff160e01b815260040160405180910390fd5b5f6115668284612275565b90505f81116115885760405163149fbcfd60e11b815260040160405180910390fd5b808611156115a95760405163aeaddff160e01b815260040160405180910390fd5b50505050505050565b60058301546006840180545f92640100000000900463ffffffff169081111561161f57508054600180820183555f928352602080842090920180546001600160a01b0319166001600160a01b038816908117909155835260098701909152604090912083905590506113a2565b5f5f90505f876009015f855f8154811061163b5761163b6120d6565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054905060015b84548110156116c3575f896009015f878481548110611685576116856120d6565b5f9182526020808320909101546001600160a01b031683528201929092526040019020549050828111156116ba578092508193505b50600101611664565b508086106116d7575f9450505050506113a2565b868483815481106116ea576116ea6120d6565b5f91825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918916815260098a019091526040902086905550600193505050509392505050565b61173b611c1f565b6108ce57604051631afcd79f60e31b815260040160405180910390fd5b61104f611733565b5f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000184106117a1576040516361c0541760e11b815260040160405180910390fd5b5f8581526003870160205260409020546117ce57604051631c811d5b60e21b815260040160405180910390fd5b5f848152600387016020526040902054156117fc576040516312c50cad60e11b815260040160405180910390fd5b5f6118078787611357565b8754909150859087905f9061181e90600190612262565b60018b01549091505f90815b81811015611b9a578087901c6001166001036119eb577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018a8a85818110611873576118736120d6565b9050602002013510611898576040516361c0541760e11b815260040160405180910390fd5b73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808d8d888181106118cf576118cf6120d6565b905060200201358152602001898152506040518263ffffffff1660e01b81526004016118fb919061221b565b602060405180830381865af4158015611916573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193a919061224b565b955073__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808d8d88818110611973576119736120d6565b905060200201358152602001888152506040518263ffffffff1660e01b815260040161199f919061221b565b602060405180830381865af41580156119ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119de919061224b565b9450826001019250611b92565b86811c84821c14611b7f577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018a8a85818110611a2957611a296120d6565b9050602002013510611a4e576040516361c0541760e11b815260040160405180910390fd5b5f81815260028e016020526040902054859003611a78575f81815260028e01602052604090208690555b73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808981526020018d8d88818110611ab557611ab56120d6565b905060200201358152506040518263ffffffff1660e01b8152600401611adb919061221b565b602060405180830381865af4158015611af6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1a919061224b565b955073__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808881526020018d8d88818110611b5957611b596120d6565b905060200201358152506040518263ffffffff1660e01b815260040161199f919061221b565b5f81815260028e01602052604090208690555b60010161182a565b5060018c01545f90815260028d0160205260409020548414611bcf57604051631fd4986360e11b815260040160405180910390fd5b5f81815260028d01602052604090208590558915611bff575f8b815260038d016020526040808220548c83529120555b5050505f88815260038a0160205260408120555091505095945050505050565b5f611c286110dc565b5468010000000000000000900460ff16919050565b600183019183908215611cce579160200282015f5b83821115611c9c57833563ffffffff1683826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302611c52565b8015611ccc5782816101000a81549063ffffffff0219169055600401602081600301049283019260010302611c9c565b505b50611cda929150611d1a565b5090565b828054828255905f5260205f20908101928215611cce575f5260205f209182015b82811115611cce578254825591600101919060010190611cff565b5b80821115611cda575f8155600101611d1b565b5f60208284031215611d3e575f5ffd5b5035919050565b80356001600160a01b0381168114611042575f5ffd5b5f5f5f60608486031215611d6d575f5ffd5b611d7684611d45565b9250611d8460208501611d45565b929592945050506040919091013590565b5f5f5f60808486031215611da7575f5ffd5b833592506020840135915060808401851015611dc1575f5ffd5b6040840190509250925092565b5f60208284031215611dde575f5ffd5b6113a282611d45565b5f5f83601f840112611df7575f5ffd5b50813567ffffffffffffffff811115611e0e575f5ffd5b6020830191508360208260051b8501011115611e28575f5ffd5b9250929050565b5f5f5f5f5f5f60808789031215611e44575f5ffd5b86359550602087013567ffffffffffffffff811115611e61575f5ffd5b611e6d89828a01611de7565b909650945050604087013567ffffffffffffffff811115611e8c575f5ffd5b8701601f81018913611e9c575f5ffd5b803567ffffffffffffffff811115611eb2575f5ffd5b896020828401011115611ec3575f5ffd5b96999598509396602090940195946060909401359392505050565b602080825282518282018190525f918401906040840190835b81811015611f1e5783516001600160a01b0316835260209384019390920191600101611ef7565b509095945050505050565b5f5f5f60408486031215611f3b575f5ffd5b611f4484611d45565b9250602084013567ffffffffffffffff811115611f5f575f5ffd5b611f6b86828701611de7565b9497909650939450505050565b5f5f60408385031215611f89575f5ffd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561080357610803611f98565b84815260a0810160208201855f5b600281101561200057813563ffffffff8116808214611fea575f5ffd5b8452506020928301929190910190600101611fcd565b50505060608201939093526080015292915050565b5f60208284031215612025575f5ffd5b815180151581146113a2575f5ffd5b5f6001820161204557612045611f98565b5060010190565b604080825281018490525f8560608301825b8781101561208c576001600160a01b0361207784611d45565b1682526020928301929091019060010161205e565b508381036020850152848152848660208301375f602086830101526020601f19601f8701168201019250505095945050505050565b5f816120cf576120cf611f98565b505f190190565b634e487b7160e01b5f52603260045260245ffd5b602080825282548282018190525f848152918220906040840190835b81811015611f1e5783546001600160a01b0316835260019384019360209093019201612106565b6001815b60018411156121685780850481111561214c5761214c611f98565b600184161561215a57908102905b60019390931c928002612131565b935093915050565b5f8261217e57506001610803565b8161218a57505f610803565b81600181146121a057600281146121aa576121c6565b6001915050610803565b60ff8411156121bb576121bb611f98565b50506001821b610803565b5060208310610133831016604e8410600b84101617156121e9575081810a610803565b6121f55f19848461212d565b805f190482111561220857612208611f98565b029392505050565b5f6113a28383612170565b6040810181835f5b6002811015612242578151835260209283019290910190600101612223565b50505092915050565b5f6020828403121561225b575f5ffd5b5051919050565b8181038181111561080357610803611f98565b5f8261228f57634e487b7160e01b5f52601260045260245ffd5b50049056fea164736f6c634300081c000a",
1001
+ "bytecode": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61243a806100d65f395ff3fe608060405234801561000f575f5ffd5b5060043610610195575f3560e01c80639f0f874a116100e0578063dbb06c931161008f578063dbb06c9314610371578063e59e469514610383578063e6745e1314610396578063e82f3b70146103a9578063ebf0c717146103bc578063f2fde38b146103d2578063f379b0df146103e5578063f6fc05d514610408575f5ffd5b80639f0f874a146102d3578063a0164930146102dc578063a04e6065146102fc578063c2b40ae41461030f578063c3a0ec301461032e578063ca2869a01461033f578063da881e5a1461035e575f5ffd5b8063715018a611610147578063715018a614610243578063858142431461024b5780638a78bb151461026b5780638b530cb51461027e5780638cb89ecb146102915780638d1ddfb1146102b05780638da5cb5b146102b85780639015d371146102c0575f5ffd5b80630f3e3412146101995780631794bb3c146101ae5780632800d829146101c1578063291a691b146101e75780632e7b716d1461020a5780634d6861a61461021d57806370e36bbe14610230575b5f5ffd5b6101ac6101a7366004611e6a565b610411565b005b6101ac6101bc366004611e95565b610454565b6101d46101cf366004611e6a565b6105af565b6040519081526020015b60405180910390f35b6101fa6101f5366004611ed3565b6105e8565b60405190151581526020016101de565b6101fa610218366004611f0c565b6107bc565b6101fa61022b366004611e6a565b61086f565b6101ac61023e366004611f0c565b6108ad565b6101ac610923565b60015461025e906001600160a01b031681565b6040516101de9190611f27565b6101ac610279366004611f0c565b610936565b6101ac61028c366004611f82565b610a2c565b6101d461029f366004611e6a565b60096020525f908152604090205481565b6004546101d4565b61025e610bb1565b6101fa6102ce366004611f0c565b610bdf565b6101d460035481565b6102ef6102ea366004611e6a565b610bfe565b6040516101de919061202e565b6101ac61030a366004612079565b610c94565b6101d461031d366004611e6a565b60086020525f908152604090205481565b6001546001600160a01b031661025e565b6101d461034d366004611e6a565b5f9081526008602052604090205490565b6101fa61036c366004611e6a565b610da6565b5f5461025e906001600160a01b031681565b6101ac610391366004611f0c565b610fca565b6101ac6103a43660046120c9565b611042565b6101d46103b7366004611e6a565b6111e4565b6005545f908152600660205260409020546101d4565b6101ac6103e0366004611f0c565b611215565b6004546005546103f3919082565b604080519283526020830191909152016101de565b6101d460025481565b61041961124f565b60038190556040518181527fbe772dc189863d512fa01e489c8eac204975aef1a8662d8b5a333804b5207ab79060200160405180910390a150565b5f61045d611281565b805490915060ff600160401b82041615906001600160401b03165f811580156104835750825b90505f826001600160401b0316600114801561049e5750303b155b9050811580156104ac575080155b156104ca5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104f457845460ff60401b1916600160401b1785555b6001600160a01b03881661051b5760405163d92e233d60e01b815260040160405180910390fd5b610524336112a9565b61052d876108ad565b61053686610411565b61053e610bb1565b6001600160a01b0316886001600160a01b03161461055f5761055f88611215565b83156105a557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f818152600a60205260408120805460ff166105de57604051630d4c1d9760e41b815260040160405180910390fd5b6003015492915050565b5f80546001600160a01b031633146106135760405163e4c2a7eb60e01b815260040160405180910390fd5b5f848152600a60205260409020805460ff1615610643576040516374ff462560e11b815260040160405180910390fd5b60015460408051630cc37d8f60e11b815290515f926001600160a01b031691631986fb1e9160048083019260209291908290030181865afa15801561068a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ae91906120e9565b9050806106c16040860160208701612127565b63ffffffff1611156106d96040860160208701612127565b82909161070c576040516344ec930f60e01b815263ffffffff909216600483015260248201526044015b60405180910390fd5b5050815461ffff19166001908117835582018590554360028301556003546107349042612154565b600383015561074860058301856002611d79565b506005545f908152600660209081526040808320548984526008909252918290205560028301546003840154915188927f381d281d32f95ef8fe4e5f3b263ea6a32d03d331e1a141ae1da996dc02a7a170926107a8928a928a9291612167565b60405180910390a250600195945050505050565b5f6107c682610bdf565b6107d157505f919050565b6001546001600160a01b03166107fa576040516350ca893360e01b815260040160405180910390fd5b600154604051639f8a13d760e01b81526001600160a01b0390911690639f8a13d79061082a908590600401611f27565b602060405180830381865afa158015610845573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086991906121b7565b92915050565b5f818152600a60205260408120805460ff16158061089357508054610100900460ff165b156108a057505f92915050565b6003015442111592915050565b6108b561124f565b6001600160a01b0381166108dc5760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038316908117825560405190917f2c8267accd82e977550ed2349c73311183cd22e306347be4453c8d130995e3c991a250565b61092b61124f565b6109345f6112ba565b565b61093e610bb1565b6001600160a01b0316336001600160a01b0316148061096757506001546001600160a01b031633145b61098457604051632864c4e160e01b815260040160405180910390fd5b61098d81610bdf565b610a2957806109a660046001600160a01b03831661132a565b5060028054905f6109b6836121d6565b9190505550816001600160a01b03167f3318d261fe14a5761d2d1e21555652f623d2134c430a9883c9ad6e958bb0db53610a03836001600160a01b031660046114e990919063ffffffff16565b6002546004546040805193845260208401929092529082015260600160405180910390a2505b50565b610a3461124f565b5f868152600a60205260409020805460ff16610a6357604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff16610a8a57604051634f4b461f60e11b815260040160405180910390fd5b600481015415610aad5760405163632a22bb60e01b815260040160405180910390fd5b60078101548514610af65760405162461bcd60e51b815260206004820152601360248201527209cdec8ca40c6deeadce840dad2e6dac2e8c6d606b1b6044820152606401610703565b60048181018390555f88815260096020526040808220859055905490516340a3b76160e11b8152918201899052602482018490526001600160a01b0316906381476ec2906044015f604051808303815f87803b158015610b54575f5ffd5b505af1158015610b66573d5f5f3e3d5ffd5b50505050867ff7472ea3a028fe8a86ab1c9a3e2176b284c8c3a22675c101e0fa21c140b6678d87878787604051610ba094939291906121ee565b60405180910390a250505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0381165f908152600760205260408120541515610869565b5f818152600a60205260409020600481015460609190610c31576040516322e679e360e11b815260040160405180910390fd5b80600701805480602002602001604051908101604052809291908181526020018280548015610c8757602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c69575b5050505050915050919050565b610c9c610bb1565b6001600160a01b0316336001600160a01b03161480610cc557506001546001600160a01b031633145b610ce257604051632864c4e160e01b815260040160405180910390fd5b610ceb83610bdf565b8390610d0b576040516381e5828960e01b81526004016107039190611f27565b50825f610d2260046001600160a01b0384166114e9565b9050610d3a60046001600160a01b038416868661153b565b5060028054905f610d4a83612265565b90915550506002546004546040805184815260208101939093528201526001600160a01b038616907f8c008e3835f6c79bfcdb89f0f6ca8705e0b01049ee84a90b0e4da1c7ba9405d59060600160405180910390a25050505050565b5f818152600a60205260408120805460ff16610dd557604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff1615610dfd57604051631860f69960e31b815260040160405180910390fd5b8060030154421015610e2257604051632f021e8d60e11b815260040160405180910390fd5b805461ff0019166101001781556005810154600682015464010000000090910463ffffffff16111580610f1857815462ff0000191662010000178255600682015460058301546040805192835264010000000090910463ffffffff16602083015285917fecc4a9fb7e28d074cba7f5b227e9b5827823c850a385539b9a2f98a08f8c203d910160405180910390a25f54604051635d968dc160e11b815260048101869052600260248201526001600160a01b039091169063bb2d1b82906044015f604051808303815f87803b158015610ef9575f5ffd5b505af1158015610f0b573d5f5f3e3d5ffd5b505f979650505050505050565b600682018054610f2c916007850191611e1a565b505f54604051631f3ea75d60e21b8152600481018690526001600160a01b0390911690637cfa9d74906024015f604051808303815f87803b158015610f6f575f5ffd5b505af1158015610f81573d5f5f3e3d5ffd5b50505050837fed38c6266ebed7c01d311349a7fa67e0ef0f1d2f4760d60dbb34ca4799a2e13283600601604051610fb8919061227a565b60405180910390a25060019392505050565b610fd261124f565b6001600160a01b038116610ff95760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a7905f90a250565b5f828152600a60205260409020805460ff1661107157604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff161561109957604051631860f69960e31b815260040160405180910390fd5b80600301544211156110be57604051639a19114d60e01b815260040160405180910390fd5b335f90815260088201602052604090205460ff16156110f05760405163257309f160e11b815260040160405180910390fd5b6110f9336107bc565b6111165760405163149fbcfd60e11b815260040160405180910390fd5b611121338385611552565b6001810154604080516bffffffffffffffffffffffff193360601b16602080830191909152603482018690526054820187905260748083019490945282518083039094018452609490910190915281519101205f90335f8181526008850160205260409020805460ff191660011790559091506111a09083908361172c565b506040805184815260208101839052339186917f52999628fb1cb05707e842278833b22e511f11746202cecdf221968b0b89e8bd910160405180910390a350505050565b5f8181526009602052604090205480611210576040516322e679e360e11b815260040160405180910390fd5b919050565b61121d61124f565b6001600160a01b038116611246575f604051631e4fbdf760e01b81526004016107039190611f27565b610a29816112ba565b33611258610bb1565b6001600160a01b031614610934573360405163118cdaa760e01b81526004016107039190611f27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610869565b6112b16118ad565b610a29816118d2565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f51602061240e5f395f51905f528210611358576040516361c0541760e11b815260040160405180910390fd5b815f03611378576040516314b48df160e11b815260040160405180910390fd5b5f828152600384016020526040902054156113a6576040516312c50cad60e11b815260040160405180910390fd5b8254600180850154906113ba908390612154565b6113c58260026123a0565b10156113d7576113d4816121d6565b90505b60018501819055835f5b828110156114af578084901c600116600103611494576040805180820182525f83815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe9161144e91906004016123ab565b602060405180830381865af4158015611469573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148d91906120e9565b91506114a7565b5f81815260028801602052604090208290555b6001016113e1565b506114b9836121d6565b8087555f928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b5f818152600383016020526040812054810361151857604051631c811d5b60e21b815260040160405180910390fd5b5f828152600384016020526040902054611534906001906123db565b9392505050565b5f61154985855f86866118da565b95945050505050565b5f82116115725760405163aeaddff160e01b815260040160405180910390fd5b6001546001600160a01b031661159b576040516350ca893360e01b815260040160405180910390fd5b5f818152600a602052604081206001805460028301549293926001600160a01b039091169163bb03bd719188916115d1916123db565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015611618573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061163c91906120e9565b90505f60015f9054906101000a90046001600160a01b03166001600160a01b0316631209b1f66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561168f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b391906120e9565b90505f81116116d55760405163aeaddff160e01b815260040160405180910390fd5b5f6116e082846123ee565b90505f81116117025760405163149fbcfd60e11b815260040160405180910390fd5b808611156117235760405163aeaddff160e01b815260040160405180910390fd5b50505050505050565b60058301546006840180545f92640100000000900463ffffffff169081111561179957508054600180820183555f928352602080842090920180546001600160a01b0319166001600160a01b03881690811790915583526009870190915260409091208390559050611534565b5f5f90505f876009015f855f815481106117b5576117b5612100565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054905060015b845481101561183d575f896009015f8784815481106117ff576117ff612100565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054905082811115611834578092508193505b506001016117de565b50808610611851575f945050505050611534565b8684838154811061186457611864612100565b5f91825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918916815260098a019091526040902086905550600193505050509392505050565b6118b5611d60565b61093457604051631afcd79f60e31b815260040160405180910390fd5b61121d6118ad565b5f5f51602061240e5f395f51905f528410611908576040516361c0541760e11b815260040160405180910390fd5b5f85815260038701602052604090205461193557604051631c811d5b60e21b815260040160405180910390fd5b5f84815260038701602052604090205415611963576040516312c50cad60e11b815260040160405180910390fd5b5f61196e87876114e9565b8754909150859087905f90611985906001906123db565b60018b01549091505f90815b81811015611cdb578087901c600116600103611b3f575f51602061240e5f395f51905f528a8a858181106119c7576119c7612100565b90506020020135106119ec576040516361c0541760e11b815260040160405180910390fd5b73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808d8d88818110611a2357611a23612100565b905060200201358152602001898152506040518263ffffffff1660e01b8152600401611a4f91906123ab565b602060405180830381865af4158015611a6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8e91906120e9565b955073__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808d8d88818110611ac757611ac7612100565b905060200201358152602001888152506040518263ffffffff1660e01b8152600401611af391906123ab565b602060405180830381865af4158015611b0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3291906120e9565b9450826001019250611cd3565b86811c84821c14611cc0575f51602061240e5f395f51905f528a8a85818110611b6a57611b6a612100565b9050602002013510611b8f576040516361c0541760e11b815260040160405180910390fd5b5f81815260028e016020526040902054859003611bb9575f81815260028e01602052604090208690555b73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808981526020018d8d88818110611bf657611bf6612100565b905060200201358152506040518263ffffffff1660e01b8152600401611c1c91906123ab565b602060405180830381865af4158015611c37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5b91906120e9565b955073__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808881526020018d8d88818110611c9a57611c9a612100565b905060200201358152506040518263ffffffff1660e01b8152600401611af391906123ab565b5f81815260028e01602052604090208690555b600101611991565b5060018c01545f90815260028d0160205260409020548414611d1057604051631fd4986360e11b815260040160405180910390fd5b5f81815260028d01602052604090208590558915611d40575f8b815260038d016020526040808220548c83529120555b5050505f88815260038a0160205260408120555091505095945050505050565b5f611d69611281565b54600160401b900460ff16919050565b600183019183908215611e0a579160200282015f5b83821115611dd857833563ffffffff1683826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302611d8e565b8015611e085782816101000a81549063ffffffff0219169055600401602081600301049283019260010302611dd8565b505b50611e16929150611e56565b5090565b828054828255905f5260205f20908101928215611e0a575f5260205f209182015b82811115611e0a578254825591600101919060010190611e3b565b5b80821115611e16575f8155600101611e57565b5f60208284031215611e7a575f5ffd5b5035919050565b6001600160a01b0381168114610a29575f5ffd5b5f5f5f60608486031215611ea7575f5ffd5b8335611eb281611e81565b92506020840135611ec281611e81565b929592945050506040919091013590565b5f5f5f60808486031215611ee5575f5ffd5b833592506020840135915060808401851015611eff575f5ffd5b6040840190509250925092565b5f60208284031215611f1c575f5ffd5b813561153481611e81565b6001600160a01b0391909116815260200190565b5f5f83601f840112611f4b575f5ffd5b5081356001600160401b03811115611f61575f5ffd5b6020830191508360208260051b8501011115611f7b575f5ffd5b9250929050565b5f5f5f5f5f5f60808789031215611f97575f5ffd5b8635955060208701356001600160401b03811115611fb3575f5ffd5b611fbf89828a01611f3b565b90965094505060408701356001600160401b03811115611fdd575f5ffd5b8701601f81018913611fed575f5ffd5b80356001600160401b03811115612002575f5ffd5b896020828401011115612013575f5ffd5b96999598509396602090940195946060909401359392505050565b602080825282518282018190525f918401906040840190835b8181101561206e5783516001600160a01b0316835260209384019390920191600101612047565b509095945050505050565b5f5f5f6040848603121561208b575f5ffd5b833561209681611e81565b925060208401356001600160401b038111156120b0575f5ffd5b6120bc86828701611f3b565b9497909650939450505050565b5f5f604083850312156120da575f5ffd5b50508035926020909101359150565b5f602082840312156120f9575f5ffd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b803563ffffffff81168114611210575f5ffd5b5f60208284031215612137575f5ffd5b61153482612114565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561086957610869612140565b84815260a0810160208201855f5b60028110156121a25763ffffffff61218c83612114565b1683526020928301929190910190600101612175565b50505060608201939093526080015292915050565b5f602082840312156121c7575f5ffd5b81518015158114611534575f5ffd5b5f600182016121e7576121e7612140565b5060010190565b604080825281018490525f8560608301825b8781101561223057823561221381611e81565b6001600160a01b0316825260209283019290910190600101612200565b508381036020850152848152848660208301375f602086830101526020601f19601f8701168201019250505095945050505050565b5f8161227357612273612140565b505f190190565b602080825282548282018190525f848152918220906040840190835b8181101561206e5783546001600160a01b0316835260019384019360209093019201612296565b6001815b60018411156122f8578085048111156122dc576122dc612140565b60018416156122ea57908102905b60019390931c9280026122c1565b935093915050565b5f8261230e57506001610869565b8161231a57505f610869565b8160018114612330576002811461233a57612356565b6001915050610869565b60ff84111561234b5761234b612140565b50506001821b610869565b5060208310610133831016604e8410600b8410161715612379575081810a610869565b6123855f1984846122bd565b805f190482111561239857612398612140565b029392505050565b5f6115348383612300565b6040810181835f5b60028110156123d25781518352602092830192909101906001016123b3565b50505092915050565b8181038181111561086957610869612140565b5f8261240857634e487b7160e01b5f52601260045260245ffd5b50049056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c634300081c000a",
1002
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b5060043610610195575f3560e01c80639f0f874a116100e0578063dbb06c931161008f578063dbb06c9314610371578063e59e469514610383578063e6745e1314610396578063e82f3b70146103a9578063ebf0c717146103bc578063f2fde38b146103d2578063f379b0df146103e5578063f6fc05d514610408575f5ffd5b80639f0f874a146102d3578063a0164930146102dc578063a04e6065146102fc578063c2b40ae41461030f578063c3a0ec301461032e578063ca2869a01461033f578063da881e5a1461035e575f5ffd5b8063715018a611610147578063715018a614610243578063858142431461024b5780638a78bb151461026b5780638b530cb51461027e5780638cb89ecb146102915780638d1ddfb1146102b05780638da5cb5b146102b85780639015d371146102c0575f5ffd5b80630f3e3412146101995780631794bb3c146101ae5780632800d829146101c1578063291a691b146101e75780632e7b716d1461020a5780634d6861a61461021d57806370e36bbe14610230575b5f5ffd5b6101ac6101a7366004611e6a565b610411565b005b6101ac6101bc366004611e95565b610454565b6101d46101cf366004611e6a565b6105af565b6040519081526020015b60405180910390f35b6101fa6101f5366004611ed3565b6105e8565b60405190151581526020016101de565b6101fa610218366004611f0c565b6107bc565b6101fa61022b366004611e6a565b61086f565b6101ac61023e366004611f0c565b6108ad565b6101ac610923565b60015461025e906001600160a01b031681565b6040516101de9190611f27565b6101ac610279366004611f0c565b610936565b6101ac61028c366004611f82565b610a2c565b6101d461029f366004611e6a565b60096020525f908152604090205481565b6004546101d4565b61025e610bb1565b6101fa6102ce366004611f0c565b610bdf565b6101d460035481565b6102ef6102ea366004611e6a565b610bfe565b6040516101de919061202e565b6101ac61030a366004612079565b610c94565b6101d461031d366004611e6a565b60086020525f908152604090205481565b6001546001600160a01b031661025e565b6101d461034d366004611e6a565b5f9081526008602052604090205490565b6101fa61036c366004611e6a565b610da6565b5f5461025e906001600160a01b031681565b6101ac610391366004611f0c565b610fca565b6101ac6103a43660046120c9565b611042565b6101d46103b7366004611e6a565b6111e4565b6005545f908152600660205260409020546101d4565b6101ac6103e0366004611f0c565b611215565b6004546005546103f3919082565b604080519283526020830191909152016101de565b6101d460025481565b61041961124f565b60038190556040518181527fbe772dc189863d512fa01e489c8eac204975aef1a8662d8b5a333804b5207ab79060200160405180910390a150565b5f61045d611281565b805490915060ff600160401b82041615906001600160401b03165f811580156104835750825b90505f826001600160401b0316600114801561049e5750303b155b9050811580156104ac575080155b156104ca5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104f457845460ff60401b1916600160401b1785555b6001600160a01b03881661051b5760405163d92e233d60e01b815260040160405180910390fd5b610524336112a9565b61052d876108ad565b61053686610411565b61053e610bb1565b6001600160a01b0316886001600160a01b03161461055f5761055f88611215565b83156105a557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f818152600a60205260408120805460ff166105de57604051630d4c1d9760e41b815260040160405180910390fd5b6003015492915050565b5f80546001600160a01b031633146106135760405163e4c2a7eb60e01b815260040160405180910390fd5b5f848152600a60205260409020805460ff1615610643576040516374ff462560e11b815260040160405180910390fd5b60015460408051630cc37d8f60e11b815290515f926001600160a01b031691631986fb1e9160048083019260209291908290030181865afa15801561068a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ae91906120e9565b9050806106c16040860160208701612127565b63ffffffff1611156106d96040860160208701612127565b82909161070c576040516344ec930f60e01b815263ffffffff909216600483015260248201526044015b60405180910390fd5b5050815461ffff19166001908117835582018590554360028301556003546107349042612154565b600383015561074860058301856002611d79565b506005545f908152600660209081526040808320548984526008909252918290205560028301546003840154915188927f381d281d32f95ef8fe4e5f3b263ea6a32d03d331e1a141ae1da996dc02a7a170926107a8928a928a9291612167565b60405180910390a250600195945050505050565b5f6107c682610bdf565b6107d157505f919050565b6001546001600160a01b03166107fa576040516350ca893360e01b815260040160405180910390fd5b600154604051639f8a13d760e01b81526001600160a01b0390911690639f8a13d79061082a908590600401611f27565b602060405180830381865afa158015610845573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086991906121b7565b92915050565b5f818152600a60205260408120805460ff16158061089357508054610100900460ff165b156108a057505f92915050565b6003015442111592915050565b6108b561124f565b6001600160a01b0381166108dc5760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038316908117825560405190917f2c8267accd82e977550ed2349c73311183cd22e306347be4453c8d130995e3c991a250565b61092b61124f565b6109345f6112ba565b565b61093e610bb1565b6001600160a01b0316336001600160a01b0316148061096757506001546001600160a01b031633145b61098457604051632864c4e160e01b815260040160405180910390fd5b61098d81610bdf565b610a2957806109a660046001600160a01b03831661132a565b5060028054905f6109b6836121d6565b9190505550816001600160a01b03167f3318d261fe14a5761d2d1e21555652f623d2134c430a9883c9ad6e958bb0db53610a03836001600160a01b031660046114e990919063ffffffff16565b6002546004546040805193845260208401929092529082015260600160405180910390a2505b50565b610a3461124f565b5f868152600a60205260409020805460ff16610a6357604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff16610a8a57604051634f4b461f60e11b815260040160405180910390fd5b600481015415610aad5760405163632a22bb60e01b815260040160405180910390fd5b60078101548514610af65760405162461bcd60e51b815260206004820152601360248201527209cdec8ca40c6deeadce840dad2e6dac2e8c6d606b1b6044820152606401610703565b60048181018390555f88815260096020526040808220859055905490516340a3b76160e11b8152918201899052602482018490526001600160a01b0316906381476ec2906044015f604051808303815f87803b158015610b54575f5ffd5b505af1158015610b66573d5f5f3e3d5ffd5b50505050867ff7472ea3a028fe8a86ab1c9a3e2176b284c8c3a22675c101e0fa21c140b6678d87878787604051610ba094939291906121ee565b60405180910390a250505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0381165f908152600760205260408120541515610869565b5f818152600a60205260409020600481015460609190610c31576040516322e679e360e11b815260040160405180910390fd5b80600701805480602002602001604051908101604052809291908181526020018280548015610c8757602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c69575b5050505050915050919050565b610c9c610bb1565b6001600160a01b0316336001600160a01b03161480610cc557506001546001600160a01b031633145b610ce257604051632864c4e160e01b815260040160405180910390fd5b610ceb83610bdf565b8390610d0b576040516381e5828960e01b81526004016107039190611f27565b50825f610d2260046001600160a01b0384166114e9565b9050610d3a60046001600160a01b038416868661153b565b5060028054905f610d4a83612265565b90915550506002546004546040805184815260208101939093528201526001600160a01b038616907f8c008e3835f6c79bfcdb89f0f6ca8705e0b01049ee84a90b0e4da1c7ba9405d59060600160405180910390a25050505050565b5f818152600a60205260408120805460ff16610dd557604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff1615610dfd57604051631860f69960e31b815260040160405180910390fd5b8060030154421015610e2257604051632f021e8d60e11b815260040160405180910390fd5b805461ff0019166101001781556005810154600682015464010000000090910463ffffffff16111580610f1857815462ff0000191662010000178255600682015460058301546040805192835264010000000090910463ffffffff16602083015285917fecc4a9fb7e28d074cba7f5b227e9b5827823c850a385539b9a2f98a08f8c203d910160405180910390a25f54604051635d968dc160e11b815260048101869052600260248201526001600160a01b039091169063bb2d1b82906044015f604051808303815f87803b158015610ef9575f5ffd5b505af1158015610f0b573d5f5f3e3d5ffd5b505f979650505050505050565b600682018054610f2c916007850191611e1a565b505f54604051631f3ea75d60e21b8152600481018690526001600160a01b0390911690637cfa9d74906024015f604051808303815f87803b158015610f6f575f5ffd5b505af1158015610f81573d5f5f3e3d5ffd5b50505050837fed38c6266ebed7c01d311349a7fa67e0ef0f1d2f4760d60dbb34ca4799a2e13283600601604051610fb8919061227a565b60405180910390a25060019392505050565b610fd261124f565b6001600160a01b038116610ff95760405163d92e233d60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a7905f90a250565b5f828152600a60205260409020805460ff1661107157604051630d4c1d9760e41b815260040160405180910390fd5b8054610100900460ff161561109957604051631860f69960e31b815260040160405180910390fd5b80600301544211156110be57604051639a19114d60e01b815260040160405180910390fd5b335f90815260088201602052604090205460ff16156110f05760405163257309f160e11b815260040160405180910390fd5b6110f9336107bc565b6111165760405163149fbcfd60e11b815260040160405180910390fd5b611121338385611552565b6001810154604080516bffffffffffffffffffffffff193360601b16602080830191909152603482018690526054820187905260748083019490945282518083039094018452609490910190915281519101205f90335f8181526008850160205260409020805460ff191660011790559091506111a09083908361172c565b506040805184815260208101839052339186917f52999628fb1cb05707e842278833b22e511f11746202cecdf221968b0b89e8bd910160405180910390a350505050565b5f8181526009602052604090205480611210576040516322e679e360e11b815260040160405180910390fd5b919050565b61121d61124f565b6001600160a01b038116611246575f604051631e4fbdf760e01b81526004016107039190611f27565b610a29816112ba565b33611258610bb1565b6001600160a01b031614610934573360405163118cdaa760e01b81526004016107039190611f27565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610869565b6112b16118ad565b610a29816118d2565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f51602061240e5f395f51905f528210611358576040516361c0541760e11b815260040160405180910390fd5b815f03611378576040516314b48df160e11b815260040160405180910390fd5b5f828152600384016020526040902054156113a6576040516312c50cad60e11b815260040160405180910390fd5b8254600180850154906113ba908390612154565b6113c58260026123a0565b10156113d7576113d4816121d6565b90505b60018501819055835f5b828110156114af578084901c600116600103611494576040805180820182525f83815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe9161144e91906004016123ab565b602060405180830381865af4158015611469573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148d91906120e9565b91506114a7565b5f81815260028801602052604090208290555b6001016113e1565b506114b9836121d6565b8087555f928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b5f818152600383016020526040812054810361151857604051631c811d5b60e21b815260040160405180910390fd5b5f828152600384016020526040902054611534906001906123db565b9392505050565b5f61154985855f86866118da565b95945050505050565b5f82116115725760405163aeaddff160e01b815260040160405180910390fd5b6001546001600160a01b031661159b576040516350ca893360e01b815260040160405180910390fd5b5f818152600a602052604081206001805460028301549293926001600160a01b039091169163bb03bd719188916115d1916123db565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015611618573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061163c91906120e9565b90505f60015f9054906101000a90046001600160a01b03166001600160a01b0316631209b1f66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561168f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b391906120e9565b90505f81116116d55760405163aeaddff160e01b815260040160405180910390fd5b5f6116e082846123ee565b90505f81116117025760405163149fbcfd60e11b815260040160405180910390fd5b808611156117235760405163aeaddff160e01b815260040160405180910390fd5b50505050505050565b60058301546006840180545f92640100000000900463ffffffff169081111561179957508054600180820183555f928352602080842090920180546001600160a01b0319166001600160a01b03881690811790915583526009870190915260409091208390559050611534565b5f5f90505f876009015f855f815481106117b5576117b5612100565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054905060015b845481101561183d575f896009015f8784815481106117ff576117ff612100565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054905082811115611834578092508193505b506001016117de565b50808610611851575f945050505050611534565b8684838154811061186457611864612100565b5f91825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918916815260098a019091526040902086905550600193505050509392505050565b6118b5611d60565b61093457604051631afcd79f60e31b815260040160405180910390fd5b61121d6118ad565b5f5f51602061240e5f395f51905f528410611908576040516361c0541760e11b815260040160405180910390fd5b5f85815260038701602052604090205461193557604051631c811d5b60e21b815260040160405180910390fd5b5f84815260038701602052604090205415611963576040516312c50cad60e11b815260040160405180910390fd5b5f61196e87876114e9565b8754909150859087905f90611985906001906123db565b60018b01549091505f90815b81811015611cdb578087901c600116600103611b3f575f51602061240e5f395f51905f528a8a858181106119c7576119c7612100565b90506020020135106119ec576040516361c0541760e11b815260040160405180910390fd5b73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808d8d88818110611a2357611a23612100565b905060200201358152602001898152506040518263ffffffff1660e01b8152600401611a4f91906123ab565b602060405180830381865af4158015611a6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8e91906120e9565b955073__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808d8d88818110611ac757611ac7612100565b905060200201358152602001888152506040518263ffffffff1660e01b8152600401611af391906123ab565b602060405180830381865af4158015611b0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3291906120e9565b9450826001019250611cd3565b86811c84821c14611cc0575f51602061240e5f395f51905f528a8a85818110611b6a57611b6a612100565b9050602002013510611b8f576040516361c0541760e11b815260040160405180910390fd5b5f81815260028e016020526040902054859003611bb9575f81815260028e01602052604090208690555b73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808981526020018d8d88818110611bf657611bf6612100565b905060200201358152506040518263ffffffff1660e01b8152600401611c1c91906123ab565b602060405180830381865af4158015611c37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5b91906120e9565b955073__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe60405180604001604052808881526020018d8d88818110611c9a57611c9a612100565b905060200201358152506040518263ffffffff1660e01b8152600401611af391906123ab565b5f81815260028e01602052604090208690555b600101611991565b5060018c01545f90815260028d0160205260409020548414611d1057604051631fd4986360e11b815260040160405180910390fd5b5f81815260028d01602052604090208590558915611d40575f8b815260038d016020526040808220548c83529120555b5050505f88815260038a0160205260408120555091505095945050505050565b5f611d69611281565b54600160401b900460ff16919050565b600183019183908215611e0a579160200282015f5b83821115611dd857833563ffffffff1683826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302611d8e565b8015611e085782816101000a81549063ffffffff0219169055600401602081600301049283019260010302611dd8565b505b50611e16929150611e56565b5090565b828054828255905f5260205f20908101928215611e0a575f5260205f209182015b82811115611e0a578254825591600101919060010190611e3b565b5b80821115611e16575f8155600101611e57565b5f60208284031215611e7a575f5ffd5b5035919050565b6001600160a01b0381168114610a29575f5ffd5b5f5f5f60608486031215611ea7575f5ffd5b8335611eb281611e81565b92506020840135611ec281611e81565b929592945050506040919091013590565b5f5f5f60808486031215611ee5575f5ffd5b833592506020840135915060808401851015611eff575f5ffd5b6040840190509250925092565b5f60208284031215611f1c575f5ffd5b813561153481611e81565b6001600160a01b0391909116815260200190565b5f5f83601f840112611f4b575f5ffd5b5081356001600160401b03811115611f61575f5ffd5b6020830191508360208260051b8501011115611f7b575f5ffd5b9250929050565b5f5f5f5f5f5f60808789031215611f97575f5ffd5b8635955060208701356001600160401b03811115611fb3575f5ffd5b611fbf89828a01611f3b565b90965094505060408701356001600160401b03811115611fdd575f5ffd5b8701601f81018913611fed575f5ffd5b80356001600160401b03811115612002575f5ffd5b896020828401011115612013575f5ffd5b96999598509396602090940195946060909401359392505050565b602080825282518282018190525f918401906040840190835b8181101561206e5783516001600160a01b0316835260209384019390920191600101612047565b509095945050505050565b5f5f5f6040848603121561208b575f5ffd5b833561209681611e81565b925060208401356001600160401b038111156120b0575f5ffd5b6120bc86828701611f3b565b9497909650939450505050565b5f5f604083850312156120da575f5ffd5b50508035926020909101359150565b5f602082840312156120f9575f5ffd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b803563ffffffff81168114611210575f5ffd5b5f60208284031215612137575f5ffd5b61153482612114565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561086957610869612140565b84815260a0810160208201855f5b60028110156121a25763ffffffff61218c83612114565b1683526020928301929190910190600101612175565b50505060608201939093526080015292915050565b5f602082840312156121c7575f5ffd5b81518015158114611534575f5ffd5b5f600182016121e7576121e7612140565b5060010190565b604080825281018490525f8560608301825b8781101561223057823561221381611e81565b6001600160a01b0316825260209283019290910190600101612200565b508381036020850152848152848660208301375f602086830101526020601f19601f8701168201019250505095945050505050565b5f8161227357612273612140565b505f190190565b602080825282548282018190525f848152918220906040840190835b8181101561206e5783546001600160a01b0316835260019384019360209093019201612296565b6001815b60018411156122f8578085048111156122dc576122dc612140565b60018416156122ea57908102905b60019390931c9280026122c1565b935093915050565b5f8261230e57506001610869565b8161231a57505f610869565b8160018114612330576002811461233a57612356565b6001915050610869565b60ff84111561234b5761234b612140565b50506001821b610869565b5060208310610133831016604e8410600b8410161715612379575081810a610869565b6123855f1984846122bd565b805f190482111561239857612398612140565b029392505050565b5f6115348383612300565b6040810181835f5b60028110156123d25781518352602092830192909101906001016123b3565b50505092915050565b8181038181111561086957610869612140565b5f8261240857634e487b7160e01b5f52601260045260245ffd5b50049056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c634300081c000a",
937
1003
  "linkReferences": {
938
1004
  "npm/poseidon-solidity@0.0.5/PoseidonT3.sol": {
939
1005
  "PoseidonT3": [
940
1006
  {
941
1007
  "length": 20,
942
- "start": 4971
1008
+ "start": 5373
943
1009
  },
944
1010
  {
945
1011
  "length": 20,
946
- "start": 6512
1012
+ "start": 6852
947
1013
  },
948
1014
  {
949
1015
  "length": 20,
950
- "start": 6676
1016
+ "start": 7016
951
1017
  },
952
1018
  {
953
1019
  "length": 20,
954
- "start": 6992
1020
+ "start": 7313
955
1021
  },
956
1022
  {
957
1023
  "length": 20,
958
- "start": 7156
1024
+ "start": 7477
959
1025
  }
960
1026
  ]
961
1027
  }
@@ -965,28 +1031,28 @@
965
1031
  "PoseidonT3": [
966
1032
  {
967
1033
  "length": 20,
968
- "start": 4757
1034
+ "start": 5159
969
1035
  },
970
1036
  {
971
1037
  "length": 20,
972
- "start": 6298
1038
+ "start": 6638
973
1039
  },
974
1040
  {
975
1041
  "length": 20,
976
- "start": 6462
1042
+ "start": 6802
977
1043
  },
978
1044
  {
979
1045
  "length": 20,
980
- "start": 6778
1046
+ "start": 7099
981
1047
  },
982
1048
  {
983
1049
  "length": 20,
984
- "start": 6942
1050
+ "start": 7263
985
1051
  }
986
1052
  ]
987
1053
  }
988
1054
  },
989
1055
  "immutableReferences": {},
990
1056
  "inputSourceName": "project/contracts/registry/CiphernodeRegistryOwnable.sol",
991
- "buildInfoId": "solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799"
1057
+ "buildInfoId": "solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e"
992
1058
  }