@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
@@ -0,0 +1,684 @@
1
+ {
2
+ "_format": "hh3-artifact-1",
3
+ "contractName": "E3RefundManager",
4
+ "sourceName": "contracts/E3RefundManager.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "e3Id",
16
+ "type": "uint256"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "claimant",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "name": "AlreadyClaimed",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "e3Id",
32
+ "type": "uint256"
33
+ }
34
+ ],
35
+ "name": "E3NotFailed",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "InvalidInitialization",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "uint256",
47
+ "name": "e3Id",
48
+ "type": "uint256"
49
+ }
50
+ ],
51
+ "name": "NoRefundAvailable",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [
56
+ {
57
+ "internalType": "uint256",
58
+ "name": "e3Id",
59
+ "type": "uint256"
60
+ },
61
+ {
62
+ "internalType": "address",
63
+ "name": "caller",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "NotHonestNode",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [],
72
+ "name": "NotInitializing",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "uint256",
79
+ "name": "e3Id",
80
+ "type": "uint256"
81
+ },
82
+ {
83
+ "internalType": "address",
84
+ "name": "caller",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "NotRequester",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "address",
95
+ "name": "owner",
96
+ "type": "address"
97
+ }
98
+ ],
99
+ "name": "OwnableInvalidOwner",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "address",
106
+ "name": "account",
107
+ "type": "address"
108
+ }
109
+ ],
110
+ "name": "OwnableUnauthorizedAccount",
111
+ "type": "error"
112
+ },
113
+ {
114
+ "inputs": [
115
+ {
116
+ "internalType": "uint256",
117
+ "name": "e3Id",
118
+ "type": "uint256"
119
+ }
120
+ ],
121
+ "name": "RefundNotCalculated",
122
+ "type": "error"
123
+ },
124
+ {
125
+ "inputs": [
126
+ {
127
+ "internalType": "address",
128
+ "name": "token",
129
+ "type": "address"
130
+ }
131
+ ],
132
+ "name": "SafeERC20FailedOperation",
133
+ "type": "error"
134
+ },
135
+ {
136
+ "inputs": [],
137
+ "name": "Unauthorized",
138
+ "type": "error"
139
+ },
140
+ {
141
+ "anonymous": false,
142
+ "inputs": [
143
+ {
144
+ "indexed": false,
145
+ "internalType": "uint64",
146
+ "name": "version",
147
+ "type": "uint64"
148
+ }
149
+ ],
150
+ "name": "Initialized",
151
+ "type": "event"
152
+ },
153
+ {
154
+ "anonymous": false,
155
+ "inputs": [
156
+ {
157
+ "indexed": true,
158
+ "internalType": "address",
159
+ "name": "previousOwner",
160
+ "type": "address"
161
+ },
162
+ {
163
+ "indexed": true,
164
+ "internalType": "address",
165
+ "name": "newOwner",
166
+ "type": "address"
167
+ }
168
+ ],
169
+ "name": "OwnershipTransferred",
170
+ "type": "event"
171
+ },
172
+ {
173
+ "anonymous": false,
174
+ "inputs": [
175
+ {
176
+ "indexed": true,
177
+ "internalType": "uint256",
178
+ "name": "e3Id",
179
+ "type": "uint256"
180
+ },
181
+ {
182
+ "indexed": true,
183
+ "internalType": "address",
184
+ "name": "claimant",
185
+ "type": "address"
186
+ },
187
+ {
188
+ "indexed": false,
189
+ "internalType": "uint256",
190
+ "name": "amount",
191
+ "type": "uint256"
192
+ },
193
+ {
194
+ "indexed": false,
195
+ "internalType": "bytes32",
196
+ "name": "claimType",
197
+ "type": "bytes32"
198
+ }
199
+ ],
200
+ "name": "RefundClaimed",
201
+ "type": "event"
202
+ },
203
+ {
204
+ "anonymous": false,
205
+ "inputs": [
206
+ {
207
+ "indexed": true,
208
+ "internalType": "uint256",
209
+ "name": "e3Id",
210
+ "type": "uint256"
211
+ },
212
+ {
213
+ "indexed": false,
214
+ "internalType": "uint256",
215
+ "name": "requesterAmount",
216
+ "type": "uint256"
217
+ },
218
+ {
219
+ "indexed": false,
220
+ "internalType": "uint256",
221
+ "name": "honestNodeAmount",
222
+ "type": "uint256"
223
+ },
224
+ {
225
+ "indexed": false,
226
+ "internalType": "uint256",
227
+ "name": "protocolAmount",
228
+ "type": "uint256"
229
+ },
230
+ {
231
+ "indexed": false,
232
+ "internalType": "uint256",
233
+ "name": "totalSlashed",
234
+ "type": "uint256"
235
+ }
236
+ ],
237
+ "name": "RefundDistributionCalculated",
238
+ "type": "event"
239
+ },
240
+ {
241
+ "anonymous": false,
242
+ "inputs": [
243
+ {
244
+ "indexed": true,
245
+ "internalType": "uint256",
246
+ "name": "e3Id",
247
+ "type": "uint256"
248
+ },
249
+ {
250
+ "indexed": false,
251
+ "internalType": "uint256",
252
+ "name": "amount",
253
+ "type": "uint256"
254
+ }
255
+ ],
256
+ "name": "SlashedFundsRouted",
257
+ "type": "event"
258
+ },
259
+ {
260
+ "anonymous": false,
261
+ "inputs": [
262
+ {
263
+ "components": [
264
+ {
265
+ "internalType": "uint16",
266
+ "name": "committeeFormationBps",
267
+ "type": "uint16"
268
+ },
269
+ {
270
+ "internalType": "uint16",
271
+ "name": "dkgBps",
272
+ "type": "uint16"
273
+ },
274
+ {
275
+ "internalType": "uint16",
276
+ "name": "decryptionBps",
277
+ "type": "uint16"
278
+ },
279
+ {
280
+ "internalType": "uint16",
281
+ "name": "protocolBps",
282
+ "type": "uint16"
283
+ }
284
+ ],
285
+ "indexed": false,
286
+ "internalType": "struct IE3RefundManager.WorkValueAllocation",
287
+ "name": "allocation",
288
+ "type": "tuple"
289
+ }
290
+ ],
291
+ "name": "WorkAllocationUpdated",
292
+ "type": "event"
293
+ },
294
+ {
295
+ "inputs": [],
296
+ "name": "bondingRegistry",
297
+ "outputs": [
298
+ {
299
+ "internalType": "contract IBondingRegistry",
300
+ "name": "",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "stateMutability": "view",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [
309
+ {
310
+ "internalType": "uint256",
311
+ "name": "e3Id",
312
+ "type": "uint256"
313
+ },
314
+ {
315
+ "internalType": "uint256",
316
+ "name": "originalPayment",
317
+ "type": "uint256"
318
+ },
319
+ {
320
+ "internalType": "address[]",
321
+ "name": "honestNodes",
322
+ "type": "address[]"
323
+ }
324
+ ],
325
+ "name": "calculateRefund",
326
+ "outputs": [],
327
+ "stateMutability": "nonpayable",
328
+ "type": "function"
329
+ },
330
+ {
331
+ "inputs": [
332
+ {
333
+ "internalType": "enum IEnclave.E3Stage",
334
+ "name": "stage",
335
+ "type": "uint8"
336
+ }
337
+ ],
338
+ "name": "calculateWorkValue",
339
+ "outputs": [
340
+ {
341
+ "internalType": "uint16",
342
+ "name": "workCompletedBps",
343
+ "type": "uint16"
344
+ },
345
+ {
346
+ "internalType": "uint16",
347
+ "name": "workRemainingBps",
348
+ "type": "uint16"
349
+ }
350
+ ],
351
+ "stateMutability": "view",
352
+ "type": "function"
353
+ },
354
+ {
355
+ "inputs": [
356
+ {
357
+ "internalType": "uint256",
358
+ "name": "e3Id",
359
+ "type": "uint256"
360
+ }
361
+ ],
362
+ "name": "claimHonestNodeReward",
363
+ "outputs": [
364
+ {
365
+ "internalType": "uint256",
366
+ "name": "amount",
367
+ "type": "uint256"
368
+ }
369
+ ],
370
+ "stateMutability": "nonpayable",
371
+ "type": "function"
372
+ },
373
+ {
374
+ "inputs": [
375
+ {
376
+ "internalType": "uint256",
377
+ "name": "e3Id",
378
+ "type": "uint256"
379
+ }
380
+ ],
381
+ "name": "claimRequesterRefund",
382
+ "outputs": [
383
+ {
384
+ "internalType": "uint256",
385
+ "name": "amount",
386
+ "type": "uint256"
387
+ }
388
+ ],
389
+ "stateMutability": "nonpayable",
390
+ "type": "function"
391
+ },
392
+ {
393
+ "inputs": [],
394
+ "name": "enclave",
395
+ "outputs": [
396
+ {
397
+ "internalType": "contract IEnclave",
398
+ "name": "",
399
+ "type": "address"
400
+ }
401
+ ],
402
+ "stateMutability": "view",
403
+ "type": "function"
404
+ },
405
+ {
406
+ "inputs": [],
407
+ "name": "feeToken",
408
+ "outputs": [
409
+ {
410
+ "internalType": "contract IERC20",
411
+ "name": "",
412
+ "type": "address"
413
+ }
414
+ ],
415
+ "stateMutability": "view",
416
+ "type": "function"
417
+ },
418
+ {
419
+ "inputs": [
420
+ {
421
+ "internalType": "uint256",
422
+ "name": "e3Id",
423
+ "type": "uint256"
424
+ }
425
+ ],
426
+ "name": "getRefundDistribution",
427
+ "outputs": [
428
+ {
429
+ "components": [
430
+ {
431
+ "internalType": "uint256",
432
+ "name": "requesterAmount",
433
+ "type": "uint256"
434
+ },
435
+ {
436
+ "internalType": "uint256",
437
+ "name": "honestNodeAmount",
438
+ "type": "uint256"
439
+ },
440
+ {
441
+ "internalType": "uint256",
442
+ "name": "protocolAmount",
443
+ "type": "uint256"
444
+ },
445
+ {
446
+ "internalType": "uint256",
447
+ "name": "totalSlashed",
448
+ "type": "uint256"
449
+ },
450
+ {
451
+ "internalType": "uint256",
452
+ "name": "honestNodeCount",
453
+ "type": "uint256"
454
+ },
455
+ {
456
+ "internalType": "bool",
457
+ "name": "calculated",
458
+ "type": "bool"
459
+ }
460
+ ],
461
+ "internalType": "struct IE3RefundManager.RefundDistribution",
462
+ "name": "",
463
+ "type": "tuple"
464
+ }
465
+ ],
466
+ "stateMutability": "view",
467
+ "type": "function"
468
+ },
469
+ {
470
+ "inputs": [],
471
+ "name": "getWorkAllocation",
472
+ "outputs": [
473
+ {
474
+ "components": [
475
+ {
476
+ "internalType": "uint16",
477
+ "name": "committeeFormationBps",
478
+ "type": "uint16"
479
+ },
480
+ {
481
+ "internalType": "uint16",
482
+ "name": "dkgBps",
483
+ "type": "uint16"
484
+ },
485
+ {
486
+ "internalType": "uint16",
487
+ "name": "decryptionBps",
488
+ "type": "uint16"
489
+ },
490
+ {
491
+ "internalType": "uint16",
492
+ "name": "protocolBps",
493
+ "type": "uint16"
494
+ }
495
+ ],
496
+ "internalType": "struct IE3RefundManager.WorkValueAllocation",
497
+ "name": "",
498
+ "type": "tuple"
499
+ }
500
+ ],
501
+ "stateMutability": "view",
502
+ "type": "function"
503
+ },
504
+ {
505
+ "inputs": [
506
+ {
507
+ "internalType": "uint256",
508
+ "name": "e3Id",
509
+ "type": "uint256"
510
+ },
511
+ {
512
+ "internalType": "address",
513
+ "name": "claimant",
514
+ "type": "address"
515
+ }
516
+ ],
517
+ "name": "hasClaimed",
518
+ "outputs": [
519
+ {
520
+ "internalType": "bool",
521
+ "name": "",
522
+ "type": "bool"
523
+ }
524
+ ],
525
+ "stateMutability": "view",
526
+ "type": "function"
527
+ },
528
+ {
529
+ "inputs": [
530
+ {
531
+ "internalType": "address",
532
+ "name": "_owner",
533
+ "type": "address"
534
+ },
535
+ {
536
+ "internalType": "address",
537
+ "name": "_enclave",
538
+ "type": "address"
539
+ },
540
+ {
541
+ "internalType": "address",
542
+ "name": "_treasury",
543
+ "type": "address"
544
+ }
545
+ ],
546
+ "name": "initialize",
547
+ "outputs": [],
548
+ "stateMutability": "nonpayable",
549
+ "type": "function"
550
+ },
551
+ {
552
+ "inputs": [],
553
+ "name": "owner",
554
+ "outputs": [
555
+ {
556
+ "internalType": "address",
557
+ "name": "",
558
+ "type": "address"
559
+ }
560
+ ],
561
+ "stateMutability": "view",
562
+ "type": "function"
563
+ },
564
+ {
565
+ "inputs": [],
566
+ "name": "renounceOwnership",
567
+ "outputs": [],
568
+ "stateMutability": "nonpayable",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [
573
+ {
574
+ "internalType": "uint256",
575
+ "name": "e3Id",
576
+ "type": "uint256"
577
+ },
578
+ {
579
+ "internalType": "uint256",
580
+ "name": "amount",
581
+ "type": "uint256"
582
+ }
583
+ ],
584
+ "name": "routeSlashedFunds",
585
+ "outputs": [],
586
+ "stateMutability": "nonpayable",
587
+ "type": "function"
588
+ },
589
+ {
590
+ "inputs": [
591
+ {
592
+ "internalType": "address",
593
+ "name": "_enclave",
594
+ "type": "address"
595
+ }
596
+ ],
597
+ "name": "setEnclave",
598
+ "outputs": [],
599
+ "stateMutability": "nonpayable",
600
+ "type": "function"
601
+ },
602
+ {
603
+ "inputs": [
604
+ {
605
+ "internalType": "address",
606
+ "name": "_treasury",
607
+ "type": "address"
608
+ }
609
+ ],
610
+ "name": "setTreasury",
611
+ "outputs": [],
612
+ "stateMutability": "nonpayable",
613
+ "type": "function"
614
+ },
615
+ {
616
+ "inputs": [
617
+ {
618
+ "components": [
619
+ {
620
+ "internalType": "uint16",
621
+ "name": "committeeFormationBps",
622
+ "type": "uint16"
623
+ },
624
+ {
625
+ "internalType": "uint16",
626
+ "name": "dkgBps",
627
+ "type": "uint16"
628
+ },
629
+ {
630
+ "internalType": "uint16",
631
+ "name": "decryptionBps",
632
+ "type": "uint16"
633
+ },
634
+ {
635
+ "internalType": "uint16",
636
+ "name": "protocolBps",
637
+ "type": "uint16"
638
+ }
639
+ ],
640
+ "internalType": "struct IE3RefundManager.WorkValueAllocation",
641
+ "name": "allocation",
642
+ "type": "tuple"
643
+ }
644
+ ],
645
+ "name": "setWorkAllocation",
646
+ "outputs": [],
647
+ "stateMutability": "nonpayable",
648
+ "type": "function"
649
+ },
650
+ {
651
+ "inputs": [
652
+ {
653
+ "internalType": "address",
654
+ "name": "newOwner",
655
+ "type": "address"
656
+ }
657
+ ],
658
+ "name": "transferOwnership",
659
+ "outputs": [],
660
+ "stateMutability": "nonpayable",
661
+ "type": "function"
662
+ },
663
+ {
664
+ "inputs": [],
665
+ "name": "treasury",
666
+ "outputs": [
667
+ {
668
+ "internalType": "address",
669
+ "name": "",
670
+ "type": "address"
671
+ }
672
+ ],
673
+ "stateMutability": "view",
674
+ "type": "function"
675
+ }
676
+ ],
677
+ "bytecode": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611cbd806100d65f395ff3fe608060405234801561000f575f5ffd5b506004361061010d575f3560e01c8063873f6f9e116100a9578063c0c53b8b1161006e578063c0c53b8b14610343578063dbb06c9314610356578063ec3c3fa814610368578063f0f442601461037b578063f2fde38b1461038e575f5ffd5b8063873f6f9e146102925780638b58c246146102b55780638da5cb5b146102c8578063a0edc1b6146102d0578063afaf00b1146102e3575f5ffd5b806322537f6e146101115780632aad855a146101cd578063313ddae2146101ee5780633eecc1331461020357806361d027b314610231578063647846a51461025157806370e36bbe14610264578063715018a614610277578063858142431461027f575b5f5ffd5b61017d604080516080810182525f808252602082018190529181018290526060810191909152506040805160808101825260045461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b9004909116606082015290565b6040516101c491905f60808201905061ffff835116825261ffff602084015116602083015261ffff604084015116604083015261ffff606084015116606083015292915050565b60405180910390f35b6101e06101db36600461178f565b6103a1565b6040519081526020016101c4565b6102016101fc3660046117a6565b610750565b005b6102166102113660046117bf565b610856565b6040805161ffff9384168152929091166020830152016101c4565b600354610244906001600160a01b031681565b6040516101c491906117e4565b600154610244906001600160a01b031681565b61020161027236600461180c565b61097c565b6102016109cb565b600254610244906001600160a01b031681565b6102a56102a0366004611827565b6109de565b60405190151581526020016101c4565b6102016102c3366004611855565b610a0a565b610244610cbd565b6102016102de3660046118d4565b610ceb565b6102f66102f136600461178f565b610e0a565b6040516101c491905f60c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151151560a083015292915050565b6102016103513660046118f4565b610e99565b5f54610244906001600160a01b031681565b6101e061037636600461178f565b611176565b61020161038936600461180c565b61133a565b61020161039c36600461180c565b61138a565b5f818152600560208190526040822090810154839060ff166103e2576040516305716e5560e01b81526004016103d991815260200190565b60405180910390fd5b505f8381526006602090815260408083203380855292529091205484919060ff1615610423576040516302a4851560e61b81526004016103d992919061193c565b50505f8381526007602090815260408083208054825181850281018501909352808352919290919083018282801561048257602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610464575b509394505f935083925050505b82518110801561049d575081155b156104e557336001600160a01b03168382815181106104be576104be611953565b60200260200101516001600160a01b031614915080806104dd9061197b565b91505061048f565b5084338261050857604051632ccd76b760e01b81526004016103d992919061193c565b50505f8360040154118590610533576040516327c4560160e11b81526004016103d991815260200190565b50826004015483600101546105489190611993565b9350848461056c576040516327c4560160e11b81526004016103d991815260200190565b505f85815260066020908152604080832033845290915290819020805460ff1916600190811790915554600254915163095ea7b360e01b81526001600160a01b0392831660048201526024810187905291169063095ea7b3906044016020604051808303815f875af11580156105e4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060891906119b2565b506040805160018082528183019092525f916020808301908036833701905050905033815f8151811061063d5761063d611953565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092525f9181602001602082028036833701905050905085815f8151811061068c5761068c611953565b6020908102919091010152600254600154604051636ec640c760e11b81526001600160a01b039283169263dd8c818e926106cf92911690869086906004016119d1565b5f604051808303815f87803b1580156106e6575f5ffd5b505af11580156106f8573d5f5f3e3d5ffd5b5050604080518981526a484f4e4553545f4e4f444560a81b60208201523393508a92507fae0c8d9350b2d2fb3ecf7c8a4d3a4dcea1e210b76a30894c73810d9aeca6f8b6910160405180910390a35050505050919050565b6107586113c7565b5f6107696080830160608401611a79565b61ffff1661077d6060840160408501611a79565b61ffff166107916040850160208601611a79565b61ffff166107a26020860186611a79565b61ffff166107b09190611a94565b6107ba9190611a94565b6107c49190611a94565b9050806127101461080b5760405162461bcd60e51b815260206004820152601160248201527004d7573742073756d20746f20313030303607c1b60448201526064016103d9565b8160046108188282611aa7565b9050507f8ce00a428d89b9953fef6150768b08191cd09fde7402b3380277ff0fe4e2ffb98260405161084a9190611b50565b60405180910390a15050565b6040805160808101825260045461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b900490911660608201525f90819060018460068111156108b0576108b0611bb2565b14806108cc57505f8460068111156108ca576108ca611bb2565b145b156108d9575f9250610959565b60028460068111156108ed576108ed611bb2565b036108fb5780519250610959565b600384600681111561090f5761090f611bb2565b0361092c57602081015181516109259190611bc6565b9250610959565b600484600681111561094057610940611bb2565b0361095957602081015181516109569190611bc6565b92505b606081015161096a84612710611be0565b6109749190611be0565b915050915091565b6109846113c7565b6001600160a01b0381166109aa5760405162461bcd60e51b81526004016103d990611bfa565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6109d36113c7565b6109dc5f6113f9565b565b5f8281526006602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b5f546001600160a01b03163314610a33576040516282b42960e81b815260040160405180910390fd5b5f848152600560208190526040909120015460ff1615610a8a5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e4818d85b18dd5b185d195960721b60448201526064016103d9565b5f8311610ac65760405162461bcd60e51b815260206004820152600a602482015269139bc81c185e5b595b9d60b21b60448201526064016103d9565b5f610ad085611469565b90505f5f610add83610856565b90925090505f612710610af461ffff851689611c23565b610afe9190611993565b90505f612710610b1261ffff85168a611c23565b610b1c9190611993565b90505f81610b2a848b611c3a565b610b349190611c3a565b90506040518060c001604052808381526020018481526020018281526020015f81526020018989905081526020016001151581525060055f8c81526020019081526020015f205f820151815f01556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015f6101000a81548160ff0219169083151502179055509050505f5f90505b87811015610c44575f8b8152600760205260409020898983818110610bf857610bf8611953565b9050602002016020810190610c0d919061180c565b8154600180820184555f93845260209093200180546001600160a01b0319166001600160a01b039290921691909117905501610bd1565b508015610c6857600354600154610c68916001600160a01b03918216911683611650565b60408051838152602081018590529081018290525f60608201528a907f2967f7504d941fbe5908ece00f677f793a3a9af800de3002a039cc79690156249060800160405180910390a250505050505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b5f546001600160a01b03163314610d14576040516282b42960e81b815260040160405180910390fd5b5f8281526005602081905260409091209081015460ff16610d685760405162461bcd60e51b815260206004820152600e60248201526d139bdd0818d85b18dd5b185d195960921b60448201526064016103d9565b5f610d74600284611993565b90505f610d818285611c3a565b905081835f015f828254610d959190611a94565b9250508190555080836001015f828254610daf9190611a94565b9250508190555083836003015f828254610dc99190611a94565b909155505060405184815285907fc1b82cb49286550b3b668d85cbf19b4e2a1b806097b7972e32cb47dc8408b2669060200160405180910390a25050505050565b610e3f6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f151581525090565b505f90815260056020818152604092839020835160c08101855281548152600182015492810192909252600281015493820193909352600383015460608201526004830154608082015291015460ff16151560a082015290565b5f610ea26116a7565b805490915060ff600160401b820416159067ffffffffffffffff165f81158015610ec95750825b90505f8267ffffffffffffffff166001148015610ee55750303b155b905081158015610ef3575080155b15610f115760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f3b57845460ff60401b1916600160401b1785555b610f44336116cf565b6001600160a01b038716610f6a5760405162461bcd60e51b81526004016103d990611bfa565b6001600160a01b038616610f905760405162461bcd60e51b81526004016103d990611c4d565b5f80546001600160a01b0319166001600160a01b0389169081179091556040805163647846a560e01b8152905163647846a5916004808201926020929091908290030181865afa158015610fe6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100a9190611c77565b600180546001600160a01b0319166001600160a01b039283161790555f5460408051638581424360e01b81529051919092169163858142439160048083019260209291908290030181865afa158015611065573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110899190611c77565b600280546001600160a01b03199081166001600160a01b039384161790915560038054909116918816919091179055604080516080810182526103e88152610bb8602082015261157c918101919091526101f46060909101526004805467ffffffffffffffff19166701f4157c0bb803e8179055611105610cbd565b6001600160a01b0316886001600160a01b031614611126576111268861138a565b831561116c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f81815260056020819052604082209081015460ff166111ac576040516305716e5560e01b8152600481018490526024016103d9565b5f80546040516399c6679d60e01b8152600481018690526001600160a01b03909116906399c6679d90602401602060405180830381865afa1580156111f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112179190611c77565b9050336001600160a01b038216146112465783336040516358ea1a2760e01b81526004016103d992919061193c565b5f84815260066020908152604080832033845290915290205460ff16156112845783336040516302a4851560e61b81526004016103d992919061193c565b815492505f8390036112ac576040516327c4560160e11b8152600481018590526024016103d9565b5f848152600660209081526040808320338085529252909120805460ff19166001908117909155546112eb916001600160a01b03919091169085611650565b60408051848152682922a8aaa2a9aa22a960b91b6020820152339186917fae0c8d9350b2d2fb3ecf7c8a4d3a4dcea1e210b76a30894c73810d9aeca6f8b6910160405180910390a35050919050565b6113426113c7565b6001600160a01b0381166113685760405162461bcd60e51b81526004016103d990611c4d565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6113926113c7565b6001600160a01b0381166113bb575f604051631e4fbdf760e01b81526004016103d991906117e4565b6113c4816113f9565b50565b336113d0610cbd565b6001600160a01b0316146109dc573360405163118cdaa760e01b81526004016103d991906117e4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051631b62e9c560e11b81526004810184905282916001600160a01b0316906336c5d38a90602401602060405180830381865afa1580156114b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d49190611c92565b9050600181600c8111156114ea576114ea611bb2565b14806115075750600281600c81111561150557611505611bb2565b145b156115155750600192915050565b600381600c81111561152957611529611bb2565b14806115465750600481600c81111561154457611544611bb2565b145b156115545750600292915050565b600581600c81111561156857611568611bb2565b036115765750600392915050565b600681600c81111561158a5761158a611bb2565b14806115a75750600781600c8111156115a5576115a5611bb2565b145b806115c35750600881600c8111156115c1576115c1611bb2565b145b806115df5750600981600c8111156115dd576115dd611bb2565b145b156115ed5750600392915050565b600a81600c81111561160157611601611bb2565b148061161e5750600b81600c81111561161c5761161c611bb2565b145b8061163a5750600c81600c81111561163857611638611bb2565b145b156116485750600492915050565b505f92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116a29084906116e0565b505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610a04565b6116d7611749565b6113c48161176e565b5f5f60205f8451602086015f885af1806116ff576040513d5f823e3d81fd5b50505f513d91508115611716578060011415611723565b6001600160a01b0384163b155b156117435783604051635274afe760e01b81526004016103d991906117e4565b50505050565b611751611776565b6109dc57604051631afcd79f60e31b815260040160405180910390fd5b611392611749565b5f61177f6116a7565b54600160401b900460ff16919050565b5f6020828403121561179f575f5ffd5b5035919050565b5f60808284031280156117b7575f5ffd5b509092915050565b5f602082840312156117cf575f5ffd5b8135600781106117dd575f5ffd5b9392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146113c4575f5ffd5b5f6020828403121561181c575f5ffd5b81356117dd816117f8565b5f5f60408385031215611838575f5ffd5b82359150602083013561184a816117f8565b809150509250929050565b5f5f5f5f60608587031215611868575f5ffd5b8435935060208501359250604085013567ffffffffffffffff81111561188c575f5ffd5b8501601f8101871361189c575f5ffd5b803567ffffffffffffffff8111156118b2575f5ffd5b8760208260051b84010111156118c6575f5ffd5b949793965060200194505050565b5f5f604083850312156118e5575f5ffd5b50508035926020909101359150565b5f5f5f60608486031215611906575f5ffd5b8335611911816117f8565b92506020840135611921816117f8565b91506040840135611931816117f8565b809150509250925092565b9182526001600160a01b0316602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161198c5761198c611967565b5060010190565b5f826119ad57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156119c2575f5ffd5b815180151581146117dd575f5ffd5b6001600160a01b03841681526060602080830182905284519183018290525f91908501906080840190835b81811015611a235783516001600160a01b03168352602093840193909201916001016119fc565b50508381036040850152845180825260209182019250908501905f5b81811015611a5d578251845260209384019390920191600101611a3f565b5091979650505050505050565b61ffff811681146113c4575f5ffd5b5f60208284031215611a89575f5ffd5b81356117dd81611a6a565b80820180821115610a0457610a04611967565b8135611ab281611a6a565b61ffff8116905081548161ffff1982161783556020840135611ad381611a6a565b63ffff00008160101b169050808363ffffffff198416171784556040850135611afb81611a6a565b65ffff000000008160201b168465ffffffffffff198516178317178555505050505f6060830135611b2b81611a6a565b825467ffff000000000000191660309190911b67ffff00000000000016179091555050565b608081018235611b5f81611a6a565b61ffff1682526020830135611b7381611a6a565b61ffff1660208301526040830135611b8a81611a6a565b61ffff1660408301526060830135611ba181611a6a565b61ffff811660608401525092915050565b634e487b7160e01b5f52602160045260245ffd5b61ffff8181168382160190811115610a0457610a04611967565b61ffff8281168282160390811115610a0457610a04611967565b6020808252600f908201526e496e76616c696420656e636c61766560881b604082015260600190565b8082028115828204841417610a0457610a04611967565b81810381811115610a0457610a04611967565b60208082526010908201526f496e76616c696420747265617375727960801b604082015260600190565b5f60208284031215611c87575f5ffd5b81516117dd816117f8565b5f60208284031215611ca2575f5ffd5b8151600d81106117dd575f5ffdfea164736f6c634300081c000a",
678
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061010d575f3560e01c8063873f6f9e116100a9578063c0c53b8b1161006e578063c0c53b8b14610343578063dbb06c9314610356578063ec3c3fa814610368578063f0f442601461037b578063f2fde38b1461038e575f5ffd5b8063873f6f9e146102925780638b58c246146102b55780638da5cb5b146102c8578063a0edc1b6146102d0578063afaf00b1146102e3575f5ffd5b806322537f6e146101115780632aad855a146101cd578063313ddae2146101ee5780633eecc1331461020357806361d027b314610231578063647846a51461025157806370e36bbe14610264578063715018a614610277578063858142431461027f575b5f5ffd5b61017d604080516080810182525f808252602082018190529181018290526060810191909152506040805160808101825260045461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b9004909116606082015290565b6040516101c491905f60808201905061ffff835116825261ffff602084015116602083015261ffff604084015116604083015261ffff606084015116606083015292915050565b60405180910390f35b6101e06101db36600461178f565b6103a1565b6040519081526020016101c4565b6102016101fc3660046117a6565b610750565b005b6102166102113660046117bf565b610856565b6040805161ffff9384168152929091166020830152016101c4565b600354610244906001600160a01b031681565b6040516101c491906117e4565b600154610244906001600160a01b031681565b61020161027236600461180c565b61097c565b6102016109cb565b600254610244906001600160a01b031681565b6102a56102a0366004611827565b6109de565b60405190151581526020016101c4565b6102016102c3366004611855565b610a0a565b610244610cbd565b6102016102de3660046118d4565b610ceb565b6102f66102f136600461178f565b610e0a565b6040516101c491905f60c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151151560a083015292915050565b6102016103513660046118f4565b610e99565b5f54610244906001600160a01b031681565b6101e061037636600461178f565b611176565b61020161038936600461180c565b61133a565b61020161039c36600461180c565b61138a565b5f818152600560208190526040822090810154839060ff166103e2576040516305716e5560e01b81526004016103d991815260200190565b60405180910390fd5b505f8381526006602090815260408083203380855292529091205484919060ff1615610423576040516302a4851560e61b81526004016103d992919061193c565b50505f8381526007602090815260408083208054825181850281018501909352808352919290919083018282801561048257602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610464575b509394505f935083925050505b82518110801561049d575081155b156104e557336001600160a01b03168382815181106104be576104be611953565b60200260200101516001600160a01b031614915080806104dd9061197b565b91505061048f565b5084338261050857604051632ccd76b760e01b81526004016103d992919061193c565b50505f8360040154118590610533576040516327c4560160e11b81526004016103d991815260200190565b50826004015483600101546105489190611993565b9350848461056c576040516327c4560160e11b81526004016103d991815260200190565b505f85815260066020908152604080832033845290915290819020805460ff1916600190811790915554600254915163095ea7b360e01b81526001600160a01b0392831660048201526024810187905291169063095ea7b3906044016020604051808303815f875af11580156105e4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060891906119b2565b506040805160018082528183019092525f916020808301908036833701905050905033815f8151811061063d5761063d611953565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092525f9181602001602082028036833701905050905085815f8151811061068c5761068c611953565b6020908102919091010152600254600154604051636ec640c760e11b81526001600160a01b039283169263dd8c818e926106cf92911690869086906004016119d1565b5f604051808303815f87803b1580156106e6575f5ffd5b505af11580156106f8573d5f5f3e3d5ffd5b5050604080518981526a484f4e4553545f4e4f444560a81b60208201523393508a92507fae0c8d9350b2d2fb3ecf7c8a4d3a4dcea1e210b76a30894c73810d9aeca6f8b6910160405180910390a35050505050919050565b6107586113c7565b5f6107696080830160608401611a79565b61ffff1661077d6060840160408501611a79565b61ffff166107916040850160208601611a79565b61ffff166107a26020860186611a79565b61ffff166107b09190611a94565b6107ba9190611a94565b6107c49190611a94565b9050806127101461080b5760405162461bcd60e51b815260206004820152601160248201527004d7573742073756d20746f20313030303607c1b60448201526064016103d9565b8160046108188282611aa7565b9050507f8ce00a428d89b9953fef6150768b08191cd09fde7402b3380277ff0fe4e2ffb98260405161084a9190611b50565b60405180910390a15050565b6040805160808101825260045461ffff8082168352620100008204811660208401526401000000008204811693830193909352600160301b900490911660608201525f90819060018460068111156108b0576108b0611bb2565b14806108cc57505f8460068111156108ca576108ca611bb2565b145b156108d9575f9250610959565b60028460068111156108ed576108ed611bb2565b036108fb5780519250610959565b600384600681111561090f5761090f611bb2565b0361092c57602081015181516109259190611bc6565b9250610959565b600484600681111561094057610940611bb2565b0361095957602081015181516109569190611bc6565b92505b606081015161096a84612710611be0565b6109749190611be0565b915050915091565b6109846113c7565b6001600160a01b0381166109aa5760405162461bcd60e51b81526004016103d990611bfa565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b6109d36113c7565b6109dc5f6113f9565b565b5f8281526006602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b5f546001600160a01b03163314610a33576040516282b42960e81b815260040160405180910390fd5b5f848152600560208190526040909120015460ff1615610a8a5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e4818d85b18dd5b185d195960721b60448201526064016103d9565b5f8311610ac65760405162461bcd60e51b815260206004820152600a602482015269139bc81c185e5b595b9d60b21b60448201526064016103d9565b5f610ad085611469565b90505f5f610add83610856565b90925090505f612710610af461ffff851689611c23565b610afe9190611993565b90505f612710610b1261ffff85168a611c23565b610b1c9190611993565b90505f81610b2a848b611c3a565b610b349190611c3a565b90506040518060c001604052808381526020018481526020018281526020015f81526020018989905081526020016001151581525060055f8c81526020019081526020015f205f820151815f01556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015f6101000a81548160ff0219169083151502179055509050505f5f90505b87811015610c44575f8b8152600760205260409020898983818110610bf857610bf8611953565b9050602002016020810190610c0d919061180c565b8154600180820184555f93845260209093200180546001600160a01b0319166001600160a01b039290921691909117905501610bd1565b508015610c6857600354600154610c68916001600160a01b03918216911683611650565b60408051838152602081018590529081018290525f60608201528a907f2967f7504d941fbe5908ece00f677f793a3a9af800de3002a039cc79690156249060800160405180910390a250505050505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b5f546001600160a01b03163314610d14576040516282b42960e81b815260040160405180910390fd5b5f8281526005602081905260409091209081015460ff16610d685760405162461bcd60e51b815260206004820152600e60248201526d139bdd0818d85b18dd5b185d195960921b60448201526064016103d9565b5f610d74600284611993565b90505f610d818285611c3a565b905081835f015f828254610d959190611a94565b9250508190555080836001015f828254610daf9190611a94565b9250508190555083836003015f828254610dc99190611a94565b909155505060405184815285907fc1b82cb49286550b3b668d85cbf19b4e2a1b806097b7972e32cb47dc8408b2669060200160405180910390a25050505050565b610e3f6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f151581525090565b505f90815260056020818152604092839020835160c08101855281548152600182015492810192909252600281015493820193909352600383015460608201526004830154608082015291015460ff16151560a082015290565b5f610ea26116a7565b805490915060ff600160401b820416159067ffffffffffffffff165f81158015610ec95750825b90505f8267ffffffffffffffff166001148015610ee55750303b155b905081158015610ef3575080155b15610f115760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f3b57845460ff60401b1916600160401b1785555b610f44336116cf565b6001600160a01b038716610f6a5760405162461bcd60e51b81526004016103d990611bfa565b6001600160a01b038616610f905760405162461bcd60e51b81526004016103d990611c4d565b5f80546001600160a01b0319166001600160a01b0389169081179091556040805163647846a560e01b8152905163647846a5916004808201926020929091908290030181865afa158015610fe6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100a9190611c77565b600180546001600160a01b0319166001600160a01b039283161790555f5460408051638581424360e01b81529051919092169163858142439160048083019260209291908290030181865afa158015611065573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110899190611c77565b600280546001600160a01b03199081166001600160a01b039384161790915560038054909116918816919091179055604080516080810182526103e88152610bb8602082015261157c918101919091526101f46060909101526004805467ffffffffffffffff19166701f4157c0bb803e8179055611105610cbd565b6001600160a01b0316886001600160a01b031614611126576111268861138a565b831561116c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f81815260056020819052604082209081015460ff166111ac576040516305716e5560e01b8152600481018490526024016103d9565b5f80546040516399c6679d60e01b8152600481018690526001600160a01b03909116906399c6679d90602401602060405180830381865afa1580156111f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112179190611c77565b9050336001600160a01b038216146112465783336040516358ea1a2760e01b81526004016103d992919061193c565b5f84815260066020908152604080832033845290915290205460ff16156112845783336040516302a4851560e61b81526004016103d992919061193c565b815492505f8390036112ac576040516327c4560160e11b8152600481018590526024016103d9565b5f848152600660209081526040808320338085529252909120805460ff19166001908117909155546112eb916001600160a01b03919091169085611650565b60408051848152682922a8aaa2a9aa22a960b91b6020820152339186917fae0c8d9350b2d2fb3ecf7c8a4d3a4dcea1e210b76a30894c73810d9aeca6f8b6910160405180910390a35050919050565b6113426113c7565b6001600160a01b0381166113685760405162461bcd60e51b81526004016103d990611c4d565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6113926113c7565b6001600160a01b0381166113bb575f604051631e4fbdf760e01b81526004016103d991906117e4565b6113c4816113f9565b50565b336113d0610cbd565b6001600160a01b0316146109dc573360405163118cdaa760e01b81526004016103d991906117e4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051631b62e9c560e11b81526004810184905282916001600160a01b0316906336c5d38a90602401602060405180830381865afa1580156114b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d49190611c92565b9050600181600c8111156114ea576114ea611bb2565b14806115075750600281600c81111561150557611505611bb2565b145b156115155750600192915050565b600381600c81111561152957611529611bb2565b14806115465750600481600c81111561154457611544611bb2565b145b156115545750600292915050565b600581600c81111561156857611568611bb2565b036115765750600392915050565b600681600c81111561158a5761158a611bb2565b14806115a75750600781600c8111156115a5576115a5611bb2565b145b806115c35750600881600c8111156115c1576115c1611bb2565b145b806115df5750600981600c8111156115dd576115dd611bb2565b145b156115ed5750600392915050565b600a81600c81111561160157611601611bb2565b148061161e5750600b81600c81111561161c5761161c611bb2565b145b8061163a5750600c81600c81111561163857611638611bb2565b145b156116485750600492915050565b505f92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116a29084906116e0565b505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610a04565b6116d7611749565b6113c48161176e565b5f5f60205f8451602086015f885af1806116ff576040513d5f823e3d81fd5b50505f513d91508115611716578060011415611723565b6001600160a01b0384163b155b156117435783604051635274afe760e01b81526004016103d991906117e4565b50505050565b611751611776565b6109dc57604051631afcd79f60e31b815260040160405180910390fd5b611392611749565b5f61177f6116a7565b54600160401b900460ff16919050565b5f6020828403121561179f575f5ffd5b5035919050565b5f60808284031280156117b7575f5ffd5b509092915050565b5f602082840312156117cf575f5ffd5b8135600781106117dd575f5ffd5b9392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146113c4575f5ffd5b5f6020828403121561181c575f5ffd5b81356117dd816117f8565b5f5f60408385031215611838575f5ffd5b82359150602083013561184a816117f8565b809150509250929050565b5f5f5f5f60608587031215611868575f5ffd5b8435935060208501359250604085013567ffffffffffffffff81111561188c575f5ffd5b8501601f8101871361189c575f5ffd5b803567ffffffffffffffff8111156118b2575f5ffd5b8760208260051b84010111156118c6575f5ffd5b949793965060200194505050565b5f5f604083850312156118e5575f5ffd5b50508035926020909101359150565b5f5f5f60608486031215611906575f5ffd5b8335611911816117f8565b92506020840135611921816117f8565b91506040840135611931816117f8565b809150509250925092565b9182526001600160a01b0316602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161198c5761198c611967565b5060010190565b5f826119ad57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156119c2575f5ffd5b815180151581146117dd575f5ffd5b6001600160a01b03841681526060602080830182905284519183018290525f91908501906080840190835b81811015611a235783516001600160a01b03168352602093840193909201916001016119fc565b50508381036040850152845180825260209182019250908501905f5b81811015611a5d578251845260209384019390920191600101611a3f565b5091979650505050505050565b61ffff811681146113c4575f5ffd5b5f60208284031215611a89575f5ffd5b81356117dd81611a6a565b80820180821115610a0457610a04611967565b8135611ab281611a6a565b61ffff8116905081548161ffff1982161783556020840135611ad381611a6a565b63ffff00008160101b169050808363ffffffff198416171784556040850135611afb81611a6a565b65ffff000000008160201b168465ffffffffffff198516178317178555505050505f6060830135611b2b81611a6a565b825467ffff000000000000191660309190911b67ffff00000000000016179091555050565b608081018235611b5f81611a6a565b61ffff1682526020830135611b7381611a6a565b61ffff1660208301526040830135611b8a81611a6a565b61ffff1660408301526060830135611ba181611a6a565b61ffff811660608401525092915050565b634e487b7160e01b5f52602160045260245ffd5b61ffff8181168382160190811115610a0457610a04611967565b61ffff8281168282160390811115610a0457610a04611967565b6020808252600f908201526e496e76616c696420656e636c61766560881b604082015260600190565b8082028115828204841417610a0457610a04611967565b81810381811115610a0457610a04611967565b60208082526010908201526f496e76616c696420747265617375727960801b604082015260600190565b5f60208284031215611c87575f5ffd5b81516117dd816117f8565b5f60208284031215611ca2575f5ffd5b8151600d81106117dd575f5ffdfea164736f6c634300081c000a",
679
+ "linkReferences": {},
680
+ "deployedLinkReferences": {},
681
+ "immutableReferences": {},
682
+ "inputSourceName": "project/contracts/E3RefundManager.sol",
683
+ "buildInfoId": "solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e"
684
+ }