@joclaim/attestor-core 0.2.0 → 0.2.3

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 (420) hide show
  1. package/README.md +21 -15
  2. package/lib/avs/abis/avsDirectoryABI.d.ts +60 -0
  3. package/lib/avs/abis/avsDirectoryABI.js +340 -0
  4. package/lib/avs/abis/delegationABI.d.ts +126 -0
  5. package/lib/avs/abis/delegationABI.js +1 -0
  6. package/lib/avs/abis/registryABI.d.ts +136 -0
  7. package/lib/avs/abis/registryABI.js +725 -0
  8. package/lib/avs/client/create-claim-on-avs.d.ts +12 -0
  9. package/lib/avs/client/create-claim-on-avs.js +138 -0
  10. package/lib/avs/config.d.ts +7 -0
  11. package/lib/avs/config.js +20 -0
  12. package/lib/avs/contracts/ReclaimServiceManager.d.ts +697 -0
  13. package/lib/avs/contracts/ReclaimServiceManager.js +1 -0
  14. package/lib/avs/contracts/common.d.ts +21 -0
  15. package/lib/avs/contracts/common.js +1 -0
  16. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +888 -0
  17. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1169 -0
  18. package/lib/avs/contracts/factories/index.d.ts +1 -0
  19. package/{src/avs/contracts/factories/index.ts → lib/avs/contracts/factories/index.js} +1 -1
  20. package/{src/avs/contracts/index.ts → lib/avs/contracts/index.d.ts} +0 -3
  21. package/lib/avs/contracts/index.js +2 -0
  22. package/lib/avs/types/index.d.ts +55 -0
  23. package/lib/avs/types/index.js +1 -0
  24. package/lib/avs/utils/contracts.d.ts +21 -0
  25. package/lib/avs/utils/contracts.js +33 -0
  26. package/lib/avs/utils/register.d.ts +27 -0
  27. package/lib/avs/utils/register.js +78 -0
  28. package/lib/avs/utils/tasks.d.ts +22 -0
  29. package/lib/avs/utils/tasks.js +40 -0
  30. package/lib/client/create-claim.d.ts +5 -0
  31. package/lib/client/create-claim.js +437 -0
  32. package/lib/client/index.d.ts +3 -0
  33. package/lib/client/index.js +3 -0
  34. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +16 -0
  35. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +51 -0
  36. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +26 -0
  37. package/lib/client/tunnels/make-rpc-tls-tunnel.js +131 -0
  38. package/lib/client/utils/attestor-pool.d.ts +8 -0
  39. package/lib/client/utils/attestor-pool.js +25 -0
  40. package/lib/client/utils/client-socket.d.ts +11 -0
  41. package/lib/client/utils/client-socket.js +98 -0
  42. package/lib/client/utils/message-handler.d.ts +4 -0
  43. package/lib/client/utils/message-handler.js +87 -0
  44. package/lib/config/index.d.ts +30 -0
  45. package/lib/config/index.js +43 -0
  46. package/lib/external-rpc/benchmark.d.ts +1 -0
  47. package/lib/external-rpc/benchmark.js +69 -0
  48. package/lib/external-rpc/event-bus.d.ts +7 -0
  49. package/lib/external-rpc/event-bus.js +14 -0
  50. package/lib/external-rpc/handle-incoming-msg.d.ts +2 -0
  51. package/lib/external-rpc/handle-incoming-msg.js +233 -0
  52. package/lib/external-rpc/index.d.ts +3 -0
  53. package/lib/external-rpc/index.js +3 -0
  54. package/lib/external-rpc/jsc-polyfills/1.d.ts +14 -0
  55. package/lib/external-rpc/jsc-polyfills/1.js +82 -0
  56. package/lib/external-rpc/jsc-polyfills/2.d.ts +1 -0
  57. package/lib/external-rpc/jsc-polyfills/2.js +20 -0
  58. package/lib/external-rpc/jsc-polyfills/event.d.ts +10 -0
  59. package/lib/external-rpc/jsc-polyfills/event.js +14 -0
  60. package/lib/external-rpc/jsc-polyfills/index.d.ts +2 -0
  61. package/lib/external-rpc/jsc-polyfills/index.js +2 -0
  62. package/lib/external-rpc/jsc-polyfills/ws.d.ts +21 -0
  63. package/lib/external-rpc/jsc-polyfills/ws.js +81 -0
  64. package/lib/external-rpc/setup-browser.d.ts +6 -0
  65. package/lib/external-rpc/setup-browser.js +33 -0
  66. package/lib/external-rpc/setup-jsc.d.ts +24 -0
  67. package/lib/external-rpc/setup-jsc.js +22 -0
  68. package/lib/external-rpc/types.d.ts +213 -0
  69. package/lib/external-rpc/types.js +1 -0
  70. package/lib/external-rpc/utils.d.ts +20 -0
  71. package/lib/external-rpc/utils.js +100 -0
  72. package/lib/external-rpc/zk.d.ts +14 -0
  73. package/lib/external-rpc/zk.js +63 -0
  74. package/lib/index.d.ts +9 -0
  75. package/lib/index.js +9 -0
  76. package/lib/mechain/abis/governanceABI.d.ts +50 -0
  77. package/lib/mechain/abis/governanceABI.js +458 -0
  78. package/lib/mechain/abis/taskABI.d.ts +157 -0
  79. package/lib/mechain/abis/taskABI.js +509 -0
  80. package/lib/mechain/client/create-claim-on-mechain.d.ts +10 -0
  81. package/lib/mechain/client/create-claim-on-mechain.js +28 -0
  82. package/lib/mechain/client/index.d.ts +1 -0
  83. package/lib/mechain/client/index.js +1 -0
  84. package/lib/mechain/constants/index.d.ts +3 -0
  85. package/{src/mechain/constants/index.ts → lib/mechain/constants/index.js} +3 -5
  86. package/lib/mechain/index.d.ts +2 -0
  87. package/lib/mechain/index.js +2 -0
  88. package/lib/mechain/types/index.d.ts +23 -0
  89. package/lib/mechain/types/index.js +1 -0
  90. package/lib/proto/api.d.ts +633 -0
  91. package/lib/proto/api.js +4258 -0
  92. package/lib/proto/tee-bundle.d.ts +135 -0
  93. package/lib/proto/tee-bundle.js +1161 -0
  94. package/lib/providers/http/index.d.ts +18 -0
  95. package/lib/providers/http/index.js +658 -0
  96. package/lib/providers/http/patch-parse5-tree.d.ts +6 -0
  97. package/lib/providers/http/patch-parse5-tree.js +33 -0
  98. package/lib/providers/http/utils.d.ts +77 -0
  99. package/lib/providers/http/utils.js +324 -0
  100. package/lib/providers/index.d.ts +4 -0
  101. package/lib/providers/index.js +4 -0
  102. package/lib/scripts/build-browser.d.ts +1 -0
  103. package/lib/scripts/build-browser.js +37 -0
  104. package/lib/scripts/build-jsc.d.ts +1 -0
  105. package/lib/scripts/build-jsc.js +49 -0
  106. package/lib/scripts/check-avs-registration.d.ts +1 -0
  107. package/lib/scripts/check-avs-registration.js +26 -0
  108. package/lib/scripts/fallbacks/crypto.d.ts +1 -0
  109. package/lib/scripts/fallbacks/crypto.js +1 -0
  110. package/lib/scripts/fallbacks/empty.d.ts +3 -0
  111. package/lib/scripts/fallbacks/empty.js +1 -0
  112. package/lib/scripts/fallbacks/re2.d.ts +1 -0
  113. package/lib/scripts/fallbacks/re2.js +4 -0
  114. package/lib/scripts/fallbacks/snarkjs.d.ts +1 -0
  115. package/lib/scripts/fallbacks/snarkjs.js +1 -0
  116. package/lib/scripts/generate-provider-types.d.ts +5 -0
  117. package/lib/scripts/generate-provider-types.js +78 -0
  118. package/lib/scripts/generate-receipt.d.ts +9 -0
  119. package/lib/scripts/generate-receipt.js +90 -0
  120. package/lib/scripts/generate-toprf-keys.d.ts +1 -0
  121. package/lib/scripts/generate-toprf-keys.js +20 -0
  122. package/lib/scripts/jsc-cli-rpc.d.ts +1 -0
  123. package/lib/scripts/jsc-cli-rpc.js +37 -0
  124. package/lib/scripts/register-avs-operator.d.ts +1 -0
  125. package/lib/scripts/register-avs-operator.js +4 -0
  126. package/lib/scripts/start-server.d.ts +1 -0
  127. package/lib/scripts/start-server.js +13 -0
  128. package/lib/scripts/update-avs-metadata.d.ts +1 -0
  129. package/lib/scripts/update-avs-metadata.js +19 -0
  130. package/lib/scripts/utils.d.ts +1 -0
  131. package/lib/scripts/utils.js +7 -0
  132. package/lib/scripts/whitelist-operator.d.ts +1 -0
  133. package/lib/scripts/whitelist-operator.js +15 -0
  134. package/lib/server/create-server.d.ts +7 -0
  135. package/lib/server/create-server.js +122 -0
  136. package/lib/server/handlers/claimTeeBundle.d.ts +6 -0
  137. package/lib/server/handlers/claimTeeBundle.js +206 -0
  138. package/lib/server/handlers/claimTunnel.d.ts +2 -0
  139. package/lib/server/handlers/claimTunnel.js +73 -0
  140. package/lib/server/handlers/completeClaimOnChain.d.ts +2 -0
  141. package/lib/server/handlers/completeClaimOnChain.js +22 -0
  142. package/lib/server/handlers/createClaimOnChain.d.ts +2 -0
  143. package/lib/server/handlers/createClaimOnChain.js +26 -0
  144. package/lib/server/handlers/createTaskOnMechain.d.ts +2 -0
  145. package/lib/server/handlers/createTaskOnMechain.js +47 -0
  146. package/lib/server/handlers/createTunnel.d.ts +2 -0
  147. package/lib/server/handlers/createTunnel.js +93 -0
  148. package/lib/server/handlers/disconnectTunnel.d.ts +2 -0
  149. package/lib/server/handlers/disconnectTunnel.js +5 -0
  150. package/lib/server/handlers/fetchCertificateBytes.d.ts +2 -0
  151. package/lib/server/handlers/fetchCertificateBytes.js +41 -0
  152. package/lib/server/handlers/index.d.ts +4 -0
  153. package/lib/server/handlers/index.js +22 -0
  154. package/lib/server/handlers/init.d.ts +2 -0
  155. package/lib/server/handlers/init.js +30 -0
  156. package/lib/server/handlers/toprf.d.ts +2 -0
  157. package/lib/server/handlers/toprf.js +16 -0
  158. package/lib/server/index.d.ts +4 -0
  159. package/lib/server/index.js +4 -0
  160. package/lib/server/provider-api.d.ts +9 -0
  161. package/lib/server/provider-api.js +98 -0
  162. package/lib/server/provider-store.d.ts +53 -0
  163. package/lib/server/provider-store.js +80 -0
  164. package/lib/server/session-api.d.ts +9 -0
  165. package/lib/server/session-api.js +95 -0
  166. package/lib/server/session-store.d.ts +14 -0
  167. package/lib/server/session-store.js +36 -0
  168. package/lib/server/socket.d.ts +13 -0
  169. package/lib/server/socket.js +109 -0
  170. package/lib/server/tunnels/make-tcp-tunnel.d.ts +22 -0
  171. package/lib/server/tunnels/make-tcp-tunnel.js +177 -0
  172. package/lib/server/utils/apm.d.ts +11 -0
  173. package/lib/server/utils/apm.js +36 -0
  174. package/lib/server/utils/assert-valid-claim-request.d.ts +31 -0
  175. package/lib/server/utils/assert-valid-claim-request.js +229 -0
  176. package/lib/server/utils/config-env.d.ts +1 -0
  177. package/lib/server/utils/config-env.js +4 -0
  178. package/lib/server/utils/dns.d.ts +1 -0
  179. package/lib/server/utils/dns.js +18 -0
  180. package/lib/server/utils/gcp-attestation.d.ts +17 -0
  181. package/lib/server/utils/gcp-attestation.js +289 -0
  182. package/lib/server/utils/generics.d.ts +22 -0
  183. package/lib/server/utils/generics.js +51 -0
  184. package/lib/server/utils/iso.d.ts +1 -0
  185. package/lib/server/utils/iso.js +256 -0
  186. package/lib/server/utils/keep-alive.d.ts +7 -0
  187. package/lib/server/utils/keep-alive.js +38 -0
  188. package/lib/server/utils/nitro-attestation.d.ts +33 -0
  189. package/lib/server/utils/nitro-attestation.js +325 -0
  190. package/lib/server/utils/process-handshake.d.ts +13 -0
  191. package/lib/server/utils/process-handshake.js +214 -0
  192. package/lib/server/utils/proxy-session.d.ts +1 -0
  193. package/lib/server/utils/proxy-session.js +6 -0
  194. package/lib/server/utils/tee-oprf-verification.d.ts +22 -0
  195. package/lib/server/utils/tee-oprf-verification.js +160 -0
  196. package/lib/server/utils/tee-transcript-reconstruction.d.ts +24 -0
  197. package/lib/server/utils/tee-transcript-reconstruction.js +187 -0
  198. package/lib/server/utils/tee-verification.d.ts +27 -0
  199. package/lib/server/utils/tee-verification.js +365 -0
  200. package/lib/server/utils/validation.d.ts +2 -0
  201. package/lib/server/utils/validation.js +38 -0
  202. package/lib/types/bgp.d.ts +11 -0
  203. package/lib/types/bgp.js +1 -0
  204. package/lib/types/claims.d.ts +73 -0
  205. package/lib/types/claims.js +1 -0
  206. package/lib/types/client.d.ts +163 -0
  207. package/lib/types/client.js +1 -0
  208. package/lib/types/general.d.ts +54 -0
  209. package/lib/types/general.js +1 -0
  210. package/lib/types/handlers.d.ts +10 -0
  211. package/lib/types/handlers.js +1 -0
  212. package/lib/types/index.d.ts +10 -0
  213. package/lib/types/index.js +10 -0
  214. package/lib/types/providers.d.ts +161 -0
  215. package/lib/types/providers.gen.d.ts +443 -0
  216. package/lib/types/providers.gen.js +10 -0
  217. package/lib/types/providers.js +1 -0
  218. package/lib/types/rpc.d.ts +35 -0
  219. package/lib/types/rpc.js +1 -0
  220. package/lib/types/signatures.d.ts +28 -0
  221. package/lib/types/signatures.js +1 -0
  222. package/lib/types/tunnel.d.ts +18 -0
  223. package/lib/types/tunnel.js +1 -0
  224. package/lib/types/zk.d.ts +28 -0
  225. package/lib/types/zk.js +1 -0
  226. package/lib/utils/auth.d.ts +8 -0
  227. package/lib/utils/auth.js +59 -0
  228. package/lib/utils/b64-json.d.ts +2 -0
  229. package/lib/utils/b64-json.js +17 -0
  230. package/lib/utils/bgp-listener.d.ts +7 -0
  231. package/lib/utils/bgp-listener.js +119 -0
  232. package/lib/utils/claims.d.ts +33 -0
  233. package/lib/utils/claims.js +101 -0
  234. package/lib/utils/env.d.ts +3 -0
  235. package/lib/utils/env.js +15 -0
  236. package/lib/utils/error.d.ts +26 -0
  237. package/lib/utils/error.js +50 -0
  238. package/lib/utils/generics.d.ts +114 -0
  239. package/lib/utils/generics.js +317 -0
  240. package/lib/utils/http-parser.d.ts +59 -0
  241. package/lib/utils/http-parser.js +246 -0
  242. package/lib/utils/index.d.ts +13 -0
  243. package/lib/utils/index.js +13 -0
  244. package/lib/utils/logger.d.ts +13 -0
  245. package/lib/utils/logger.js +91 -0
  246. package/lib/utils/prepare-packets.d.ts +16 -0
  247. package/lib/utils/prepare-packets.js +62 -0
  248. package/lib/utils/redactions.d.ts +62 -0
  249. package/lib/utils/redactions.js +148 -0
  250. package/lib/utils/retries.d.ts +12 -0
  251. package/lib/utils/retries.js +24 -0
  252. package/lib/utils/signatures/eth.d.ts +2 -0
  253. package/lib/utils/signatures/eth.js +29 -0
  254. package/lib/utils/signatures/index.d.ts +5 -0
  255. package/lib/utils/signatures/index.js +7 -0
  256. package/lib/utils/socket-base.d.ts +23 -0
  257. package/lib/utils/socket-base.js +90 -0
  258. package/lib/utils/tls.d.ts +2 -0
  259. package/{src/utils/tls.ts → lib/utils/tls.js} +28 -35
  260. package/lib/utils/ws.d.ts +7 -0
  261. package/lib/utils/ws.js +22 -0
  262. package/lib/utils/zk.d.ts +70 -0
  263. package/lib/utils/zk.js +572 -0
  264. package/package.json +19 -12
  265. package/src/avs/abis/avsDirectoryABI.ts +0 -340
  266. package/src/avs/abis/delegationABI.ts +0 -1
  267. package/src/avs/abis/registryABI.ts +0 -725
  268. package/src/avs/client/create-claim-on-avs.ts +0 -206
  269. package/src/avs/config.ts +0 -25
  270. package/src/avs/contracts/ReclaimServiceManager.ts +0 -1457
  271. package/src/avs/contracts/common.ts +0 -44
  272. package/src/avs/contracts/factories/ReclaimServiceManager__factory.ts +0 -1213
  273. package/src/avs/tests/test.operator.ts +0 -413
  274. package/src/avs/tests/utils.ts +0 -51
  275. package/src/avs/types/index.ts +0 -60
  276. package/src/avs/utils/contracts.ts +0 -66
  277. package/src/avs/utils/register.ts +0 -125
  278. package/src/avs/utils/tasks.ts +0 -76
  279. package/src/client/create-claim.ts +0 -626
  280. package/src/client/index.ts +0 -3
  281. package/src/client/tunnels/make-rpc-tcp-tunnel.ts +0 -78
  282. package/src/client/tunnels/make-rpc-tls-tunnel.ts +0 -172
  283. package/src/client/utils/attestor-pool.ts +0 -35
  284. package/src/client/utils/client-socket.ts +0 -160
  285. package/src/client/utils/message-handler.ts +0 -116
  286. package/src/config/index.ts +0 -65
  287. package/src/external-rpc/benchmark.ts +0 -102
  288. package/src/external-rpc/event-bus.ts +0 -19
  289. package/src/external-rpc/global.d.ts +0 -20
  290. package/src/external-rpc/handle-incoming-msg.ts +0 -308
  291. package/src/external-rpc/index.ts +0 -3
  292. package/src/external-rpc/jsc-polyfills/1.ts +0 -117
  293. package/src/external-rpc/jsc-polyfills/2.ts +0 -24
  294. package/src/external-rpc/jsc-polyfills/event.ts +0 -16
  295. package/src/external-rpc/jsc-polyfills/index.ts +0 -2
  296. package/src/external-rpc/jsc-polyfills/ws.ts +0 -105
  297. package/src/external-rpc/setup-browser.ts +0 -42
  298. package/src/external-rpc/setup-jsc.ts +0 -48
  299. package/src/external-rpc/types.ts +0 -289
  300. package/src/external-rpc/utils.ts +0 -126
  301. package/src/external-rpc/zk.ts +0 -79
  302. package/src/index.ts +0 -9
  303. package/src/mechain/abis/governanceABI.ts +0 -458
  304. package/src/mechain/abis/taskABI.ts +0 -509
  305. package/src/mechain/client/create-claim-on-mechain.ts +0 -52
  306. package/src/mechain/client/index.ts +0 -1
  307. package/src/mechain/index.ts +0 -2
  308. package/src/mechain/types/index.ts +0 -29
  309. package/src/proto/api.ts +0 -5285
  310. package/src/proto/tee-bundle.ts +0 -1413
  311. package/src/providers/http/index.ts +0 -873
  312. package/src/providers/http/patch-parse5-tree.ts +0 -49
  313. package/src/providers/http/utils.ts +0 -439
  314. package/src/providers/index.ts +0 -8
  315. package/src/scripts/build-browser.sh +0 -9
  316. package/src/scripts/build-browser.ts +0 -40
  317. package/src/scripts/build-jsc.ts +0 -55
  318. package/src/scripts/check-avs-registration.ts +0 -38
  319. package/src/scripts/contract-data-gen.sh +0 -8
  320. package/src/scripts/fallbacks/crypto.ts +0 -1
  321. package/src/scripts/fallbacks/empty.ts +0 -2
  322. package/src/scripts/fallbacks/re2.ts +0 -5
  323. package/src/scripts/fallbacks/snarkjs.ts +0 -5
  324. package/src/scripts/generate-certs.sh +0 -11
  325. package/src/scripts/generate-proto.sh +0 -5
  326. package/src/scripts/generate-provider-types.ts +0 -121
  327. package/src/scripts/generate-receipt.ts +0 -138
  328. package/src/scripts/generate-toprf-keys.ts +0 -30
  329. package/src/scripts/jsc-cli-rpc.ts +0 -48
  330. package/src/scripts/register-avs-operator.ts +0 -5
  331. package/src/scripts/start-server.ts +0 -17
  332. package/src/scripts/update-avs-metadata.ts +0 -26
  333. package/src/scripts/utils.ts +0 -8
  334. package/src/scripts/whitelist-operator.ts +0 -22
  335. package/src/server/create-server.ts +0 -169
  336. package/src/server/handlers/claimTeeBundle.ts +0 -308
  337. package/src/server/handlers/claimTunnel.ts +0 -106
  338. package/src/server/handlers/completeClaimOnChain.ts +0 -36
  339. package/src/server/handlers/createClaimOnChain.ts +0 -39
  340. package/src/server/handlers/createTaskOnMechain.ts +0 -80
  341. package/src/server/handlers/createTunnel.ts +0 -128
  342. package/src/server/handlers/disconnectTunnel.ts +0 -11
  343. package/src/server/handlers/fetchCertificateBytes.ts +0 -66
  344. package/src/server/handlers/index.ts +0 -24
  345. package/src/server/handlers/init.ts +0 -46
  346. package/src/server/handlers/toprf.ts +0 -25
  347. package/src/server/index.ts +0 -4
  348. package/src/server/provider-api.ts +0 -118
  349. package/src/server/provider-store.ts +0 -117
  350. package/src/server/session-api.ts +0 -115
  351. package/src/server/session-store.ts +0 -60
  352. package/src/server/socket.ts +0 -156
  353. package/src/server/tunnels/make-tcp-tunnel.ts +0 -275
  354. package/src/server/utils/apm.ts +0 -49
  355. package/src/server/utils/assert-valid-claim-request.ts +0 -375
  356. package/src/server/utils/config-env.ts +0 -6
  357. package/src/server/utils/dns.ts +0 -25
  358. package/src/server/utils/gcp-attestation.ts +0 -415
  359. package/src/server/utils/generics.ts +0 -68
  360. package/src/server/utils/iso.ts +0 -258
  361. package/src/server/utils/keep-alive.ts +0 -50
  362. package/src/server/utils/nitro-attestation.ts +0 -396
  363. package/src/server/utils/process-handshake.ts +0 -311
  364. package/src/server/utils/proxy-session.ts +0 -6
  365. package/src/server/utils/tee-oprf-verification.ts +0 -231
  366. package/src/server/utils/tee-transcript-reconstruction.ts +0 -254
  367. package/src/server/utils/tee-verification.ts +0 -513
  368. package/src/server/utils/validation.ts +0 -57
  369. package/src/tests/auth.test.ts +0 -105
  370. package/src/tests/bgp-listener.test.ts +0 -193
  371. package/src/tests/claim-creation.test.ts +0 -415
  372. package/src/tests/describe-with-server.ts +0 -94
  373. package/src/tests/gcp-attestation.test.ts +0 -206
  374. package/src/tests/http-parser.test.ts +0 -135
  375. package/src/tests/http-provider-utils.test.ts +0 -3306
  376. package/src/tests/http-provider.test.ts +0 -125
  377. package/src/tests/jsc.test_mac.ts +0 -296
  378. package/src/tests/mock-provider-server.ts +0 -106
  379. package/src/tests/mocks.ts +0 -25
  380. package/src/tests/proof_bundle.bin +0 -0
  381. package/src/tests/rpc-communication.test.ts +0 -115
  382. package/src/tests/rpc-tunnel.test.ts +0 -239
  383. package/src/tests/signatures.test.ts +0 -37
  384. package/src/tests/tcp-tunnel.test.ts +0 -154
  385. package/src/tests/tee-bundle.test.ts +0 -321
  386. package/src/tests/tee-signatures.test.ts +0 -81
  387. package/src/tests/utils.ts +0 -108
  388. package/src/tests/verification_bundle.pb +0 -0
  389. package/src/tests/verification_bundle_tee.pb +0 -0
  390. package/src/tests/zk.test.ts +0 -453
  391. package/src/types/bgp.ts +0 -17
  392. package/src/types/claims.ts +0 -79
  393. package/src/types/client.ts +0 -205
  394. package/src/types/general.ts +0 -61
  395. package/src/types/handlers.ts +0 -16
  396. package/src/types/index.ts +0 -10
  397. package/src/types/providers.gen.ts +0 -135
  398. package/src/types/providers.ts +0 -203
  399. package/src/types/rpc.ts +0 -46
  400. package/src/types/signatures.ts +0 -29
  401. package/src/types/tunnel.ts +0 -25
  402. package/src/types/zk.ts +0 -31
  403. package/src/utils/auth.ts +0 -92
  404. package/src/utils/b64-json.ts +0 -25
  405. package/src/utils/bgp-listener.ts +0 -159
  406. package/src/utils/claims.ts +0 -132
  407. package/src/utils/env.ts +0 -21
  408. package/src/utils/error.ts +0 -76
  409. package/src/utils/generics.ts +0 -429
  410. package/src/utils/http-parser.ts +0 -312
  411. package/src/utils/index.ts +0 -13
  412. package/src/utils/logger.ts +0 -114
  413. package/src/utils/prepare-packets.ts +0 -98
  414. package/src/utils/redactions.ts +0 -203
  415. package/src/utils/retries.ts +0 -41
  416. package/src/utils/signatures/eth.ts +0 -35
  417. package/src/utils/signatures/index.ts +0 -11
  418. package/src/utils/socket-base.ts +0 -132
  419. package/src/utils/ws.ts +0 -30
  420. package/src/utils/zk.ts +0 -908
