@reclaimprotocol/attestor-core 4.0.2 → 5.0.1-beta.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 (243) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/package.json +72 -60
  4. package/lib/avs/abis/avsDirectoryABI.d.ts +0 -60
  5. package/lib/avs/abis/avsDirectoryABI.js +0 -344
  6. package/lib/avs/abis/delegationABI.d.ts +0 -126
  7. package/lib/avs/abis/delegationABI.js +0 -5
  8. package/lib/avs/abis/registryABI.d.ts +0 -136
  9. package/lib/avs/abis/registryABI.js +0 -729
  10. package/lib/avs/client/create-claim-on-avs.d.ts +0 -12
  11. package/lib/avs/client/create-claim-on-avs.js +0 -147
  12. package/lib/avs/config.d.ts +0 -7
  13. package/lib/avs/config.js +0 -24
  14. package/lib/avs/contracts/ReclaimServiceManager.d.ts +0 -697
  15. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  16. package/lib/avs/contracts/common.d.ts +0 -21
  17. package/lib/avs/contracts/common.js +0 -3
  18. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -888
  19. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1174
  20. package/lib/avs/contracts/factories/index.d.ts +0 -1
  21. package/lib/avs/contracts/factories/index.js +0 -9
  22. package/lib/avs/contracts/index.d.ts +0 -3
  23. package/lib/avs/contracts/index.js +0 -40
  24. package/lib/avs/tests/test.operator.d.ts +0 -11
  25. package/lib/avs/tests/test.operator.js +0 -313
  26. package/lib/avs/tests/utils.d.ts +0 -2
  27. package/lib/avs/tests/utils.js +0 -50
  28. package/lib/avs/types/index.d.ts +0 -55
  29. package/lib/avs/types/index.js +0 -3
  30. package/lib/avs/utils/contracts.d.ts +0 -21
  31. package/lib/avs/utils/contracts.js +0 -38
  32. package/lib/avs/utils/register.d.ts +0 -27
  33. package/lib/avs/utils/register.js +0 -82
  34. package/lib/avs/utils/tasks.d.ts +0 -22
  35. package/lib/avs/utils/tasks.js +0 -45
  36. package/lib/client/create-claim.d.ts +0 -5
  37. package/lib/client/create-claim.js +0 -424
  38. package/lib/client/index.d.ts +0 -3
  39. package/lib/client/index.js +0 -20
  40. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  41. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -60
  42. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -25
  43. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -135
  44. package/lib/client/utils/attestor-pool.d.ts +0 -6
  45. package/lib/client/utils/attestor-pool.js +0 -28
  46. package/lib/client/utils/client-socket.d.ts +0 -11
  47. package/lib/client/utils/client-socket.js +0 -100
  48. package/lib/client/utils/message-handler.d.ts +0 -4
  49. package/lib/client/utils/message-handler.js +0 -94
  50. package/lib/config/index.d.ts +0 -28
  51. package/lib/config/index.js +0 -39
  52. package/lib/index.d.ts +0 -10
  53. package/lib/index.js +0 -50
  54. package/lib/mechain/abis/governanceABI.d.ts +0 -50
  55. package/lib/mechain/abis/governanceABI.js +0 -462
  56. package/lib/mechain/abis/taskABI.d.ts +0 -157
  57. package/lib/mechain/abis/taskABI.js +0 -513
  58. package/lib/mechain/client/create-claim-on-mechain.d.ts +0 -10
  59. package/lib/mechain/client/create-claim-on-mechain.js +0 -32
  60. package/lib/mechain/client/index.d.ts +0 -1
  61. package/lib/mechain/client/index.js +0 -18
  62. package/lib/mechain/constants/index.d.ts +0 -3
  63. package/lib/mechain/constants/index.js +0 -7
  64. package/lib/mechain/index.d.ts +0 -2
  65. package/lib/mechain/index.js +0 -19
  66. package/lib/mechain/types/index.d.ts +0 -23
  67. package/lib/mechain/types/index.js +0 -3
  68. package/lib/proto/api.d.ts +0 -508
  69. package/lib/proto/api.js +0 -3700
  70. package/lib/providers/http/index.d.ts +0 -3
  71. package/lib/providers/http/index.js +0 -613
  72. package/lib/providers/http/utils.d.ts +0 -74
  73. package/lib/providers/http/utils.js +0 -360
  74. package/lib/providers/index.d.ts +0 -4
  75. package/lib/providers/index.js +0 -11
  76. package/lib/scripts/check-avs-registration.d.ts +0 -1
  77. package/lib/scripts/check-avs-registration.js +0 -29
  78. package/lib/scripts/generate-provider-types.d.ts +0 -5
  79. package/lib/scripts/generate-provider-types.js +0 -82
  80. package/lib/scripts/generate-receipt.d.ts +0 -9
  81. package/lib/scripts/generate-receipt.js +0 -90
  82. package/lib/scripts/generate-toprf-keys.d.ts +0 -1
  83. package/lib/scripts/generate-toprf-keys.js +0 -23
  84. package/lib/scripts/register-avs-operator.d.ts +0 -1
  85. package/lib/scripts/register-avs-operator.js +0 -7
  86. package/lib/scripts/start-server.d.ts +0 -1
  87. package/lib/scripts/start-server.js +0 -13
  88. package/lib/scripts/update-avs-metadata.d.ts +0 -1
  89. package/lib/scripts/update-avs-metadata.js +0 -22
  90. package/lib/scripts/utils.d.ts +0 -1
  91. package/lib/scripts/utils.js +0 -11
  92. package/lib/scripts/verify-root-ca.d.ts +0 -1
  93. package/lib/scripts/verify-root-ca.js +0 -51
  94. package/lib/scripts/whitelist-operator.d.ts +0 -1
  95. package/lib/scripts/whitelist-operator.js +0 -18
  96. package/lib/server/create-server.d.ts +0 -7
  97. package/lib/server/create-server.js +0 -92
  98. package/lib/server/handlers/claimTunnel.d.ts +0 -2
  99. package/lib/server/handlers/claimTunnel.js +0 -78
  100. package/lib/server/handlers/completeClaimOnChain.d.ts +0 -2
  101. package/lib/server/handlers/completeClaimOnChain.js +0 -28
  102. package/lib/server/handlers/createClaimOnChain.d.ts +0 -2
  103. package/lib/server/handlers/createClaimOnChain.js +0 -31
  104. package/lib/server/handlers/createTaskOnMechain.d.ts +0 -2
  105. package/lib/server/handlers/createTaskOnMechain.js +0 -52
  106. package/lib/server/handlers/createTunnel.d.ts +0 -2
  107. package/lib/server/handlers/createTunnel.js +0 -101
  108. package/lib/server/handlers/disconnectTunnel.d.ts +0 -2
  109. package/lib/server/handlers/disconnectTunnel.js +0 -10
  110. package/lib/server/handlers/index.d.ts +0 -4
  111. package/lib/server/handlers/index.js +0 -22
  112. package/lib/server/handlers/init.d.ts +0 -2
  113. package/lib/server/handlers/init.js +0 -36
  114. package/lib/server/handlers/toprf.d.ts +0 -2
  115. package/lib/server/handlers/toprf.js +0 -21
  116. package/lib/server/index.d.ts +0 -4
  117. package/lib/server/index.js +0 -21
  118. package/lib/server/socket.d.ts +0 -13
  119. package/lib/server/socket.js +0 -114
  120. package/lib/server/tunnels/make-tcp-tunnel.d.ts +0 -20
  121. package/lib/server/tunnels/make-tcp-tunnel.js +0 -175
  122. package/lib/server/utils/apm.d.ts +0 -11
  123. package/lib/server/utils/apm.js +0 -43
  124. package/lib/server/utils/assert-valid-claim-request.d.ts +0 -30
  125. package/lib/server/utils/assert-valid-claim-request.js +0 -200
  126. package/lib/server/utils/config-env.d.ts +0 -1
  127. package/lib/server/utils/config-env.js +0 -7
  128. package/lib/server/utils/dns.d.ts +0 -1
  129. package/lib/server/utils/dns.js +0 -22
  130. package/lib/server/utils/generics.d.ts +0 -22
  131. package/lib/server/utils/generics.js +0 -59
  132. package/lib/server/utils/iso.d.ts +0 -1
  133. package/lib/server/utils/iso.js +0 -260
  134. package/lib/server/utils/keep-alive.d.ts +0 -7
  135. package/lib/server/utils/keep-alive.js +0 -42
  136. package/lib/server/utils/process-handshake.d.ts +0 -13
  137. package/lib/server/utils/process-handshake.js +0 -191
  138. package/lib/tests/describe-with-server.d.ts +0 -20
  139. package/lib/tests/describe-with-server.js +0 -64
  140. package/lib/tests/mock-provider-server.d.ts +0 -13
  141. package/lib/tests/mock-provider-server.js +0 -65
  142. package/lib/tests/mocks.d.ts +0 -4
  143. package/lib/tests/mocks.js +0 -23
  144. package/lib/tests/test.auth.d.ts +0 -1
  145. package/lib/tests/test.auth.js +0 -75
  146. package/lib/tests/test.bgp-listener.d.ts +0 -1
  147. package/lib/tests/test.bgp-listener.js +0 -169
  148. package/lib/tests/test.claim-creation.d.ts +0 -1
  149. package/lib/tests/test.claim-creation.js +0 -280
  150. package/lib/tests/test.http-parser.d.ts +0 -1
  151. package/lib/tests/test.http-parser.js +0 -120
  152. package/lib/tests/test.http-provider-utils.d.ts +0 -1
  153. package/lib/tests/test.http-provider-utils.js +0 -2416
  154. package/lib/tests/test.http-provider.d.ts +0 -1
  155. package/lib/tests/test.http-provider.js +0 -114
  156. package/lib/tests/test.rpc-communication.d.ts +0 -1
  157. package/lib/tests/test.rpc-communication.js +0 -64
  158. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  159. package/lib/tests/test.rpc-tunnel.js +0 -172
  160. package/lib/tests/test.signatures.d.ts +0 -1
  161. package/lib/tests/test.signatures.js +0 -24
  162. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  163. package/lib/tests/test.tcp-tunnel.js +0 -64
  164. package/lib/tests/test.zk.d.ts +0 -1
  165. package/lib/tests/test.zk.js +0 -337
  166. package/lib/tests/utils.d.ts +0 -18
  167. package/lib/tests/utils.js +0 -64
  168. package/lib/types/bgp.d.ts +0 -11
  169. package/lib/types/bgp.js +0 -3
  170. package/lib/types/claims.d.ts +0 -73
  171. package/lib/types/claims.js +0 -3
  172. package/lib/types/client.d.ts +0 -163
  173. package/lib/types/client.js +0 -3
  174. package/lib/types/general.d.ts +0 -51
  175. package/lib/types/general.js +0 -3
  176. package/lib/types/handlers.d.ts +0 -10
  177. package/lib/types/handlers.js +0 -3
  178. package/lib/types/index.d.ts +0 -10
  179. package/lib/types/index.js +0 -27
  180. package/lib/types/providers.d.ts +0 -150
  181. package/lib/types/providers.gen.d.ts +0 -429
  182. package/lib/types/providers.gen.js +0 -14
  183. package/lib/types/providers.js +0 -3
  184. package/lib/types/rpc.d.ts +0 -35
  185. package/lib/types/rpc.js +0 -3
  186. package/lib/types/signatures.d.ts +0 -28
  187. package/lib/types/signatures.js +0 -3
  188. package/lib/types/tunnel.d.ts +0 -18
  189. package/lib/types/tunnel.js +0 -3
  190. package/lib/types/zk.d.ts +0 -23
  191. package/lib/types/zk.js +0 -3
  192. package/lib/utils/auth.d.ts +0 -7
  193. package/lib/utils/auth.js +0 -64
  194. package/lib/utils/b64-json.d.ts +0 -2
  195. package/lib/utils/b64-json.js +0 -23
  196. package/lib/utils/benchmark.d.ts +0 -1
  197. package/lib/utils/benchmark.js +0 -70
  198. package/lib/utils/bgp-listener.d.ts +0 -7
  199. package/lib/utils/bgp-listener.js +0 -126
  200. package/lib/utils/claims.d.ts +0 -33
  201. package/lib/utils/claims.js +0 -112
  202. package/lib/utils/env.d.ts +0 -3
  203. package/lib/utils/env.js +0 -20
  204. package/lib/utils/error.d.ts +0 -27
  205. package/lib/utils/error.js +0 -43
  206. package/lib/utils/generics.d.ts +0 -112
  207. package/lib/utils/generics.js +0 -348
  208. package/lib/utils/http-parser.d.ts +0 -59
  209. package/lib/utils/http-parser.js +0 -252
  210. package/lib/utils/index.d.ts +0 -12
  211. package/lib/utils/index.js +0 -29
  212. package/lib/utils/logger.d.ts +0 -13
  213. package/lib/utils/logger.js +0 -100
  214. package/lib/utils/prepare-packets.d.ts +0 -16
  215. package/lib/utils/prepare-packets.js +0 -61
  216. package/lib/utils/redactions.d.ts +0 -54
  217. package/lib/utils/redactions.js +0 -148
  218. package/lib/utils/retries.d.ts +0 -12
  219. package/lib/utils/retries.js +0 -28
  220. package/lib/utils/signatures/eth.d.ts +0 -2
  221. package/lib/utils/signatures/eth.js +0 -33
  222. package/lib/utils/signatures/index.d.ts +0 -5
  223. package/lib/utils/signatures/index.js +0 -11
  224. package/lib/utils/socket-base.d.ts +0 -22
  225. package/lib/utils/socket-base.js +0 -95
  226. package/lib/utils/tls.d.ts +0 -2
  227. package/lib/utils/tls.js +0 -32
  228. package/lib/utils/validation.d.ts +0 -2
  229. package/lib/utils/validation.js +0 -46
  230. package/lib/utils/ws.d.ts +0 -12
  231. package/lib/utils/ws.js +0 -38
  232. package/lib/utils/zk.d.ts +0 -55
  233. package/lib/utils/zk.js +0 -444
  234. package/lib/window-rpc/index.d.ts +0 -3
  235. package/lib/window-rpc/index.js +0 -20
  236. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  237. package/lib/window-rpc/setup-window-rpc.js +0 -291
  238. package/lib/window-rpc/types.d.ts +0 -192
  239. package/lib/window-rpc/types.js +0 -3
  240. package/lib/window-rpc/utils.d.ts +0 -14
  241. package/lib/window-rpc/utils.js +0 -102
  242. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  243. package/lib/window-rpc/window-rpc-zk.js +0 -85
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.B64_JSON_REVIVER = exports.B64_JSON_REPLACER = void 0;
4
- const utils_1 = require("ethers/lib/utils");
5
- const B64_JSON_REPLACER = (key, value) => {
6
- if (value instanceof Uint8Array
7
- || (typeof value === 'object'
8
- && value
9
- && 'buffer' in value
10
- && value.buffer instanceof ArrayBuffer)) {
11
- return { type: 'uint8array', value: utils_1.base64.encode(value) };
12
- }
13
- return value;
14
- };
15
- exports.B64_JSON_REPLACER = B64_JSON_REPLACER;
16
- const B64_JSON_REVIVER = (key, value) => {
17
- if ((value === null || value === void 0 ? void 0 : value.type) === 'uint8array') {
18
- return utils_1.base64.decode(value.value);
19
- }
20
- return value;
21
- };
22
- exports.B64_JSON_REVIVER = B64_JSON_REVIVER;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYjY0LWpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYjY0LWpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXlDO0FBRWxDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLEVBQUU7SUFDNUQsSUFDQyxLQUFLLFlBQVksVUFBVTtXQUN4QixDQUNGLE9BQU8sS0FBSyxLQUFLLFFBQVE7ZUFDdEIsS0FBSztlQUNMLFFBQVEsSUFBSSxLQUFLO2VBQ2pCLEtBQUssQ0FBQyxNQUFNLFlBQVksV0FBVyxDQUN0QyxFQUNBLENBQUM7UUFDRixPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsY0FBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFBO0lBQzNELENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQWRZLFFBQUEsaUJBQWlCLHFCQWM3QjtBQUVNLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLEVBQUU7SUFDM0QsSUFBRyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLE1BQUssWUFBWSxFQUFFLENBQUM7UUFDakMsT0FBTyxjQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDYixDQUFDLENBQUE7QUFOWSxRQUFBLGdCQUFnQixvQkFNNUIifQ==
@@ -1 +0,0 @@
1
- export declare function Benchmark(): Promise<string>;
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Benchmark = Benchmark;
4
- const tls_1 = require("@reclaimprotocol/tls");
5
- const logger_1 = require("../utils/logger");
6
- const zk_1 = require("../utils/zk");
7
- const ZK_CIPHER_SUITES = [
8
- 'TLS_CHACHA20_POLY1305_SHA256',
9
- 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
10
- 'TLS_AES_128_GCM_SHA256'
11
- ];
12
- async function Benchmark() {
13
- let benchmarkRes = '';
14
- for (const cipherSuite of ZK_CIPHER_SUITES) {
15
- const now = Date.now();
16
- const alg = cipherSuite.includes('CHACHA20')
17
- ? 'CHACHA20-POLY1305'
18
- : (cipherSuite.includes('AES_256_GCM')
19
- ? 'AES-256-GCM'
20
- : 'AES-128-GCM');
21
- const keylength = alg === 'AES-128-GCM' ? 16 : 32;
22
- const key = Buffer.alloc(keylength, 0);
23
- const { ivLength: fixedIvLength, } = tls_1.SUPPORTED_CIPHER_SUITE_MAP[cipherSuite];
24
- const fixedIv = Buffer.alloc(fixedIvLength, 0);
25
- const encKey = await tls_1.crypto.importKey(alg, key);
26
- const vectors = [
27
- {
28
- plaintext: 'My cool API secret is "my name jeff". Please don\'t reveal it'
29
- }
30
- ];
31
- const proofGenerator = await (0, zk_1.makeZkProofGenerator)({
32
- logger: logger_1.logger,
33
- cipherSuite,
34
- });
35
- for (const { plaintext } of vectors) {
36
- const plaintextArr = (0, tls_1.strToUint8Array)(plaintext);
37
- const { ciphertext, iv } = await (0, tls_1.encryptWrappedRecord)(plaintextArr, {
38
- key: encKey,
39
- iv: fixedIv,
40
- recordNumber: 0,
41
- recordHeaderOpts: {
42
- type: 'WRAPPED_RECORD'
43
- },
44
- cipherSuite,
45
- version: cipherSuite.includes('ECDHE_')
46
- ? 'TLS1_2'
47
- : 'TLS1_3',
48
- });
49
- const packet = {
50
- type: 'ciphertext',
51
- encKey,
52
- iv,
53
- recordNumber: 0,
54
- plaintext: plaintextArr,
55
- ciphertext,
56
- fixedIv: new Uint8Array(0),
57
- data: ciphertext
58
- };
59
- await proofGenerator.addPacketToProve(packet, {
60
- type: 'zk',
61
- redactedPlaintext: plaintextArr,
62
- }, () => { });
63
- await proofGenerator.generateProofs();
64
- }
65
- benchmarkRes = benchmarkRes + `Benchmark ${alg} ok. Took ${Date.now() - now} ms \n`;
66
- }
67
- logger_1.logger.info(benchmarkRes);
68
- return benchmarkRes;
69
- }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2htYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2JlbmNobWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSw4QkErRUM7QUFoR0QsOENBSzZCO0FBRTdCLDZDQUF5QztBQUN6QyxxQ0FBbUQ7QUFHbkQsTUFBTSxnQkFBZ0IsR0FBa0I7SUFDdkMsOEJBQThCO0lBQzlCLHlDQUF5QztJQUN6Qyx3QkFBd0I7Q0FDeEIsQ0FBQTtBQUVNLEtBQUssVUFBVSxTQUFTO0lBRTlCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQTtJQUNyQixLQUFJLE1BQU0sV0FBVyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFFM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBRXRCLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQzNDLENBQUMsQ0FBQyxtQkFBbUI7WUFDckIsQ0FBQyxDQUFDLENBQ0QsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxhQUFhO2dCQUNmLENBQUMsQ0FBQyxhQUFhLENBQ2hCLENBQUE7UUFDRixNQUFNLFNBQVMsR0FBRyxHQUFHLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNqRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0QyxNQUFNLEVBQ0wsUUFBUSxFQUFFLGFBQWEsR0FDdkIsR0FBRyxnQ0FBMEIsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUU5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQy9DLE1BQU0sT0FBTyxHQUFHO1lBQ2Y7Z0JBQ0MsU0FBUyxFQUFFLCtEQUErRDthQUMxRTtTQUNELENBQUE7UUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEseUJBQW9CLEVBQUM7WUFDakQsTUFBTSxFQUFOLGVBQU07WUFDTixXQUFXO1NBQ1gsQ0FBQyxDQUFBO1FBQ0YsS0FBSSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksT0FBTyxFQUFFLENBQUM7WUFDcEMsTUFBTSxZQUFZLEdBQUcsSUFBQSxxQkFBZSxFQUFDLFNBQVMsQ0FBQyxDQUFBO1lBRS9DLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxJQUFBLDBCQUFvQixFQUNwRCxZQUFZLEVBQ1o7Z0JBQ0MsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsRUFBRSxFQUFFLE9BQU87Z0JBQ1gsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsZ0JBQWdCLEVBQUU7b0JBQ2pCLElBQUksRUFBRSxnQkFBZ0I7aUJBQ3RCO2dCQUNELFdBQVc7Z0JBQ1gsT0FBTyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO29CQUN0QyxDQUFDLENBQUMsUUFBUTtvQkFDVixDQUFDLENBQUMsUUFBUTthQUNYLENBQ0QsQ0FBQTtZQUVELE1BQU0sTUFBTSxHQUFzQjtnQkFDakMsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLE1BQU07Z0JBQ04sRUFBRTtnQkFDRixZQUFZLEVBQUUsQ0FBQztnQkFDZixTQUFTLEVBQUUsWUFBWTtnQkFDdkIsVUFBVTtnQkFDVixPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLEVBQUUsVUFBVTthQUNoQixDQUFBO1lBRUQsTUFBTSxjQUFjLENBQUMsZ0JBQWdCLENBQ3BDLE1BQU0sRUFDTjtnQkFDQyxJQUFJLEVBQUUsSUFBSTtnQkFDVixpQkFBaUIsRUFBQyxZQUFZO2FBQzlCLEVBQ0QsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUNSLENBQUE7WUFDRCxNQUFNLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUV0QyxDQUFDO1FBRUQsWUFBWSxHQUFHLFlBQVksR0FBRyxhQUFhLEdBQUcsYUFBYSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUE7SUFDcEYsQ0FBQztJQUVELGVBQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDekIsT0FBTyxZQUFZLENBQUE7QUFDcEIsQ0FBQyJ9
@@ -1,7 +0,0 @@
1
- import type { Logger } from 'pino';
2
- import { BGPListener } from '../types';
3
- /**
4
- * Listens for BGP announcements and emits events whenever
5
- * an announcement overlaps with a target IP.
6
- */
7
- export declare function createBgpListener(logger: Logger): BGPListener;
@@ -1,126 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createBgpListener = createBgpListener;
7
- const ip_cidr_1 = __importDefault(require("ip-cidr"));
8
- const config_1 = require("../config");
9
- const ws_1 = require("../utils/ws");
10
- const ANNOUNCEMENT_OVERLAP = 'announcement-overlap';
11
- class BGPAnnouncementOverlapEvent extends Event {
12
- constructor(data) {
13
- super(ANNOUNCEMENT_OVERLAP);
14
- this.data = data;
15
- }
16
- }
17
- /**
18
- * Listens for BGP announcements and emits events whenever
19
- * an announcement overlaps with a target IP.
20
- */
21
- function createBgpListener(logger) {
22
- let ws;
23
- let closed = false;
24
- const targetIps = new Set();
25
- const eventTarget = new EventTarget();
26
- openWs();
27
- return {
28
- onOverlap(ips, callback) {
29
- for (const ip of ips) {
30
- targetIps.add(ip);
31
- }
32
- eventTarget.addEventListener(ANNOUNCEMENT_OVERLAP, _callback);
33
- return () => {
34
- for (const ip of ips) {
35
- targetIps.delete(ip);
36
- }
37
- eventTarget.removeEventListener(ANNOUNCEMENT_OVERLAP, _callback);
38
- };
39
- function _callback(event) {
40
- callback(event.data);
41
- }
42
- },
43
- close() {
44
- ws.onclose = null;
45
- ws.onerror = null;
46
- ws.close();
47
- closed = true;
48
- }
49
- };
50
- function openWs() {
51
- logger.debug('connecting to BGP websocket');
52
- ws = (0, ws_1.makeWebSocket)(config_1.BGP_WS_URL);
53
- ws.onopen = onOpen;
54
- ws.onerror = (err) => onClose(err);
55
- ws.onclose = () => onClose(new Error('Unexpected close'));
56
- ws.onmessage = ({ data }) => {
57
- const str = typeof data === 'string' ? data : data.toString();
58
- try {
59
- onMessage(str);
60
- }
61
- catch (err) {
62
- logger.error({ data, err }, 'error processing BGP message');
63
- }
64
- };
65
- }
66
- function onOpen() {
67
- const subscriptionMessage = {
68
- type: 'ris_subscribe',
69
- data: {
70
- type: 'UPDATE',
71
- },
72
- };
73
- ws.send(JSON.stringify(subscriptionMessage));
74
- logger.info('connected to BGP websocket');
75
- }
76
- function onClose(err) {
77
- if (closed) {
78
- return;
79
- }
80
- logger.info({ err }, 'BGP websocket closed');
81
- if (!err) {
82
- return;
83
- }
84
- logger.info('reconnecting to BGP websocket');
85
- openWs();
86
- }
87
- function onMessage(message) {
88
- var _a, _b;
89
- const data = JSON.parse(message);
90
- const announcements = (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.announcements;
91
- logger.trace({ data }, 'got BGP update');
92
- if (!Array.isArray(announcements)) {
93
- return;
94
- }
95
- const asPath = (_b = data === null || data === void 0 ? void 0 : data.data) === null || _b === void 0 ? void 0 : _b.path;
96
- for (const announcement of announcements) {
97
- const prefixes = announcement === null || announcement === void 0 ? void 0 : announcement.prefixes;
98
- const nextHop = announcement === null || announcement === void 0 ? void 0 : announcement['next_hop'];
99
- const hasPrefixes = (prefixes === null || prefixes === void 0 ? void 0 : prefixes.length) && (nextHop || asPath);
100
- if (!hasPrefixes) {
101
- return;
102
- }
103
- for (const prefix of prefixes) {
104
- if (!overlapsTargetIps(prefix)) {
105
- continue;
106
- }
107
- // emit event
108
- eventTarget.dispatchEvent(new BGPAnnouncementOverlapEvent({ prefix }));
109
- }
110
- }
111
- }
112
- function overlapsTargetIps(prefix) {
113
- // ignore all prefixes that end with /0
114
- if (prefix.endsWith('/0')) {
115
- return false;
116
- }
117
- const cidr = new ip_cidr_1.default(prefix);
118
- for (const ip of targetIps) {
119
- if (cidr.contains(ip)) {
120
- return true;
121
- }
122
- }
123
- return false;
124
- }
125
- }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmdwLWxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2JncC1saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSw4Q0F1SUM7QUF6SkQsc0RBQTBCO0FBRTFCLHVDQUF1QztBQUV2QyxxQ0FBNEM7QUFFNUMsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQTtBQUVuRCxNQUFNLDJCQUE0QixTQUFRLEtBQUs7SUFDOUMsWUFBNEIsSUFBZ0M7UUFDM0QsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFEQSxTQUFJLEdBQUosSUFBSSxDQUE0QjtJQUU1RCxDQUFDO0NBQ0Q7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFjO0lBQy9DLElBQUksRUFBb0MsQ0FBQTtJQUN4QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFFbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUNuQyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRXJDLE1BQU0sRUFBRSxDQUFBO0lBRVIsT0FBTztRQUNOLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUTtZQUN0QixLQUFJLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ2xCLENBQUM7WUFFRCxXQUFXLENBQUMsZ0JBQWdCLENBQzNCLG9CQUFvQixFQUNwQixTQUFTLENBQ1QsQ0FBQTtZQUVELE9BQU8sR0FBRyxFQUFFO2dCQUNYLEtBQUksTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ3JCLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQ3JCLENBQUM7Z0JBRUQsV0FBVyxDQUFDLG1CQUFtQixDQUM5QixvQkFBb0IsRUFDcEIsU0FBUyxDQUNULENBQUE7WUFDRixD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
@@ -1,33 +0,0 @@
1
- import { ClaimTunnelResponse } from '../proto/api';
2
- import { ClaimID, ClaimInfo, CompleteClaimData, ProviderParams } from '../types';
3
- /**
4
- * Creates the standard string to sign for a claim.
5
- * This data is what the attestor will sign when it successfully
6
- * verifies a claim.
7
- */
8
- export declare function createSignDataForClaim(data: CompleteClaimData): string;
9
- /**
10
- * Verify the claim tunnel response from a attestor.
11
- *
12
- * If you'd only like to verify the claim signature, you can
13
- * optionally only pass "claim" & "signatures.claimSignature"
14
- * to this function.
15
- *
16
- * The successful run of this function means that the claim
17
- * is valid, and the attestor that signed the claim is valid.
18
- */
19
- export declare function assertValidClaimSignatures({ signatures, ...res }: Partial<ClaimTunnelResponse>, metadata?: import("../proto/api").InitRequest): Promise<void>;
20
- /**
21
- * Generates a unique identifier for given claim info
22
- * @param info
23
- * @returns
24
- */
25
- export declare function getIdentifierFromClaimInfo(info: ClaimInfo): ClaimID;
26
- /**
27
- * Canonically stringifies an object, so that the same object will always
28
- * produce the same string despite the order of keys
29
- */
30
- export declare function canonicalStringify(params: {
31
- [key: string]: any;
32
- } | undefined): string;
33
- export declare function hashProviderParams(params: ProviderParams<'http'>): string;
@@ -1,112 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createSignDataForClaim = createSignDataForClaim;
7
- exports.assertValidClaimSignatures = assertValidClaimSignatures;
8
- exports.getIdentifierFromClaimInfo = getIdentifierFromClaimInfo;
9
- exports.canonicalStringify = canonicalStringify;
10
- exports.hashProviderParams = hashProviderParams;
11
- const tls_1 = require("@reclaimprotocol/tls");
12
- const canonicalize_1 = __importDefault(require("canonicalize"));
13
- const ethers_1 = require("ethers");
14
- const config_1 = require("../config");
15
- const api_1 = require("../proto/api");
16
- const signatures_1 = require("../utils/signatures");
17
- /**
18
- * Creates the standard string to sign for a claim.
19
- * This data is what the attestor will sign when it successfully
20
- * verifies a claim.
21
- */
22
- function createSignDataForClaim(data) {
23
- const identifier = 'identifier' in data
24
- ? data.identifier
25
- : getIdentifierFromClaimInfo(data);
26
- const lines = [
27
- identifier,
28
- // we lowercase the owner to ensure that the
29
- // ETH addresses always serialize the same way
30
- data.owner.toLowerCase(),
31
- data.timestampS.toString(),
32
- data.epoch.toString(),
33
- ];
34
- return lines.join('\n');
35
- }
36
- /**
37
- * Verify the claim tunnel response from a attestor.
38
- *
39
- * If you'd only like to verify the claim signature, you can
40
- * optionally only pass "claim" & "signatures.claimSignature"
41
- * to this function.
42
- *
43
- * The successful run of this function means that the claim
44
- * is valid, and the attestor that signed the claim is valid.
45
- */
46
- async function assertValidClaimSignatures({ signatures, ...res }, metadata = config_1.DEFAULT_METADATA) {
47
- if (!signatures) {
48
- throw new Error('No signatures provided');
49
- }
50
- const { resultSignature, claimSignature, attestorAddress } = signatures;
51
- const { verify } = signatures_1.SIGNATURES[metadata.signatureType];
52
- if (signatures === null || signatures === void 0 ? void 0 : signatures.resultSignature) {
53
- const resBytes = api_1.ClaimTunnelResponse.encode(api_1.ClaimTunnelResponse.create(res)).finish();
54
- const verified = await verify(resBytes, resultSignature, attestorAddress);
55
- if (!verified) {
56
- throw new Error('Invalid result signature');
57
- }
58
- }
59
- // claim wasn't generated -- i.e. the transcript
60
- // did not contain the necessary data
61
- if (!res.claim) {
62
- return;
63
- }
64
- const signData = createSignDataForClaim(res.claim);
65
- const verifiedClaim = await verify((0, tls_1.strToUint8Array)(signData), claimSignature, attestorAddress);
66
- if (!verifiedClaim) {
67
- throw new Error('Invalid claim signature');
68
- }
69
- }
70
- /**
71
- * Generates a unique identifier for given claim info
72
- * @param info
73
- * @returns
74
- */
75
- function getIdentifierFromClaimInfo(info) {
76
- var _a;
77
- //re-canonicalize context if it's not empty
78
- if (((_a = info.context) === null || _a === void 0 ? void 0 : _a.length) > 0) {
79
- try {
80
- const ctx = JSON.parse(info.context);
81
- info.context = canonicalStringify(ctx);
82
- }
83
- catch (e) {
84
- throw new Error('unable to parse non-empty context. Must be JSON');
85
- }
86
- }
87
- const str = `${info.provider}\n${info.parameters}\n${info.context || ''}`;
88
- //console.log('Identifier: ' + btoa(str))
89
- return ethers_1.utils.keccak256((0, tls_1.strToUint8Array)(str)).toLowerCase();
90
- }
91
- /**
92
- * Canonically stringifies an object, so that the same object will always
93
- * produce the same string despite the order of keys
94
- */
95
- function canonicalStringify(params) {
96
- if (!params) {
97
- return '';
98
- }
99
- return (0, canonicalize_1.default)(params) || '';
100
- }
101
- function hashProviderParams(params) {
102
- const filteredParams = {
103
- url: params.url,
104
- method: params.method,
105
- body: params.body,
106
- responseMatches: params.responseMatches,
107
- responseRedactions: params.responseRedactions
108
- };
109
- const serializedParams = canonicalStringify(filteredParams);
110
- return ethers_1.utils.keccak256((0, tls_1.strToUint8Array)(serializedParams)).toLowerCase();
111
- }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NsYWltcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWFBLHdEQWNDO0FBWUQsZ0VBK0NDO0FBT0QsZ0VBaUJDO0FBTUQsZ0RBTUM7QUFFRCxnREFhQztBQXpJRCw4Q0FBc0Q7QUFDdEQsZ0VBQXVDO0FBQ3ZDLG1DQUE4QjtBQUM5Qix1Q0FBNkM7QUFDN0MsdUNBQW1EO0FBRW5ELHFEQUFpRDtBQUVqRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsSUFBdUI7SUFDN0QsTUFBTSxVQUFVLEdBQUcsWUFBWSxJQUFJLElBQUk7UUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ2pCLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQyxNQUFNLEtBQUssR0FBRztRQUNiLFVBQVU7UUFDViw0Q0FBNEM7UUFDNUMsOENBQThDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ3JCLENBQUE7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDeEIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSwwQkFBMEIsQ0FDL0MsRUFDQyxVQUFVLEVBQ1YsR0FBRyxHQUFHLEVBQ3dCLEVBQy9CLFFBQVEsR0FBRyx5QkFBZ0I7SUFFM0IsSUFBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsTUFBTSxFQUNMLGVBQWUsRUFDZixjQUFjLEVBQ2QsZUFBZSxFQUNmLEdBQUcsVUFBVSxDQUFBO0lBRWQsTUFBTSxFQUFFLE1BQU0s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
@@ -1,3 +0,0 @@
1
- export type TransportType = 'node' | 'react-native' | 'browser';
2
- export declare function detectEnvironment(): TransportType;
3
- export declare function getEnvVariable(name: string): string | undefined;
package/lib/utils/env.js DELETED
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectEnvironment = detectEnvironment;
4
- exports.getEnvVariable = getEnvVariable;
5
- function detectEnvironment() {
6
- if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
7
- return 'react-native';
8
- }
9
- if (typeof window !== 'undefined') {
10
- return 'browser';
11
- }
12
- return 'node';
13
- }
14
- function getEnvVariable(name) {
15
- if (typeof process === 'undefined') {
16
- return undefined;
17
- }
18
- return process === null || process === void 0 ? void 0 : process.env[name];
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Vudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDhDQVVDO0FBRUQsd0NBTUM7QUFsQkQsU0FBZ0IsaUJBQWlCO0lBQ2hDLElBQUcsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDNUUsT0FBTyxjQUFjLENBQUE7SUFDdEIsQ0FBQztJQUVELElBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDbEMsT0FBTyxTQUFTLENBQUE7SUFDakIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2QsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxJQUFZO0lBQzFDLElBQUcsT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDbkMsT0FBTyxTQUFTLENBQUE7SUFDakIsQ0FBQztJQUVELE9BQU8sT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUMxQixDQUFDIn0=
@@ -1,27 +0,0 @@
1
- import { ErrorCode, ErrorData } from '../proto/api';
2
- /**
3
- * Represents an error that can be thrown by the Attestor Core
4
- * or server. Provides a code, and optional data
5
- * to pass along with the error.
6
- */
7
- export declare class AttestorError extends Error {
8
- code: keyof typeof ErrorCode;
9
- message: string;
10
- data?: {
11
- [_: string]: any;
12
- } | undefined;
13
- readonly name = "AttestorError";
14
- constructor(code: keyof typeof ErrorCode, message: string, data?: {
15
- [_: string]: any;
16
- } | undefined);
17
- /**
18
- * Encodes the error as a ErrorData
19
- * protobuf message
20
- */
21
- toProto(): ErrorData;
22
- static fromProto(data?: ErrorData): AttestorError;
23
- static fromError(err: Error): AttestorError;
24
- static badRequest(message: string, data?: {
25
- [_: string]: any;
26
- }): AttestorError;
27
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AttestorError = void 0;
4
- const api_1 = require("../proto/api");
5
- /**
6
- * Represents an error that can be thrown by the Attestor Core
7
- * or server. Provides a code, and optional data
8
- * to pass along with the error.
9
- */
10
- class AttestorError extends Error {
11
- constructor(code, message, data) {
12
- super(message);
13
- this.code = code;
14
- this.message = message;
15
- this.data = data;
16
- this.name = 'AttestorError';
17
- }
18
- /**
19
- * Encodes the error as a ErrorData
20
- * protobuf message
21
- */
22
- toProto() {
23
- return api_1.ErrorData.create({
24
- code: api_1.ErrorCode[this.code],
25
- message: this.message,
26
- data: JSON.stringify(this.data)
27
- });
28
- }
29
- static fromProto(data = api_1.ErrorData.fromJSON({})) {
30
- return new AttestorError(api_1.ErrorCode[data.code], data.message, data.data ? JSON.parse(data.data) : undefined);
31
- }
32
- static fromError(err) {
33
- if (err instanceof AttestorError) {
34
- return err;
35
- }
36
- return new AttestorError('ERROR_INTERNAL', err.message);
37
- }
38
- static badRequest(message, data) {
39
- return new AttestorError('ERROR_BAD_REQUEST', message, data);
40
- }
41
- }
42
- exports.AttestorError = AttestorError;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQW9EO0FBRXBEOzs7O0dBSUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxLQUFLO0lBSXZDLFlBQ1EsSUFBNEIsRUFDNUIsT0FBZSxFQUNmLElBQTJCO1FBRWxDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUpQLFNBQUksR0FBSixJQUFJLENBQXdCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixTQUFJLEdBQUosSUFBSSxDQUF1QjtRQUwxQixTQUFJLEdBQUcsZUFBZSxDQUFBO0lBUS9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxPQUFPO1FBQ04sT0FBTyxlQUFTLENBQUMsTUFBTSxDQUFDO1lBQ3ZCLElBQUksRUFBRSxlQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUMvQixDQUFDLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsZUFBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLGFBQWEsQ0FDdkIsZUFBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTJCLEVBQzlDLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDN0MsQ0FBQTtJQUNGLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQVU7UUFDMUIsSUFBRyxHQUFHLFlBQVksYUFBYSxFQUFFLENBQUM7WUFDakMsT0FBTyxHQUFHLENBQUE7UUFDWCxDQUFDO1FBRUQsT0FBTyxJQUFJLGFBQWEsQ0FDdkIsZ0JBQWdCLEVBQ2hCLEdBQUcsQ0FBQyxPQUFPLENBQ1gsQ0FBQTtJQUNGLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQWUsRUFBRSxJQUEyQjtRQUM3RCxPQUFPLElBQUksYUFBYSxDQUN2QixtQkFBbUIsRUFDbkIsT0FBTyxFQUNQLElBQUksQ0FDSixDQUFBO0lBQ0YsQ0FBQztDQUNEO0FBbERELHNDQWtEQyJ9
@@ -1,112 +0,0 @@
1
- import { CipherSuite, TLSProtocolVersion } from '@reclaimprotocol/tls';
2
- import { RPCMessage, RPCMessages } from '../proto/api';
3
- import { CompleteTLSPacket, IDecryptedTranscript, IDecryptedTranscriptMessage, ProviderField, RPCEvent, RPCEventMap, RPCEventType, RPCType, Transcript } from '../types';
4
- export declare function uint8ArrayToStr(arr: Uint8Array): string;
5
- export declare function getTranscriptString(receipt: IDecryptedTranscript): string;
6
- export declare const unixTimestampSeconds: () => number;
7
- /**
8
- * Find index of needle in haystack
9
- */
10
- export declare function findIndexInUint8Array(haystack: Uint8Array, needle: Uint8Array): number;
11
- /**
12
- * convert a Uint8Array to a binary encoded str
13
- * from: https://github.com/feross/buffer/blob/795bbb5bda1b39f1370ebd784bea6107b087e3a7/index.js#L1063
14
- * @param buf
15
- * @returns
16
- */
17
- export declare function uint8ArrayToBinaryStr(buf: Uint8Array): string;
18
- export declare function gunzipSync(buf: Uint8Array): Uint8Array;
19
- /**
20
- * Fetch the ZK algorithm for the specified cipher suite
21
- */
22
- export declare function getZkAlgorithmForCipherSuite(cipherSuite: CipherSuite): "aes-256-ctr" | "aes-128-ctr" | "chacha20";
23
- /**
24
- * Get the pure ciphertext without any MAC,
25
- * or authentication tag,
26
- * @param content content w/o header
27
- * @param cipherSuite
28
- */
29
- export declare function getPureCiphertext(content: Uint8Array, cipherSuite: CipherSuite): Uint8Array<ArrayBufferLike>;
30
- /**
31
- * Get the 8 byte IV part that's stored in the record for some cipher suites
32
- * @param content content w/o header
33
- * @param cipherSuite
34
- */
35
- export declare function getRecordIV(content: Uint8Array, cipherSuite: CipherSuite): Uint8Array<ArrayBuffer>;
36
- export declare function getProviderValue<P, S, T>(params: P, fn: ProviderField<P, S, T>, secretParams?: S): T;
37
- export declare function generateRpcMessageId(): number;
38
- /**
39
- * Random session ID for a WebSocket client.
40
- */
41
- export declare function generateSessionId(): number;
42
- /**
43
- * Random ID for a tunnel.
44
- */
45
- export declare function generateTunnelId(): number;
46
- export declare function makeRpcEvent<T extends RPCEventType>(type: T, data: RPCEventMap[T]): RPCEvent<T>;
47
- /**
48
- * Get the RPC type from the key.
49
- * For eg. "claimTunnelRequest" ->
50
- * { type: 'claimTunnel', direction: 'request' }
51
- */
52
- export declare function getRpcTypeFromKey(key: string): {
53
- type: RPCType;
54
- direction: "request";
55
- } | {
56
- type: RPCType;
57
- direction: "response";
58
- } | undefined;
59
- /**
60
- * Get the RPC response type from the RPC type.
61
- * For eg. "claimTunnel" -> "claimTunnelResponse"
62
- */
63
- export declare function getRpcResponseType<T extends RPCType>(type: T): `${T}Response`;
64
- /**
65
- * Get the RPC request type from the RPC type.
66
- * For eg. "claimTunnel" -> "claimTunnelRequest"
67
- */
68
- export declare function getRpcRequestType<T extends RPCType>(type: T): `${T}Request`;
69
- export declare function isApplicationData(packet: CompleteTLSPacket, tlsVersion: string | undefined): boolean;
70
- /**
71
- * Convert the received data from a WS to a Uint8Array
72
- */
73
- export declare function extractArrayBufferFromWsData(data: unknown): Promise<Uint8Array>;
74
- /**
75
- * Check if the RPC message is a request or a response.
76
- */
77
- export declare function getRpcRequest(msg: RPCMessage): {
78
- type: RPCType;
79
- direction: "request";
80
- } | {
81
- type: RPCType;
82
- direction: "response";
83
- } | {
84
- direction: "response";
85
- type: "error";
86
- } | undefined;
87
- /**
88
- * Finds all application data messages in a transcript
89
- * and returns them. Removes the "contentType" suffix from the message.
90
- * in TLS 1.3
91
- */
92
- export declare function extractApplicationDataFromTranscript({ transcript, tlsVersion }: IDecryptedTranscript): Transcript<Uint8Array<ArrayBufferLike>>;
93
- export type HandshakeTranscript<T> = {
94
- sender: 'client' | 'server';
95
- index: number;
96
- message: T;
97
- }[];
98
- export declare function extractHandshakeFromTranscript({ transcript, tlsVersion }: {
99
- transcript: IDecryptedTranscriptMessage[];
100
- tlsVersion: TLSProtocolVersion;
101
- }): HandshakeTranscript<Uint8Array<ArrayBufferLike>>;
102
- export declare function decryptDirect(directReveal: any, cipherSuite: CipherSuite, recordHeader: Uint8Array, serverTlsVersion: TLSProtocolVersion, content: Uint8Array): Promise<{
103
- plaintext: Uint8Array;
104
- iv: Uint8Array;
105
- }>;
106
- export declare function packRpcMessages(...msgs: Partial<RPCMessage>[]): RPCMessages;
107
- /**
108
- * Converts an Ethers struct (an array w named keys) to
109
- * a plain object. Recursively converts all structs inside.
110
- * Required to correctly JSON.stringify the struct.
111
- */
112
- export declare function ethersStructToPlainObject<T>(struct: T): T;