@reclaimprotocol/attestor-core 3.1.1 → 4.0.1

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 (110) hide show
  1. package/lib/avs/contracts/index.js +18 -8
  2. package/lib/avs/tests/test.operator.js +4 -4
  3. package/lib/avs/utils/tasks.d.ts +1 -1
  4. package/lib/client/create-claim.d.ts +2 -2
  5. package/lib/client/create-claim.js +100 -34
  6. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +3 -3
  7. package/lib/client/tunnels/make-rpc-tls-tunnel.js +3 -3
  8. package/lib/client/utils/client-socket.d.ts +3 -1
  9. package/lib/client/utils/client-socket.js +25 -8
  10. package/lib/client/utils/message-handler.js +2 -2
  11. package/lib/config/index.d.ts +9 -2
  12. package/lib/config/index.js +10 -4
  13. package/lib/index.js +18 -8
  14. package/lib/proto/api.d.ts +81 -2
  15. package/lib/proto/api.js +859 -101
  16. package/lib/providers/http/index.js +220 -116
  17. package/lib/providers/http/utils.d.ts +3 -6
  18. package/lib/providers/http/utils.js +13 -11
  19. package/lib/providers/index.js +1 -3
  20. package/lib/scripts/check-avs-registration.js +2 -2
  21. package/lib/scripts/generate-provider-types.js +2 -2
  22. package/lib/scripts/generate-receipt.js +6 -3
  23. package/lib/scripts/generate-toprf-keys.d.ts +1 -0
  24. package/lib/scripts/generate-toprf-keys.js +23 -0
  25. package/lib/scripts/register-avs-operator.js +2 -2
  26. package/lib/scripts/start-server.js +10 -3
  27. package/lib/scripts/update-avs-metadata.js +2 -2
  28. package/lib/scripts/verify-root-ca.js +2 -2
  29. package/lib/scripts/whitelist-operator.js +2 -2
  30. package/lib/server/create-server.js +14 -7
  31. package/lib/server/handlers/claimTunnel.js +34 -11
  32. package/lib/server/handlers/createTunnel.js +45 -9
  33. package/lib/server/handlers/disconnectTunnel.js +2 -2
  34. package/lib/server/handlers/index.js +4 -2
  35. package/lib/server/handlers/init.js +17 -2
  36. package/lib/server/handlers/toprf.d.ts +2 -0
  37. package/lib/server/handlers/toprf.js +21 -0
  38. package/lib/server/socket.d.ts +5 -3
  39. package/lib/server/socket.js +28 -8
  40. package/lib/server/tunnels/make-tcp-tunnel.js +22 -29
  41. package/lib/server/utils/apm.js +9 -5
  42. package/lib/server/utils/assert-valid-claim-request.d.ts +3 -3
  43. package/lib/server/utils/assert-valid-claim-request.js +27 -16
  44. package/lib/server/utils/dns.d.ts +1 -0
  45. package/lib/server/utils/dns.js +22 -0
  46. package/lib/server/utils/generics.d.ts +1 -1
  47. package/lib/tests/describe-with-server.d.ts +0 -2
  48. package/lib/tests/describe-with-server.js +1 -4
  49. package/lib/tests/mock-provider-server.d.ts +1 -1
  50. package/lib/tests/test.auth.d.ts +1 -0
  51. package/lib/tests/test.auth.js +75 -0
  52. package/lib/tests/test.bgp-listener.d.ts +1 -0
  53. package/lib/tests/test.bgp-listener.js +169 -0
  54. package/lib/tests/test.claim-creation.js +101 -8
  55. package/lib/tests/test.http-parser.d.ts +1 -1
  56. package/lib/tests/test.http-parser.js +7 -5
  57. package/lib/tests/test.http-provider-utils.js +489 -211
  58. package/lib/tests/test.http-provider.js +77 -6
  59. package/lib/tests/test.rpc-tunnel.js +10 -6
  60. package/lib/tests/test.zk.d.ts +1 -1
  61. package/lib/tests/test.zk.js +180 -12
  62. package/lib/tests/utils.d.ts +6 -0
  63. package/lib/tests/utils.js +16 -1
  64. package/lib/types/bgp.d.ts +11 -0
  65. package/lib/types/bgp.js +3 -0
  66. package/lib/types/claims.d.ts +14 -5
  67. package/lib/types/client.d.ts +30 -3
  68. package/lib/types/general.d.ts +12 -0
  69. package/lib/types/handlers.d.ts +4 -4
  70. package/lib/types/index.d.ts +1 -0
  71. package/lib/types/index.js +2 -1
  72. package/lib/types/providers.d.ts +25 -10
  73. package/lib/types/providers.gen.d.ts +14 -155
  74. package/lib/types/providers.gen.js +2 -6
  75. package/lib/types/tunnel.d.ts +2 -2
  76. package/lib/types/zk.d.ts +11 -3
  77. package/lib/utils/auth.d.ts +7 -0
  78. package/lib/utils/auth.js +64 -0
  79. package/lib/utils/b64-json.d.ts +2 -0
  80. package/lib/utils/b64-json.js +23 -0
  81. package/lib/utils/bgp-listener.d.ts +7 -0
  82. package/lib/utils/bgp-listener.js +126 -0
  83. package/lib/utils/claims.js +3 -3
  84. package/lib/utils/generics.d.ts +5 -5
  85. package/lib/utils/generics.js +3 -3
  86. package/lib/utils/http-parser.d.ts +4 -0
  87. package/lib/utils/http-parser.js +4 -2
  88. package/lib/utils/index.d.ts +2 -0
  89. package/lib/utils/index.js +3 -1
  90. package/lib/utils/redactions.d.ts +19 -6
  91. package/lib/utils/redactions.js +41 -4
  92. package/lib/utils/socket-base.d.ts +3 -2
  93. package/lib/utils/socket-base.js +7 -2
  94. package/lib/utils/ws.d.ts +5 -5
  95. package/lib/utils/ws.js +27 -10
  96. package/lib/utils/zk.d.ts +12 -7
  97. package/lib/utils/zk.js +261 -67
  98. package/lib/window-rpc/setup-window-rpc.js +29 -8
  99. package/lib/window-rpc/types.d.ts +16 -21
  100. package/lib/window-rpc/utils.d.ts +2 -1
  101. package/lib/window-rpc/utils.js +28 -2
  102. package/lib/window-rpc/window-rpc-zk.d.ts +8 -3
  103. package/lib/window-rpc/window-rpc-zk.js +58 -45
  104. package/package.json +25 -22
  105. package/lib/providers/httpb64/index.d.ts +0 -3
  106. package/lib/providers/httpb64/index.js +0 -209
  107. package/lib/providers/httpb64/utils.d.ts +0 -77
  108. package/lib/providers/httpb64/utils.js +0 -358
  109. package/lib/server/utils/verify-server-certificates.d.ts +0 -7
  110. package/lib/server/utils/verify-server-certificates.js +0 -101
@@ -56,13 +56,10 @@ export declare function buildHeaders(input: HTTPProviderParams['headers']): stri
56
56
  */
57
57
  export declare function convertResponsePosToAbsolutePos(pos: number, bodyStartIdx: number, chunks?: ArraySlice[]): number;
58
58
  /**
59
- * Returns parts of response which contain chunk headers and must be redacted out
60
- * of revealed response part
61
- * @param from
62
- * @param to
63
- * @param chunks
59
+ * If this reveal spans the boundary of two chunks, we'll
60
+ *
64
61
  */
65
- export declare function getRedactionsForChunkHeaders(from: any, to: number, chunks?: ArraySlice[]): ArraySlice[];
62
+ export declare function getRedactionsForChunkHeaders(from: number, to: number, chunks?: ArraySlice[]): ArraySlice[];
66
63
  export declare function parseHttpResponse(buff: Uint8Array): HttpResponse;
67
64
  export declare function makeRegex(str: string): any;
68
65
  /**
@@ -233,19 +233,21 @@ function convertResponsePosToAbsolutePos(pos, bodyStartIdx, chunks) {
233
233
  return bodyStartIdx + pos;
234
234
  }
235
235
  /**
236
- * Returns parts of response which contain chunk headers and must be redacted out
237
- * of revealed response part
238
- * @param from
239
- * @param to
240
- * @param chunks
236
+ * If this reveal spans the boundary of two chunks, we'll
237
+ *
241
238
  */
