@reclaimprotocol/attestor-core 3.1.0 → 4.0.0

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 (88) hide show
  1. package/lib/avs/contracts/index.js +18 -8
  2. package/lib/avs/utils/tasks.d.ts +1 -1
  3. package/lib/client/create-claim.d.ts +2 -2
  4. package/lib/client/create-claim.js +89 -33
  5. package/lib/client/utils/client-socket.d.ts +3 -1
  6. package/lib/client/utils/client-socket.js +25 -8
  7. package/lib/config/index.d.ts +4 -0
  8. package/lib/config/index.js +8 -3
  9. package/lib/index.js +18 -8
  10. package/lib/proto/api.d.ts +80 -2
  11. package/lib/proto/api.js +853 -101
  12. package/lib/providers/http/index.js +221 -128
  13. package/lib/providers/http/utils.d.ts +3 -6
  14. package/lib/providers/http/utils.js +13 -11
  15. package/lib/providers/index.js +1 -3
  16. package/lib/scripts/generate-receipt.js +6 -3
  17. package/lib/scripts/generate-toprf-keys.d.ts +1 -0
  18. package/lib/scripts/generate-toprf-keys.js +23 -0
  19. package/lib/server/create-server.js +14 -7
  20. package/lib/server/handlers/claimTunnel.js +33 -10
  21. package/lib/server/handlers/createTunnel.js +44 -8
  22. package/lib/server/handlers/disconnectTunnel.js +2 -2
  23. package/lib/server/handlers/index.js +4 -2
  24. package/lib/server/handlers/init.js +17 -2
  25. package/lib/server/handlers/toprf.d.ts +2 -0
  26. package/lib/server/handlers/toprf.js +21 -0
  27. package/lib/server/socket.d.ts +5 -3
  28. package/lib/server/socket.js +25 -5
  29. package/lib/server/tunnels/make-tcp-tunnel.js +10 -24
  30. package/lib/server/utils/apm.js +1 -1
  31. package/lib/server/utils/assert-valid-claim-request.d.ts +2 -2
  32. package/lib/server/utils/assert-valid-claim-request.js +17 -9
  33. package/lib/server/utils/dns.d.ts +1 -0
  34. package/lib/server/utils/dns.js +22 -0
  35. package/lib/server/utils/generics.d.ts +1 -1
  36. package/lib/tests/describe-with-server.d.ts +0 -2
  37. package/lib/tests/describe-with-server.js +1 -4
  38. package/lib/tests/mock-provider-server.d.ts +1 -1
  39. package/lib/tests/test.auth.d.ts +1 -0
  40. package/lib/tests/test.auth.js +75 -0
  41. package/lib/tests/test.bgp-listener.d.ts +1 -0
  42. package/lib/tests/test.bgp-listener.js +169 -0
  43. package/lib/tests/test.claim-creation.js +100 -7
  44. package/lib/tests/test.http-parser.d.ts +1 -1
  45. package/lib/tests/test.http-parser.js +7 -5
  46. package/lib/tests/test.http-provider-utils.js +155 -30
  47. package/lib/tests/test.http-provider.js +50 -7
  48. package/lib/tests/test.zk.js +54 -4
  49. package/lib/tests/utils.d.ts +6 -0
  50. package/lib/tests/utils.js +16 -1
  51. package/lib/types/bgp.d.ts +11 -0
  52. package/lib/types/bgp.js +3 -0
  53. package/lib/types/claims.d.ts +14 -5
  54. package/lib/types/client.d.ts +30 -3
  55. package/lib/types/general.d.ts +12 -0
  56. package/lib/types/handlers.d.ts +4 -4
  57. package/lib/types/index.d.ts +1 -0
  58. package/lib/types/index.js +2 -1
  59. package/lib/types/providers.d.ts +9 -9
  60. package/lib/types/providers.gen.d.ts +12 -152
  61. package/lib/types/providers.gen.js +2 -6
  62. package/lib/types/zk.d.ts +11 -2
  63. package/lib/utils/auth.d.ts +7 -0
  64. package/lib/utils/auth.js +64 -0
  65. package/lib/utils/b64-json.d.ts +2 -0
  66. package/lib/utils/b64-json.js +23 -0
  67. package/lib/utils/bgp-listener.d.ts +7 -0
  68. package/lib/utils/bgp-listener.js +126 -0
  69. package/lib/utils/claims.js +3 -3
  70. package/lib/utils/generics.d.ts +5 -5
  71. package/lib/utils/generics.js +3 -3
  72. package/lib/utils/index.d.ts +2 -0
  73. package/lib/utils/index.js +3 -1
  74. package/lib/utils/redactions.d.ts +19 -6
  75. package/lib/utils/redactions.js +41 -4
  76. package/lib/utils/socket-base.d.ts +3 -2
  77. package/lib/utils/socket-base.js +7 -2
  78. package/lib/utils/ws.d.ts +5 -5
  79. package/lib/utils/ws.js +27 -10
  80. package/lib/utils/zk.d.ts +12 -7
  81. package/lib/utils/zk.js +197 -42
  82. package/lib/window-rpc/setup-window-rpc.js +29 -8
  83. package/lib/window-rpc/types.d.ts +16 -21
  84. package/lib/window-rpc/utils.d.ts +2 -1
  85. package/lib/window-rpc/utils.js +27 -1
  86. package/lib/window-rpc/window-rpc-zk.d.ts +8 -3
  87. package/lib/window-rpc/window-rpc-zk.js +58 -45
  88. package/package.json +24 -22
