@reclaimprotocol/attestor-core 4.0.3 → 5.0.1-beta.10

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 (474) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/lib/avs/abis/avsDirectoryABI.js +341 -342
  4. package/lib/avs/abis/delegationABI.js +4 -5
  5. package/lib/avs/abis/registryABI.js +722 -723
  6. package/lib/avs/client/create-claim-on-avs.d.ts +5 -5
  7. package/lib/avs/client/create-claim-on-avs.js +160 -139
  8. package/lib/avs/config.d.ts +1 -1
  9. package/lib/avs/config.js +25 -23
  10. package/lib/avs/contracts/ReclaimServiceManager.d.ts +436 -532
  11. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  12. package/lib/avs/contracts/common.d.ts +40 -11
  13. package/lib/avs/contracts/common.js +0 -3
  14. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +13 -11
  15. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1157 -1148
  16. package/lib/avs/contracts/factories/index.d.ts +1 -1
  17. package/lib/avs/contracts/factories/index.js +4 -9
  18. package/lib/avs/contracts/index.d.ts +3 -3
  19. package/lib/avs/contracts/index.js +6 -40
  20. package/lib/avs/types/index.d.ts +6 -6
  21. package/lib/avs/types/index.js +0 -3
  22. package/lib/avs/utils/contracts.d.ts +14 -14
  23. package/lib/avs/utils/contracts.js +50 -35
  24. package/lib/avs/utils/register.d.ts +3 -3
  25. package/lib/avs/utils/register.js +71 -79
  26. package/lib/avs/utils/tasks.d.ts +4 -4
  27. package/lib/avs/utils/tasks.js +44 -41
  28. package/lib/browser/avs/abis/avsDirectoryABI.d.ts +60 -0
  29. package/lib/browser/avs/abis/avsDirectoryABI.js +343 -0
  30. package/lib/browser/avs/abis/delegationABI.d.ts +126 -0
  31. package/lib/browser/avs/abis/delegationABI.js +4 -0
  32. package/lib/browser/avs/abis/registryABI.d.ts +136 -0
  33. package/lib/browser/avs/abis/registryABI.js +728 -0
  34. package/lib/browser/avs/client/create-claim-on-avs.d.ts +12 -0
  35. package/lib/browser/avs/client/create-claim-on-avs.js +168 -0
  36. package/lib/browser/avs/config.d.ts +7 -0
  37. package/lib/browser/avs/config.js +26 -0
  38. package/lib/browser/avs/contracts/ReclaimServiceManager.d.ts +601 -0
  39. package/lib/browser/avs/contracts/ReclaimServiceManager.js +0 -0
  40. package/lib/browser/avs/contracts/common.d.ts +50 -0
  41. package/lib/browser/avs/contracts/common.js +0 -0
  42. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +890 -0
  43. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.js +1183 -0
  44. package/lib/browser/avs/contracts/factories/index.d.ts +1 -0
  45. package/lib/browser/avs/contracts/factories/index.js +4 -0
  46. package/lib/browser/avs/contracts/index.d.ts +3 -0
  47. package/lib/browser/avs/contracts/index.js +6 -0
  48. package/lib/browser/avs/types/index.d.ts +55 -0
  49. package/lib/browser/avs/types/index.js +0 -0
  50. package/lib/browser/avs/utils/contracts.d.ts +21 -0
  51. package/lib/browser/avs/utils/contracts.js +53 -0
  52. package/lib/browser/avs/utils/register.d.ts +27 -0
  53. package/lib/browser/avs/utils/register.js +74 -0
  54. package/lib/browser/avs/utils/tasks.d.ts +22 -0
  55. package/lib/browser/avs/utils/tasks.js +48 -0
  56. package/lib/browser/client/create-claim.d.ts +5 -0
  57. package/lib/browser/client/create-claim.js +461 -0
  58. package/lib/browser/client/index.d.ts +3 -0
  59. package/lib/browser/client/index.js +3 -0
  60. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.d.ts +16 -0
  61. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.js +53 -0
  62. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.d.ts +26 -0
  63. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.js +127 -0
  64. package/lib/browser/client/utils/attestor-pool.d.ts +8 -0
  65. package/lib/browser/client/utils/attestor-pool.js +24 -0
  66. package/lib/browser/client/utils/client-socket.d.ts +11 -0
  67. package/lib/browser/client/utils/client-socket.js +120 -0
  68. package/lib/browser/client/utils/message-handler.d.ts +4 -0
  69. package/lib/browser/client/utils/message-handler.js +97 -0
  70. package/lib/browser/config/index.d.ts +31 -0
  71. package/lib/browser/config/index.js +62 -0
  72. package/lib/browser/external-rpc/benchmark.d.ts +1 -0
  73. package/lib/browser/external-rpc/benchmark.js +82 -0
  74. package/lib/browser/external-rpc/event-bus.d.ts +7 -0
  75. package/lib/browser/external-rpc/event-bus.js +17 -0
  76. package/lib/browser/external-rpc/global.d.js +0 -0
  77. package/lib/browser/external-rpc/handle-incoming-msg.d.ts +2 -0
  78. package/lib/browser/external-rpc/handle-incoming-msg.js +241 -0
  79. package/lib/browser/external-rpc/index.d.ts +3 -0
  80. package/lib/browser/external-rpc/index.js +3 -0
  81. package/lib/browser/external-rpc/jsc-polyfills/1.d.ts +14 -0
  82. package/lib/browser/external-rpc/jsc-polyfills/1.js +80 -0
  83. package/lib/browser/external-rpc/jsc-polyfills/2.js +15 -0
  84. package/lib/browser/external-rpc/jsc-polyfills/event.d.ts +10 -0
  85. package/lib/browser/external-rpc/jsc-polyfills/event.js +19 -0
  86. package/lib/browser/external-rpc/jsc-polyfills/index.d.ts +2 -0
  87. package/lib/browser/external-rpc/jsc-polyfills/index.js +2 -0
  88. package/lib/browser/external-rpc/jsc-polyfills/ws.d.ts +21 -0
  89. package/lib/browser/external-rpc/jsc-polyfills/ws.js +83 -0
  90. package/lib/browser/external-rpc/setup-browser.d.ts +6 -0
  91. package/lib/browser/external-rpc/setup-browser.js +33 -0
  92. package/lib/browser/external-rpc/setup-jsc.d.ts +24 -0
  93. package/lib/browser/external-rpc/setup-jsc.js +22 -0
  94. package/lib/{window-rpc → browser/external-rpc}/types.d.ts +56 -35
  95. package/lib/browser/external-rpc/types.js +0 -0
  96. package/lib/browser/external-rpc/utils.d.ts +20 -0
  97. package/lib/browser/external-rpc/utils.js +100 -0
  98. package/lib/browser/external-rpc/zk.d.ts +14 -0
  99. package/lib/browser/external-rpc/zk.js +58 -0
  100. package/lib/browser/index.browser.js +13 -0
  101. package/lib/browser/index.d.ts +9 -0
  102. package/lib/browser/index.js +13 -0
  103. package/lib/browser/mechain/abis/governanceABI.d.ts +50 -0
  104. package/lib/browser/mechain/abis/governanceABI.js +461 -0
  105. package/lib/browser/mechain/abis/taskABI.d.ts +157 -0
  106. package/lib/browser/mechain/abis/taskABI.js +512 -0
  107. package/lib/browser/mechain/client/create-claim-on-mechain.d.ts +10 -0
  108. package/lib/browser/mechain/client/create-claim-on-mechain.js +33 -0
  109. package/lib/browser/mechain/client/index.d.ts +1 -0
  110. package/lib/browser/mechain/client/index.js +1 -0
  111. package/lib/browser/mechain/constants/index.d.ts +3 -0
  112. package/lib/browser/mechain/constants/index.js +8 -0
  113. package/lib/browser/mechain/index.d.ts +2 -0
  114. package/lib/browser/mechain/index.js +2 -0
  115. package/lib/browser/mechain/types/index.d.ts +23 -0
  116. package/lib/browser/mechain/types/index.js +0 -0
  117. package/lib/browser/proto/api.d.ts +651 -0
  118. package/lib/browser/proto/api.js +4250 -0
  119. package/lib/browser/proto/tee-bundle.d.ts +156 -0
  120. package/lib/browser/proto/tee-bundle.js +1296 -0
  121. package/lib/browser/providers/http/index.d.ts +18 -0
  122. package/lib/browser/providers/http/index.js +640 -0
  123. package/lib/browser/providers/http/patch-parse5-tree.d.ts +6 -0
  124. package/lib/browser/providers/http/patch-parse5-tree.js +34 -0
  125. package/lib/browser/providers/http/utils.d.ts +77 -0
  126. package/lib/browser/providers/http/utils.js +283 -0
  127. package/lib/browser/providers/index.d.ts +4 -0
  128. package/lib/browser/providers/index.js +7 -0
  129. package/lib/browser/scripts/fallbacks/crypto.js +4 -0
  130. package/lib/browser/scripts/fallbacks/empty.js +4 -0
  131. package/lib/browser/scripts/fallbacks/gnark.js +15 -0
  132. package/lib/browser/scripts/fallbacks/re2.js +7 -0
  133. package/lib/browser/scripts/fallbacks/snarkjs.js +10 -0
  134. package/lib/browser/scripts/fallbacks/stwo.js +159 -0
  135. package/lib/browser/types/bgp.d.ts +11 -0
  136. package/lib/browser/types/bgp.js +0 -0
  137. package/lib/browser/types/claims.d.ts +70 -0
  138. package/lib/browser/types/claims.js +0 -0
  139. package/lib/browser/types/client.d.ts +163 -0
  140. package/lib/browser/types/client.js +0 -0
  141. package/lib/browser/types/general.d.ts +77 -0
  142. package/lib/browser/types/general.js +0 -0
  143. package/lib/browser/types/handlers.d.ts +10 -0
  144. package/lib/browser/types/handlers.js +0 -0
  145. package/lib/browser/types/index.d.ts +10 -0
  146. package/lib/browser/types/index.js +10 -0
  147. package/lib/browser/types/providers.d.ts +161 -0
  148. package/lib/browser/types/providers.gen.d.ts +443 -0
  149. package/lib/browser/types/providers.gen.js +16 -0
  150. package/lib/browser/types/providers.js +0 -0
  151. package/lib/browser/types/rpc.d.ts +35 -0
  152. package/lib/browser/types/rpc.js +0 -0
  153. package/lib/browser/types/signatures.d.ts +28 -0
  154. package/lib/browser/types/signatures.js +0 -0
  155. package/lib/browser/types/tunnel.d.ts +18 -0
  156. package/lib/browser/types/tunnel.js +0 -0
  157. package/lib/browser/types/zk.d.ts +38 -0
  158. package/lib/browser/types/zk.js +0 -0
  159. package/lib/browser/utils/auth.d.ts +8 -0
  160. package/lib/browser/utils/auth.js +71 -0
  161. package/lib/browser/utils/b64-json.d.ts +2 -0
  162. package/lib/browser/utils/b64-json.js +17 -0
  163. package/lib/browser/utils/claims.d.ts +33 -0
  164. package/lib/browser/utils/claims.js +89 -0
  165. package/lib/browser/utils/env.d.ts +3 -0
  166. package/lib/browser/utils/env.js +19 -0
  167. package/lib/browser/utils/error.d.ts +26 -0
  168. package/lib/browser/utils/error.js +54 -0
  169. package/lib/browser/utils/generics.d.ts +119 -0
  170. package/lib/browser/utils/generics.js +272 -0
  171. package/lib/browser/utils/http-parser.d.ts +59 -0
  172. package/lib/browser/utils/http-parser.js +201 -0
  173. package/lib/browser/utils/index.browser.js +13 -0
  174. package/lib/browser/utils/index.d.ts +13 -0
  175. package/lib/browser/utils/index.js +13 -0
  176. package/lib/browser/utils/logger.browser.js +88 -0
  177. package/lib/browser/utils/logger.d.ts +14 -0
  178. package/lib/browser/utils/logger.js +88 -0
  179. package/lib/browser/utils/prepare-packets.d.ts +16 -0
  180. package/lib/browser/utils/prepare-packets.js +69 -0
  181. package/lib/browser/utils/redactions.d.ts +73 -0
  182. package/lib/browser/utils/redactions.js +135 -0
  183. package/lib/browser/utils/retries.d.ts +12 -0
  184. package/lib/browser/utils/retries.js +26 -0
  185. package/lib/browser/utils/signatures/eth.d.ts +2 -0
  186. package/lib/browser/utils/signatures/eth.js +31 -0
  187. package/lib/browser/utils/signatures/index.d.ts +5 -0
  188. package/lib/browser/utils/signatures/index.js +12 -0
  189. package/lib/browser/utils/socket-base.d.ts +23 -0
  190. package/lib/browser/utils/socket-base.js +96 -0
  191. package/lib/browser/utils/tls-imports.d.ts +21 -0
  192. package/lib/browser/utils/tls-imports.js +71 -0
  193. package/lib/browser/utils/tls.d.ts +2 -0
  194. package/lib/browser/utils/tls.js +58 -0
  195. package/lib/browser/utils/ws.d.ts +7 -0
  196. package/lib/browser/utils/ws.js +22 -0
  197. package/lib/browser/utils/zk.d.ts +71 -0
  198. package/lib/browser/utils/zk.js +625 -0
  199. package/lib/client/create-claim.d.ts +2 -2
  200. package/lib/client/create-claim.js +437 -400
  201. package/lib/client/index.d.ts +3 -3
  202. package/lib/client/index.js +3 -20
  203. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +2 -2
  204. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +49 -56
  205. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +4 -3
  206. package/lib/client/tunnels/make-rpc-tls-tunnel.js +123 -131
  207. package/lib/client/utils/attestor-pool.d.ts +3 -1
  208. package/lib/client/utils/attestor-pool.js +21 -25
  209. package/lib/client/utils/client-socket.d.ts +4 -4
  210. package/lib/client/utils/client-socket.js +114 -94
  211. package/lib/client/utils/message-handler.d.ts +2 -2
  212. package/lib/client/utils/message-handler.js +89 -86
  213. package/lib/config/index.d.ts +6 -3
  214. package/lib/config/index.js +60 -37
  215. package/lib/external-rpc/benchmark.d.ts +1 -0
  216. package/lib/external-rpc/benchmark.js +82 -0
  217. package/lib/external-rpc/event-bus.d.ts +7 -0
  218. package/lib/external-rpc/event-bus.js +17 -0
  219. package/lib/external-rpc/global.d.js +0 -0
  220. package/lib/external-rpc/handle-incoming-msg.d.ts +2 -0
  221. package/lib/external-rpc/handle-incoming-msg.js +241 -0
  222. package/lib/external-rpc/index.d.ts +3 -0
  223. package/lib/external-rpc/index.js +3 -0
  224. package/lib/external-rpc/jsc-polyfills/1.d.ts +14 -0
  225. package/lib/external-rpc/jsc-polyfills/1.js +80 -0
  226. package/lib/external-rpc/jsc-polyfills/2.js +15 -0
  227. package/lib/external-rpc/jsc-polyfills/event.d.ts +10 -0
  228. package/lib/external-rpc/jsc-polyfills/event.js +19 -0
  229. package/lib/external-rpc/jsc-polyfills/index.d.ts +2 -0
  230. package/lib/external-rpc/jsc-polyfills/index.js +2 -0
  231. package/lib/external-rpc/jsc-polyfills/ws.d.ts +21 -0
  232. package/lib/external-rpc/jsc-polyfills/ws.js +83 -0
  233. package/lib/external-rpc/setup-browser.d.ts +6 -0
  234. package/lib/external-rpc/setup-browser.js +33 -0
  235. package/lib/external-rpc/setup-jsc.d.ts +24 -0
  236. package/lib/external-rpc/setup-jsc.js +22 -0
  237. package/lib/external-rpc/types.d.ts +213 -0
  238. package/lib/external-rpc/types.js +0 -0
  239. package/lib/external-rpc/utils.d.ts +20 -0
  240. package/lib/external-rpc/utils.js +100 -0
  241. package/lib/external-rpc/zk.d.ts +14 -0
  242. package/lib/external-rpc/zk.js +58 -0
  243. package/lib/index.browser.d.ts +9 -0
  244. package/lib/index.d.ts +8 -9
  245. package/lib/index.js +12 -49
  246. package/lib/mechain/abis/governanceABI.js +460 -461
  247. package/lib/mechain/abis/taskABI.js +505 -506
  248. package/lib/mechain/client/create-claim-on-mechain.d.ts +3 -3
  249. package/lib/mechain/client/create-claim-on-mechain.js +31 -30
  250. package/lib/mechain/client/index.d.ts +1 -1
  251. package/lib/mechain/client/index.js +1 -18
  252. package/lib/mechain/constants/index.js +8 -7
  253. package/lib/mechain/index.d.ts +2 -2
  254. package/lib/mechain/index.js +2 -19
  255. package/lib/mechain/types/index.d.ts +2 -2
  256. package/lib/mechain/types/index.js +0 -3
  257. package/lib/proto/api.d.ts +182 -39
  258. package/lib/proto/api.js +4105 -3555
  259. package/lib/proto/tee-bundle.d.ts +156 -0
  260. package/lib/proto/tee-bundle.js +1296 -0
  261. package/lib/providers/http/index.d.ts +16 -1
  262. package/lib/providers/http/index.js +603 -576
  263. package/lib/providers/http/patch-parse5-tree.d.ts +6 -0
  264. package/lib/providers/http/patch-parse5-tree.js +34 -0
  265. package/lib/providers/http/utils.d.ts +7 -4
  266. package/lib/providers/http/utils.js +240 -317
  267. package/lib/providers/index.d.ts +1 -1
  268. package/lib/providers/index.js +5 -9
  269. package/lib/scripts/check-avs-registration.d.ts +1 -1
  270. package/lib/scripts/check-avs-registration.js +24 -25
  271. package/lib/scripts/fallbacks/crypto.d.ts +1 -0
  272. package/lib/scripts/fallbacks/crypto.js +4 -0
  273. package/lib/scripts/fallbacks/empty.d.ts +3 -0
  274. package/lib/scripts/fallbacks/empty.js +4 -0
  275. package/lib/scripts/fallbacks/gnark.d.ts +7 -0
  276. package/lib/scripts/fallbacks/gnark.js +15 -0
  277. package/lib/scripts/fallbacks/re2.d.ts +1 -0
  278. package/lib/scripts/fallbacks/re2.js +7 -0
  279. package/lib/scripts/fallbacks/snarkjs.d.ts +1 -0
  280. package/lib/scripts/fallbacks/snarkjs.js +10 -0
  281. package/lib/scripts/fallbacks/stwo.d.ts +6 -0
  282. package/lib/scripts/generate-provider-types.js +92 -73
  283. package/lib/scripts/generate-receipt.d.ts +2 -2
  284. package/lib/scripts/generate-receipt.js +94 -83
  285. package/lib/scripts/generate-toprf-keys.js +17 -16
  286. package/lib/scripts/jsc-cli-rpc.d.ts +1 -0
  287. package/lib/scripts/jsc-cli-rpc.js +35 -0
  288. package/lib/scripts/register-avs-operator.d.ts +1 -1
  289. package/lib/scripts/register-avs-operator.js +3 -7
  290. package/lib/scripts/start-server.d.ts +1 -1
  291. package/lib/scripts/start-server.js +9 -11
  292. package/lib/scripts/update-avs-metadata.d.ts +1 -1
  293. package/lib/scripts/update-avs-metadata.js +17 -19
  294. package/lib/scripts/utils.js +8 -9
  295. package/lib/scripts/whitelist-operator.d.ts +1 -1
  296. package/lib/scripts/whitelist-operator.js +13 -15
  297. package/lib/server/create-server.d.ts +3 -2
  298. package/lib/server/create-server.js +98 -85
  299. package/lib/server/handlers/claimTeeBundle.d.ts +6 -0
  300. package/lib/server/handlers/claimTeeBundle.js +232 -0
  301. package/lib/server/handlers/claimTunnel.d.ts +1 -1
  302. package/lib/server/handlers/claimTunnel.js +75 -73
  303. package/lib/server/handlers/completeClaimOnChain.d.ts +1 -1
  304. package/lib/server/handlers/completeClaimOnChain.js +27 -26
  305. package/lib/server/handlers/createClaimOnChain.d.ts +1 -1
  306. package/lib/server/handlers/createClaimOnChain.js +30 -29
  307. package/lib/server/handlers/createTaskOnMechain.d.ts +1 -1
  308. package/lib/server/handlers/createTaskOnMechain.js +54 -49
  309. package/lib/server/handlers/createTunnel.d.ts +1 -1
  310. package/lib/server/handlers/createTunnel.js +91 -94
  311. package/lib/server/handlers/disconnectTunnel.d.ts +1 -1
  312. package/lib/server/handlers/disconnectTunnel.js +6 -8
  313. package/lib/server/handlers/fetchCertificateBytes.d.ts +2 -0
  314. package/lib/server/handlers/fetchCertificateBytes.js +57 -0
  315. package/lib/server/handlers/index.d.ts +1 -1
  316. package/lib/server/handlers/index.js +24 -21
  317. package/lib/server/handlers/init.d.ts +1 -1
  318. package/lib/server/handlers/init.js +31 -34
  319. package/lib/server/handlers/toprf.d.ts +1 -1
  320. package/lib/server/handlers/toprf.js +17 -19
  321. package/lib/server/index.d.ts +4 -4
  322. package/lib/server/index.js +4 -21
  323. package/lib/server/socket.d.ts +7 -7
  324. package/lib/server/socket.js +104 -106
  325. package/lib/server/tunnels/make-tcp-tunnel.d.ts +5 -3
  326. package/lib/server/tunnels/make-tcp-tunnel.js +189 -162
  327. package/lib/server/utils/apm.d.ts +1 -1
  328. package/lib/server/utils/apm.js +26 -40
  329. package/lib/server/utils/assert-valid-claim-request.d.ts +6 -5
  330. package/lib/server/utils/assert-valid-claim-request.js +339 -185
  331. package/lib/server/utils/config-env.js +4 -7
  332. package/lib/server/utils/dns.js +18 -16
  333. package/lib/server/utils/gcp-attestation.d.ts +17 -0
  334. package/lib/server/utils/gcp-attestation.js +237 -0
  335. package/lib/server/utils/generics.d.ts +3 -3
  336. package/lib/server/utils/generics.js +37 -51
  337. package/lib/server/utils/iso.js +255 -256
  338. package/lib/server/utils/keep-alive.d.ts +2 -2
  339. package/lib/server/utils/keep-alive.js +36 -40
  340. package/lib/server/utils/nitro-attestation.d.ts +33 -0
  341. package/lib/server/utils/nitro-attestation.js +249 -0
  342. package/lib/server/utils/oprf-raw.d.ts +21 -0
  343. package/lib/server/utils/oprf-raw.js +61 -0
  344. package/lib/server/utils/process-handshake.d.ts +3 -3
  345. package/lib/server/utils/process-handshake.js +217 -175
  346. package/lib/server/utils/proxy-session.d.ts +1 -0
  347. package/lib/server/utils/proxy-session.js +4 -0
  348. package/lib/server/utils/tee-oprf-mpc-verification.d.ts +16 -0
  349. package/lib/server/utils/tee-oprf-mpc-verification.js +86 -0
  350. package/lib/server/utils/tee-oprf-verification.d.ts +24 -0
  351. package/lib/server/utils/tee-oprf-verification.js +151 -0
  352. package/lib/server/utils/tee-transcript-reconstruction.d.ts +24 -0
  353. package/lib/server/utils/tee-transcript-reconstruction.js +140 -0
  354. package/lib/server/utils/tee-verification.d.ts +28 -0
  355. package/lib/server/utils/tee-verification.js +358 -0
  356. package/lib/{utils → server/utils}/validation.d.ts +1 -1
  357. package/lib/server/utils/validation.js +45 -0
  358. package/lib/types/bgp.js +0 -3
  359. package/lib/types/claims.d.ts +7 -10
  360. package/lib/types/claims.js +0 -3
  361. package/lib/types/client.d.ts +5 -5
  362. package/lib/types/client.js +0 -3
  363. package/lib/types/general.d.ts +30 -4
  364. package/lib/types/general.js +0 -3
  365. package/lib/types/handlers.d.ts +3 -3
  366. package/lib/types/handlers.js +0 -3
  367. package/lib/types/index.d.ts +10 -10
  368. package/lib/types/index.js +10 -27
  369. package/lib/types/providers.d.ts +15 -4
  370. package/lib/types/providers.gen.d.ts +15 -1
  371. package/lib/types/providers.gen.js +15 -13
  372. package/lib/types/providers.js +0 -3
  373. package/lib/types/rpc.d.ts +2 -2
  374. package/lib/types/rpc.js +0 -3
  375. package/lib/types/signatures.js +0 -3
  376. package/lib/types/tunnel.d.ts +2 -2
  377. package/lib/types/tunnel.js +0 -3
  378. package/lib/types/zk.d.ts +17 -2
  379. package/lib/types/zk.js +0 -3
  380. package/lib/utils/auth.d.ts +2 -1
  381. package/lib/utils/auth.js +66 -59
  382. package/lib/utils/b64-json.js +13 -19
  383. package/lib/utils/bgp-listener.d.ts +1 -1
  384. package/lib/utils/bgp-listener.js +111 -114
  385. package/lib/utils/claims.d.ts +3 -3
  386. package/lib/utils/claims.js +78 -101
  387. package/lib/utils/env.js +15 -16
  388. package/lib/utils/error.d.ts +6 -7
  389. package/lib/utils/error.js +50 -39
  390. package/lib/utils/generics.d.ts +20 -13
  391. package/lib/utils/generics.js +221 -297
  392. package/lib/utils/http-parser.d.ts +1 -1
  393. package/lib/utils/http-parser.js +186 -237
  394. package/lib/utils/index.browser.d.ts +13 -0
  395. package/lib/utils/index.d.ts +14 -12
  396. package/lib/utils/index.js +14 -29
  397. package/lib/utils/logger.browser.d.ts +14 -0
  398. package/lib/utils/logger.d.ts +1 -1
  399. package/lib/utils/logger.js +69 -87
  400. package/lib/utils/prepare-packets.d.ts +3 -3
  401. package/lib/utils/prepare-packets.js +66 -58
  402. package/lib/utils/redactions.d.ts +20 -1
  403. package/lib/utils/redactions.js +116 -129
  404. package/lib/utils/retries.d.ts +1 -1
  405. package/lib/utils/retries.js +24 -26
  406. package/lib/utils/signatures/eth.d.ts +1 -1
  407. package/lib/utils/signatures/eth.js +28 -30
  408. package/lib/utils/signatures/index.d.ts +3 -3
  409. package/lib/utils/signatures/index.js +11 -10
  410. package/lib/utils/socket-base.d.ts +6 -5
  411. package/lib/utils/socket-base.js +89 -88
  412. package/lib/utils/tls-imports.d.ts +21 -0
  413. package/lib/utils/tls-imports.js +71 -0
  414. package/lib/utils/tls.d.ts +1 -1
  415. package/lib/utils/tls.js +54 -28
  416. package/lib/utils/ws.d.ts +1 -6
  417. package/lib/utils/ws.js +17 -33
  418. package/lib/utils/zk.d.ts +28 -12
  419. package/lib/utils/zk.js +587 -406
  420. package/package.json +79 -60
  421. package/lib/avs/tests/test.operator.d.ts +0 -11
  422. package/lib/avs/tests/test.operator.js +0 -313
  423. package/lib/avs/tests/utils.d.ts +0 -2
  424. package/lib/avs/tests/utils.js +0 -50
  425. package/lib/scripts/verify-root-ca.d.ts +0 -1
  426. package/lib/scripts/verify-root-ca.js +0 -51
  427. package/lib/tests/describe-with-server.d.ts +0 -20
  428. package/lib/tests/describe-with-server.js +0 -64
  429. package/lib/tests/mock-provider-server.d.ts +0 -13
  430. package/lib/tests/mock-provider-server.js +0 -65
  431. package/lib/tests/mocks.d.ts +0 -4
  432. package/lib/tests/mocks.js +0 -23
  433. package/lib/tests/test.auth.js +0 -75
  434. package/lib/tests/test.bgp-listener.js +0 -169
  435. package/lib/tests/test.claim-creation.js +0 -280
  436. package/lib/tests/test.http-parser.d.ts +0 -1
  437. package/lib/tests/test.http-parser.js +0 -120
  438. package/lib/tests/test.http-provider-utils.js +0 -2416
  439. package/lib/tests/test.http-provider.js +0 -114
  440. package/lib/tests/test.rpc-communication.d.ts +0 -1
  441. package/lib/tests/test.rpc-communication.js +0 -64
  442. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  443. package/lib/tests/test.rpc-tunnel.js +0 -172
  444. package/lib/tests/test.signatures.d.ts +0 -1
  445. package/lib/tests/test.signatures.js +0 -24
  446. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  447. package/lib/tests/test.tcp-tunnel.js +0 -64
  448. package/lib/tests/test.zk.d.ts +0 -1
  449. package/lib/tests/test.zk.js +0 -337
  450. package/lib/tests/utils.d.ts +0 -18
  451. package/lib/tests/utils.js +0 -64
  452. package/lib/utils/atomic-operations.d.ts +0 -24
  453. package/lib/utils/atomic-operations.js +0 -65
  454. package/lib/utils/benchmark.d.ts +0 -1
  455. package/lib/utils/benchmark.js +0 -70
  456. package/lib/utils/connection-state-machine.d.ts +0 -43
  457. package/lib/utils/connection-state-machine.js +0 -129
  458. package/lib/utils/resource-monitor.d.ts +0 -61
  459. package/lib/utils/resource-monitor.js +0 -107
  460. package/lib/utils/validation.js +0 -46
  461. package/lib/window-rpc/index.d.ts +0 -3
  462. package/lib/window-rpc/index.js +0 -20
  463. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  464. package/lib/window-rpc/setup-window-rpc.js +0 -291
  465. package/lib/window-rpc/types.js +0 -3
  466. package/lib/window-rpc/utils.d.ts +0 -14
  467. package/lib/window-rpc/utils.js +0 -102
  468. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  469. package/lib/window-rpc/window-rpc-zk.js +0 -85
  470. /package/lib/{tests/test.auth.d.ts → browser/external-rpc/jsc-polyfills/2.d.ts} +0 -0
  471. /package/lib/{tests/test.bgp-listener.d.ts → external-rpc/jsc-polyfills/2.d.ts} +0 -0
  472. /package/lib/{tests/test.claim-creation.d.ts → scripts/build-browser.d.ts} +0 -0
  473. /package/lib/{tests/test.http-provider-utils.d.ts → scripts/build-jsc.d.ts} +0 -0
  474. /package/lib/{tests/test.http-provider.d.ts → scripts/build-lib.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ export { ReclaimServiceManager__factory } from "./ReclaimServiceManager__factory.ts";
@@ -0,0 +1,4 @@
1
+ import { ReclaimServiceManager__factory } from "./ReclaimServiceManager__factory.js";
2
+ export {
3
+ ReclaimServiceManager__factory
4
+ };
@@ -0,0 +1,3 @@
1
+ export type { ReclaimServiceManager } from "./ReclaimServiceManager.ts";
2
+ export * as factories from "./factories/index.ts";
3
+ export { ReclaimServiceManager__factory } from "./factories/ReclaimServiceManager__factory.ts";
@@ -0,0 +1,6 @@
1
+ import * as factories from "./factories/index.js";
2
+ import { ReclaimServiceManager__factory } from "./factories/ReclaimServiceManager__factory.js";
3
+ export {
4
+ ReclaimServiceManager__factory,
5
+ factories
6
+ };
@@ -0,0 +1,55 @@
1
+ import type { NewTaskCreatedEvent } from '#src/avs/contracts/ReclaimServiceManager.ts';
2
+ import type { createClaimOnAttestor } from '#src/client/index.ts';
3
+ import type { ClaimTunnelResponse } from '#src/proto/api.ts';
4
+ import type { CreateClaimOnAttestorOpts, ProofGenerationStep, ProviderName } from '#src/types/index.ts';
5
+ export type ChainConfig = {
6
+ rpcUrl: string;
7
+ /**
8
+ * Reclaim AVS contract address
9
+ */
10
+ contractAddress: string;
11
+ delegationManagerAddress: string;
12
+ stakeRegistryAddress: string;
13
+ avsDirectoryAddress: string;
14
+ };
15
+ export type CreateClaimOnAvsStep = {
16
+ type: 'taskCreated';
17
+ data: NewTaskCreatedEvent.OutputObject;
18
+ } | {
19
+ type: 'attestorStep';
20
+ data: {
21
+ operatorAddress: string;
22
+ step: ProofGenerationStep;
23
+ };
24
+ } | {
25
+ type: 'attestorDone';
26
+ data: {
27
+ task: NewTaskCreatedEvent.OutputObject;
28
+ /**
29
+ * Index of the operator in the task
30
+ * that has finished the proof generation
31
+ */
32
+ responsesDone: ClaimTunnelResponse[];
33
+ };
34
+ };
35
+ export type CreateClaimOnAvsOpts<N extends ProviderName> = (Omit<CreateClaimOnAttestorOpts<N>, 'onStep' | 'client'>) & {
36
+ /**
37
+ * Chain ID to use for the claim
38
+ * @default -- env variable CHAIN_ID
39
+ */
40
+ chainId?: string;
41
+ /**
42
+ * Who will pay for the claim creation, including gas
43
+ * costs. Note: the attestor can choose to reject the
44
+ * claim if 'attestor' is chosen.
45
+ * @default undefined (owner of the claim)
46
+ */
47
+ payer?: {
48
+ attestor: string;
49
+ };
50
+ onStep?(step: CreateClaimOnAvsStep): void;
51
+ /**
52
+ * Override the default createClaimOnAttestor function
53
+ */
54
+ createClaimOnAttestor?: typeof createClaimOnAttestor;
55
+ };
File without changes
@@ -0,0 +1,21 @@
1
+ import { Contract, JsonRpcProvider, Wallet } from 'ethers';
2
+ import type { ChainConfig } from '#src/avs/types/index.ts';
3
+ /**
4
+ * get the contracts for the given chain ID
5
+ */
6
+ export declare function getContracts(chainId?: string): {
7
+ provider: JsonRpcProvider;
8
+ wallet: Wallet | undefined;
9
+ delegationManager: Contract;
10
+ contract: import("#src/avs/contracts/index.ts").ReclaimServiceManager;
11
+ registryContract: Contract;
12
+ avsDirectory: Contract;
13
+ };
14
+ export declare function initialiseContracts({ rpcUrl, stakeRegistryAddress, avsDirectoryAddress, contractAddress, delegationManagerAddress, }: ChainConfig, privateKey?: string | undefined): {
15
+ provider: JsonRpcProvider;
16
+ wallet: Wallet | undefined;
17
+ delegationManager: Contract;
18
+ contract: import("#src/avs/contracts/index.ts").ReclaimServiceManager;
19
+ registryContract: Contract;
20
+ avsDirectory: Contract;
21
+ };
@@ -0,0 +1,53 @@
1
+ import { Contract, JsonRpcProvider, Wallet } from "ethers";
2
+ import { avsDirectoryABI } from "../../avs/abis/avsDirectoryABI.js";
3
+ import { delegationABI } from "../../avs/abis/delegationABI.js";
4
+ import { registryABI } from "../../avs/abis/registryABI.js";
5
+ import { CHAIN_CONFIGS, PRIVATE_KEY, SELECTED_CHAIN_ID } from "../../avs/config.js";
6
+ import { ReclaimServiceManager__factory } from "../../avs/contracts/index.js";
7
+ const configs = {};
8
+ function getContracts(chainId = SELECTED_CHAIN_ID) {
9
+ const config = CHAIN_CONFIGS[chainId];
10
+ if (!config) {
11
+ throw new Error(`No config found for chain ID: ${chainId}`);
12
+ }
13
+ configs[chainId] ||= initialiseContracts(config);
14
+ return configs[chainId];
15
+ }
16
+ function initialiseContracts({
17
+ rpcUrl,
18
+ stakeRegistryAddress,
19
+ avsDirectoryAddress,
20
+ contractAddress,
21
+ delegationManagerAddress
22
+ }, privateKey = PRIVATE_KEY) {
23
+ const provider = new JsonRpcProvider(rpcUrl);
24
+ const wallet = privateKey ? new Wallet(privateKey, provider) : void 0;
25
+ return {
26
+ provider,
27
+ wallet,
28
+ delegationManager: new Contract(
29
+ delegationManagerAddress,
30
+ delegationABI,
31
+ wallet || provider
32
+ ),
33
+ // eslint-disable-next-line camelcase
34
+ contract: ReclaimServiceManager__factory.connect(
35
+ contractAddress,
36
+ wallet || provider
37
+ ),
38
+ registryContract: new Contract(
39
+ stakeRegistryAddress,
40
+ registryABI,
41
+ wallet || provider
42
+ ),
43
+ avsDirectory: new Contract(
44
+ avsDirectoryAddress,
45
+ avsDirectoryABI,
46
+ wallet || provider
47
+ )
48
+ };
49
+ }
50
+ export {
51
+ getContracts,
52
+ initialiseContracts
53
+ };
@@ -0,0 +1,27 @@
1
+ import type { Wallet } from 'ethers';
2
+ import { logger as LOGGER } from '#src/utils/index.ts';
3
+ type RegisterOpts = {
4
+ logger?: typeof LOGGER;
5
+ /**
6
+ * What chain to register the operator on
7
+ * @default -- env variable CHAIN_ID
8
+ */
9
+ chainId?: string;
10
+ /**
11
+ * wallet of the operator.
12
+ * @default -- wallet specified in the contracts
13
+ * fetched by the chainId
14
+ */
15
+ wallet?: Wallet;
16
+ /**
17
+ * URL of the Reclaim RPC server.
18
+ * @default -- env variable RECLAIM_PUBLIC_URL
19
+ */
20
+ reclaimRpcUrl?: string;
21
+ };
22
+ /**
23
+ * Registers the operator on the chain, if required.
24
+ * If already registered -- will just pass through
25
+ */
26
+ export declare function registerOperator({ logger, chainId, wallet, reclaimRpcUrl }?: RegisterOpts): Promise<void>;
27
+ export {};
@@ -0,0 +1,74 @@
1
+ import { hexlify, randomBytes, SigningKey } from "ethers";
2
+ import { RECLAIM_PUBLIC_URL, SELECTED_CHAIN_ID } from "../../avs/config.js";
3
+ import { getContracts } from "../../avs/utils/contracts.js";
4
+ import { logger as LOGGER } from "../../utils/index.js";
5
+ async function registerOperator({
6
+ logger = LOGGER,
7
+ chainId = SELECTED_CHAIN_ID,
8
+ wallet = getContracts(chainId).wallet,
9
+ reclaimRpcUrl = RECLAIM_PUBLIC_URL
10
+ } = {}) {
11
+ const contracts = getContracts(chainId);
12
+ const delegationManager = contracts.delegationManager.connect(wallet);
13
+ const avsDirectory = contracts.avsDirectory.connect(wallet);
14
+ const contract = contracts.contract.connect(wallet);
15
+ const registryContract = contracts.registryContract.connect(wallet);
16
+ const addr = wallet.address;
17
+ try {
18
+ const tx1 = await delegationManager.registerAsOperator({
19
+ earningsReceiver: addr,
20
+ delegationApprover: "0x0000000000000000000000000000000000000000",
21
+ stakerOptOutWindowBlocks: 0
22
+ }, "");
23
+ await tx1.wait();
24
+ logger.info("operator registered on DM successfully");
25
+ } catch (err) {
26
+ if (!err.message.includes("operator has already registered")) {
27
+ throw err;
28
+ }
29
+ logger.info("Operator already registered on EL");
30
+ }
31
+ const salt = hexlify(randomBytes(32));
32
+ const expiry = Math.floor(Date.now() / 1e3) + 3600;
33
+ const operatorSignature = {
34
+ expiry,
35
+ salt,
36
+ signature: ""
37
+ };
38
+ const contractAddress = await contract.getAddress();
39
+ const digestHash = await avsDirectory.calculateOperatorAVSRegistrationDigestHash(
40
+ addr,
41
+ contractAddress,
42
+ salt,
43
+ expiry
44
+ );
45
+ const signingKey = new SigningKey(
46
+ wallet.privateKey
47
+ );
48
+ const signature = signingKey.sign(digestHash);
49
+ operatorSignature.signature = signature.serialized;
50
+ logger.info("operator signature generated successfully");
51
+ if (!await registryContract.operatorRegistered(addr)) {
52
+ const tx2 = await registryContract.registerOperatorWithSignature(addr, operatorSignature);
53
+ await tx2.wait();
54
+ logger.info("operator registered on AVS successfully");
55
+ } else {
56
+ logger.info("Operator already registered on AVS");
57
+ }
58
+ const existingMetadata = await contract.getMetadataForOperator(addr).catch((err) => {
59
+ if (err.message.includes("Operator not found")) {
60
+ return void 0;
61
+ }
62
+ throw err;
63
+ });
64
+ const metadata = { addr, url: reclaimRpcUrl };
65
+ if (existingMetadata?.addr === metadata.addr && existingMetadata?.url === metadata.url) {
66
+ logger.info("operator metadata already up to date");
67
+ return;
68
+ }
69
+ await contract.updateOperatorMetadata(metadata);
70
+ logger.info({ metadata }, "operator metadata updated successfully");
71
+ }
72
+ export {
73
+ registerOperator
74
+ };
@@ -0,0 +1,22 @@
1
+ import { type Wallet } from 'ethers';
2
+ import type { IReclaimServiceManager, NewTaskCreatedEvent } from '#src/avs/contracts/ReclaimServiceManager.ts';
3
+ type CreateClaimWithoutOwner = Omit<IReclaimServiceManager.ClaimRequestStruct, 'owner'>;
4
+ type CreateNewClaimRequestOnChainOpts = {
5
+ request: CreateClaimWithoutOwner;
6
+ payer: Wallet;
7
+ chainId?: string;
8
+ } & ({
9
+ owner: Wallet;
10
+ } | {
11
+ /**
12
+ * Address of the owner of the claim
13
+ */
14
+ owner: string;
15
+ requestSignature?: string | Uint8Array;
16
+ });
17
+ export declare function createNewClaimRequestOnChain({ request, payer, chainId, ...rest }: CreateNewClaimRequestOnChainOpts): Promise<{
18
+ task: NewTaskCreatedEvent.OutputObject;
19
+ tx: import("ethers").ContractTransactionReceipt | null;
20
+ }>;
21
+ export declare function signClaimRequest(request: IReclaimServiceManager.ClaimRequestStruct, owner: Wallet, chainId?: string): Promise<Uint8Array<ArrayBufferLike>>;
22
+ export {};
@@ -0,0 +1,48 @@
1
+ import { EventLog, getBytes } from "ethers";
2
+ import { getContracts } from "../../avs/utils/contracts.js";
3
+ async function createNewClaimRequestOnChain({
4
+ request,
5
+ payer,
6
+ chainId,
7
+ ...rest
8
+ }) {
9
+ const contracts = getContracts(chainId);
10
+ const contract = contracts.contract.connect(payer);
11
+ const ownerAddress = typeof rest.owner === "string" ? rest.owner : rest.owner.address;
12
+ const fullRequest = {
13
+ ...request,
14
+ owner: ownerAddress
15
+ };
16
+ const signature = await getSignature();
17
+ const task = await contract.createNewTask(fullRequest, signature || "0x00");
18
+ const rslt = await task.wait();
19
+ const logs = rslt?.logs ?? [];
20
+ const eventLogs = logs.filter((log) => log instanceof EventLog);
21
+ const ev = eventLogs[0];
22
+ const arg = ev?.args;
23
+ return { task: arg, tx: rslt };
24
+ function getSignature() {
25
+ if (ownerAddress.toLowerCase() === payer.address.toLowerCase()) {
26
+ return;
27
+ }
28
+ if ("requestSignature" in rest) {
29
+ return rest.requestSignature;
30
+ }
31
+ if (typeof rest.owner !== "object") {
32
+ throw new Error(
33
+ "Owner wallet must be provided or requestSignature must be provided"
34
+ );
35
+ }
36
+ return signClaimRequest(fullRequest, rest.owner, chainId);
37
+ }
38
+ }
39
+ async function signClaimRequest(request, owner, chainId) {
40
+ const contract = getContracts(chainId).contract;
41
+ const encoded = await contract.encodeClaimRequest(request);
42
+ const strSig = await owner.signMessage(getBytes(encoded));
43
+ return getBytes(strSig);
44
+ }
45
+ export {
46
+ createNewClaimRequestOnChain,
47
+ signClaimRequest
48
+ };
@@ -0,0 +1,5 @@
1
+ import type { CreateClaimOnAttestorOpts, ProviderName } from '#src/types/index.ts';
2
+ /**
3
+ * Create a claim on the attestor
4
+ */
5
+ export declare function createClaimOnAttestor<N extends ProviderName>({ logger: _logger, maxRetries, ...opts }: CreateClaimOnAttestorOpts<N>): Promise<import("#src/proto/api.ts").ClaimTunnelResponse>;