@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
@@ -1,100 +1,120 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AttestorClient = void 0;
4
- const utils_1 = require("ethers/lib/utils");
5
- const config_1 = require("../../config");
6
- const api_1 = require("../../proto/api");
7
- const utils_2 = require("../../utils");
8
- const socket_base_1 = require("../../utils/socket-base");
9
- const ws_1 = require("../../utils/ws");
10
- class AttestorClient extends socket_base_1.AttestorSocket {
11
- constructor({ url, initMessages = [], signatureType = config_1.DEFAULT_METADATA.signatureType, logger = utils_2.logger, authRequest, makeWebSocket = ws_1.makeWebSocket }) {
12
- const initRequest = {
13
- ...config_1.DEFAULT_METADATA,
14
- signatureType,
15
- auth: authRequest
16
- };
17
- const msg = (0, utils_2.packRpcMessages)({ initRequest }, ...initMessages);
18
- const initRequestBytes = api_1.RPCMessages.encode(msg).finish();
19
- const initRequestB64 = utils_1.base64.encode(initRequestBytes);
20
- url = new URL(url.toString());
21
- url.searchParams.set('messages', initRequestB64);
22
- super(makeWebSocket(url), initRequest, logger);
23
- this.waitForInit = () => {
24
- if (this.isClosed) {
25
- throw new utils_2.AttestorError('ERROR_NETWORK_ERROR', 'Client connection already closed');
26
- }
27
- return this.waitForInitPromise;
28
- };
29
- const initReqId = msg.messages[0].id;
30
- this.waitForInitPromise = this
31
- .waitForResponse(initReqId, config_1.DEFAULT_RPC_TIMEOUT_MS)
32
- .then(res => {
33
- logger.info('client initialised');
34
- this.isInitialised = true;
35
- this.initResponse = res;
36
- });
37
- // swallow the error if anything bad happens, and we've no
38
- // catch block to handle it
39
- this.waitForInitPromise
40
- .catch(() => { });
41
- this.addEventListener('connection-terminated', ev => (logger.info({ err: ev.data }, 'connection terminated')));
1
+ import { encodeBase64 } from "ethers";
2
+ import { DEFAULT_METADATA, DEFAULT_RPC_TIMEOUT_MS } from "../../config/index.js";
3
+ import { RPCMessages } from "../../proto/api.js";
4
+ import { AttestorError, generateRpcMessageId, getRpcRequestType, logger as LOGGER, packRpcMessages } from "../../utils/index.js";
5
+ import { AttestorSocket } from "../../utils/socket-base.js";
6
+ import { makeWebSocket as defaultMakeWebSocket } from "../../utils/ws.js";
7
+ class AttestorClient extends AttestorSocket {
8
+ waitForInitPromise;
9
+ initResponse;
10
+ constructor({
11
+ url,
12
+ initMessages = [],
13
+ signatureType = DEFAULT_METADATA.signatureType,
14
+ logger = LOGGER,
15
+ authRequest,
16
+ makeWebSocket = defaultMakeWebSocket
17
+ }) {
18
+ const initRequest = {
19
+ ...DEFAULT_METADATA,
20
+ signatureType,
21
+ auth: authRequest
22
+ };
23
+ const msg = packRpcMessages({ initRequest }, ...initMessages);
24
+ const initRequestBytes = RPCMessages.encode(msg).finish();
25
+ const initRequestB64 = encodeBase64(initRequestBytes);
26
+ url = new URL(url.toString());
27
+ url.searchParams.set("messages", initRequestB64);
28
+ super(
29
+ makeWebSocket(url),
30
+ initRequest,
31
+ logger
32
+ );
33
+ const initReqId = msg.messages[0].id;
34
+ this.waitForInitPromise = this.waitForResponse(initReqId, DEFAULT_RPC_TIMEOUT_MS).then((res) => {
35
+ logger.info("client initialised");
36
+ this.isInitialised = true;
37
+ this.initResponse = res;
38
+ });
39
+ this.waitForInitPromise.catch(() => {
40
+ });
41
+ this.addEventListener("connection-terminated", (ev) => logger.info({ err: ev.data }, "connection terminated"));
42
+ }
43
+ async rpc(type, request, timeoutMs = DEFAULT_RPC_TIMEOUT_MS) {
44
+ const msgId = generateRpcMessageId();
45
+ this.logger.debug({ type, id: msgId }, "sending rpc request");
46
+ const now = Date.now();
47
+ try {
48
+ const rslt = this.waitForResponse(msgId, timeoutMs);
49
+ await this.sendMessage({ id: msgId, [getRpcRequestType(type)]: request });
50
+ return await rslt;
51
+ } finally {
52
+ const timeTakenMs = Date.now() - now;
53
+ this.logger.debug({ type, timeTakenMs }, "received rpc response");
42
54
  }
43
- async rpc(type, request, timeoutMs = config_1.DEFAULT_RPC_TIMEOUT_MS) {
44
- const msgId = (0, utils_2.generateRpcMessageId)();
45
- this.logger.debug({ type, id: msgId }, 'sending rpc request');
46
- const now = Date.now();
47
- try {
48
- const rslt = this.waitForResponse(msgId, timeoutMs);
49
- await this.sendMessage({ id: msgId, [(0, utils_2.getRpcRequestType)(type)]: request });
50
- return await rslt;
55
+ }
56
+ waitForResponse(id, timeoutMs = DEFAULT_RPC_TIMEOUT_MS) {
57
+ if (this.isClosed) {
58
+ throw new AttestorError(
59
+ "ERROR_NETWORK_ERROR",
60
+ "Client connection already closed"
61
+ );
62
+ }
63
+ return new Promise((resolve, reject) => {
64
+ const handler = (event) => {
65
+ if (event.data.id !== id) {
66
+ return;
51
67
  }
52
- finally {
53
- const timeTakenMs = Date.now() - now;
54
- this.logger.debug({ type, timeTakenMs }, 'received rpc response');
68
+ removeHandlers();
69
+ if ("error" in event.data) {
70
+ reject(event.data.error);
71
+ return;
55
72
  }
56
- }
57
- waitForResponse(id, timeoutMs = config_1.DEFAULT_RPC_TIMEOUT_MS) {
58
- if (this.isClosed) {
59
- throw new utils_2.AttestorError('ERROR_NETWORK_ERROR', 'Client connection already closed');
73
+ resolve(event.data.data);
74
+ };
75
+ const terminateHandler = (event) => {
76
+ removeHandlers();
77
+ if (event.data.code === "ERROR_NO_ERROR") {
78
+ reject(
79
+ new AttestorError(
80
+ "ERROR_NETWORK_ERROR",
81
+ event.data.message,
82
+ event.data.data
83
+ )
84
+ );
85
+ return;
60
86
  }
61
- // setup a promise to wait for the response
62
- return new Promise((resolve, reject) => {
63
- const handler = (event) => {
64
- if (event.data.id !== id) {
65
- return;
66
- }
67
- removeHandlers();
68
- if ('error' in event.data) {
69
- reject(event.data.error);
70
- return;
71
- }
72
- // @ts-expect-error
73
- resolve(event.data.data);
74
- };
75
- const terminateHandler = (event) => {
76
- removeHandlers();
77
- // if the connection was terminated, reject the promise
78
- // but update the error code to reflect the network error
79
- if (event.data.code === 'ERROR_NO_ERROR') {
80
- reject(new utils_2.AttestorError('ERROR_NETWORK_ERROR', event.data.message, event.data.data));
81
- return;
82
- }
83
- reject(event.data);
84
- };
85
- const timeout = setTimeout(() => {
86
- removeHandlers();
87
- reject(new utils_2.AttestorError('ERROR_TIMEOUT', `RPC request timed out after ${timeoutMs}ms`, { id }));
88
- }, timeoutMs);
89
- const removeHandlers = () => {
90
- clearTimeout(timeout);
91
- this.removeEventListener('rpc-response', handler);
92
- this.removeEventListener('connection-terminated', terminateHandler);
93
- };
94
- this.addEventListener('rpc-response', handler);
95
- this.addEventListener('connection-terminated', terminateHandler);
96
- });
87
+ reject(event.data);
88
+ };
89
+ const timeout = setTimeout(() => {
90
+ removeHandlers();
91
+ reject(
92
+ new AttestorError(
93
+ "ERROR_TIMEOUT",
94
+ `RPC request timed out after ${timeoutMs}ms`,
95
+ { id }
96
+ )
97
+ );
98
+ }, timeoutMs);
99
+ const removeHandlers = () => {
100
+ clearTimeout(timeout);
101
+ this.removeEventListener("rpc-response", handler);
102
+ this.removeEventListener("connection-terminated", terminateHandler);
103
+ };
104
+ this.addEventListener("rpc-response", handler);
105
+ this.addEventListener("connection-terminated", terminateHandler);
106
+ });
107
+ }
108
+ waitForInit = () => {
109
+ if (this.isClosed) {
110
+ throw new AttestorError(
111
+ "ERROR_NETWORK_ERROR",
112
+ "Client connection already closed"
113
+ );
97
114
  }
115
+ return this.waitForInitPromise;
116
+ };
98
117
  }
99
- exports.AttestorClient = AttestorClient;
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvdXRpbHMvY2xpZW50LXNvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBeUM7QUFDekMsdUNBQXFFO0FBQ3JFLHVDQUF5RDtBQUV6RCxxQ0FBcUg7QUFDckgsdURBQXNEO0FBQ3RELHFDQUFvRTtBQUVwRSxNQUFhLGNBQWUsU0FBUSw0QkFBYztJQU1qRCxZQUFZLEVBQ1gsR0FBRyxFQUNILFlBQVksR0FBRyxFQUFFLEVBQ2pCLGFBQWEsR0FBRyx5QkFBZ0IsQ0FBQyxhQUFhLEVBQzlDLE1BQU0sR0FBRyxjQUFNLEVBQ2YsV0FBVyxFQUNYLGFBQWEsR0FBRyxrQkFBb0IsRUFDVDtRQUMzQixNQUFNLFdBQVcsR0FBRztZQUNuQixHQUFHLHlCQUFnQjtZQUNuQixhQUFhO1lBQ2IsSUFBSSxFQUFFLFdBQVc7U0FDakIsQ0FBQTtRQUNELE1BQU0sR0FBRyxHQUFHLElBQUEsdUJBQWUsRUFBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUE7UUFDN0QsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN6RCxNQUFNLGNBQWMsR0FBRyxjQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFFdEQsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzdCLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUVoRCxLQUFLLENBQ0osYUFBYSxDQUFDLEdBQUcsQ0FBYyxFQUMvQixXQUFXLEVBQ1gsTUFBTSxDQUNOLENBQUE7UUE0R0YsZ0JBQVcsR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBRyxJQUFJLENBQUMs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
118
+ export {
119
+ AttestorClient
120
+ };
@@ -1,4 +1,4 @@
1
- import { RPCMessage } from '../../proto/api';
2
- import { IAttestorSocket } from '../../types';
1
+ import type { RPCMessage } from '#src/proto/api.ts';
2
+ import type { IAttestorSocket } from '#src/types/index.ts';
3
3
  export declare function wsMessageHandler(this: IAttestorSocket, data: unknown): Promise<void>;
4
4
  export declare function handleMessage(this: IAttestorSocket, msg: RPCMessage): Promise<void> | undefined;
@@ -1,94 +1,97 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wsMessageHandler = wsMessageHandler;
4
- exports.handleMessage = handleMessage;
5
- const api_1 = require("../../proto/api");
6
- const utils_1 = require("../../utils");
1
+ import { RPCMessages } from "../../proto/api.js";
2
+ import { AttestorError, extractArrayBufferFromWsData, getRpcRequest, getRpcRequestType, getRpcResponseType } from "../../utils/index.js";
7
3
  async function wsMessageHandler(data) {
8
- // extract array buffer from WS data & decode proto
9
- const buff = await (0, utils_1.extractArrayBufferFromWsData)(data);
10
- const { messages } = api_1.RPCMessages.decode(buff);
11
- for (const msg of messages) {
12
- await handleMessage.call(this, msg);
13
- }
4
+ const buff = await extractArrayBufferFromWsData(data);
5
+ const { messages } = RPCMessages.decode(buff);
6
+ for (const msg of messages) {
7
+ await handleMessage.call(this, msg);
8
+ }
14
9
  }
15
10
  function handleMessage(msg) {
16
- var _a, _b;
17
- (_a = this.logger) === null || _a === void 0 ? void 0 : _a.trace({ msg }, 'received message');
18
- // handle connection termination alert
19
- if (msg.connectionTerminationAlert) {
20
- const err = utils_1.AttestorError.fromProto(msg.connectionTerminationAlert);
21
- (_b = this.logger) === null || _b === void 0 ? void 0 : _b.warn({
22
- err: err.code !== 'ERROR_NO_ERROR'
23
- ? err
24
- : undefined
25
- }, 'received connection termination alert');
26
- this.dispatchRPCEvent('connection-terminated', err);
27
- return;
11
+ this.logger?.trace({ msg }, "received message");
12
+ if (msg.connectionTerminationAlert) {
13
+ const err = AttestorError.fromProto(
14
+ msg.connectionTerminationAlert
15
+ );
16
+ this.logger?.warn(
17
+ {
18
+ err: err.code !== "ERROR_NO_ERROR" ? err : void 0
19
+ },
20
+ "received connection termination alert"
21
+ );
22
+ this.dispatchRPCEvent("connection-terminated", err);
23
+ return;
24
+ }
25
+ const rpcRequest = getRpcRequest(msg);
26
+ if (rpcRequest) {
27
+ if (rpcRequest.direction === "response" && rpcRequest.type === "error") {
28
+ this.dispatchRPCEvent("rpc-response", {
29
+ id: msg.id,
30
+ error: AttestorError.fromProto(msg.requestError)
31
+ });
32
+ return;
28
33
  }
29
- const rpcRequest = (0, utils_1.getRpcRequest)(msg);
30
- if (rpcRequest) {
31
- if (rpcRequest.direction === 'response'
32
- && rpcRequest.type === 'error') {
33
- this.dispatchRPCEvent('rpc-response', {
34
- id: msg.id,
35
- error: utils_1.AttestorError.fromProto(msg.requestError)
36
- });
34
+ const resType = getRpcResponseType(rpcRequest.type);
35
+ if (rpcRequest.direction === "response") {
36
+ this.dispatchRPCEvent("rpc-response", {
37
+ id: msg.id,
38
+ type: rpcRequest.type,
39
+ data: msg[resType]
40
+ });
41
+ return;
42
+ }
43
+ if (!this.isInitialised && rpcRequest.type !== "init") {
44
+ this.logger.warn(
45
+ { type: rpcRequest.type },
46
+ "RPC request received before initialisation"
47
+ );
48
+ void this.sendMessage({
49
+ id: msg.id,
50
+ requestError: AttestorError.badRequest("Initialise connection first").toProto()
51
+ });
52
+ return;
53
+ }
54
+ return new Promise((resolve, reject) => {
55
+ this.dispatchRPCEvent("rpc-request", {
56
+ requestId: msg.id,
57
+ type: rpcRequest.type,
58
+ data: msg[getRpcRequestType(rpcRequest.type)],
59
+ respond: (res) => {
60
+ if (!this.isOpen) {
61
+ this.logger?.debug(
62
+ { type: rpcRequest.type, res },
63
+ "connection closed before responding"
64
+ );
65
+ reject(new Error("connection closed"));
37
66
  return;
38
- }
39
- const resType = (0, utils_1.getRpcResponseType)(rpcRequest.type);
40
- if (rpcRequest.direction === 'response') {
41
- this.dispatchRPCEvent('rpc-response', {
42
- id: msg.id,
43
- type: rpcRequest.type,
44
- data: msg[resType]
67
+ }
68
+ if ("code" in res) {
69
+ reject(res);
70
+ return this.sendMessage({
71
+ id: msg.id,
72
+ requestError: res.toProto()
45
73
  });
46
- return;
74
+ }
75
+ resolve();
76
+ return this.sendMessage({ id: msg.id, [resType]: res });
47
77
  }
48
- if (!this.isInitialised && rpcRequest.type !== 'init') {
49
- this.logger.warn({ type: rpcRequest.type }, 'RPC request received before initialisation');
50
- void this.sendMessage({
51
- id: msg.id,
52
- requestError: utils_1.AttestorError
53
- .badRequest('Initialise connection first')
54
- .toProto()
55
- });
56
- return;
57
- }
58
- return new Promise((resolve, reject) => {
59
- this.dispatchRPCEvent('rpc-request', {
60
- requestId: msg.id,
61
- type: rpcRequest.type,
62
- data: msg[(0, utils_1.getRpcRequestType)(rpcRequest.type)],
63
- respond: (res) => {
64
- var _a;
65
- if (!this.isOpen) {
66
- (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug({ type: rpcRequest.type, res }, 'connection closed before responding');
67
- reject(new Error('connection closed'));
68
- return;
69
- }
70
- if ('code' in res) {
71
- reject(res);
72
- return this.sendMessage({
73
- id: msg.id,
74
- requestError: res.toProto()
75
- });
76
- }
77
- resolve();
78
- return this
79
- .sendMessage({ id: msg.id, [resType]: res });
80
- },
81
- });
82
- });
83
- }
84
- if (msg.tunnelMessage) {
85
- this.dispatchRPCEvent('tunnel-message', msg.tunnelMessage);
86
- return;
87
- }
88
- if (msg.tunnelDisconnectEvent) {
89
- this.dispatchRPCEvent('tunnel-disconnect-event', msg.tunnelDisconnectEvent);
90
- return;
91
- }
92
- this.logger.warn({ msg }, 'unhandled message');
78
+ });
79
+ });
80
+ }
81
+ if (msg.tunnelMessage) {
82
+ this.dispatchRPCEvent("tunnel-message", msg.tunnelMessage);
83
+ return;
84
+ }
85
+ if (msg.tunnelDisconnectEvent) {
86
+ this.dispatchRPCEvent(
87
+ "tunnel-disconnect-event",
88
+ msg.tunnelDisconnectEvent
89
+ );
90
+ return;
91
+ }
92
+ this.logger.warn({ msg }, "unhandled message");
93
93
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC91dGlscy9tZXNzYWdlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw0Q0FPQztBQUVELHNDQXFHQztBQWxIRCx1Q0FBdUQ7QUFFdkQscUNBQTZIO0FBRXRILEtBQUssVUFBVSxnQkFBZ0IsQ0FBd0IsSUFBYTtJQUMxRSxtREFBbUQ7SUFDbkQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLG9DQUE0QixFQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3JELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxpQkFBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM3QyxLQUFJLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzNCLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQztBQUNGLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQXdCLEdBQWU7O0lBQ25FLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUMvQyxzQ0FBc0M7SUFDdEMsSUFBRyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEdBQUcsR0FBRyxxQkFBYSxDQUFDLFNBQVMsQ0FDbEMsR0FBRyxDQUFDLDBCQUEwQixDQUM5QixDQUFBO1FBQ0QsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxJQUFJLENBQ2hCO1lBQ0MsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCO2dCQUNqQyxDQUFDLENBQUMsR0FBRztnQkFDTCxDQUFDLENBQUMsU0FBUztTQUNaLEVBQ0QsdUNBQXVDLENBQ3ZDLENBQUE7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVB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
94
+ export {
95
+ handleMessage,
96
+ wsMessageHandler
97
+ };
@@ -1,18 +1,19 @@
1
- import { AttestorVersion, InitRequest } from '../proto/api';
1
+ import type { InitRequest } from '#src/proto/api.ts';
2
2
  export declare const DEFAULT_ZK_CONCURRENCY = 10;
3
3
  export declare const RECLAIM_USER_AGENT = "reclaim/0.0.1";
4
4
  export declare const DEFAULT_HTTPS_PORT = 443;
5
5
  export declare const WS_PATHNAME = "/ws";
6
6
  export declare const BROWSER_RPC_PATHNAME = "/browser-rpc";
7
+ export declare const ATTESTOR_ADDRESS_PATHNAME = "/address";
7
8
  export declare const DEFAULT_REMOTE_FILE_FETCH_BASE_URL = "/browser-rpc/resources";
8
9
  export declare const API_SERVER_PORT = 8001;
9
10
  export declare const CONNECTION_TIMEOUT_MS = 10000;
10
11
  export declare const DNS_SERVERS: string[];
11
12
  export declare const MAX_CLAIM_TIMESTAMP_DIFF_S: number;
12
- export declare const CURRENT_ATTESTOR_VERSION = AttestorVersion.ATTESTOR_VERSION_2_0_1;
13
+ export declare const CURRENT_ATTESTOR_VERSION: 5;
13
14
  export declare const DEFAULT_METADATA: InitRequest;
14
15
  export declare const PROVIDER_CTX: {
15
- version: AttestorVersion;
16
+ version: 5;
16
17
  };
17
18
  export declare const PING_INTERVAL_MS = 10000;
18
19
  /**
@@ -25,4 +26,6 @@ export declare const MAX_PAYLOAD_SIZE: number;
25
26
  export declare const DEFAULT_AUTH_EXPIRY_S: number;
26
27
  export declare const DEFAULT_RPC_TIMEOUT_MS = 90000;
27
28
  export declare const TOPRF_DOMAIN_SEPARATOR = "reclaim-toprf";
29
+ export declare const MAX_CERT_SIZE_BYTES: number;
30
+ export declare const CERT_ALLOWED_MIMETYPES: string[];
28
31
  export declare const BGP_WS_URL = "wss://ris-live.ripe.net/v1/ws/?client=reclaim-hijack-detector";
@@ -1,39 +1,62 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BGP_WS_URL = exports.TOPRF_DOMAIN_SEPARATOR = exports.DEFAULT_RPC_TIMEOUT_MS = exports.DEFAULT_AUTH_EXPIRY_S = exports.MAX_PAYLOAD_SIZE = exports.MAX_NO_DATA_INTERVAL_MS = exports.PING_INTERVAL_MS = exports.PROVIDER_CTX = exports.DEFAULT_METADATA = exports.CURRENT_ATTESTOR_VERSION = exports.MAX_CLAIM_TIMESTAMP_DIFF_S = exports.DNS_SERVERS = exports.CONNECTION_TIMEOUT_MS = exports.API_SERVER_PORT = exports.DEFAULT_REMOTE_FILE_FETCH_BASE_URL = exports.BROWSER_RPC_PATHNAME = exports.WS_PATHNAME = exports.DEFAULT_HTTPS_PORT = exports.RECLAIM_USER_AGENT = exports.DEFAULT_ZK_CONCURRENCY = void 0;
4
- const api_1 = require("../proto/api");
5
- exports.DEFAULT_ZK_CONCURRENCY = 10;
6
- exports.RECLAIM_USER_AGENT = 'reclaim/0.0.1';
7
- exports.DEFAULT_HTTPS_PORT = 443;
8
- exports.WS_PATHNAME = '/ws';
9
- exports.BROWSER_RPC_PATHNAME = '/browser-rpc';
10
- exports.DEFAULT_REMOTE_FILE_FETCH_BASE_URL = `${exports.BROWSER_RPC_PATHNAME}/resources`;
11
- exports.API_SERVER_PORT = 8001;
12
- // 10s
13
- exports.CONNECTION_TIMEOUT_MS = 10000;
14
- exports.DNS_SERVERS = [
15
- '8.8.8.8',
16
- '8.8.4.4'
1
+ import { AttestorVersion, ServiceSignatureType } from "../proto/api.js";
2
+ const DEFAULT_ZK_CONCURRENCY = 10;
3
+ const RECLAIM_USER_AGENT = "reclaim/0.0.1";
4
+ const DEFAULT_HTTPS_PORT = 443;
5
+ const WS_PATHNAME = "/ws";
6
+ const BROWSER_RPC_PATHNAME = "/browser-rpc";
7
+ const ATTESTOR_ADDRESS_PATHNAME = "/address";
8
+ const DEFAULT_REMOTE_FILE_FETCH_BASE_URL = `${BROWSER_RPC_PATHNAME}/resources`;
9
+ const API_SERVER_PORT = 8001;
10
+ const CONNECTION_TIMEOUT_MS = 1e4;
11
+ const DNS_SERVERS = [
12
+ "8.8.8.8",
13
+ "8.8.4.4"
17
14
  ];
18
- // 10m
19
- exports.MAX_CLAIM_TIMESTAMP_DIFF_S = 10 * 60;
20
- exports.CURRENT_ATTESTOR_VERSION = api_1.AttestorVersion.ATTESTOR_VERSION_2_0_1;
21
- exports.DEFAULT_METADATA = {
22
- signatureType: api_1.ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH,
23
- clientVersion: exports.CURRENT_ATTESTOR_VERSION,
24
- auth: undefined
15
+ const MAX_CLAIM_TIMESTAMP_DIFF_S = 10 * 60;
16
+ const CURRENT_ATTESTOR_VERSION = AttestorVersion.ATTESTOR_VERSION_3_0_0;
17
+ const DEFAULT_METADATA = {
18
+ signatureType: ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH,
19
+ clientVersion: CURRENT_ATTESTOR_VERSION,
20
+ auth: void 0
21
+ };
22
+ const PROVIDER_CTX = { version: CURRENT_ATTESTOR_VERSION };
23
+ const PING_INTERVAL_MS = 1e4;
24
+ const MAX_NO_DATA_INTERVAL_MS = 3e4;
25
+ const MAX_PAYLOAD_SIZE = 512 * 1024 * 1024;
26
+ const DEFAULT_AUTH_EXPIRY_S = 15 * 60;
27
+ const DEFAULT_RPC_TIMEOUT_MS = 9e4;
28
+ const TOPRF_DOMAIN_SEPARATOR = "reclaim-toprf";
29
+ const MAX_CERT_SIZE_BYTES = 10 * 1024 * 1024 * 1024;
30
+ const CERT_ALLOWED_MIMETYPES = [
31
+ "application/x-x509-ca-cert",
32
+ "application/x-x509-user-cert",
33
+ "application/pkix-cert",
34
+ "application/pkcs7-mime",
35
+ "application/octet-stream"
36
+ ];
37
+ const BGP_WS_URL = "wss://ris-live.ripe.net/v1/ws/?client=reclaim-hijack-detector";
38
+ export {
39
+ API_SERVER_PORT,
40
+ ATTESTOR_ADDRESS_PATHNAME,
41
+ BGP_WS_URL,
42
+ BROWSER_RPC_PATHNAME,
43
+ CERT_ALLOWED_MIMETYPES,
44
+ CONNECTION_TIMEOUT_MS,
45
+ CURRENT_ATTESTOR_VERSION,
46
+ DEFAULT_AUTH_EXPIRY_S,
47
+ DEFAULT_HTTPS_PORT,
48
+ DEFAULT_METADATA,
49
+ DEFAULT_REMOTE_FILE_FETCH_BASE_URL,
50
+ DEFAULT_RPC_TIMEOUT_MS,
51
+ DEFAULT_ZK_CONCURRENCY,
52
+ DNS_SERVERS,
53
+ MAX_CERT_SIZE_BYTES,
54
+ MAX_CLAIM_TIMESTAMP_DIFF_S,
55
+ MAX_NO_DATA_INTERVAL_MS,
56
+ MAX_PAYLOAD_SIZE,
57
+ PING_INTERVAL_MS,
58
+ PROVIDER_CTX,
59
+ RECLAIM_USER_AGENT,
60
+ TOPRF_DOMAIN_SEPARATOR,
61
+ WS_PATHNAME
25
62
  };
26
- exports.PROVIDER_CTX = { version: exports.CURRENT_ATTESTOR_VERSION };
27
- exports.PING_INTERVAL_MS = 10000;
28
- /**
29
- * Maximum interval in seconds to wait for before assuming
30
- * the connection is dead
31
- * @default 30s
32
- */
33
- exports.MAX_NO_DATA_INTERVAL_MS = 30000;
34
- exports.MAX_PAYLOAD_SIZE = 512 * 1024 * 1024; // 512MB
35
- exports.DEFAULT_AUTH_EXPIRY_S = 15 * 60; // 15m
36
- exports.DEFAULT_RPC_TIMEOUT_MS = 90000;
37
- exports.TOPRF_DOMAIN_SEPARATOR = 'reclaim-toprf';
38
- exports.BGP_WS_URL = 'wss://ris-live.ripe.net/v1/ws/?client=reclaim-hijack-detector';
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUFrRjtBQUVyRSxRQUFBLHNCQUFzQixHQUFHLEVBQUUsQ0FBQTtBQUUzQixRQUFBLGtCQUFrQixHQUFHLGVBQWUsQ0FBQTtBQUVwQyxRQUFBLGtCQUFrQixHQUFHLEdBQUcsQ0FBQTtBQUV4QixRQUFBLFdBQVcsR0FBRyxLQUFLLENBQUE7QUFFbkIsUUFBQSxvQkFBb0IsR0FBRyxjQUFjLENBQUE7QUFFckMsUUFBQSxrQ0FBa0MsR0FBRyxHQUFHLDRCQUFvQixZQUFZLENBQUE7QUFFeEUsUUFBQSxlQUFlLEdBQUcsSUFBSSxDQUFBO0FBRW5DLE1BQU07QUFDTyxRQUFBLHFCQUFxQixHQUFHLEtBQU0sQ0FBQTtBQUU5QixRQUFBLFdBQVcsR0FBRztJQUMxQixTQUFTO0lBQ1QsU0FBUztDQUNULENBQUE7QUFFRCxNQUFNO0FBQ08sUUFBQSwwQkFBMEIsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO0FBRXBDLFFBQUEsd0JBQXdCLEdBQUcscUJBQWUsQ0FBQyxzQkFBc0IsQ0FBQTtBQUVqRSxRQUFBLGdCQUFnQixHQUFnQjtJQUM1QyxhQUFhLEVBQUUsMEJBQW9CLENBQUMsMEJBQTBCO0lBQzlELGFBQWEsRUFBRSxnQ0FBd0I7SUFDdkMsSUFBSSxFQUFFLFNBQVM7Q0FDZixDQUFBO0FBRVksUUFBQSxZQUFZLEdBQUcsRUFBRSxPQUFPLEVBQUUsZ0NBQXdCLEVBQUUsQ0FBQTtBQUVwRCxRQUFBLGdCQUFnQixHQUFHLEtBQU0sQ0FBQTtBQUN0Qzs7OztHQUlHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxLQUFNLENBQUE7QUFFaEMsUUFBQSxnQkFBZ0IsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQSxDQUFDLFFBQVE7QUFFN0MsUUFBQSxxQkFBcUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBLENBQUMsTUFBTTtBQUV0QyxRQUFBLHNCQUFzQixHQUFHLEtBQU0sQ0FBQTtBQUUvQixRQUFBLHNCQUFzQixHQUFHLGVBQWUsQ0FBQTtBQUV4QyxRQUFBLFVBQVUsR0FBRywrREFBK0QsQ0FBQSJ9
@@ -0,0 +1 @@
1
+ export declare function benchmark(): Promise<string>;
@@ -0,0 +1,82 @@
1
+ import {
2
+ crypto,
3
+ encryptWrappedRecord,
4
+ SUPPORTED_CIPHER_SUITE_MAP
5
+ } from "../utils/tls-imports.js";
6
+ import { strToUint8Array } from "../utils/generics.js";
7
+ import { logger } from "../utils/logger.js";
8
+ import { makeZkProofGenerator } from "../utils/zk.js";
9
+ const ZK_CIPHER_SUITES = [
10
+ "TLS_CHACHA20_POLY1305_SHA256",
11
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
12
+ "TLS_AES_128_GCM_SHA256"
13
+ ];
14
+ async function benchmark() {
15
+ let benchmarkRes = "";
16
+ for (const cipherSuite of ZK_CIPHER_SUITES) {
17
+ const now = Date.now();
18
+ const alg = cipherSuite.includes("CHACHA20") ? "CHACHA20-POLY1305" : cipherSuite.includes("AES_256_GCM") ? "AES-256-GCM" : "AES-128-GCM";
19
+ const keylength = alg === "AES-128-GCM" ? 16 : 32;
20
+ const key = Buffer.alloc(keylength, 0);
21
+ const {
22
+ ivLength: fixedIvLength
23
+ } = SUPPORTED_CIPHER_SUITE_MAP[cipherSuite];
24
+ const fixedIv = Buffer.alloc(fixedIvLength, 0);
25
+ const encKey = await crypto.importKey(alg, key);
26
+ const vectors = [
27
+ {
28
+ plaintext: `My cool API secret is "my name jeff". Please don't reveal it`
29
+ }
30
+ ];
31
+ const proofGenerator = await makeZkProofGenerator({
32
+ logger,
33
+ cipherSuite
34
+ });
35
+ for (const { plaintext } of vectors) {
36
+ const plaintextArr = strToUint8Array(plaintext);
37
+ const { ciphertext, iv } = await encryptWrappedRecord(
38
+ plaintextArr,
39
+ {
40
+ key: encKey,
41
+ iv: fixedIv,
42
+ recordNumber: 0,
43
+ recordHeaderOpts: {
44
+ type: "WRAPPED_RECORD"
45
+ },
46
+ cipherSuite,
47
+ version: cipherSuite.includes("ECDHE_") ? "TLS1_2" : "TLS1_3"
48
+ }
49
+ );
50
+ const packet = {
51
+ type: "ciphertext",
52
+ encKey,
53
+ iv,
54
+ recordNumber: 0,
55
+ plaintext: plaintextArr,
56
+ ciphertext,
57
+ fixedIv: new Uint8Array(0),
58
+ data: ciphertext
59
+ };
60
+ await proofGenerator.addPacketToProve(
61
+ packet,
62
+ {
63
+ type: "zk",
64
+ redactedPlaintext: plaintextArr
65
+ },
66
+ () => {
67
+ },
68
+ () => {
69
+ throw new Error("should not be called in benchmark");
70
+ }
71
+ );
72
+ await proofGenerator.generateProofs();
73
+ }
74
+ benchmarkRes = benchmarkRes + `Benchmark ${alg} ok. Took ${Date.now() - now} ms
75
+ `;
76
+ }
77
+ logger.info(benchmarkRes);
78
+ return benchmarkRes;
79
+ }
80
+ export {
81
+ benchmark
82
+ };