@@ -55,6 +55,13 @@ export declare enum ErrorCode {
55
55
  ERROR_NETWORK_ERROR = 6,
56
56
  /** ERROR_PAYMENT_REFUSED - attestor refused to pay the costs */
57
57
  ERROR_PAYMENT_REFUSED = 7,
58
+ /**
59
+ * ERROR_BGP_ANNOUNCEMENT_OVERLAP - BGP announcement overlapped, potentially
60
+ * compromising the claim's authenticity
61
+ */
62
+ ERROR_BGP_ANNOUNCEMENT_OVERLAP = 8,
63
+ /** ERROR_AUTHENTICATION_FAILED - authentication failed */
64
+ ERROR_AUTHENTICATION_FAILED = 9,
58
65
  UNRECOGNIZED = -1
59
66
  }
60
67
  export declare function errorCodeFromJSON(object: any): ErrorCode;
@@ -188,7 +195,10 @@ export interface MessageReveal_MessageRevealZk {
188
195
  proofs: MessageReveal_ZKProof[];
189
196
  }
190
197
  export interface MessageReveal_ZKProof {
191
- /** JSON encoded snarkJS proof */
198
+ /**
199
+ * JSON encoded snarkJS proof
200
+ * @deprecated -- use `proofData` instead
201
+ */
192
202
  proofJson: string;
193
203
  /** the decrypted ciphertext as output by the ZK proof */
194
204
  decryptedRedactedCiphertext: Uint8Array;
@@ -199,6 +209,23 @@ export interface MessageReveal_ZKProof {
199
209
  * in the redactedPlaintext
200
210
  */
201
211
  startIdx: number;
212
+ proofData: Uint8Array;
213
+ /**
214
+ * If this block's proof contains an OPRF'd piece of data,
215
+ * then provide the OPRF data here
216
+ */
217
+ toprf: TOPRFPayload | undefined;
218
+ }
219
+ export interface TOPRFPayload {
220
+ /** Location of the data in the chunk that was masked */
221
+ dataLocation: DataSlice | undefined;
222
+ /** OPRF hash of the data */
223
+ nullifier: Uint8Array;
224
+ responses: TOPRFResponse[];
225
+ }
226
+ export interface DataSlice {
227
+ fromIndex: number;
228
+ length: number;
202
229
  }
203
230
  export interface ClaimRequestData {
204
231
  provider: string;
@@ -306,11 +333,52 @@ export interface CompleteClaimOnAvsResponse {
306
333
  txHash: string;
307
334
  taskCompletedObjectJson: string;
308
335
  }
336
+ export interface AuthenticatedUserData {
337
+ /** Unique identifier for the user */
338
+ id: string;
339
+ createdAt: number;
340
+ /**
341
+ * Unix timestamp in seconds when the user's
342
+ * authentication will expire.
343
+ */
344
+ expiresAt: number;
345
+ /**
346
+ * List of allowed hosts the user is allowed to connect to.
347
+ * Will throw a BAD_REQUEST error if the user tries to connect.
348
+ * Pass an empty list to allow all hosts.
349
+ */
350
+ hostWhitelist: string[];
351
+ }
352
+ export interface AuthenticationRequest {
353
+ data: AuthenticatedUserData | undefined;
354
+ /** Signature of the `userData` */
355
+ signature: Uint8Array;
356
+ }
309
357
  export interface InitRequest {
310
358
  /** Attestor client version */
311
359
  clientVersion: AttestorVersion;
312
360
  /** Signature type used & expected by the user */
313
361
  signatureType: ServiceSignatureType;
362
+ /**
363
+ * Request the attestor to authenticate the user
364
+ * with the given data. If auth fails, will return
365
+ * an AUTHENTICATION_FAILED error.
366
+ */
367
+ auth: AuthenticationRequest | undefined;
368
+ }
369
+ export interface InitResponse {
370
+ toprfPublicKey: Uint8Array;
371
+ }
372
+ export interface TOPRFRequest {
373
+ maskedData: Uint8Array;
374
+ engine: ZKProofEngine;
375
+ }
376
+ export interface TOPRFResponse {
377
+ publicKeyShare: Uint8Array;
378
+ /** OPRF output */
379
+ evaluated: Uint8Array;
380
+ c: Uint8Array;
381
+ r: Uint8Array;
314
382
  }
315
383
  export interface RPCMessage {
316
384
  /**
@@ -323,7 +391,7 @@ export interface RPCMessage {
323
391
  id: number;
324
392
  initRequest?: InitRequest | undefined;
325
393
  /** Response to the init request. */
326
- initResponse?: Empty | undefined;
394
+ initResponse?: InitResponse | undefined;
327
395
  /**
328
396
  * Data representing an error in the WebSocket connection.
329
397
  * The party sending this message should close the connection
@@ -368,6 +436,9 @@ export interface RPCMessage {
368
436
  /** Submit the work done for the claim on the chain. */
369
437
  completeClaimOnChainRequest?: CompleteClaimOnAvsRequest | undefined;
370
438
  completeClaimOnChainResponse?: CompleteClaimOnAvsResponse | undefined;
439
+ /** Request to perform thresholded OPRF */
440
+ toprfRequest?: TOPRFRequest | undefined;
441
+ toprfResponse?: TOPRFResponse | undefined;
371
442
  }
372
443
  export interface RPCMessages {
373
444
  messages: RPCMessage[];
@@ -386,6 +457,8 @@ export declare const MessageReveal: MessageFns<MessageReveal>;
386
457
  export declare const MessageReveal_MessageRevealDirect: MessageFns<MessageReveal_MessageRevealDirect>;
387
458
  export declare const MessageReveal_MessageRevealZk: MessageFns<MessageReveal_MessageRevealZk>;
388
459
  export declare const MessageReveal_ZKProof: MessageFns<MessageReveal_ZKProof>;
460
+ export declare const TOPRFPayload: MessageFns<TOPRFPayload>;
461
+ export declare const DataSlice: MessageFns<DataSlice>;
389
462
  export declare const ClaimRequestData: MessageFns<ClaimRequestData>;
390
463
  export declare const ClaimTunnelRequest: MessageFns<ClaimTunnelRequest>;
391
464
  export declare const ClaimTunnelRequest_Signatures: MessageFns<ClaimTunnelRequest_Signatures>;
@@ -396,7 +469,12 @@ export declare const RequestClaimOnAvsRequest: MessageFns<RequestClaimOnAvsReque
396
469
  export declare const RequestClaimOnAvsResponse: MessageFns<RequestClaimOnAvsResponse>;
397
470
  export declare const CompleteClaimOnAvsRequest: MessageFns<CompleteClaimOnAvsRequest>;
398
471
  export declare const CompleteClaimOnAvsResponse: MessageFns<CompleteClaimOnAvsResponse>;
472
+ export declare const AuthenticatedUserData: MessageFns<AuthenticatedUserData>;
473
+ export declare const AuthenticationRequest: MessageFns<AuthenticationRequest>;
399
474
  export declare const InitRequest: MessageFns<InitRequest>;
475
+ export declare const InitResponse: MessageFns<InitResponse>;
476
+ export declare const TOPRFRequest: MessageFns<TOPRFRequest>;
477
+ export declare const TOPRFResponse: MessageFns<TOPRFResponse>;
400
478
  export declare const RPCMessage: MessageFns<RPCMessage>;
401
479
  export declare const RPCMessages: MessageFns<RPCMessages>;
402
480
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;