242
239
  function getRedactionsForChunkHeaders(from, to, chunks) {
243
240
  const res = [];
244
- if (chunks === null || chunks === void 0 ? void 0 : chunks.length) {
245
- for (let i = 1; i < (chunks === null || chunks === void 0 ? void 0 : chunks.length); i++) {
246
- if (chunks[i].fromIndex > from && chunks[i].fromIndex < to) {
247
- res.push({ fromIndex: chunks[i - 1].toIndex, toIndex: chunks[i].fromIndex });
248
- }
241
+ if (!(chunks === null || chunks === void 0 ? void 0 : chunks.length)) {
242
+ return res;
243
+ }
244
+ for (let i = 1; i < (chunks === null || chunks === void 0 ? void 0 : chunks.length); i++) {
245
+ const chunk = chunks[i];
246
+ if (chunk.fromIndex > from && chunk.fromIndex < to) {
247
+ res.push({
248
+ fromIndex: chunks[i - 1].toIndex,
249
+ toIndex: chunk.fromIndex,
250
+ });
249
251
  }
250
252
  }
251
253
  return res;
@@ -355,4 +357,4 @@ function generateRequstAndResponseFromTranscript(transcript, tlsVersion) {
355
357
  const res = parseHttpResponse(responsePackets);
356
358
  return { req, res };
357
359
  }
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2h0dHAvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdDQUF3Qzs7QUFpRHhDLGdEQU9DO0FBUUQsa0RBWUM7QUFRRCwwREFNQztBQVFELGdFQTRDQztBQUVELHNEQUVDO0FBRUQsMERBa0NDO0FBaUZELG9DQVFDO0FBUUQsMEVBa0JDO0FBU0Qsb0VBV0M7QUFFRCw4Q0FLQztBQUVELDhCQU1DO0FBU0Qsb0RBNEVDO0FBRUQsMEZBMEJDO0FBM2JELDhDQUE2RDtBQUM3RCwrQ0FRcUI7QUFDckIsaURBQXdDO0FBRXhDLHFDQUF1SjtBQVN2SixJQUFJLEdBQUcsQ0FBQTtBQUNQLElBQUksQ0FBQztJQUNKLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEIsSUFBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsR0FBRyxHQUFHLFNBQVMsQ0FBQTtRQUNmLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0FBQ0YsQ0FBQztBQUFDLFdBQUssQ0FBQztJQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUNuRCxDQUFDO0FBRUQsSUFBSSxHQUFHLENBQUE7QUFFUCxJQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLGFBQWE7SUFDYixHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQTtBQUNuQixDQUFDO0tBQU0sQ0FBQztJQUNQLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdkIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2pDLElBQVksRUFDWixlQUF1QixFQUN2QixZQUFxQjtJQUVyQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcs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
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2h0dHAvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdDQUF3Qzs7QUFpRHhDLGdEQU9DO0FBUUQsa0RBWUM7QUFRRCwwREFNQztBQVFELGdFQTRDQztBQUVELHNEQUVDO0FBRUQsMERBa0NDO0FBaUZELG9DQVFDO0FBUUQsMEVBa0JDO0FBTUQsb0VBbUJDO0FBRUQsOENBS0M7QUFFRCw4QkFNQztBQVNELG9EQTRFQztBQUVELDBGQTBCQztBQWhjRCw4Q0FBNkQ7QUFDN0QsK0NBUXFCO0FBQ3JCLGlEQUF3QztBQUV4QyxxQ0FBdUo7QUFTdkosSUFBSSxHQUFHLENBQUE7QUFDUCxJQUFJLENBQUM7SUFDSixHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BCLElBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLEdBQUcsR0FBRyxTQUFTLENBQUE7UUFDZixNQUFNLElBQUksS0FBSyxFQUFFLENBQUE7SUFDbEIsQ0FBQztBQUNGLENBQUM7QUFBQyxXQUFLLENBQUM7SUFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFDbkQsQ0FBQztBQUVELElBQUksR0FBRyxDQUFBO0FBRVAsSUFBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxhQUFhO0lBQ2IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUE7QUFDbkIsQ0FBQztLQUFNLENBQUM7SUFDUCxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3ZCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGtCQUFrQixDQUNqQyxJQUFZLEVBQ1osZUFBdUIsRUFDdkIsWUFBcUI7SUFFckIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ25GLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDOUIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQ2xDLElBQVksRUFDWixlQUF1QixFQUN2QixZQUFxQjtJQUVyQixNQUFNLE9BQU8sR0FBRywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQy9FLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQTtJQUN4QixLQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksT0FBTyxFQUFFLENBQUM7UUFDckMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNYLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHVCQUF1QixDQUN0QyxJQUFZLEVBQ1osZUFBdUIsRUFDdkIsWUFBcUI7SUFFckIsT0FBTywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzFFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDBCQUEwQixDQUN6QyxJQUFZLEVBQ1osZUFBdUIsRUFDdkIsWUFBcUI7SUFHckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtRQUMvQixXQUFXLEVBQUUsV0FBVztRQUN4QixvQkFBb0IsRUFBRSxJQUFJO0tBQzFCLENBQUMsQ0FBQTtJQUVGLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDL0gsTUFBTSxLQUFLLEdBQVcsRUFBRSxDQUFBO0lBQ3hCLElBQUcsQ0FBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsVUFBVSxNQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLDBCQUEwQjtTQUMvRSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsY0FBYyxDQUFBLEVBQUUsQ0FBQztRQUM5QixLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3BELEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3hDLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixlQUFlLEdBQUcsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFHRCxNQUFNLEdBQUcsR0FBcUMsRUFBRSxDQUFBO0lBRWhELEtBQUksTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMzQyxJQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsZUFBZSxHQUFHLENBQUMsQ0FBQTtRQUM1RSxDQUFDO1FBRUQsSUFBRyxZQUFZLEVBQUUsQ0FBQztZQUNqQixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQTtZQUNoRyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQTtZQUMxRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDUCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBQzFFLENBQUM7SUFDRixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUE7QUFDWCxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsSUFBWSxFQUFFLFFBQWdCO0lBQ25FLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2xELENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7SUFDckUsTUFBTSxRQUFRLEdBQUcsSUFBQSx3QkFBUSxFQUFDO1FBQ3pCLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksRUFBRSxLQUFLO1FBQ1gsVUFBVSxFQUFFLFNBQVM7UUFDckIsSUFBSSxFQUFDLE1BQU07UUFDWCxhQUFhO1FBQ2IsZ0JBQWdCLEVBQUUsSUFBSTtLQUN0QixDQUFDLENBQUE7SUFDRixJQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLElBQUEsMEJBQVcsRUFBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBLENBQUMsMENBQTBDO0lBQ3RHLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxrQ0FBbUI7V0FDMUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsWUFBWSwrQkFBZ0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsWUFBWSw4QkFBZSxDQUFDLEVBQUUsQ0FBQztRQUVqSCxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN4RSxNQUFNLEdBQUcsR0FBcUMsRUFBRSxDQUFBO1FBQ2hELEtBQUksTUFBTSxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUM5RCxJQUFHLEtBQUssRUFBRSxDQUFDO2dCQUNWLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ1IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQjtvQkFDekMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztpQkFDbEIsQ0FBQyxDQUFBO1lBQ0gsQ0FBQztRQUNGLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQTtJQUNYLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7QUFDdEMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxRQUFRLENBQ2hCLENBQWEsRUFDYixJQUFZLEVBQ1osUUFBa0I7SUFFbEIsSUFBRyxDQUFDLFlBQVksK0JBQWdCLEVBQUUsQ0FBQztRQUNsQyxLQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksdUJBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLFNBQVE7WUFDVCxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUsscUJBQU0sQ0FBQyxPQUFPO2dCQUM5QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUs7Z0JBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUE7WUFFUCxJQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzRSxPQUFPO29CQUNOLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDakIsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNmLENBQUE7WUFDRixDQUFDO1lBRUQsSUFDQyxDQUFDLENBQUMsS0FBSyxZQUFZLCtCQUFnQjttQkFDaEMsQ0FBQyxDQUFDLEtBQUssWUFBWSw4QkFBZSxFQUNwQyxDQUFDO2dCQUNGLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQTtnQkFDbEQsSUFBRyxHQUFHLEVBQUUsQ0FBQztvQkFDUixPQUFPLEdBQUcsQ0FBQTtnQkFDWCxDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBRyxDQUFDLFlBQVksOEJBQWUsRUFBRSxDQUFDO1FBQ2pDLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDN0IsSUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLFNBQVE7WUFDVCxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUE7WUFFaEMsSUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDaEIsT0FBTyxJQUFJLE9BQU87Z0JBQ2xCLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUN2QyxDQUFDO2dCQUNGLE9BQU87b0JBQ04sS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUN2QixHQUFHLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ3JCLENBQUE7WUFDRixDQUFDO1lBRUQsSUFBRyxPQUFPLFlBQVksK0JBQWdCLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7Z0JBQ2xELElBQUcsR0FBRyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxHQUFHLENBQUE7Z0JBQ1gsQ0FBQztZQUNGLENBQUM7WUFFRCxJQUFHLE9BQU8sWUFBWSw4QkFBZSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFBO2dCQUNsRCxJQUFHLEdBQUcsRUFBRSxDQUFDO29CQUNSLE9BQU8sR0FBRyxDQUFBO2dCQUNYLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNaLENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsS0FBb0M7SUFDaEUsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFBO0lBRTVCLEtBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUE7QUFDZixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQiwrQkFBK0IsQ0FBQyxHQUFXLEVBQUUsWUFBb0IsRUFBRSxNQUFxQjtJQUN2RyxJQUFHLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxNQUFNLEVBQUUsQ0FBQztRQUNuQixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUE7UUFDdEIsS0FBSSxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUUzQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7WUFFakQsSUFBRyxHQUFHLElBQUksY0FBYyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNqRSxPQUFPLEdBQUcsR0FBRyxjQUFjLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQTtZQUM5QyxDQUFDO1lBRUQsY0FBYyxJQUFJLFNBQVMsQ0FBQTtRQUM1QixDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxPQUFPLFlBQVksR0FBRyxHQUFHLENBQUE7QUFDMUIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLDRCQUE0QixDQUMzQyxJQUFZLEVBQUUsRUFBVSxFQUFFLE1BQXFCO0lBRS9DLE1BQU0sR0FBRyxHQUFpQyxFQUFFLENBQUE7SUFDNUMsSUFBRyxDQUFDLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sQ0FBQSxFQUFFLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUE7SUFDWCxDQUFDO0lBRUQsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFHLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxNQUFNLENBQUEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN2QixJQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDbkQsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDUixTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPO2dCQUNoQyxPQUFPLEVBQUUsS0FBSyxDQUFDLFNBQVM7YUFDeEIsQ0FBQyxDQUFBO1FBQ0gsQ0FBQztJQUNGLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNYLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFnQjtJQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFBLDhCQUFzQixHQUFFLENBQUE7SUFDdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNwQixNQUFNLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDcEIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFnQixTQUFTLENBQUMsR0FBVztJQUNwQyxJQUFHLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN0QixPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQzlCLENBQUM7QUFFRCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDakQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRS9DOzs7R0FHRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLGNBQTBCLEVBQUUsY0FBMkI7SUFFM0YsSUFBRyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxNQUFNLE1BQUssQ0FBQyxFQUFFLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUE7SUFDWixDQUFDO0lBRUQsSUFBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFBO0lBQ2IsQ0FBQztJQUVELElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ1gsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDWCxPQUFNLEVBQUUsR0FBRyxjQUFjLENBQUMsTUFBTSxJQUFJLEVBQUUsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEUsSUFBSSxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUE7UUFDbkIsSUFBSSxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUE7UUFDbkIsSUFBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDZCwyREFBMkQ7WUFDM0QsSUFBRyxFQUFFLEtBQUssdUJBQXVCLElBQUksRUFBRSxLQUFLLDJCQUFtQixFQUFFLENBQUM7Z0JBQ2pFLGlEQUFpRDtnQkFDakQsSUFBRyxRQUFRLEVBQUUsS0FBSyx1QkFBdUIsRUFBRSxDQUFDO29CQUMzQyxPQUFPLEtBQUssQ0FBQTtnQkFDYixDQUFDO2dCQUVELGdDQUFnQztnQkFDaEMsT0FBTSxDQUFDLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLEtBQUsscUJBQXFCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsQ0FBQztnQkFFRCxpQ0FBaUM7Z0JBQ2pDLE9BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxLQUFLLHFCQUFxQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLENBQUM7Z0JBRUQsSUFBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDZCxPQUFPLEtBQUssQ0FBQTtnQkFDYixDQUFDO2dCQUVELDJCQUEyQjtnQkFDM0IsT0FBTSxDQUFDLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLEtBQUssMkJBQW1CLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakUsQ0FBQztnQkFFRCxJQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNkLDZFQUE2RTtvQkFDN0UsT0FBTyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtnQkFDekIsQ0FBQztnQkFFRCx1RUFBdUU7Z0JBQ3ZFLEVBQUUsRUFBRSxDQUFBO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE9BQU8sS0FBSyxDQUFBO1lBQ2IsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBR0QsU0FBUyxRQUFRO1FBQ2hCLEVBQUUsRUFBRSxDQUFBO1FBQ0osSUFBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9CLE9BQU8sY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ1AsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUNWLENBQUM7SUFDRixDQUFDO0lBRUQsU0FBUyxRQUFRO1FBQ2hCLElBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ1YsQ0FBQztRQUVELEVBQUUsRUFBRSxDQUFBO1FBQ0osSUFBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9CLE9BQU8sY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ1AsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUNWLENBQUM7SUFDRixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssY0FBYyxDQUFDLE1BQU0sSUFBSSxFQUFFLEtBQUssY0FBYyxDQUFDLE1BQU0sQ0FBQTtBQUNwRSxDQUFDO0FBRUQsU0FBZ0IsdUNBQXVDLENBQUMsVUFBeUMsRUFBRSxVQUFrQjtJQUNwSCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUE7SUFFN0IsTUFBTSxPQUFPLEdBQTJCLEVBQUUsQ0FBQTtJQUMxQyxLQUFJLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzNCLElBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWTtlQUM5QixDQUFDLElBQUEseUJBQWlCLEVBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQy9DLFNBQVE7UUFDVCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsVUFBVSxLQUFLLFFBQVE7WUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFBO1FBRXRCLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDWixPQUFPLEVBQUUsU0FBUztZQUNsQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07U0FDaEIsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUEsd0NBQWdDLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFFckQsTUFBTSxlQUFlLEdBQUcsSUFBQSw0QkFBc0IsRUFBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLDJCQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3BLLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRTlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7QUFDcEIsQ0FBQyJ9
@@ -5,9 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.providers = void 0;
7
7
  const http_1 = __importDefault(require("../providers/http"));
8
- const httpb64_1 = __importDefault(require("../providers/httpb64"));
9
8
  exports.providers = {
10
9
  http: http_1.default,
11
- httpb64: httpb64_1.default
12
10
  };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFxQztBQUNyQyxvRUFBMkM7QUFHOUIsUUFBQSxTQUFTLEdBRWxCO0lBQ0gsSUFBSSxFQUFKLGNBQUk7SUFDSixPQUFPLEVBQVAsaUJBQU87Q0FDUCxDQUFBIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFxQztBQUd4QixRQUFBLFNBQVMsR0FFbEI7SUFDSCxJQUFJLEVBQUosY0FBSTtDQUNKLENBQUEifQ==
@@ -25,5 +25,5 @@ async function main() {
25
25
  }
26
26
  console.log('Operator registered, URL:', metadata.url);
27
27
  }
28
- main();
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYXZzLXJlZ2lzdHJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NoZWNrLWF2cy1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBc0Q7QUFDdEQsdUNBQW9DO0FBQ3BDLHVEQUFzRDtBQUd0RCxLQUFLLFVBQVUsSUFBSTtJQUNsQixNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUEsd0JBQVksR0FBRSxDQUFBO0lBRTNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUE7SUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FDVixzQkFBc0IsRUFDdEIsMEJBQTBCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUN0RCx5QkFBeUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQ3BELHFCQUFxQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDNUMsQ0FBQTtJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLE1BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLE1BQU8sQ0FBQyxPQUFPLENBQUE7SUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDO1NBQ2xFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNaLElBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU07UUFDUCxDQUFDO1FBRUQsTUFBTSxHQUFHLENBQUE7SUFDVixDQUFDLENBQUMsQ0FBQTtJQUNILElBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQTtRQUN0QyxNQUFNLGFBQWEsR0FBRyxNQUFNLFFBQVE7YUFDbEMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsYUFBYSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxPQUFNO0lBQ1AsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZELENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQSJ9
28
+ void main();
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYXZzLXJlZ2lzdHJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NoZWNrLWF2cy1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBc0Q7QUFDdEQsdUNBQW9DO0FBQ3BDLHVEQUFzRDtBQUd0RCxLQUFLLFVBQVUsSUFBSTtJQUNsQixNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUEsd0JBQVksR0FBRSxDQUFBO0lBRTNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUE7SUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FDVixzQkFBc0IsRUFDdEIsMEJBQTBCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUN0RCx5QkFBeUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQ3BELHFCQUFxQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDNUMsQ0FBQTtJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLE1BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLE1BQU8sQ0FBQyxPQUFPLENBQUE7SUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDO1NBQ2xFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNaLElBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU07UUFDUCxDQUFDO1FBRUQsTUFBTSxHQUFHLENBQUE7SUFDVixDQUFDLENBQUMsQ0FBQTtJQUNILElBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQTtRQUN0QyxNQUFNLGFBQWEsR0FBRyxNQUFNLFFBQVE7YUFDbEMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsYUFBYSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxPQUFNO0lBQ1AsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZELENBQUM7QUFFRCxLQUFLLElBQUksRUFBRSxDQUFBIn0=
@@ -78,5 +78,5 @@ async function findAllProviderFolders() {
78
78
  .filter(p => p.isDirectory())
79
79
  .map(p => p.name);
80
80
  }
81
- main();
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcHJvdmlkZXItdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9nZW5lcmF0ZS1wcm92aWRlci10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlFQSw0REErQkM7QUF4R0QsMENBQTBEO0FBQzFELHlFQUFtRDtBQUNuRCwrQkFBNEI7QUFFNUIsTUFBTSxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQTtBQUNsRCxNQUFNLGVBQWUsR0FBRyw4QkFBOEIsQ0FBQTtBQUN0RCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUE7QUFFbkMsS0FBSyxVQUFVLElBQUk7SUFDbEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxzQkFBc0IsRUFBRSxDQUFBO0lBRTlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLE9BQU8sQ0FBQyxNQUFNLG1CQUFtQixDQUFDLENBQUE7SUFFaEUsSUFBSSxFQUFFLEdBQUcseURBQXlELENBQUE7SUFDbEUsa0RBQWtEO0lBQ2xELDZDQUE2QztJQUM3QyxvQ0FBb0M7SUFDcEMsRUFBRSxJQUFJLFlBQVksY0FBYywwQkFBMEIsQ0FBQTtJQUMxRCxvRUFBb0U7SUFDcEUsSUFBSSxlQUFlLEdBQUcsd0NBQXdDLENBQUE7SUFDOUQsc0VBQXNFO0lBQ3RFLHFDQUFxQztJQUNyQyx3REFBd0Q7SUFDeEQsSUFBSSxpQkFBaUIsR0FBRyx1Q0FBdUMsQ0FBQTtJQUUvRCxLQUFJLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sRUFDTCxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLEVBQUUsRUFBRSxjQUFjLEVBQ2xCLFNBQVMsRUFBRSxlQUFlLEVBQzFCLEdBQUcsTUFBTSx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFDeEQsTUFBTSxFQUNMLFdBQVcsRUFBRSx1QkFBdUIsRUFDcEMsRUFBRSxFQUFFLG9CQUFvQixFQUN4QixTQUFTLEVBQUUs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
81
+ void main();
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcHJvdmlkZXItdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9nZW5lcmF0ZS1wcm92aWRlci10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlFQSw0REErQkM7QUF4R0QsMENBQTBEO0FBQzFELHlFQUFtRDtBQUNuRCwrQkFBNEI7QUFFNUIsTUFBTSxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQTtBQUNsRCxNQUFNLGVBQWUsR0FBRyw4QkFBOEIsQ0FBQTtBQUN0RCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUE7QUFFbkMsS0FBSyxVQUFVLElBQUk7SUFDbEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxzQkFBc0IsRUFBRSxDQUFBO0lBRTlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLE9BQU8sQ0FBQyxNQUFNLG1CQUFtQixDQUFDLENBQUE7SUFFaEUsSUFBSSxFQUFFLEdBQUcseURBQXlELENBQUE7SUFDbEUsa0RBQWtEO0lBQ2xELDZDQUE2QztJQUM3QyxvQ0FBb0M7SUFDcEMsRUFBRSxJQUFJLFlBQVksY0FBYywwQkFBMEIsQ0FBQTtJQUMxRCxvRUFBb0U7SUFDcEUsSUFBSSxlQUFlLEdBQUcsd0NBQXdDLENBQUE7SUFDOUQsc0VBQXNFO0lBQ3RFLHFDQUFxQztJQUNyQyx3REFBd0Q7SUFDeEQsSUFBSSxpQkFBaUIsR0FBRyx1Q0FBdUMsQ0FBQTtJQUUvRCxLQUFJLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sRUFDTCxXQUFXLEVBQUUsaUJBQWlCLEVBQzlCLEVBQUUsRUFBRSxjQUFjLEVBQ2xCLFNBQVMsRUFBRSxlQUFlLEVBQzFCLEdBQUcsTUFBTSx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFDeEQsTUFBTSxFQUNMLFdBQVcsRUFBRSx1QkFBdUIsRUFDcEMsRUFBRSxFQUFFLG9CQUFvQixFQUN4QixTQUFTLEVBQUUs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
@@ -8,10 +8,12 @@ const utils_2 = require("../utils");
8
8
  const env_1 = require("../utils/env");
9
9
  require("../server/utils/config-env");
10
10
  const __1 = require("..");
11
+ // tmp change till we move OPRF attestor to prod
11
12
  const DEFAULT_ATTESTOR_HOST_PORT = 'wss://attestor.reclaimprotocol.org/ws';
12
13
  const PRIVATE_KEY_HEX = (0, env_1.getEnvVariable)('PRIVATE_KEY_HEX')
13
14
  // demo private key
14
15
  || '0x0123788edad59d7c013cdc85e4372f350f828e2cec62d9a2de4560e69aec7f89';
16
+ let server;
15
17
  async function main(receiptParams) {
16
18
  var _a, _b, _c, _d;
17
19
  const paramsJson = receiptParams !== null && receiptParams !== void 0 ? receiptParams : (await getInputParameters());
@@ -21,7 +23,6 @@ async function main(receiptParams) {
21
23
  (0, utils_2.assertValidateProviderParams)(paramsJson.name, paramsJson.params);
22
24
  let attestorHostPort = (0, utils_1.getCliArgument)('attestor')
23
25
  || DEFAULT_ATTESTOR_HOST_PORT;
24
- let server;
25
26
  if (attestorHostPort === 'local') {
26
27
  console.log('starting local attestor server...');
27
28
  server = await (0, server_1.createServer)();
@@ -54,7 +55,6 @@ async function main(receiptParams) {
54
55
  console.log('receipt:\n', transcriptStr);
55
56
  const client = (0, __1.getAttestorClientFromPool)(attestorHostPort);
56
57
  await client.terminateConnection();
57
- server === null || server === void 0 ? void 0 : server.close();
58
58
  }
59
59
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
60
  async function getInputParameters() {
@@ -82,6 +82,9 @@ if (require.main === module) {
82
82
  main()
83
83
  .catch(err => {
84
84
  console.error('error in receipt gen', err);
85
+ })
86
+ .finally(() => {
87
+ server === null || server === void 0 ? void 0 : server.close();
85
88
  });
86
89
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVjZWlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2dlbmVyYXRlLXJlY2VpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErQkEsb0JBd0RDO0FBdkZELDBDQUFzQztBQUN0Qyw2Q0FBa0Q7QUFDbEQsdUNBQTREO0FBQzVELHFDQUF3RDtBQUN4RCx1Q0FBOEM7QUFFOUMsdUNBQW9DO0FBQ3BDLDBCQVdXO0FBUVgsTUFBTSwwQkFBMEIsR0FBRyx1Q0FBdUMsQ0FBQTtBQUMxRSxNQUFNLGVBQWUsR0FBRyxJQUFBLG9CQUFjLEVBQUMsaUJBQWlCLENBQUM7SUFDeEQsbUJBQW1CO09BQ2hCLG9FQUFvRSxDQUFBO0FBRWpFLEtBQUssVUFBVSxJQUFJLENBQ3pCLGFBQWtEOztJQUVsRCxNQUFNLFVBQVUsR0FBRyxhQUFhLGFBQWIsYUFBYSxjQUFiLGFBQWEsR0FBSSxDQUFDLE1BQU0sa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLElBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksYUFBUyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsSUFBQSxvQ0FBNEIsRUFBUyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUV4RSxJQUFJLGdCQUFnQixHQUFHLElBQUEsc0JBQWMsRUFBQyxVQUFVLENBQUM7V0FDdkMsMEJBQTBCLENBQUE7SUFDcEMsSUFBSSxNQUFtQyxDQUFBO0lBQ3ZDLElBQUcsZ0JBQWdCLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO1FBQ2hELE1BQU0sR0FBRyxNQUFNLElBQUEscUJBQVksR0FBRSxDQUFBO1FBQzdCLGdCQUFnQixHQUFH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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVjZWlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2dlbmVyYXRlLXJlY2VpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQ0Esb0JBc0RDO0FBeEZELDBDQUFzQztBQUN0Qyw2Q0FBa0Q7QUFDbEQsdUNBQTREO0FBQzVELHFDQUF3RDtBQUN4RCx1Q0FBOEM7QUFFOUMsdUNBQW9DO0FBQ3BDLDBCQVdXO0FBUVgsZ0RBQWdEO0FBQ2hELE1BQU0sMEJBQTBCLEdBQUcsdUNBQXVDLENBQUE7QUFDMUUsTUFBTSxlQUFlLEdBQUcsSUFBQSxvQkFBYyxFQUFDLGlCQUFpQixDQUFDO0lBQ3hELG1CQUFtQjtPQUNoQixvRUFBb0UsQ0FBQTtBQUV4RSxJQUFJLE1BQW1DLENBQUE7QUFFaEMsS0FBSyxVQUFVLElBQUksQ0FDekIsYUFBa0Q7O0lBRWxELE1BQU0sVUFBVSxHQUFHLGFBQWEsYUFBYixhQUFhLGNBQWIsYUFBYSxHQUFJLENBQUMsTUFBTSxrQkFBa0IsRUFBRSxDQUFDLENBQUE7SUFDaEUsSUFBRyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxhQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFRCxJQUFBLG9DQUE0QixFQUFTLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRXhFLElBQUksZ0JBQWdCLEdBQUcsSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQztXQUN2QywwQkFBMEIsQ0FBQTtJQUNwQyxJQUFHLGdCQUFnQixLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUNoRCxNQUFNLEdBQUcsTUFBTSxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtRQUM3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
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ethers_1 = require("ethers");
4
+ const utils_1 = require("../utils");
5
+ const ENGINE = 'gnark';
6
+ const TOTAL_KEYS = 10;
7
+ const THRESHOLD = 1;
8
+ async function main() {
9
+ const op = (0, utils_1.makeDefaultOPRFOperator)('chacha20', ENGINE, utils_1.logger);
10
+ const { publicKey, privateKey, shares } = await op.generateThresholdKeys(TOTAL_KEYS, THRESHOLD);
11
+ logEnvValue('TOPRF_PUBLIC_KEY', publicKey);
12
+ logEnvValue('TOPRF_PRIVATE_KEY', privateKey);
13
+ for (const [i, share] of shares.entries()) {
14
+ console.log(`# Share ${i}`);
15
+ logEnvValue('TOPRF_SHARE_PUBLIC_KEY', share.publicKey);
16
+ logEnvValue('TOPRF_SHARE_PRIVATE_KEY', share.privateKey);
17
+ }
18
+ }
19
+ function logEnvValue(name, value) {
20
+ console.log(`${name}=${ethers_1.ethers.utils.hexlify(value)}`);
21
+ }
22
+ void main();
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdG9wcmYta2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2dlbmVyYXRlLXRvcHJmLWtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBK0I7QUFDL0IscUNBQTJEO0FBRTNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQTtBQUN0QixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUE7QUFDckIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFBO0FBRW5CLEtBQUssVUFBVSxJQUFJO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUEsK0JBQXVCLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFNLENBQUMsQ0FBQTtJQUM5RCxNQUFNLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxNQUFNLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDekQsV0FBVyxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUU1QyxLQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDM0IsV0FBVyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0RCxXQUFXLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3pELENBQUM7QUFDRixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQWlCO0lBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ3RELENBQUM7QUFFRCxLQUFLLElBQUksRUFBRSxDQUFBIn0=
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // eslint-disable-next-line simple-import-sort/imports
4
4
  require("../server/utils/config-env");
5
5
  const register_1 = require("../avs/utils/register");
6
- (0, register_1.registerOperator)();
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItYXZzLW9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmVnaXN0ZXItYXZzLW9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0RBQXNEO0FBQ3RELHVDQUFvQztBQUNwQyxxREFBeUQ7QUFFekQsSUFBQSwyQkFBZ0IsR0FBRSxDQUFBIn0=
6
+ void (0, register_1.registerOperator)();
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItYXZzLW9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmVnaXN0ZXItYXZzLW9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0RBQXNEO0FBQ3RELHVDQUFvQztBQUNwQyxxREFBeUQ7QUFFekQsS0FBSyxJQUFBLDJCQUFnQixHQUFFLENBQUEifQ==
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const server_1 = require("../server");
3
+ const apm_1 = require("../server/utils/apm");
4
4
  require("../server/utils/config-env");
5
- (0, server_1.createServer)();
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnQtc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdUNBQXlDO0FBQ3pDLHVDQUFvQztBQUVwQyxJQUFBLHFCQUFZLEdBQUUsQ0FBQSJ9
5
+ (0, apm_1.getApm)();
6
+ function main() {
7
+ // importing dynamically to allow APM to inject
8
+ // into modules before they are used
9
+ const { createServer } = require('../server/create-server');
10
+ return createServer();
11
+ }
12
+ main();
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc3RhcnQtc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsOENBQTZDO0FBQzdDLHVDQUFvQztBQUNwQyxJQUFBLFlBQU0sR0FBRSxDQUFBO0FBRVIsU0FBUyxJQUFJO0lBQ1osK0NBQStDO0lBQy9DLG9DQUFvQztJQUNwQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUE7SUFDM0QsT0FBTyxZQUFZLEVBQUUsQ0FBQTtBQUN0QixDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUEifQ==
@@ -18,5 +18,5 @@ async function main() {
18
18
  await tx.wait();
19
19
  console.log('Updated task creation metadata');
20
20
  }
21
- main();
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWF2cy1tZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3VwZGF0ZS1hdnMtbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBc0Q7QUFDdEQsdUNBQW9DO0FBQ3BDLHVEQUFzRDtBQUN0RCw2Q0FBa0Q7QUFFbEQsS0FBSyxVQUFVLElBQUk7SUFDbEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUEsd0JBQVksR0FBRSxDQUFBO0lBRW5DLE1BQU0sb0JBQW9CLEdBQUcsSUFBQSxzQkFBYyxFQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDbkUsSUFBRyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FDZCwyREFBMkQsQ0FDM0QsQ0FBQTtJQUNGLENBQUM7SUFFRCxNQUFNLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQztRQUNwRCxvQkFBb0IsRUFBRSxDQUFDLENBQUMsb0JBQW9CLElBQUksQ0FBQyxDQUFDO1FBQ2xELHFCQUFxQixFQUFFLENBQUM7UUFDeEIsZ0JBQWdCLEVBQUUsQ0FBQztLQUNuQixDQUFDLENBQUE7SUFDRixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUVmLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtBQUM5QyxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUEifQ==
21
+ void main();
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWF2cy1tZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3VwZGF0ZS1hdnMtbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBc0Q7QUFDdEQsdUNBQW9DO0FBQ3BDLHVEQUFzRDtBQUN0RCw2Q0FBa0Q7QUFFbEQsS0FBSyxVQUFVLElBQUk7SUFDbEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUEsd0JBQVksR0FBRSxDQUFBO0lBRW5DLE1BQU0sb0JBQW9CLEdBQUcsSUFBQSxzQkFBYyxFQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDbkUsSUFBRyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FDZCwyREFBMkQsQ0FDM0QsQ0FBQTtJQUNGLENBQUM7SUFFRCxNQUFNLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQztRQUNwRCxvQkFBb0IsRUFBRSxDQUFDLENBQUMsb0JBQW9CLElBQUksQ0FBQyxDQUFDO1FBQ2xELHFCQUFxQixFQUFFLENBQUM7UUFDeEIsZ0JBQWdCLEVBQUUsQ0FBQztLQUNuQixDQUFDLENBQUE7SUFDRixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUVmLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtBQUM5QyxDQUFDO0FBRUQsS0FBSyxJQUFJLEVBQUUsQ0FBQSJ9
@@ -47,5 +47,5 @@ async function main() {
47
47
  utils_1.logger.info(`connecting to ${hostPort}`);
48
48
  socket.connect({ host, port: +(port || config_1.DEFAULT_HTTPS_PORT) });
49
49
  }
50
- main();
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXJvb3QtY2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy92ZXJpZnktcm9vdC1jYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLG9CQWdEQztBQXhERCw4Q0FBb0Q7QUFDcEQsd0ZBQXlGO0FBQ3pGLDZCQUE0QjtBQUM1Qix1Q0FBK0M7QUFDL0MscUNBQWtDO0FBRWxDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFekIsS0FBSyxVQUFVLElBQUk7SUFDekIsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBTSxFQUFFLENBQUE7SUFDM0IsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFBO0lBQ25CLElBQUksU0FBNEIsQ0FBQTtJQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFBLG1CQUFhLEVBQUM7UUFDekIsSUFBSTtRQUNKLE1BQU0sRUFBTixjQUFNO1FBQ04sdUJBQXVCLEVBQUUsS0FBSztRQUM5QixLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxZQUFZLEVBQUU7WUFDeEMsVUFBVSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUE7WUFDbEUsY0FBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLHVCQUF1QixDQUFDLENBQUE7WUFDcEQsSUFBSSxDQUFDO2dCQUNKLE1BQU0sSUFBQSwwQ0FBc0IsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUE7Z0JBQ2hELGNBQU0sQ0FBQyxJQUFJLENBQUMsMkRBQTJELENBQUMsQ0FBQTtZQUN6RSxDQUFDO1lBQUMsT0FBTSxHQUFHLEVBQUUsQ0FBQztnQkFDYixTQUFTLEdBQUcsR0FBRyxDQUFBO1lBQ2hCLENBQUM7UUFDRixDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVc7WUFDaEIsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDZixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUE7WUFFWixJQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUNkLGtDQUFrQztnQkFDbEMsVUFBVSxDQUNULEdBQUcsRUFBRTtvQkFDSixjQUFNLENBQUMsSUFBSSxDQUNWLEVBQUUsR0FBRyxFQUFFLFNBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQ3ZDLHNCQUFzQixDQUN0QixDQUFBO2dCQUNGLENBQUMsRUFDRCxHQUFHLENBQ0gsQ0FBQTtZQUNGLENBQUM7UUFDRixDQUFDO1FBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3RCLENBQUM7S0FDRCxDQUFDLENBQUE7SUFFRixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtJQUNsRCxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUUxQyxjQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBRXhDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksMkJBQWtCLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUVELElBQUksRUFBRSxDQUFBIn0=
50
+ void main();
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXJvb3QtY2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy92ZXJpZnktcm9vdC1jYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLG9CQWdEQztBQXhERCw4Q0FBb0Q7QUFDcEQsd0ZBQXlGO0FBQ3pGLDZCQUE0QjtBQUM1Qix1Q0FBK0M7QUFDL0MscUNBQWtDO0FBRWxDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFekIsS0FBSyxVQUFVLElBQUk7SUFDekIsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBTSxFQUFFLENBQUE7SUFDM0IsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFBO0lBQ25CLElBQUksU0FBNEIsQ0FBQTtJQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFBLG1CQUFhLEVBQUM7UUFDekIsSUFBSTtRQUNKLE1BQU0sRUFBTixjQUFNO1FBQ04sdUJBQXVCLEVBQUUsS0FBSztRQUM5QixLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxZQUFZLEVBQUU7WUFDeEMsVUFBVSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUE7WUFDbEUsY0FBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLHVCQUF1QixDQUFDLENBQUE7WUFDcEQsSUFBSSxDQUFDO2dCQUNKLE1BQU0sSUFBQSwwQ0FBc0IsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUE7Z0JBQ2hELGNBQU0sQ0FBQyxJQUFJLENBQUMsMkRBQTJELENBQUMsQ0FBQTtZQUN6RSxDQUFDO1lBQUMsT0FBTSxHQUFHLEVBQUUsQ0FBQztnQkFDYixTQUFTLEdBQUcsR0FBRyxDQUFBO1lBQ2hCLENBQUM7UUFDRixDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVc7WUFDaEIsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDZixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUE7WUFFWixJQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUNkLGtDQUFrQztnQkFDbEMsVUFBVSxDQUNULEdBQUcsRUFBRTtvQkFDSixjQUFNLENBQUMsSUFBSSxDQUNWLEVBQUUsR0FBRyxFQUFFLFNBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQ3ZDLHNCQUFzQixDQUN0QixDQUFBO2dCQUNGLENBQUMsRUFDRCxHQUFHLENBQ0gsQ0FBQTtZQUNGLENBQUM7UUFDRixDQUFDO1FBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3RCLENBQUM7S0FDRCxDQUFDLENBQUE7SUFFRixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtJQUNsRCxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUUxQyxjQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBRXhDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksMkJBQWtCLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUVELEtBQUssSUFBSSxFQUFFLENBQUEifQ==
@@ -14,5 +14,5 @@ async function main() {
14
14
  await tx.wait();
15
15
  console.log('Whitelisted address:', address);
16
16
  }
17
- main();
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpdGVsaXN0LW9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvd2hpdGVsaXN0LW9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0RBQXNEO0FBQ3RELHVDQUFvQztBQUNwQyx1REFBc0Q7QUFDdEQsNkNBQWtEO0FBRWxELEtBQUssVUFBVSxJQUFJO0lBQ2xCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFBLHdCQUFZLEdBQUUsQ0FBQTtJQUVuQyxNQUFNLE9BQU8sR0FBRyxJQUFBLHNCQUFjLEVBQUMsU0FBUyxDQUFDLENBQUE7SUFDekMsSUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDZCwrQ0FBK0MsQ0FDL0MsQ0FBQTtJQUNGLENBQUM7SUFFRCxNQUFNLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDbkUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7SUFFZixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQzdDLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQSJ9
17
+ void main();
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpdGVsaXN0LW9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvd2hpdGVsaXN0LW9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0RBQXNEO0FBQ3RELHVDQUFvQztBQUNwQyx1REFBc0Q7QUFDdEQsNkNBQWtEO0FBRWxELEtBQUssVUFBVSxJQUFJO0lBQ2xCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFBLHdCQUFZLEdBQUUsQ0FBQTtJQUVuQyxNQUFNLE9BQU8sR0FBRyxJQUFBLHNCQUFjLEVBQUMsU0FBUyxDQUFDLENBQUE7SUFDekMsSUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDZCwrQ0FBK0MsQ0FDL0MsQ0FBQTtJQUNGLENBQUM7SUFFRCxNQUFNLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDbkUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7SUFFZixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQzdDLENBQUM7QUFFRCxLQUFLLElBQUksRUFBRSxDQUFBIn0=
@@ -11,10 +11,13 @@ const socket_1 = require("../server/socket");
11
11
  const generics_1 = require("../server/utils/generics");
12
12
  const keep_alive_1 = require("../server/utils/keep-alive");
13
13
  const utils_1 = require("../utils");
14
+ const bgp_listener_1 = require("../utils/bgp-listener");
14
15
  const env_1 = require("../utils/env");
15
16
  const signatures_1 = require("../utils/signatures");
16
- const ws_1 = require("ws");
17
+ const ws_1 = require("../utils/ws");
18
+ const ws_2 = require("ws");
17
19
  const PORT = +((0, env_1.getEnvVariable)('PORT') || config_1.API_SERVER_PORT);
20
+ const DISABLE_BGP_CHECKS = (0, env_1.getEnvVariable)('DISABLE_BGP_CHECKS') === '1';
18
21
  /**
19
22
  * Creates the WebSocket API server,
20
23
  * creates a fileserver to serve the browser RPC client,
@@ -23,7 +26,10 @@ const PORT = +((0, env_1.getEnvVariable)('PORT') || config_1.API_SERVER_PORT);
23
26
  async function createServer(port = PORT) {
24
27
  const http = (0, http_1.createServer)();
25
28
  const serveBrowserRpc = (0, serve_static_1.default)('browser', { index: ['index.html'] });
26
- const wss = new ws_1.WebSocketServer({ noServer: true });
29
+ const bgpListener = !DISABLE_BGP_CHECKS
30
+ ? (0, bgp_listener_1.createBgpListener)(utils_1.logger.child({ service: 'bgp-listener' }))
31
+ : undefined;
32
+ const wss = new ws_2.WebSocketServer({ noServer: true });
27
33
  http.on('upgrade', handleUpgrade.bind(wss));
28
34
  http.on('request', (req, res) => {
29
35
  var _a;
@@ -49,7 +55,7 @@ async function createServer(port = PORT) {
49
55
  http.once('listening', () => resolve());
50
56
  http.once('error', reject);
51
57
  });
52
- wss.on('connection', handleNewClient);
58
+ wss.on('connection', (ws, req) => handleNewClient(ws, req, bgpListener));
53
59
  utils_1.logger.info({
54
60
  port,
55
61
  apiPath: config_1.WS_PATHNAME,
@@ -59,12 +65,13 @@ async function createServer(port = PORT) {
59
65
  const wssClose = wss.close.bind(wss);
60
66
  wss.close = (cb) => {
61
67
  wssClose(() => http.close(cb));
68
+ bgpListener === null || bgpListener === void 0 ? void 0 : bgpListener.close();
62
69
  };
63
70
  return wss;
64
71
  }
65
- async function handleNewClient(ws, req) {
66
- const client = await socket_1.AttestorServerSocket
67
- .acceptConnection(ws, req, utils_1.logger);
72
+ async function handleNewClient(ws, req, bgpListener) {
73
+ (0, ws_1.promisifySend)(ws);
74
+ const client = await socket_1.AttestorServerSocket.acceptConnection(ws, { req, bgpListener, logger: utils_1.logger });
68
75
  // if initialisation fails, don't store the client
69
76
  if (!client) {
70
77
  return;
@@ -82,4 +89,4 @@ function handleUpgrade(request, socket, head) {
82
89
  }
83
90
  socket.destroy();
84
91
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIvY3JlYXRlLXNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW1CQSxvQ0EyREM7QUE5RUQsK0JBQXdFO0FBQ3hFLGdFQUFzQztBQUN0Qyx1Q0FBK0U7QUFDL0UsOENBQXdEO0FBQ3hELHdEQUE4RDtBQUM5RCw0REFBMEQ7QUFDMUQscUNBQTRDO0FBQzVDLHVDQUE4QztBQUM5QyxxREFBbUU7QUFFbkUsMkJBQStDO0FBRS9DLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFBLG9CQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksd0JBQWUsQ0FBQyxDQUFBO0FBRXpEOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJO0lBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUEsbUJBQWdCLEdBQUUsQ0FBQTtJQUMvQixNQUFNLGVBQWUsR0FBRyxJQUFBLHNCQUFXLEVBQ2xDLFNBQVMsRUFDVCxFQUFFLEtBQUssRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQ3pCLENBQUE7SUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLG9CQUFlLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDM0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7O1FBQy9CLG9EQUFvRDtRQUNwRCxJQUFHLENBQUMsQ0FBQSxNQUFBLEdBQUcsQ0FBQyxHQUFHLDBDQUFFLFVBQVUsQ0FBQyw2QkFBb0IsQ0FBQyxDQUFBLEVBQUUsQ0FBQztZQUMvQyxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQTtZQUNwQixHQUFH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
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIvY3JlYXRlLXNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVCQSxvQ0ErREM7QUF0RkQsK0JBQXdFO0FBQ3hFLGdFQUFzQztBQUN0Qyx1Q0FBK0U7QUFDL0UsOENBQXdEO0FBQ3hELHdEQUE4RDtBQUM5RCw0REFBMEQ7QUFFMUQscUNBQTRDO0FBQzVDLHlEQUEwRDtBQUMxRCx1Q0FBOEM7QUFDOUMscURBQW1FO0FBQ25FLHFDQUE0QztBQUU1QywyQkFBK0M7QUFFL0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUEsb0JBQWMsRUFBQyxNQUFNLENBQUMsSUFBSSx3QkFBZSxDQUFDLENBQUE7QUFDekQsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLG9CQUFjLEVBQUMsb0JBQW9CLENBQUMsS0FBSyxHQUFHLENBQUE7QUFFdkU7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxZQUFZLENBQUMsSUFBSSxHQUFHLElBQUk7SUFDN0MsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQkFBZ0IsR0FBRSxDQUFBO0lBQy9CLE1BQU0sZUFBZSxHQUFHLElBQUEsc0JBQVcsRUFDbEMsU0FBUyxFQUNULEVBQUUsS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FDekIsQ0FBQTtJQUNELE1BQU0sV0FBVyxHQUFHLENBQUMsa0JBQWtCO1FBQ3RDLENBQUMsQ0FBQyxJQUFBLGdDQUFpQixFQUFDLGNBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBRVosTUFBTSxHQUFHLEdBQUcsSUFBSSxvQkFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDbkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLElB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
@@ -3,13 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.claimTunnel = void 0;
4
4
  const config_1 = require("../../config");
5
5
  const api_1 = require("../../proto/api");
6
+ const apm_1 = require("../../server/utils/apm");
6
7
  const assert_valid_claim_request_1 = require("../../server/utils/assert-valid-claim-request");
7
8
  const generics_1 = require("../../server/utils/generics");
8
9
  const utils_1 = require("../../utils");
9
- const claimTunnel = async (claimRequest, { logger, client }) => {
10
- var _a, _b, _c;
10
+ const claimTunnel = async (claimRequest, { tx, logger, client }) => {
11
+ var _a, _b, _c, _d;
11
12
  const { request, data: { timestampS } = {}, } = claimRequest;
12
13
  const tunnel = client.getTunnel(request === null || request === void 0 ? void 0 : request.id);
14
+ try {
15
+ await tunnel.close();
16
+ }
17
+ catch (err) {
18
+ logger.debug({ err }, 'error closing tunnel');
19
+ }
20
+ if (tx) {
21
+ const transcriptBytes = tunnel.transcript.reduce((acc, { message }) => acc + message.length, 0);
22
+ tx === null || tx === void 0 ? void 0 : tx.setLabel('transcriptBytes', transcriptBytes.toString());
23
+ }
13
24
  // we throw an error for cases where the attestor cannot prove
14
25
  // the user's request is faulty. For eg. if the user sends a
15
26
  // "createRequest" that does not match the tunnel's actual
@@ -28,13 +39,23 @@ const claimTunnel = async (claimRequest, { logger, client }) => {
28
39
  if (Math.floor(timestampS - now) > config_1.MAX_CLAIM_TIMESTAMP_DIFF_S) {
29
40
  throw new utils_1.AttestorError('ERROR_INVALID_CLAIM', `Timestamp provided ${timestampS} is too far off. Current time is ${now}`);
30
41
  }
31
- const claim = await (0, assert_valid_claim_request_1.assertValidClaimRequest)(claimRequest, client.metadata, logger);
32
- res.claim = {
33
- ...claim,
34
- identifier: (0, utils_1.getIdentifierFromClaimInfo)(claim),
35
- // hardcode for compatibility with V1 claims
36
- epoch: 1
37
- };
42
+ const assertTx = (_d = (0, apm_1.getApm)()) === null || _d === void 0 ? void 0 : _d.startTransaction('assertValidClaimRequest', { childOf: tx });
43
+ try {
44
+ const claim = await (0, assert_valid_claim_request_1.assertValidClaimRequest)(claimRequest, client.metadata, logger);
45
+ res.claim = {
46
+ ...claim,
47
+ identifier: (0, utils_1.getIdentifierFromClaimInfo)(claim),
48
+ // hardcode for compatibility with V1 claims
49
+ epoch: 1
50
+ };
51
+ }
52
+ catch (err) {
53
+ assertTx === null || assertTx === void 0 ? void 0 : assertTx.setOutcome('failure');
54
+ throw err;
55
+ }
56
+ finally {
57
+ assertTx === null || assertTx === void 0 ? void 0 : assertTx.end();
58
+ }
38
59
  }
39
60
  catch (err) {
40
61
  logger.error({ err }, 'invalid claim request');
@@ -43,13 +64,15 @@ const claimTunnel = async (claimRequest, { logger, client }) => {
43
64
  res.error = attestorErr.toProto();
44
65
  }
45
66
  res.signatures = {
46
- attestorAddress: await (0, generics_1.getAttestorAddress)(client.metadata.signatureType),
67
+ attestorAddress: (0, generics_1.getAttestorAddress)(client.metadata.signatureType),
47
68
  claimSignature: res.claim
48
69
  ? await (0, generics_1.signAsAttestor)((0, utils_1.createSignDataForClaim)(res.claim), client.metadata.signatureType)
49
70
  : new Uint8Array(),
50
71
  resultSignature: await (0, generics_1.signAsAttestor)(api_1.ClaimTunnelResponse.encode(res).finish(), client.metadata.signatureType)
51
72
  };
73
+ // remove tunnel from client -- to free up our mem
74
+ client.removeTunnel(request.id);
52
75
  return res;
53
76
  };
54
77
  exports.claimTunnel = claimTunnel;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1UdW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2hhbmRsZXJzL2NsYWltVHVubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF1RDtBQUN2RCx1Q0FBbUQ7QUFDbkQsNEZBQTZHO0FBQzdHLHdEQUE4RTtBQUU5RSxxQ0FBbUg7QUFFNUcsTUFBTSxXQUFXLEdBQThCLEtBQUssRUFDMUQsWUFBWSxFQUNaLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNqQixFQUFFOztJQUNILE1BQU0sRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUN6QixHQUFHLFlBQVksQ0FBQTtJQUNoQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxFQUFHLENBQUMsQ0FBQTtJQUM3Qyw4REFBOEQ7SUFDOUQsNERBQTREO0lBQzVELDBEQUEwRDtJQUMxRCw0REFBNEQ7SUFDNUQseURBQXlEO0lBQ3pELHlDQUF5QztJQUN6QyxJQUNDLENBQUEsTUFBQSxNQUFNLENBQUMsYUFBYSwwQ0FBRSxJQUFJLE9BQUssT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLElBQUksQ0FBQTtXQUN6QyxDQUFBLE1BQUEsTUFBTSxDQUFDLGFBQWEsMENBQUUsSUFBSSxPQUFLLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxJQUFJLENBQUE7V0FDNUMsQ0FBQSxNQUFBLE1BQU0sQ0FBQyxhQUFhLDBDQUFFLFdBQVcsT0FBSyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxDQUFBLEVBQzVELENBQUM7UUFDRixNQUFNLHFCQUFhLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELElBQUEsbURBQXNCLEVBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFFbEUsTUFBTSxHQUFHLEdBQUcseUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDakUsSUFBSSxDQUFDO1FBQ0osTUFBTSxHQUFHLEdBQUcsSUFBQSw0QkFBb0IsR0FBRSxDQUFBO1FBQ2xDLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFXLEdBQUcsR0FBRyxDQUFDLEdBQUcsbUNBQTBCLEVBQUUsQ0FBQztZQUMvRCxNQUFNLElBQUkscUJBQWEsQ0FDdEIscUJBQXFCLEVBQ3JCLHNCQUFzQixVQUFVLG9DQUFvQyxHQUFHLEVBQUUsQ0FDekUsQ0FBQTtRQUNGLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsb0RBQXVCLEVBQzFDLFlBQVksRUFDWixNQUFNLENBQUMsUUFBUSxFQUNmLE1BQU0sQ0FDTixDQUFBO1FBQ0QsR0FBRyxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsS0FBSztZQUNSLFVBQVUsRUFBRSxJQUFBLGtDQUEwQixFQUFDLEtBQUssQ0FBQztZQUM3Qyw0Q0FBNEM7WUFDNUMsS0FBSyxFQUFFLENBQUM7U0FDUixDQUFBO0lBQ0YsQ0FBQztJQUFDLE9BQU0sR0FBRyxFQUFFLENBQUM7UUFDYixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQTtRQUM5QyxNQUFNLFdBQVcsR0FBRyxxQkFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNoRCxXQUFXLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFBO1FBQ3hDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2xDLENBQUM7SUFFRCxHQUFHLENBQUMsVUFBVSxHQUFHO1FBQ2hCLGVBQWUsRUFBRSxNQUFNLElBQUEsNkJBQWtCLEVBQ3hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUM3QjtRQUNELGNBQWMsRUFBRSxHQUFHLENBQUMsS0FBSztZQUN4QixDQUFDLENBQUMsTUFBTSxJQUFBLHlCQUFjLEVBQ3JCLElBQUEsOEJBQXNCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FDN0I7WUFDRCxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7UUFDbkIsZUFBZSxFQUFFLE1BQU0sSUFBQSx5QkFBYyxFQUNwQyx5QkFBbUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQ3hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUM3QjtLQUNELENBQUE7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNYLENBQUMsQ0FBQTtBQXRFWSxRQUFBLFdBQVcsZUFzRXZCIn0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1UdW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2hhbmRsZXJzL2NsYWltVHVubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF1RDtBQUN2RCx1Q0FBbUQ7QUFDbkQsOENBQTZDO0FBQzdDLDRGQUE2RztBQUM3Ryx3REFBOEU7QUFFOUUscUNBQW1IO0FBRTVHLE1BQU0sV0FBVyxHQUE4QixLQUFLLEVBQzFELFlBQVksRUFDWixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQ3JCLEVBQUU7O0lBQ0gsTUFBTSxFQUNMLE9BQU8sRUFDUCxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQ3pCLEdBQUcsWUFBWSxDQUFBO0lBQ2hCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEVBQUcsQ0FBQyxDQUFBO0lBQzdDLElBQUksQ0FBQztRQUNKLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3JCLENBQUM7SUFBQyxPQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLHNCQUFzQixDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELElBQUcsRUFBRSxFQUFFLENBQUM7UUFDUCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQzFDLENBQUMsQ0FDRCxDQUFBO1FBQ0QsRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lB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
@@ -3,14 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createTunnel = void 0;
4
4
  const make_tcp_tunnel_1 = require("../../server/tunnels/make-tcp-tunnel");
5
5
  const apm_1 = require("../../server/utils/apm");
6
+ const dns_1 = require("../../server/utils/dns");
6
7
  const utils_1 = require("../../utils");
7
8
  const createTunnel = async ({ id, ...opts }, { tx, logger, client }) => {
8
- const apm = (0, apm_1.getApm)();
9
- const sessionTx = (apm === null || apm === void 0 ? void 0 : apm.startTransaction('tunnel', { childOf: tx })) || undefined;
10
- sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.addLabels({ tunnelId: id, ...opts });
9
+ var _a, _b, _c;
11
10
  if (client.tunnels[id]) {
12
11
  throw utils_1.AttestorError.badRequest(`Tunnel "${id}" already exists`);
13
12
  }
13
+ const allowedHosts = (_c = (_b = (_a = client.metadata) === null || _a === void 0 ? void 0 : _a.auth) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.hostWhitelist;
14
+ if ((allowedHosts === null || allowedHosts === void 0 ? void 0 : allowedHosts.length) && !allowedHosts.includes(opts.host)) {
15
+ throw utils_1.AttestorError.badRequest(`Host "${opts.host}" not allowed by auth request`);
16
+ }
17
+ let cancelBgp;
18
+ const apm = (0, apm_1.getApm)();
19
+ const sessionTx = apm === null || apm === void 0 ? void 0 : apm.startTransaction('tunnelConnection', { childOf: tx });
20
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('tunnelId', id.toString());
21
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('hostPort', `${opts.host}:${opts.port}`);
22
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('geoLocation', opts.geoLocation);
14
23
  try {
15
24
  const tunnel = await (0, make_tcp_tunnel_1.makeTcpTunnel)({
16
25
  ...opts,
@@ -20,7 +29,7 @@ const createTunnel = async ({ id, ...opts }, { tx, logger, client }) => {
20
29
  logger.warn('client is closed, dropping message');
21
30
  return;
22
31
  }
23
- client.sendMessage({
32
+ void client.sendMessage({
24
33
  tunnelMessage: {
25
34
  tunnelId: id,
26
35
  message
@@ -28,11 +37,15 @@ const createTunnel = async ({ id, ...opts }, { tx, logger, client }) => {
28
37
  });
29
38
  },
30
39
  onClose(err) {
40
+ cancelBgp === null || cancelBgp === void 0 ? void 0 : cancelBgp();
31
41
  if (err) {
32
42
  apm === null || apm === void 0 ? void 0 : apm.captureError(err, { parent: sessionTx });
33
- tx === null || tx === void 0 ? void 0 : tx.setOutcome('failure');
43
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('failure');
34
44
  }
35
- tx === null || tx === void 0 ? void 0 : tx.end();
45
+ else {
46
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('success');
47
+ }
48
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.end();
36
49
  if (!client.isOpen) {
37
50
  return;
38
51
  }
@@ -51,15 +64,38 @@ const createTunnel = async ({ id, ...opts }, { tx, logger, client }) => {
51
64
  });
52
65
  },
53
66
  });
67
+ try {
68
+ await checkForBgp(tunnel);
69
+ }
70
+ catch (err) {
71
+ logger.warn({ err, host: opts.host }, 'failed to start BGP overlap check');
72
+ }
54
73
  client.tunnels[id] = tunnel;
55
74
  return {};
56
75
  }
57
76
  catch (err) {
58
77
  apm === null || apm === void 0 ? void 0 : apm.captureError(err, { parent: sessionTx });
59
- tx === null || tx === void 0 ? void 0 : tx.setOutcome('failure');
60
- tx === null || tx === void 0 ? void 0 : tx.end();
78
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('failure');
79
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.end();
80
+ cancelBgp === null || cancelBgp === void 0 ? void 0 : cancelBgp();
61
81
  throw err;
62
82
  }
83
+ async function checkForBgp(tunnel) {
84
+ if (!client.bgpListener) {
85
+ return;
86
+ }
87
+ // listen to all IPs for the host -- in case any of them
88
+ // has a BGP announcement overlap, we'll close the tunnel
89
+ // so the user can retry
90
+ const ips = await (0, dns_1.resolveHostnames)(opts.host);
91
+ cancelBgp = client.bgpListener.onOverlap(ips, (info) => {
92
+ logger.warn({ info, host: opts.host }, 'BGP announcement overlap detected');
93
+ // track how many times we've seen a BGP overlap
94
+ sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.addLabels({ bgpOverlap: true, ...info });
95
+ void (tunnel === null || tunnel === void 0 ? void 0 : tunnel.close(new utils_1.AttestorError('ERROR_BGP_ANNOUNCEMENT_OVERLAP', `BGP announcement overlap detected for ${opts.host}`)));
96
+ });
97
+ logger.debug({ ips }, 'checking for BGP overlap');
98
+ }
63
99
  };
64
100
  exports.createTunnel = createTunnel;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci9oYW5kbGVycy9jcmVhdGVUdW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0VBQWtFO0FBQ2xFLDhDQUE2QztBQUU3QyxxQ0FBeUM7QUFFbEMsTUFBTSxZQUFZLEdBQStCLEtBQUssRUFDNUQsRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFDZixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQ3JCLEVBQUU7SUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFBLFlBQU0sR0FBRSxDQUFBO0lBQ3BCLE1BQU0sU0FBUyxHQUFHLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLGdCQUFnQixDQUN0QyxRQUFRLEVBQ1IsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQ2YsS0FBSSxTQUFTLENBQUE7SUFDZCxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUE7SUFFL0MsSUFBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxxQkFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0osTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLCtCQUFhLEVBQUM7WUFDbEMsR0FBRyxJQUFJO1lBQ1AsTUFBTTtZQUNOLFNBQVMsQ0FBQyxPQUFPO2dCQUNoQixJQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7b0JBQ2pELE9BQU07Z0JBQ1AsQ0FBQztnQkFFRCxNQUFNLENBQUMsV0FBVyxDQUFDO29CQUNsQixhQUFhLEVBQUU7d0JBQ2QsUUFBUSxFQUFFLEVBQUU7d0JBQ1osT0FBTztxQkFDUDtpQkFDRCxDQUFDLENBQUE7WUFDSCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUc7Z0JBQ1YsSUFBRyxHQUFHLEVBQUUsQ0FBQztvQkFDUixHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsWUFBWSxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO29CQUM3QyxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUMxQixDQUFDO2dCQUVELEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxHQUFHLEVBQUUsQ0FBQTtnQkFFVCxJQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuQixPQUFNO2dCQUNQLENBQUM7Z0JBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQztvQkFDbEIscUJBQXFCLEVBQUU7d0JBQ3RCLFFBQVEsRUFBRSxFQUFFO3dCQUNaLEtBQUssRUFBRSxHQUFHOzRCQUNULENBQUMsQ0FBQyxxQkFBYTtpQ0FDYixTQUFTLENBQUMsR0FBRyxDQUFDO2lDQUNkLE9BQU8sRUFBRTs0QkFDWCxDQUFDLENBQUMsU0FBUztxQkFDWjtpQkFDRCxDQUFDO3FCQUNBLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDWixNQUFNLENBQUMsS0FBSyxDQUNYLEVBQUUsR0FBRyxFQUFFLEVBQ1Asd0NBQXdDLENBQ3hDLENBQUE7Z0JBQ0YsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDO1NBQ0QsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUE7UUFFM0IsT0FBTyxFQUFFLENBQUE7SUFDVixDQUFDO0lBQUMsT0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNiLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDN0MsRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN6QixFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENBQUUsR0FBRyxFQUFFLENBQUE7UUFFVCxNQUFNLEdBQUcsQ0FBQTtJQUNWLENBQUM7QUFDRixDQUFDLENBQUE7QUF6RVksUUFBQSxZQUFZLGdCQXlFeEIifQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci9oYW5kbGVycy9jcmVhdGVUdW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0VBQWtFO0FBQ2xFLDhDQUE2QztBQUM3Qyw4Q0FBdUQ7QUFFdkQscUNBQXlDO0FBRWxDLE1BQU0sWUFBWSxHQUErQixLQUFLLEVBQzVELEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQ2YsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNyQixFQUFFOztJQUNILElBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQUEsTUFBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLElBQUksMENBQUUsSUFBSSwwQ0FBRSxhQUFhLENBQUE7SUFDL0QsSUFBRyxDQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlELE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQzdCLFNBQVMsSUFBSSxDQUFDLElBQUksK0JBQStCLENBQ2pELENBQUE7SUFDRixDQUFDO0lBRUQsSUFBSSxTQUFtQyxDQUFBO0lBRXZDLE1BQU0sR0FBRyxHQUFHLElBQUEsWUFBTSxHQUFFLENBQUE7SUFDcEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDNUUsU0FBUyxhQUFULFNBQVMs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