@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,121 +0,0 @@
1
- import { readdir, readFile, writeFile } from 'fs/promises'
2
- import { compile } from 'json-schema-to-typescript'
3
- import { parse } from 'yaml'
4
-
5
- const PROVIDER_SCHEMAS_PATH = './provider-schemas'
6
- const GEN_TS_FILENAME = './src/types/providers.gen.ts'
7
- const BinaryDataType = 'BinaryData'
8
-
9
- async function main() {
10
- const folders = await findAllProviderFolders()
11
-
12
- console.log(`Generating for ${folders.length} provider folders`)
13
-
14
- let ts = '/* eslint-disable */\n/* Generated file. Do not edit */'
15
- // json-schema nor ajv support uint8array formats,
16
- // so we define a custom type for binary data
17
- // and use it in the generated types
18
- ts += `\n\ntype ${BinaryDataType} = Uint8Array | string\n`
19
- // type map of each provider to its parameters and secret parameters
20
- let providerTypeMap = '\nexport interface ProvidersConfig {\n'
21
- // schema map of each provider to its parameters and secret parameters
22
- // storing the JSON schema in the map
23
- // lets us validate the parameters and secret parameters
24
- let providerSchemaMap = '\nexport const PROVIDER_SCHEMAS = {\n'
25
-
26
- for(const folder of folders) {
27
- const {
28
- schemaTitle: paramsSchemaTitle,
29
- ts: paramsSchemaTs,
30
- jsonTitle: paramsJsonTitle
31
- } = await generateTsFromYamlSchema(folder, 'parameters')
32
- const {
33
- schemaTitle: secretParamsSchemaTitle,
34
- ts: secretParamsSchemaTs,
35
- jsonTitle: secretParamsJsonTitle
36
- } = await generateTsFromYamlSchema(
37
- folder,
38
- 'secret-parameters'
39
- )
40
-
41
- ts += `\n${paramsSchemaTs}\n${secretParamsSchemaTs}`
42
- providerTypeMap += ` ${folder}: {\n`
43
- providerTypeMap += ` parameters: ${paramsSchemaTitle}\n`
44
- providerTypeMap += ` secretParameters: ${secretParamsSchemaTitle}\n`
45
- providerTypeMap += ' }\n'
46
-
47
- providerSchemaMap += ` ${folder}: {\n`
48
- providerSchemaMap += ` parameters: ${paramsJsonTitle},\n`
49
- providerSchemaMap += ` secretParameters: ${secretParamsJsonTitle}\n`
50
- providerSchemaMap += ' },\n'
51
- }
52
-
53
- providerTypeMap += '}\n'
54
- providerSchemaMap += '}\n'
55
- ts += providerTypeMap
56
- ts += providerSchemaMap
57
-
58
- await writeFile(GEN_TS_FILENAME, ts)
59
- console.log(`Wrote to ${GEN_TS_FILENAME}`)
60
- }
61
-
62
- async function getJsonSchemaForProvider(
63
- name: string,
64
- type: 'parameters' | 'secret-parameters'
65
- ) {
66
- const paramsYaml = await readFile(
67
- `${PROVIDER_SCHEMAS_PATH}/${name}/${type}.yaml`,
68
- { encoding: 'utf-8' }
69
- )
70
- const paramsJson = parse(paramsYaml)
71
- return paramsJson
72
- }
73
-
74
- export async function generateTsFromYamlSchema(
75
- name: string,
76
- type: 'parameters' | 'secret-parameters'
77
- ) {
78
- const paramsJson = await getJsonSchemaForProvider(name, type)
79
- let paramsSchemaTs = await compile(
80
- paramsJson,
81
- '',
82
- {
83
- additionalProperties: false,
84
- bannerComment: '',
85
- ignoreMinAndMaxItems: true,
86
- declareExternallyReferenced: false,
87
- customName({ type, format }) {
88
- if(type === 'string' && format === 'binary') {
89
- return BinaryDataType
90
- }
91
-
92
- return undefined
93
- },
94
- }
95
- )
96
-
97
- const jsonTitle = `${paramsJson.title}Json`
98
- paramsSchemaTs += `\nexport const ${jsonTitle} = ${JSON.stringify(paramsJson)}`
99
-
100
- return {
101
- ts: paramsSchemaTs,
102
- schemaTitle: paramsJson.title,
103
- jsonTitle
104
- }
105
- }
106
-
107
- /**
108
- * Find all provider folders in the provider-schemas directory
109
- * @returns {Promise<string[]>} List of provider folder names
110
- */
111
- async function findAllProviderFolders() {
112
- const providerFolders = await readdir(
113
- PROVIDER_SCHEMAS_PATH,
114
- { withFileTypes: true }
115
- )
116
- return providerFolders
117
- .filter(p => p.isDirectory())
118
- .map(p => p.name)
119
- }
120
-
121
- void main()
@@ -1,138 +0,0 @@
1
- import { setCryptoImplementation } from '@joclaim/tls'
2
- import { webcryptoCrypto } from '@joclaim/tls/webcrypto'
3
- import { readFile } from 'fs/promises'
4
- import type { WebSocketServer } from 'ws'
5
- import '#src/server/utils/config-env.ts'
6
-
7
- import type {
8
- ProviderName,
9
- ProviderParams,
10
- ProviderSecretParams } from '#src/index.ts'
11
- import {
12
- API_SERVER_PORT,
13
- createClaimOnAttestor,
14
- getAttestorClientFromPool,
15
- getTranscriptString,
16
- logger,
17
- providers,
18
- WS_PATHNAME,
19
- } from '#src/index.ts'
20
- import { getCliArgument } from '#src/scripts/utils.ts'
21
- import { createServer, decryptTranscript } from '#src/server/index.ts'
22
- import { assertValidateProviderParams } from '#src/server/utils/validation.ts'
23
- import { getEnvVariable } from '#src/utils/env.ts'
24
-
25
- setCryptoImplementation(webcryptoCrypto)
26
-
27
- type ProviderReceiptGenerationParams<P extends ProviderName> = {
28
- name: P
29
- params: ProviderParams<P>
30
- secretParams: ProviderSecretParams<P>
31
- }
32
-
33
- // tmp change till we move OPRF attestor to prod
34
- const DEFAULT_ATTESTOR_HOST_PORT = 'ws://localhost:8001/ws'
35
- const PRIVATE_KEY_HEX = getEnvVariable('PRIVATE_KEY_HEX')
36
- // demo private key
37
- || '0x0123788edad59d7c013cdc85e4372f350f828e2cec62d9a2de4560e69aec7f89'
38
-
39
- let server: WebSocketServer | undefined
40
-
41
- export async function main<T extends ProviderName>(
42
- receiptParams?: ProviderReceiptGenerationParams<T>
43
- ) {
44
- const paramsJson = receiptParams ?? (await getInputParameters())
45
- if(!(paramsJson.name in providers)) {
46
- throw new Error(`Unknown provider "${paramsJson.name}"`)
47
- }
48
-
49
- assertValidateProviderParams<'http'>(paramsJson.name, paramsJson.params)
50
-
51
- let attestorHostPort = getCliArgument('attestor')
52
- || DEFAULT_ATTESTOR_HOST_PORT
53
- if(attestorHostPort === 'local') {
54
- console.log('starting local attestor server...')
55
- server = await createServer()
56
- attestorHostPort = `ws://localhost:${API_SERVER_PORT}${WS_PATHNAME}`
57
- }
58
-
59
- const zkEngine = getCliArgument('zk') === 'gnark' ? 'gnark' : 'snarkjs'
60
- const { request, error, claim } = await createClaimOnAttestor({
61
- name: paramsJson.name,
62
- secretParams: paramsJson.secretParams,
63
- params: paramsJson.params,
64
- ownerPrivateKey: PRIVATE_KEY_HEX,
65
- client: { url: attestorHostPort },
66
- logger,
67
- zkEngine
68
- })
69
-
70
- if(error) {
71
- console.error('claim creation failed:', error)
72
- } else {
73
- const ctx = claim?.context
74
- ? JSON.parse(claim.context)
75
- : {}
76
- console.log(`receipt is valid for ${paramsJson.name} provider`)
77
- if(ctx.extractedParameters) {
78
- console.log('extracted params:', ctx.extractedParameters)
79
- }
80
- }
81
-
82
-
83
- if(!request) {
84
- throw new Error('Missing request in claim')
85
- }
86
-
87
- const decTranscript = await decryptTranscript(
88
- request?.transcript,
89
- logger,
90
- zkEngine,
91
- request?.fixedServerIV,
92
- request?.fixedClientIV
93
- )
94
- const transcriptStr = getTranscriptString(decTranscript)
95
- console.log('receipt:\n', transcriptStr)
96
- console.log('claim:\n', claim)
97
-
98
- const client = getAttestorClientFromPool(attestorHostPort)
99
- await client.terminateConnection()
100
-
101
- }
102
-
103
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
- async function getInputParameters(): Promise<ProviderReceiptGenerationParams<any>> {
105
- const paramsJsonFile = getCliArgument('json')
106
- if(!paramsJsonFile) {
107
- const name = getCliArgument('name')
108
- const paramsStr = getCliArgument('params')
109
- const secretParamsStr = getCliArgument('secretParams')
110
- if(!name || !paramsStr || !secretParamsStr) {
111
- throw new Error('Either provide --json argument for parameters JSON or provide separately with --name, --params & --secretParams')
112
- }
113
-
114
- return {
115
- name,
116
- params: JSON.parse(paramsStr),
117
- secretParams: JSON.parse(secretParamsStr)
118
- }
119
- }
120
-
121
- let fileContents = await readFile(paramsJsonFile, 'utf8')
122
- for(const variable in process.env) {
123
- fileContents = fileContents.replace(
124
- `{{${variable}}}`,
125
- process.env[variable]!
126
- )
127
- }
128
-
129
- return JSON.parse(fileContents)
130
- }
131
-
132
- main()
133
- .catch(err => {
134
- console.error('error in receipt gen', err)
135
- })
136
- .finally(() => {
137
- server?.close()
138
- })
@@ -1,30 +0,0 @@
1
- import { ethers } from 'ethers'
2
-
3
- import { logger, makeDefaultOPRFOperator } from '#src/utils/index.ts'
4
-
5
- const ENGINE = 'gnark'
6
- const TOTAL_KEYS = 10
7
- const THRESHOLD = 1
8
-
9
- async function main() {
10
- const op = makeDefaultOPRFOperator('chacha20', ENGINE, logger)
11
- const {
12
- publicKey,
13
- privateKey,
14
- shares
15
- } = await op.generateThresholdKeys(TOTAL_KEYS, THRESHOLD)
16
- logEnvValue('TOPRF_PUBLIC_KEY', publicKey)
17
- logEnvValue('TOPRF_PRIVATE_KEY', privateKey)
18
-
19
- for(const [i, share] of shares.entries()) {
20
- console.log(`# Share ${i}`)
21
- logEnvValue('TOPRF_SHARE_PUBLIC_KEY', share.publicKey)
22
- logEnvValue('TOPRF_SHARE_PRIVATE_KEY', share.privateKey)
23
- }
24
- }
25
-
26
- function logEnvValue(name: string, value: Uint8Array) {
27
- console.log(`${name}=${ethers.utils.hexlify(value)}`)
28
- }
29
-
30
- void main()
@@ -1,48 +0,0 @@
1
- // eslint-disable-next-line simple-import-sort/imports
2
- import '#src/external-rpc/jsc-polyfills/index.ts'
3
-
4
- import { setCryptoImplementation } from '@joclaim/tls'
5
- import { pureJsCrypto } from '@joclaim/tls/purejs-crypto'
6
-
7
- import { handleIncomingMessage } from '#src/external-rpc/index.ts'
8
- import { B64_JSON_REVIVER } from '#src/utils/b64-json.ts'
9
-
10
- function readIncomingMsg(): JSCIncomingMsg {
11
- const cmd = readline()
12
- return JSON.parse(cmd, B64_JSON_REVIVER)
13
- }
14
-
15
- setCryptoImplementation(pureJsCrypto)
16
-
17
- print('Input base URL for attestor')
18
- const initCmd = readIncomingMsg()
19
- if(initCmd.type !== 'init') {
20
- throw new Error('Expected init command')
21
- }
22
-
23
- globalThis.RPC_CHANNEL_NAME = 'cli'
24
- globalThis.ATTESTOR_BASE_URL = initCmd.attestorBaseUrl
25
- const channel: AttestorRPCChannel = {
26
- postMessage(message) {
27
- print(message)
28
- },
29
- }
30
-
31
- globalThis[RPC_CHANNEL_NAME] = channel
32
-
33
- print('reading RPC messages...')
34
-
35
- let cmd: JSCIncomingMsg
36
- while(cmd = readIncomingMsg(), cmd.type !== 'quit') {
37
- if(cmd.type === 'init') {
38
- continue
39
- }
40
-
41
- handleIncomingMessage(cmd)
42
- // give 500ms to do some async work
43
- await new Promise((resolve) => {
44
- setTimeout(resolve, 500)
45
- })
46
- }
47
-
48
- print('done')
@@ -1,5 +0,0 @@
1
- // eslint-disable-next-line simple-import-sort/imports
2
- import 'src/server/utils/config-env'
3
- import { registerOperator } from '#src/avs/utils/register.ts'
4
-
5
- void registerOperator()
@@ -1,17 +0,0 @@
1
- import { setCryptoImplementation } from '@joclaim/tls'
2
- import { webcryptoCrypto } from '@joclaim/tls/webcrypto'
3
- import '#src/server/utils/config-env.ts'
4
-
5
- import { getApm } from '#src/server/utils/apm.ts'
6
- getApm()
7
-
8
- setCryptoImplementation(webcryptoCrypto)
9
-
10
- async function main() {
11
- // importing dynamically to allow APM to inject
12
- // into modules before they are used
13
- const { createServer } = await import('#src/server/index.ts')
14
- return createServer()
15
- }
16
-
17
- main()
@@ -1,26 +0,0 @@
1
- // eslint-disable-next-line simple-import-sort/imports
2
- import 'src/server/utils/config-env'
3
- import { getContracts } from '#src/avs/utils/contracts.ts'
4
- import { getCliArgument } from '#src/scripts/utils.ts'
5
-
6
- async function main() {
7
- const { contract } = getContracts()
8
-
9
- const minSignaturesPerTask = getCliArgument('minSignaturesPerTask')
10
- if(!minSignaturesPerTask) {
11
- throw new Error(
12
- 'Provide operator address via --minSignaturesPerTask <num>'
13
- )
14
- }
15
-
16
- const tx = await contract.updateTaskCreationMetadata({
17
- minSignaturesPerTask: +(minSignaturesPerTask || 0),
18
- maxTaskCreationDelayS: 0,
19
- maxTaskLifetimeS: 0,
20
- })
21
- await tx.wait()
22
-
23
- console.log('Updated task creation metadata')
24
- }
25
-
26
- void main()
@@ -1,8 +0,0 @@
1
- export function getCliArgument(arg: string) {
2
- const index = process.argv.indexOf(`--${arg}`)
3
- if(index === -1) {
4
- return undefined
5
- }
6
-
7
- return process.argv[index + 1]
8
- }
@@ -1,22 +0,0 @@
1
- // eslint-disable-next-line simple-import-sort/imports
2
- import 'src/server/utils/config-env'
3
- import { getContracts } from '#src/avs/utils/contracts.ts'
4
- import { getCliArgument } from '#src/scripts/utils.ts'
5
-
6
- async function main() {
7
- const { contract } = getContracts()
8
-
9
- const address = getCliArgument('address')
10
- if(!address) {
11
- throw new Error(
12
- 'Provide operator address via --address <addr>'
13
- )
14
- }
15
-
16
- const tx = await contract.whitelistAddressAsOperator(address, true)
17
- await tx.wait()
18
-
19
- console.log('Whitelisted address:', address)
20
- }
21
-
22
- void main()
@@ -1,169 +0,0 @@
1
- import type { IncomingMessage } from 'http'
2
- import { createServer as createHttpServer } from 'http'
3
- import serveStatic from 'serve-static'
4
- import type { Duplex } from 'stream'
5
- import type { WebSocket } from 'ws'
6
- import { WebSocketServer } from 'ws'
7
-
8
- import { API_SERVER_PORT, BROWSER_RPC_PATHNAME, WS_PATHNAME } from '#src/config/index.ts'
9
- import { handleProviderApiRequest } from '#src/server/provider-api.ts'
10
- import { handleSessionApiRequest } from '#src/server/session-api.ts'
11
- import { AttestorServerSocket } from '#src/server/socket.ts'
12
- import { getAttestorAddress } from '#src/server/utils/generics.ts'
13
- import { addKeepAlive } from '#src/server/utils/keep-alive.ts'
14
- import type { BGPListener } from '#src/types/index.ts'
15
- import { createBgpListener } from '#src/utils/bgp-listener.ts'
16
- import { getEnvVariable } from '#src/utils/env.ts'
17
- import { logger as LOGGER } from '#src/utils/index.ts'
18
- import { SelectedServiceSignatureType } from '#src/utils/signatures/index.ts'
19
- import { promisifySend } from '#src/utils/ws.ts'
20
-
21
- const PORT = +(getEnvVariable('PORT') || API_SERVER_PORT)
22
- const DISABLE_BGP_CHECKS = getEnvVariable('DISABLE_BGP_CHECKS') === '1'
23
-
24
- /**
25
- * Creates the WebSocket API server,
26
- * creates a fileserver to serve the browser RPC client,
27
- * and listens on the given port.
28
- */
29
- export async function createServer(port = PORT) {
30
- const http = createHttpServer()
31
- const serveBrowserRpc = serveStatic(
32
- 'browser',
33
- {
34
- index: ['index.html'],
35
- setHeaders(res) {
36
- res.setHeader('Access-Control-Allow-Origin', '*')
37
- },
38
- }
39
- )
40
- const bgpListener = !DISABLE_BGP_CHECKS
41
- ? createBgpListener(LOGGER.child({ service: 'bgp-listener' }))
42
- : undefined
43
-
44
- const wss = new WebSocketServer({ noServer: true })
45
- http.on('upgrade', handleUpgrade.bind(wss))
46
- http.on('request', (req, res) => {
47
- // CORS headers for all requests
48
- res.setHeader('Access-Control-Allow-Origin', '*')
49
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
50
- res.setHeader('Access-Control-Allow-Headers', 'Content-Type')
51
-
52
- // Handle CORS preflight
53
- if(req.method === 'OPTIONS') {
54
- res.statusCode = 204
55
- res.end()
56
- return
57
- }
58
-
59
- // Session API routes
60
- if(req.url?.startsWith('/api/sdk/') || req.url?.startsWith('/session/')) {
61
- handleSessionApiRequest(req, res)
62
- return
63
- }
64
-
65
- // Logs endpoint (accepts POST, returns 200)
66
- if(req.url?.startsWith('/api/logs')) {
67
- const chunks: Buffer[] = []
68
- req.on('data', (chunk: Buffer) => chunks.push(chunk))
69
- req.on('end', () => {
70
- LOGGER.debug({ source: 'sdk-logs' }, 'received sdk log dump')
71
- res.statusCode = 200
72
- res.setHeader('Content-Type', 'application/json')
73
- res.end('{"success":true}')
74
- })
75
- return
76
- }
77
-
78
- // Provider API routes
79
- if(req.url?.startsWith('/api/providers')) {
80
- handleProviderApiRequest(req, res)
81
- return
82
- }
83
-
84
- // simple way to serve files at the browser RPC path
85
- if(!req.url?.startsWith(BROWSER_RPC_PATHNAME)) {
86
- res.statusCode = 404
87
- res.end('Not found')
88
- return
89
- }
90
-
91
- req.url = req.url.slice(BROWSER_RPC_PATHNAME.length) || '/'
92
-
93
- serveBrowserRpc(req, res, (err) => {
94
- if(err) {
95
- LOGGER.error(
96
- { err, url: req.url },
97
- 'Failed to serve file'
98
- )
99
- }
100
-
101
- res.statusCode = err?.statusCode ?? 404
102
- res.end(err?.message ?? 'Not found')
103
- })
104
- })
105
-
106
- // wait for us to start listening
107
- http.listen(port)
108
- await new Promise<void>((resolve, reject) => {
109
- http.once('listening', () => resolve())
110
- http.once('error', reject)
111
- })
112
-
113
- wss.on('connection', (ws, req) => handleNewClient(ws, req, bgpListener))
114
-
115
- LOGGER.info(
116
- {
117
- port,
118
- apiPath: WS_PATHNAME,
119
- browserRpcPath: BROWSER_RPC_PATHNAME,
120
- signerAddress: getAttestorAddress(SelectedServiceSignatureType)
121
- },
122
- 'WS server listening'
123
- )
124
-
125
- const wssClose = wss.close.bind(wss)
126
- wss.close = (cb) => {
127
- wssClose(() => http.close(cb))
128
- bgpListener?.close()
129
- }
130
-
131
- return wss
132
- }
133
-
134
- async function handleNewClient(
135
- ws: WebSocket,
136
- req: IncomingMessage,
137
- bgpListener: BGPListener | undefined
138
- ) {
139
- promisifySend(ws)
140
- const client = await AttestorServerSocket.acceptConnection(
141
- ws,
142
- { req, bgpListener, logger: LOGGER }
143
- )
144
- // if initialisation fails, don't store the client
145
- if(!client) {
146
- return
147
- }
148
-
149
- ws.serverSocket = client
150
- addKeepAlive(ws, LOGGER.child({ sessionId: client.sessionId }))
151
- }
152
-
153
- function handleUpgrade(
154
- this: WebSocketServer,
155
- request: IncomingMessage,
156
- socket: Duplex,
157
- head: Buffer
158
- ) {
159
- const { pathname } = new URL(request.url!, 'wss://base.url')
160
-
161
- if(pathname === WS_PATHNAME) {
162
- this.handleUpgrade(request, socket, head, (ws) => {
163
- this.emit('connection', ws, request)
164
- })
165
- return
166
- }
167
-
168
- socket.destroy()
169
- }