@@ -1,102 +0,0 @@
1
- import type {
2
- CipherSuite } from '@joclaim/tls'
3
- import {
4
- crypto,
5
- encryptWrappedRecord,
6
- SUPPORTED_CIPHER_SUITE_MAP
7
- } from '@joclaim/tls'
8
- import { strToUint8Array } from 'src/utils/generics.ts'
9
-
10
- import type { CompleteTLSPacket } from '#src/types/index.ts'
11
- import { logger } from '#src/utils/logger.ts'
12
- import { makeZkProofGenerator } from '#src/utils/zk.ts'
13
-
14
- const ZK_CIPHER_SUITES: CipherSuite[] = [
15
- 'TLS_CHACHA20_POLY1305_SHA256',
16
- 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
17
- 'TLS_AES_128_GCM_SHA256'
18
- ]
19
-
20
- export async function benchmark() {
21
-
22
- let benchmarkRes = ''
23
- for(const cipherSuite of ZK_CIPHER_SUITES) {
24
-
25
- const now = Date.now()
26
-
27
- const alg = cipherSuite.includes('CHACHA20')
28
- ? 'CHACHA20-POLY1305'
29
- : (
30
- cipherSuite.includes('AES_256_GCM')
31
- ? 'AES-256-GCM'
32
- : 'AES-128-GCM'
33
- )
34
- const keylength = alg === 'AES-128-GCM' ? 16 : 32
35
- const key = Buffer.alloc(keylength, 0)
36
- const {
37
- ivLength: fixedIvLength,
38
- } = SUPPORTED_CIPHER_SUITE_MAP[cipherSuite]
39
- const fixedIv = Buffer.alloc(fixedIvLength, 0)
40
-
41
- const encKey = await crypto.importKey(alg, key)
42
- const vectors = [
43
- {
44
- plaintext: 'My cool API secret is "my name jeff". Please don\'t reveal it'
45
- }
46
- ]
47
-
48
- const proofGenerator = await makeZkProofGenerator({
49
- logger,
50
- cipherSuite,
51
- })
52
- for(const { plaintext } of vectors) {
53
- const plaintextArr = strToUint8Array(plaintext)
54
-
55
- const { ciphertext, iv } = await encryptWrappedRecord(
56
- plaintextArr,
57
- {
58
- key: encKey,
59
- iv: fixedIv,
60
- recordNumber: 0,
61
- recordHeaderOpts: {
62
- type: 'WRAPPED_RECORD'
63
- },
64
- cipherSuite,
65
- version: cipherSuite.includes('ECDHE_')
66
- ? 'TLS1_2'
67
- : 'TLS1_3',
68
- }
69
- )
70
-
71
- const packet: CompleteTLSPacket = {
72
- type: 'ciphertext',
73
- encKey,
74
- iv,
75
- recordNumber: 0,
76
- plaintext: plaintextArr,
77
- ciphertext,
78
- fixedIv: new Uint8Array(0),
79
- data: ciphertext
80
- }
81
-
82
- await proofGenerator.addPacketToProve(
83
- packet,
84
- {
85
- type: 'zk',
86
- redactedPlaintext:plaintextArr,
87
- },
88
- () => {},
89
- () => {
90
- throw new Error('should not be called in benchmark')
91
- }
92
- )
93
- await proofGenerator.generateProofs()
94
-
95
- }
96
-
97
- benchmarkRes = benchmarkRes + `Benchmark ${alg} ok. Took ${Date.now() - now} ms \n`
98
- }
99
-
100
- logger.info(benchmarkRes)
101
- return benchmarkRes
102
- }
@@ -1,19 +0,0 @@
1
- type EventHandlerFn<T> = (data: T) => void
2
-
3
- export class EventBus<T> {
4
-
5
- #listeners: EventHandlerFn<T>[] = []
6
-
7
- addListener(fn: EventHandlerFn<T>) {
8
- this.#listeners.push(fn)
9
- return () => {
10
- this.#listeners = this.#listeners.filter(l => l !== fn)
11
- }
12
- }
13
-
14
- dispatch(data: T) {
15
- for(const listener of this.#listeners) {
16
- listener(data)
17
- }
18
- }
19
- }
@@ -1,20 +0,0 @@
1
- declare module globalThis {
2
- var ATTESTOR_BASE_URL: string
3
- var RPC_CHANNEL_NAME: string
4
-
5
- interface Performance {
6
- measureUserAgentSpecificMemory(): { bytes: number }
7
- }
8
-
9
- interface AttestorRPCChannel {
10
- postMessage(message: string): void
11
- }
12
-
13
- /**
14
- * https://github.com/sindresorhus/type-fest/blob/main/source/distributed-omit.d.ts
15
- */
16
- type DistributedOmit<ObjectType, KeyType extends KeysOfUnion<ObjectType>> =
17
- ObjectType extends unknown
18
- ? Omit<ObjectType, KeyType>
19
- : never;
20
- }
@@ -1,308 +0,0 @@
1
-
2
- import type { ZKEngine } from '@joclaim/zk-symmetric-crypto'
3
- import { utils } from 'ethers'
4
-
5
- import { createClaimOnAvs } from '#src/avs/client/create-claim-on-avs.ts'
6
- import { createClaimOnAttestor } from '#src/client/index.ts'
7
- import { benchmark } from '#src/external-rpc/benchmark.ts'
8
- import type { CreateClaimResponse, ExternalRPCClient, ExternalRPCErrorResponse, ExternalRPCIncomingMsg, ExternalRPCOutgoingMsg, ExternalRPCResponse, RPCCreateClaimOptions } from '#src/external-rpc/types.ts'
9
- import { generateRpcRequestId, getCurrentMemoryUsage, getWsApiUrlFromBaseUrl, RPC_MSG_BRIDGE, sendMessageToApp, waitForResponse } from '#src/external-rpc/utils.ts'
10
- import { ALL_ENC_ALGORITHMS, makeExternalRpcOprfOperator, makeExternalRpcZkOperator } from '#src/external-rpc/zk.ts'
11
- import { createClaimOnMechain } from '#src/mechain/client/create-claim-on-mechain.ts'
12
- import type { ClaimTunnelResponse } from '#src/proto/api.ts'
13
- import { extractHTMLElement, extractJSONValueIndex, generateRequstAndResponseFromTranscript } from '#src/providers/http/utils.ts'
14
- import type { OPRFOperators, ProviderParams, ProviderSecretParams, ZKOperators } from '#src/types/index.ts'
15
- import { B64_JSON_REVIVER } from '#src/utils/b64-json.ts'
16
- import { AttestorError, getIdentifierFromClaimInfo, logger, makeLogger, uint8ArrayToStr } from '#src/utils/index.ts'
17
-
18
- export async function handleIncomingMessage(data: string | ExternalRPCIncomingMsg) {
19
- let id = ''
20
- try {
21
- const req: ExternalRPCIncomingMsg = (
22
- typeof data === 'string'
23
- ? JSON.parse(data, B64_JSON_REVIVER)
24
- : data
25
- )
26
-
27
- id = req.id || ''
28
-
29
- const rslt = await _handleIncomingMessage(req)
30
- if(!rslt) {
31
- return
32
- }
33
-
34
- respond(rslt)
35
- } catch(err) {
36
- console.error('Error in RPC', { id, error: err })
37
- respond({
38
- type: 'error',
39
- data: {
40
- message: err.message,
41
- stack: err.stack,
42
- }
43
- })
44
- }
45
-
46
- function respond(
47
- data: ExternalRPCResponse<ExternalRPCClient, keyof ExternalRPCClient>
48
- | ExternalRPCErrorResponse
49
- ) {
50
- const res = {
51
- ...data,
52
- id,
53
- isResponse: true
54
- } as ExternalRPCOutgoingMsg
55
- return sendMessageToApp(res)
56
- }
57
- }
58
-
59
- async function _handleIncomingMessage(req: ExternalRPCIncomingMsg): Promise<
60
- ExternalRPCResponse<ExternalRPCClient, keyof ExternalRPCClient> | undefined
61
- > {
62
- const { id: reqId, type: reqType } = req
63
- // ignore any messages not for us
64
- if(!reqId || !reqType) {
65
- return
66
- }
67
-
68
- RPC_MSG_BRIDGE.dispatch(req)
69
- // ignore response messages
70
- if(('isResponse' in req && req.isResponse)) {
71
- return
72
- }
73
-
74
- if(!reqId) {
75
- logger.warn({ req }, 'Window RPC request missing ID')
76
- return
77
- }
78
-
79
- logger.info({ req }, 'processing RPC request')
80
-
81
- switch (req.type) {
82
- case 'createClaim':
83
- const claimTunnelRes = await createClaimOnAttestor({
84
- ...req.request,
85
- context: req.request.context
86
- ? JSON.parse(req.request.context)
87
- : undefined,
88
- zkOperators: getZkOperators(
89
- req.request.zkOperatorMode, req.request.zkEngine
90
- ),
91
- oprfOperators: getOprfOperators(
92
- req.request.zkOperatorMode, req.request.zkEngine
93
- ),
94
- client: {
95
- url: getWsApiUrlFromBaseUrl(),
96
- authRequest: req.request.authRequest
97
- },
98
- logger,
99
- onStep(step) {
100
- sendMessageToApp({
101
- type: 'createClaimStep',
102
- step: { name: 'attestor-progress', step },
103
- id: req.id,
104
- })
105
- },
106
- updateProviderParams : req.request.updateProviderParams
107
- ? updateProviderParams
108
- : undefined,
109
- })
110
- const response = mapToCreateClaimResponse(claimTunnelRes)
111
- return { type: 'createClaimDone', response }
112
- case 'createClaimOnAvs':
113
- const avsRes = await createClaimOnAvs({
114
- ...req.request,
115
- payer: req.request.payer === 'attestor'
116
- ? { attestor: getWsApiUrlFromBaseUrl() }
117
- : undefined,
118
- context: req.request.context
119
- ? JSON.parse(req.request.context)
120
- : undefined,
121
- zkOperators: getZkOperators(
122
- req.request.zkOperatorMode, req.request.zkEngine
123
- ),
124
- oprfOperators: getOprfOperators(
125
- req.request.zkOperatorMode, req.request.zkEngine
126
- ),
127
- logger,
128
- onStep(step) {
129
- sendMessageToApp({
130
- type: 'createClaimOnAvsStep',
131
- step,
132
- id: req.id,
133
- })
134
- },
135
- })
136
- return {
137
- type: 'createClaimOnAvsDone',
138
- response: avsRes,
139
- }
140
- case 'createClaimOnMechain':
141
- const mechainRes = await createClaimOnMechain({
142
- ...req.request,
143
- context: req.request.context
144
- ? JSON.parse(req.request.context)
145
- : undefined,
146
- zkOperators: getZkOperators(
147
- req.request.zkOperatorMode, req.request.zkEngine
148
- ),
149
- oprfOperators: getOprfOperators(
150
- req.request.zkOperatorMode, req.request.zkEngine
151
- ),
152
- client: { url: getWsApiUrlFromBaseUrl() },
153
- logger,
154
- onStep(step) {
155
- sendMessageToApp({
156
- type: 'createClaimOnMechainStep',
157
- step,
158
- id: req.id,
159
- })
160
- },
161
- })
162
- const claimResponses: CreateClaimResponse[] = []
163
- for(let i = 0; i < mechainRes.responses.length; i++) {
164
- claimResponses[i] = mapToCreateClaimResponse(mechainRes.responses[i])
165
- }
166
-
167
- return {
168
- type: 'createClaimOnMechainDone',
169
- response: { taskId: mechainRes.taskId, data: claimResponses },
170
- }
171
- case 'extractHtmlElement':
172
- return {
173
- type: 'extractHtmlElementDone',
174
- response: extractHTMLElement(
175
- req.request.html,
176
- req.request.xpathExpression,
177
- req.request.contentsOnly
178
- ),
179
- }
180
- case 'extractJSONValueIndex':
181
- return {
182
- type: 'extractJSONValueIndexDone',
183
- response: extractJSONValueIndex(
184
- req.request.json,
185
- req.request.jsonPath
186
- ),
187
- }
188
- case 'getCurrentMemoryUsage':
189
- return {
190
- type: 'getCurrentMemoryUsageDone',
191
- response: await getCurrentMemoryUsage(),
192
- }
193
- case 'setLogLevel':
194
- makeLogger(
195
- true,
196
- req.request.logLevel,
197
- req.request.sendLogsToApp
198
- ? (level, message) => (
199
- sendMessageToApp({
200
- type: 'log',
201
- level,
202
- message,
203
- id: req.id,
204
- })
205
- )
206
- : undefined
207
- )
208
- return { type: 'setLogLevelDone', response: undefined }
209
- case 'benchmarkZK':
210
- return { type: 'benchmarkZKDone', response: await benchmark() }
211
- case 'ping':
212
- return { type: 'pingDone', response: { pong: new Date().toJSON() } }
213
- default:
214
- break
215
- }
216
- }
217
-
218
-
219
- function getZkOperators(
220
- mode: RPCCreateClaimOptions['zkOperatorMode'] = 'default',
221
- zkEngine: ZKEngine = 'snarkjs'
222
- ) {
223
- // use default snarkJS ops
224
- if(mode === 'default') {
225
- return
226
- }
227
-
228
- // the native app/window calling implements
229
- // a ZK operator & wants to use it
230
- const operators: ZKOperators = {}
231
- for(const alg of ALL_ENC_ALGORITHMS) {
232
- operators[alg] = makeExternalRpcZkOperator(alg, zkEngine)
233
- }
234
-
235
- return operators
236
- }
237
-
238
- function getOprfOperators(
239
- mode: RPCCreateClaimOptions['zkOperatorMode'] = 'default',
240
- zkEngine: ZKEngine = 'snarkjs'
241
- ) {
242
- // use default webview ops
243
- if(mode === 'default') {
244
- return
245
- }
246
-
247
- // the native app/window calling implements
248
- // a ZK operator & wants to use it
249
- const operators: OPRFOperators = {}
250
- for(const alg of ALL_ENC_ALGORITHMS) {
251
- operators[alg] = makeExternalRpcOprfOperator(alg, zkEngine)
252
- }
253
-
254
- return operators
255
- }
256
-
257
- async function updateProviderParams(
258
- transcript,
259
- tlsVersion,
260
- ): Promise<{
261
- params: Partial<ProviderParams<'http'>>
262
- secretParams: Partial<ProviderSecretParams<'http'>>
263
- }> {
264
- const { req, res } = generateRequstAndResponseFromTranscript(
265
- transcript,
266
- tlsVersion
267
- )
268
- const id = generateRpcRequestId()
269
- const waitForRes = waitForResponse('updateProviderParams', id)
270
- sendMessageToApp({
271
- type: 'updateProviderParams',
272
- id,
273
- request: {
274
- request: {
275
- ...req,
276
- body: req.body
277
- ? uint8ArrayToStr(req.body)
278
- : undefined
279
- },
280
- response: { ...res, body: uint8ArrayToStr(res.body) },
281
- }
282
- })
283
- return waitForRes
284
- }
285
-
286
- function mapToCreateClaimResponse(
287
- res: ClaimTunnelResponse
288
- ): CreateClaimResponse {
289
- if(!res.claim) {
290
- throw AttestorError.fromProto(res.error)
291
- }
292
-
293
- return {
294
- identifier: getIdentifierFromClaimInfo(res.claim),
295
- claimData: res.claim,
296
- witnesses: [
297
- {
298
- id: res.signatures!.attestorAddress,
299
- url: getWsApiUrlFromBaseUrl()
300
- }
301
- ],
302
- signatures: [
303
- utils
304
- .hexlify(res.signatures!.claimSignature)
305
- .toLowerCase()
306
- ]
307
- }
308
- }
@@ -1,3 +0,0 @@
1
- export * from './types.ts'
2
- export * from './handle-incoming-msg.ts'
3
- export * from './utils.ts'
@@ -1,117 +0,0 @@
1
- import { TextDecoder, TextEncoder } from '@kayahr/text-encoding'
2
- import { crypto, uint8ArrayToBinaryStr } from '@joclaim/tls'
3
- import { fromByteArray, toByteArray } from 'base64-js'
4
- import { EventTarget } from 'event-target-shim'
5
-
6
- import type { ExternalRPCIncomingMsg, ExternalRPCOutgoingMsg } from '#src/external-rpc/types.ts'
7
-
8
- declare global {
9
- function readline(): string
10
- function print(...args: any[]): void
11
- // @ts-expect-error - JSC built-in, conflicts with @types/debug namespace
12
- function debug(...args: any[]): void
13
- function quit(): void
14
-
15
- type JSCIncomingMsg = ExternalRPCIncomingMsg
16
- | { type: 'quit' }
17
- | {
18
- type: 'init'
19
- attestorBaseUrl: string
20
- }
21
-
22
- type JSCOutgoingMsg = ExternalRPCOutgoingMsg
23
- }
24
-
25
- if(typeof global === 'undefined') {
26
- globalThis.global = globalThis
27
- }
28
-
29
- if(typeof console === 'undefined') {
30
- // @ts-expect-error
31
- globalThis.console = {
32
- log: print,
33
- error: print,
34
- warn: print,
35
- info: print,
36
- debug: print,
37
- }
38
- }
39
-
40
- if(typeof globalThis.crypto === 'undefined') {
41
- globalThis.crypto = {
42
- // @ts-expect-error
43
- getRandomValues(arr: Uint8Array) {
44
- const randVals = crypto.randomBytes(arr.length)
45
- for(let i = 0; i < arr.length; i++) {
46
- arr[i] = randVals[i]
47
- }
48
-
49
- return arr
50
- },
51
- randomBytes(length: number) {
52
- return crypto.randomBytes(length)
53
- }
54
- }
55
- }
56
-
57
- if(typeof globalThis.TextEncoder === 'undefined') {
58
- globalThis.TextEncoder = TextEncoder
59
- }
60
-
61
- if(typeof globalThis.TextDecoder === 'undefined') {
62
- globalThis.TextDecoder = TextDecoder
63
- }
64
-
65
- if(typeof globalThis.EventTarget === 'undefined') {
66
- globalThis.EventTarget = EventTarget
67
- }
68
-
69
- if(typeof globalThis.atob === 'undefined') {
70
- globalThis.atob = a => uint8ArrayToBinaryStr(toByteArray(a))
71
- }
72
-
73
- if(typeof globalThis.btoa === 'undefined') {
74
- function binaryStringToUint8Array(binaryString: string) {
75
- const uint8Array = new Uint8Array(binaryString.length)
76
- for(let i = 0; i < binaryString.length; i++) {
77
- uint8Array[i] = binaryString.charCodeAt(i)
78
- }
79
-
80
- return uint8Array
81
- }
82
-
83
- globalThis.btoa = b => fromByteArray(binaryStringToUint8Array(b))
84
- }
85
-
86
- if(typeof globalThis.clearTimeout === 'undefined') {
87
- const ogSettimeout = globalThis.setTimeout
88
- if(!ogSettimeout) {
89
- throw new Error('setTimeout is not defined, no polyfill yet')
90
- }
91
-
92
- // @ts-expect-error
93
- globalThis.setTimeout = (fn, delayMs, ...args) => {
94
- let aborted = false
95
- const abortableFn = (...args) => {
96
- if(aborted) {
97
- return
98
- }
99
-
100
- return fn(...args)
101
- }
102
-
103
- const val = ogSettimeout(abortableFn, delayMs, ...args)
104
- return {
105
- original: val,
106
- abort() {
107
- aborted = true
108
- }
109
- }
110
- }
111
-
112
- globalThis.clearTimeout = (id) => {
113
- if(typeof id === 'object' && !!id && 'abort' in id) {
114
- id.abort()
115
- }
116
- }
117
- }
@@ -1,24 +0,0 @@
1
- import { URL as WHATWG_URL } from 'whatwg-url'
2
-
3
- import { CloseEventPolyfill, ErrorEventPolyfill, EventPolyfill, MessageEventPolyfill } from '#src/external-rpc/jsc-polyfills/event.ts'
4
- import { RPCWebSocket } from '#src/external-rpc/jsc-polyfills/ws.ts'
5
-
6
- if(typeof globalThis.URL === 'undefined') {
7
- globalThis.URL = WHATWG_URL
8
- }
9
-
10
- if(typeof globalThis.Event === 'undefined') {
11
- // @ts-expect-error
12
- globalThis.Event = EventPolyfill
13
- // @ts-expect-error
14
- globalThis.ErrorEvent = ErrorEventPolyfill
15
- // @ts-expect-error
16
- globalThis.CloseEvent = CloseEventPolyfill
17
- // @ts-expect-error
18
- globalThis.MessageEvent = MessageEventPolyfill
19
- }
20
-
21
- if(typeof globalThis.WebSocket === 'undefined') {
22
- // @ts-expect-error
23
- globalThis.WebSocket = RPCWebSocket
24
- }
@@ -1,16 +0,0 @@
1
- // @ts-expect-error
2
- export class EventPolyfill implements Event {
3
-
4
- type: string
5
-
6
- constructor(type: string, eventInitDict?: EventInit) {
7
- this.type = type
8
- Object.assign(this, eventInitDict)
9
- }
10
- }
11
-
12
- export class ErrorEventPolyfill extends EventPolyfill {}
13
-
14
- export class CloseEventPolyfill extends EventPolyfill {}
15
-
16
- export class MessageEventPolyfill extends EventPolyfill {}
@@ -1,2 +0,0 @@
1
- import '#src/external-rpc/jsc-polyfills/1.ts'
2
- import '#src/external-rpc/jsc-polyfills/2.ts'