@reclaimprotocol/attestor-core 5.0.1-beta.2 → 5.0.1-beta.22

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 (145) hide show
  1. package/browser/resources/attestor-browser.min.mjs +4512 -0
  2. package/lib/avs/abis/avsDirectoryABI.js +338 -341
  3. package/lib/avs/abis/delegationABI.js +1 -4
  4. package/lib/avs/abis/registryABI.js +719 -722
  5. package/lib/avs/client/create-claim-on-avs.js +129 -157
  6. package/lib/avs/config.js +18 -24
  7. package/lib/avs/contracts/ReclaimServiceManager.js +1 -0
  8. package/lib/avs/contracts/common.js +1 -0
  9. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1139 -1156
  10. package/lib/avs/contracts/factories/index.js +4 -4
  11. package/lib/avs/contracts/index.js +2 -6
  12. package/lib/avs/types/index.js +1 -0
  13. package/lib/avs/utils/contracts.js +30 -50
  14. package/lib/avs/utils/register.js +75 -70
  15. package/lib/avs/utils/tasks.js +38 -45
  16. package/lib/client/create-claim.js +402 -431
  17. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +46 -48
  18. package/lib/client/tunnels/make-rpc-tls-tunnel.js +125 -121
  19. package/lib/client/utils/attestor-pool.js +23 -22
  20. package/lib/client/utils/client-socket.js +86 -109
  21. package/lib/client/utils/message-handler.js +79 -89
  22. package/lib/config/index.js +40 -58
  23. package/lib/external-rpc/benchmark.js +61 -74
  24. package/lib/external-rpc/event-bus.js +12 -15
  25. package/lib/external-rpc/handle-incoming-msg.js +216 -225
  26. package/lib/external-rpc/jsc-polyfills/1.js +70 -68
  27. package/lib/external-rpc/jsc-polyfills/2.js +17 -12
  28. package/lib/external-rpc/jsc-polyfills/event.js +10 -15
  29. package/lib/external-rpc/jsc-polyfills/index.js +2 -2
  30. package/lib/external-rpc/jsc-polyfills/ws.js +77 -79
  31. package/lib/external-rpc/setup-browser.js +28 -28
  32. package/lib/external-rpc/setup-jsc.js +17 -17
  33. package/lib/external-rpc/types.js +1 -0
  34. package/lib/external-rpc/utils.js +89 -89
  35. package/lib/external-rpc/zk.js +55 -50
  36. package/lib/index.js +2 -6
  37. package/lib/mechain/abis/governanceABI.js +457 -460
  38. package/lib/mechain/abis/taskABI.js +502 -505
  39. package/lib/mechain/client/create-claim-on-mechain.js +24 -29
  40. package/lib/mechain/constants/index.js +3 -8
  41. package/lib/mechain/types/index.js +1 -0
  42. package/lib/proto/api.js +4200 -4087
  43. package/lib/proto/tee-bundle.js +1261 -1241
  44. package/lib/providers/http/index.js +616 -603
  45. package/lib/providers/http/patch-parse5-tree.js +27 -29
  46. package/lib/providers/http/utils.js +289 -248
  47. package/lib/providers/index.js +3 -6
  48. package/lib/server/create-server.js +89 -91
  49. package/lib/server/handlers/claimTeeBundle.js +231 -211
  50. package/lib/server/handlers/claimTunnel.js +66 -73
  51. package/lib/server/handlers/completeClaimOnChain.js +20 -25
  52. package/lib/server/handlers/createClaimOnChain.js +21 -27
  53. package/lib/server/handlers/createTaskOnMechain.js +40 -50
  54. package/lib/server/handlers/createTunnel.js +85 -90
  55. package/lib/server/handlers/disconnectTunnel.js +4 -7
  56. package/lib/server/handlers/fetchCertificateBytes.js +37 -53
  57. package/lib/server/handlers/index.js +21 -24
  58. package/lib/server/handlers/init.js +27 -28
  59. package/lib/server/handlers/toprf.js +13 -16
  60. package/lib/server/socket.js +97 -100
  61. package/lib/server/tunnels/make-tcp-tunnel.js +161 -186
  62. package/lib/server/utils/apm.js +32 -25
  63. package/lib/server/utils/assert-valid-claim-request.js +305 -334
  64. package/lib/server/utils/config-env.js +2 -2
  65. package/lib/server/utils/dns.js +12 -18
  66. package/lib/server/utils/gcp-attestation.js +233 -181
  67. package/lib/server/utils/generics.d.ts +1 -1
  68. package/lib/server/utils/generics.js +43 -37
  69. package/lib/server/utils/iso.js +253 -256
  70. package/lib/server/utils/keep-alive.js +36 -36
  71. package/lib/server/utils/nitro-attestation.js +295 -220
  72. package/lib/server/utils/oprf-raw.js +48 -55
  73. package/lib/server/utils/process-handshake.js +200 -218
  74. package/lib/server/utils/proxy-session.js +5 -5
  75. package/lib/server/utils/tee-oprf-mpc-verification.js +82 -78
  76. package/lib/server/utils/tee-oprf-verification.js +165 -142
  77. package/lib/server/utils/tee-transcript-reconstruction.js +176 -129
  78. package/lib/server/utils/tee-verification.js +397 -334
  79. package/lib/server/utils/validation.js +30 -37
  80. package/lib/types/bgp.js +1 -0
  81. package/lib/types/claims.js +1 -0
  82. package/lib/types/client.js +1 -0
  83. package/lib/types/general.js +1 -0
  84. package/lib/types/handlers.js +1 -0
  85. package/lib/types/providers.d.ts +3 -2
  86. package/lib/types/providers.gen.js +9 -15
  87. package/lib/types/providers.js +1 -0
  88. package/lib/types/rpc.js +1 -0
  89. package/lib/types/signatures.d.ts +1 -2
  90. package/lib/types/signatures.js +1 -0
  91. package/lib/types/tunnel.js +1 -0
  92. package/lib/types/zk.js +1 -0
  93. package/lib/utils/auth.js +54 -66
  94. package/lib/utils/b64-json.js +15 -15
  95. package/lib/utils/bgp-listener.js +107 -111
  96. package/lib/utils/claims.js +89 -80
  97. package/lib/utils/env.js +13 -17
  98. package/lib/utils/error.js +43 -47
  99. package/lib/utils/generics.js +284 -235
  100. package/lib/utils/http-parser.js +232 -187
  101. package/lib/utils/logger.js +80 -71
  102. package/lib/utils/prepare-packets.js +69 -67
  103. package/lib/utils/redactions.js +163 -121
  104. package/lib/utils/retries.js +22 -24
  105. package/lib/utils/signatures/eth.js +29 -28
  106. package/lib/utils/signatures/index.js +5 -10
  107. package/lib/utils/socket-base.js +84 -88
  108. package/lib/utils/tls.js +28 -28
  109. package/lib/utils/ws.js +19 -19
  110. package/lib/utils/zk.js +542 -582
  111. package/package.json +12 -5
  112. package/lib/external-rpc/global.d.js +0 -0
  113. package/lib/scripts/build-browser.d.ts +0 -1
  114. package/lib/scripts/build-jsc.d.ts +0 -1
  115. package/lib/scripts/build-lib.d.ts +0 -1
  116. package/lib/scripts/check-avs-registration.d.ts +0 -1
  117. package/lib/scripts/check-avs-registration.js +0 -28
  118. package/lib/scripts/fallbacks/crypto.d.ts +0 -1
  119. package/lib/scripts/fallbacks/crypto.js +0 -4
  120. package/lib/scripts/fallbacks/empty.d.ts +0 -3
  121. package/lib/scripts/fallbacks/empty.js +0 -4
  122. package/lib/scripts/fallbacks/re2.d.ts +0 -1
  123. package/lib/scripts/fallbacks/re2.js +0 -7
  124. package/lib/scripts/fallbacks/snarkjs.d.ts +0 -1
  125. package/lib/scripts/fallbacks/snarkjs.js +0 -10
  126. package/lib/scripts/fallbacks/stwo.d.ts +0 -6
  127. package/lib/scripts/fallbacks/stwo.js +0 -159
  128. package/lib/scripts/generate-provider-types.d.ts +0 -5
  129. package/lib/scripts/generate-provider-types.js +0 -101
  130. package/lib/scripts/generate-receipt.d.ts +0 -9
  131. package/lib/scripts/generate-receipt.js +0 -101
  132. package/lib/scripts/generate-toprf-keys.d.ts +0 -1
  133. package/lib/scripts/generate-toprf-keys.js +0 -24
  134. package/lib/scripts/jsc-cli-rpc.d.ts +0 -1
  135. package/lib/scripts/jsc-cli-rpc.js +0 -35
  136. package/lib/scripts/register-avs-operator.d.ts +0 -1
  137. package/lib/scripts/register-avs-operator.js +0 -3
  138. package/lib/scripts/start-server.d.ts +0 -1
  139. package/lib/scripts/start-server.js +0 -11
  140. package/lib/scripts/update-avs-metadata.d.ts +0 -1
  141. package/lib/scripts/update-avs-metadata.js +0 -20
  142. package/lib/scripts/utils.d.ts +0 -1
  143. package/lib/scripts/utils.js +0 -10
  144. package/lib/scripts/whitelist-operator.d.ts +0 -1
  145. package/lib/scripts/whitelist-operator.js +0 -16
@@ -1,241 +1,232 @@
1
- import { hexlify } from "ethers";
1
+ import { hexlify } from 'ethers';
2
2
  import { createClaimOnAvs } from "../avs/client/create-claim-on-avs.js";
3
3
  import { createClaimOnAttestor } from "../client/index.js";
4
- import { benchmark } from "../external-rpc/benchmark.js";
5
- import { generateRpcRequestId, getCurrentMemoryUsage, getWsApiUrlFromBaseUrl, RPC_MSG_BRIDGE, sendMessageToApp, waitForResponse } from "../external-rpc/utils.js";
6
- import { ALL_ENC_ALGORITHMS, makeExternalRpcOprfOperator, makeExternalRpcZkOperator } from "../external-rpc/zk.js";
4
+ import { benchmark } from "./benchmark.js";
5
+ import { generateRpcRequestId, getCurrentMemoryUsage, getWsApiUrlFromBaseUrl, RPC_MSG_BRIDGE, sendMessageToApp, waitForResponse } from "./utils.js";
6
+ import { ALL_ENC_ALGORITHMS, makeExternalRpcOprfOperator, makeExternalRpcZkOperator } from "./zk.js";
7
7
  import { createClaimOnMechain } from "../mechain/client/create-claim-on-mechain.js";
8
8
  import { extractHTMLElement, extractJSONValueIndex, generateRequstAndResponseFromTranscript } from "../providers/http/utils.js";
9
9
  import { B64_JSON_REVIVER } from "../utils/b64-json.js";
10
10
  import { AttestorError, getIdentifierFromClaimInfo, logger, makeLogger, uint8ArrayToStr } from "../utils/index.js";
11
- async function handleIncomingMessage(data) {
12
- let id = "";
13
- try {
14
- const req = typeof data === "string" ? JSON.parse(data, B64_JSON_REVIVER) : data;
15
- id = req.id || "";
16
- const rslt = await _handleIncomingMessage(req);
17
- if (!rslt) {
18
- return;
11
+ export async function handleIncomingMessage(data) {
12
+ let id = '';
13
+ try {
14
+ const req = (typeof data === 'string'
15
+ ? JSON.parse(data, B64_JSON_REVIVER)
16
+ : data);
17
+ id = req.id || '';
18
+ const rslt = await _handleIncomingMessage(req);
19
+ if (!rslt) {
20
+ return;
21
+ }
22
+ respond(rslt);
23
+ }
24
+ catch (err) {
25
+ console.error('Error in RPC', { id, error: err });
26
+ respond({
27
+ type: 'error',
28
+ data: {
29
+ message: err.message,
30
+ stack: err.stack,
31
+ }
32
+ });
33
+ }
34
+ function respond(data) {
35
+ const res = {
36
+ ...data,
37
+ id,
38
+ isResponse: true
39
+ };
40
+ return sendMessageToApp(res);
19
41
  }
20
- respond(rslt);
21
- } catch (err) {
22
- console.error("Error in RPC", { id, error: err });
23
- respond({
24
- type: "error",
25
- data: {
26
- message: err.message,
27
- stack: err.stack
28
- }
29
- });
30
- }
31
- function respond(data2) {
32
- const res = {
33
- ...data2,
34
- id,
35
- isResponse: true
36
- };
37
- return sendMessageToApp(res);
38
- }
39
42
  }
40
43
  async function _handleIncomingMessage(req) {
41
- const { id: reqId, type: reqType } = req;
42
- if (!reqId || !reqType) {
43
- return;
44
- }
45
- RPC_MSG_BRIDGE.dispatch(req);
46
- if ("isResponse" in req && req.isResponse) {
47
- return;
48
- }
49
- if (!reqId) {
50
- logger.warn({ req }, "Window RPC request missing ID");
51
- return;
52
- }
53
- logger.info({ req }, "processing RPC request");
54
- switch (req.type) {
55
- case "createClaim":
56
- const claimTunnelRes = await createClaimOnAttestor({
57
- ...req.request,
58
- context: req.request.context ? JSON.parse(req.request.context) : void 0,
59
- zkOperators: getZkOperators(
60
- req.request.zkOperatorMode,
61
- req.request.zkEngine
62
- ),
63
- oprfOperators: getOprfOperators(
64
- req.request.zkOperatorMode,
65
- req.request.zkEngine
66
- ),
67
- client: {
68
- url: getWsApiUrlFromBaseUrl(),
69
- authRequest: req.request.authRequest
70
- },
71
- logger,
72
- onStep(step) {
73
- sendMessageToApp({
74
- type: "createClaimStep",
75
- step: { name: "attestor-progress", step },
76
- id: req.id
77
- });
78
- },
79
- updateProviderParams: req.request.updateProviderParams ? updateProviderParams : void 0
80
- });
81
- const response = mapToCreateClaimResponse(claimTunnelRes);
82
- return { type: "createClaimDone", response };
83
- case "createClaimOnAvs":
84
- const avsRes = await createClaimOnAvs({
85
- ...req.request,
86
- payer: req.request.payer === "attestor" ? { attestor: getWsApiUrlFromBaseUrl() } : void 0,
87
- context: req.request.context ? JSON.parse(req.request.context) : void 0,
88
- zkOperators: getZkOperators(
89
- req.request.zkOperatorMode,
90
- req.request.zkEngine
91
- ),
92
- oprfOperators: getOprfOperators(
93
- req.request.zkOperatorMode,
94
- req.request.zkEngine
95
- ),
96
- logger,
97
- onStep(step) {
98
- sendMessageToApp({
99
- type: "createClaimOnAvsStep",
100
- step,
101
- id: req.id
102
- });
103
- }
104
- });
105
- return {
106
- type: "createClaimOnAvsDone",
107
- response: avsRes
108
- };
109
- case "createClaimOnMechain":
110
- const mechainRes = await createClaimOnMechain({
111
- ...req.request,
112
- context: req.request.context ? JSON.parse(req.request.context) : void 0,
113
- zkOperators: getZkOperators(
114
- req.request.zkOperatorMode,
115
- req.request.zkEngine
116
- ),
117
- oprfOperators: getOprfOperators(
118
- req.request.zkOperatorMode,
119
- req.request.zkEngine
120
- ),
121
- client: { url: getWsApiUrlFromBaseUrl() },
122
- logger,
123
- onStep(step) {
124
- sendMessageToApp({
125
- type: "createClaimOnMechainStep",
126
- step,
127
- id: req.id
128
- });
129
- }
130
- });
131
- const claimResponses = [];
132
- for (let i = 0; i < mechainRes.responses.length; i++) {
133
- claimResponses[i] = mapToCreateClaimResponse(mechainRes.responses[i]);
134
- }
135
- return {
136
- type: "createClaimOnMechainDone",
137
- response: { taskId: mechainRes.taskId, data: claimResponses }
138
- };
139
- case "extractHtmlElement":
140
- return {
141
- type: "extractHtmlElementDone",
142
- response: extractHTMLElement(
143
- req.request.html,
144
- req.request.xpathExpression,
145
- req.request.contentsOnly
146
- )
147
- };
148
- case "extractJSONValueIndex":
149
- return {
150
- type: "extractJSONValueIndexDone",
151
- response: extractJSONValueIndex(
152
- req.request.json,
153
- req.request.jsonPath
154
- )
155
- };
156
- case "getCurrentMemoryUsage":
157
- return {
158
- type: "getCurrentMemoryUsageDone",
159
- response: await getCurrentMemoryUsage()
160
- };
161
- case "setLogLevel":
162
- makeLogger(
163
- true,
164
- req.request.logLevel,
165
- req.request.sendLogsToApp ? (level, message) => sendMessageToApp({
166
- type: "log",
167
- level,
168
- message,
169
- id: req.id
170
- }) : void 0
171
- );
172
- return { type: "setLogLevelDone", response: void 0 };
173
- case "benchmarkZK":
174
- return { type: "benchmarkZKDone", response: await benchmark() };
175
- case "ping":
176
- return { type: "pingDone", response: { pong: (/* @__PURE__ */ new Date()).toJSON() } };
177
- default:
178
- break;
179
- }
44
+ const { id: reqId, type: reqType } = req;
45
+ // ignore any messages not for us
46
+ if (!reqId || !reqType) {
47
+ return;
48
+ }
49
+ RPC_MSG_BRIDGE.dispatch(req);
50
+ // ignore response messages
51
+ if (('isResponse' in req && req.isResponse)) {
52
+ return;
53
+ }
54
+ if (!reqId) {
55
+ logger.warn({ req }, 'Window RPC request missing ID');
56
+ return;
57
+ }
58
+ logger.info({ req }, 'processing RPC request');
59
+ switch (req.type) {
60
+ case 'createClaim':
61
+ const claimTunnelRes = await createClaimOnAttestor({
62
+ ...req.request,
63
+ context: req.request.context
64
+ ? JSON.parse(req.request.context)
65
+ : undefined,
66
+ zkOperators: getZkOperators(req.request.zkOperatorMode, req.request.zkEngine),
67
+ oprfOperators: getOprfOperators(req.request.zkOperatorMode, req.request.zkEngine),
68
+ client: {
69
+ url: getWsApiUrlFromBaseUrl(),
70
+ authRequest: req.request.authRequest
71
+ },
72
+ logger,
73
+ onStep(step) {
74
+ sendMessageToApp({
75
+ type: 'createClaimStep',
76
+ step: { name: 'attestor-progress', step },
77
+ id: req.id,
78
+ });
79
+ },
80
+ updateProviderParams: req.request.updateProviderParams
81
+ ? updateProviderParams
82
+ : undefined,
83
+ });
84
+ const response = mapToCreateClaimResponse(claimTunnelRes);
85
+ return { type: 'createClaimDone', response };
86
+ case 'createClaimOnAvs':
87
+ const avsRes = await createClaimOnAvs({
88
+ ...req.request,
89
+ payer: req.request.payer === 'attestor'
90
+ ? { attestor: getWsApiUrlFromBaseUrl() }
91
+ : undefined,
92
+ context: req.request.context
93
+ ? JSON.parse(req.request.context)
94
+ : undefined,
95
+ zkOperators: getZkOperators(req.request.zkOperatorMode, req.request.zkEngine),
96
+ oprfOperators: getOprfOperators(req.request.zkOperatorMode, req.request.zkEngine),
97
+ logger,
98
+ onStep(step) {
99
+ sendMessageToApp({
100
+ type: 'createClaimOnAvsStep',
101
+ step,
102
+ id: req.id,
103
+ });
104
+ },
105
+ });
106
+ return {
107
+ type: 'createClaimOnAvsDone',
108
+ response: avsRes,
109
+ };
110
+ case 'createClaimOnMechain':
111
+ const mechainRes = await createClaimOnMechain({
112
+ ...req.request,
113
+ context: req.request.context
114
+ ? JSON.parse(req.request.context)
115
+ : undefined,
116
+ zkOperators: getZkOperators(req.request.zkOperatorMode, req.request.zkEngine),
117
+ oprfOperators: getOprfOperators(req.request.zkOperatorMode, req.request.zkEngine),
118
+ client: { url: getWsApiUrlFromBaseUrl() },
119
+ logger,
120
+ onStep(step) {
121
+ sendMessageToApp({
122
+ type: 'createClaimOnMechainStep',
123
+ step,
124
+ id: req.id,
125
+ });
126
+ },
127
+ });
128
+ const claimResponses = [];
129
+ for (let i = 0; i < mechainRes.responses.length; i++) {
130
+ claimResponses[i] = mapToCreateClaimResponse(mechainRes.responses[i]);
131
+ }
132
+ return {
133
+ type: 'createClaimOnMechainDone',
134
+ response: { taskId: mechainRes.taskId, data: claimResponses },
135
+ };
136
+ case 'extractHtmlElement':
137
+ return {
138
+ type: 'extractHtmlElementDone',
139
+ response: extractHTMLElement(req.request.html, req.request.xpathExpression, req.request.contentsOnly),
140
+ };
141
+ case 'extractJSONValueIndex':
142
+ return {
143
+ type: 'extractJSONValueIndexDone',
144
+ response: extractJSONValueIndex(req.request.json, req.request.jsonPath),
145
+ };
146
+ case 'getCurrentMemoryUsage':
147
+ return {
148
+ type: 'getCurrentMemoryUsageDone',
149
+ response: await getCurrentMemoryUsage(),
150
+ };
151
+ case 'setLogLevel':
152
+ makeLogger(true, req.request.logLevel, req.request.sendLogsToApp
153
+ ? (level, message) => (sendMessageToApp({
154
+ type: 'log',
155
+ level,
156
+ message,
157
+ id: req.id,
158
+ }))
159
+ : undefined);
160
+ return { type: 'setLogLevelDone', response: undefined };
161
+ case 'benchmarkZK':
162
+ return { type: 'benchmarkZKDone', response: await benchmark() };
163
+ case 'ping':
164
+ return { type: 'pingDone', response: { pong: new Date().toJSON() } };
165
+ default:
166
+ break;
167
+ }
180
168
  }
181
- function getZkOperators(mode = "default", zkEngine = "snarkjs") {
182
- if (mode === "default") {
183
- return;
184
- }
185
- const operators = {};
186
- for (const alg of ALL_ENC_ALGORITHMS) {
187
- operators[alg] = makeExternalRpcZkOperator(alg, zkEngine);
188
- }
189
- return operators;
169
+ function getZkOperators(mode = 'default', zkEngine = 'snarkjs') {
170
+ // use default snarkJS ops
171
+ if (mode === 'default') {
172
+ return;
173
+ }
174
+ // the native app/window calling implements
175
+ // a ZK operator & wants to use it
176
+ const operators = {};
177
+ for (const alg of ALL_ENC_ALGORITHMS) {
178
+ operators[alg] = makeExternalRpcZkOperator(alg, zkEngine);
179
+ }
180
+ return operators;
190
181
  }
191
- function getOprfOperators(mode = "default", zkEngine = "snarkjs") {
192
- if (mode === "default") {
193
- return;
194
- }
195
- const operators = {};
196
- for (const alg of ALL_ENC_ALGORITHMS) {
197
- operators[alg] = makeExternalRpcOprfOperator(alg, zkEngine);
198
- }
199
- return operators;
182
+ function getOprfOperators(mode = 'default', zkEngine = 'snarkjs') {
183
+ // use default webview ops
184
+ if (mode === 'default') {
185
+ return;
186
+ }
187
+ // the native app/window calling implements
188
+ // a ZK operator & wants to use it
189
+ const operators = {};
190
+ for (const alg of ALL_ENC_ALGORITHMS) {
191
+ operators[alg] = makeExternalRpcOprfOperator(alg, zkEngine);
192
+ }
193
+ return operators;
200
194
  }
201
195
  async function updateProviderParams(transcript, tlsVersion) {
202
- const { req, res } = generateRequstAndResponseFromTranscript(
203
- transcript,
204
- tlsVersion
205
- );
206
- const id = generateRpcRequestId();
207
- const waitForRes = waitForResponse("updateProviderParams", id);
208
- sendMessageToApp({
209
- type: "updateProviderParams",
210
- id,
211
- request: {
212
- request: {
213
- ...req,
214
- body: req.body ? uint8ArrayToStr(req.body) : void 0
215
- },
216
- response: { ...res, body: uint8ArrayToStr(res.body) }
217
- }
218
- });
219
- return waitForRes;
196
+ const { req, res } = generateRequstAndResponseFromTranscript(transcript, tlsVersion);
197
+ const id = generateRpcRequestId();
198
+ const waitForRes = waitForResponse('updateProviderParams', id);
199
+ sendMessageToApp({
200
+ type: 'updateProviderParams',
201
+ id,
202
+ request: {
203
+ request: {
204
+ ...req,
205
+ body: req.body
206
+ ? uint8ArrayToStr(req.body)
207
+ : undefined
208
+ },
209
+ response: { ...res, body: uint8ArrayToStr(res.body) },
210
+ }
211
+ });
212
+ return waitForRes;
220
213
  }
221
214
  function mapToCreateClaimResponse(res) {
222
- if (!res.claim) {
223
- throw AttestorError.fromProto(res.error);
224
- }
225
- return {
226
- identifier: getIdentifierFromClaimInfo(res.claim),
227
- claimData: res.claim,
228
- witnesses: [
229
- {
230
- id: res.signatures.attestorAddress,
231
- url: getWsApiUrlFromBaseUrl()
232
- }
233
- ],
234
- signatures: [
235
- hexlify(res.signatures.claimSignature).toLowerCase()
236
- ]
237
- };
215
+ if (!res.claim) {
216
+ throw AttestorError.fromProto(res.error);
217
+ }
218
+ return {
219
+ identifier: getIdentifierFromClaimInfo(res.claim),
220
+ claimData: res.claim,
221
+ witnesses: [
222
+ {
223
+ id: res.signatures.attestorAddress,
224
+ url: getWsApiUrlFromBaseUrl()
225
+ }
226
+ ],
227
+ signatures: [
228
+ hexlify(res.signatures.claimSignature)
229
+ .toLowerCase()
230
+ ]
231
+ };
238
232
  }
239
- export {
240
- handleIncomingMessage
241
- };
@@ -1,80 +1,82 @@
1
- import { TextDecoder, TextEncoder } from "@kayahr/text-encoding";
2
- import { crypto, uint8ArrayToBinaryStr } from "@reclaimprotocol/tls";
3
- import { fromByteArray, toByteArray } from "base64-js";
4
- import { EventTarget } from "event-target-shim";
5
- if (typeof global === "undefined") {
6
- globalThis.global = globalThis;
1
+ import { TextDecoder, TextEncoder } from '@kayahr/text-encoding';
2
+ import { crypto, uint8ArrayToBinaryStr } from '@reclaimprotocol/tls';
3
+ import { fromByteArray, toByteArray } from 'base64-js';
4
+ import { EventTarget } from 'event-target-shim';
5
+ if (typeof global === 'undefined') {
6
+ globalThis.global = globalThis;
7
7
  }
8
- if (typeof console === "undefined") {
9
- globalThis.console = {
10
- log: print,
11
- error: print,
12
- warn: print,
13
- info: print,
14
- debug: print
15
- };
16
- }
17
- if (typeof globalThis.crypto === "undefined") {
18
- globalThis.crypto = {
8
+ if (typeof console === 'undefined') {
19
9
  // @ts-expect-error
20
- getRandomValues(arr) {
21
- const randVals = crypto.randomBytes(arr.length);
22
- for (let i = 0; i < arr.length; i++) {
23
- arr[i] = randVals[i];
24
- }
25
- return arr;
26
- },
27
- randomBytes(length) {
28
- return crypto.randomBytes(length);
29
- }
30
- };
10
+ globalThis.console = {
11
+ log: print,
12
+ error: print,
13
+ warn: print,
14
+ info: print,
15
+ debug: print,
16
+ };
17
+ }
18
+ if (typeof globalThis.crypto === 'undefined') {
19
+ globalThis.crypto = {
20
+ // @ts-expect-error
21
+ getRandomValues(arr) {
22
+ const randVals = crypto.randomBytes(arr.length);
23
+ for (let i = 0; i < arr.length; i++) {
24
+ arr[i] = randVals[i];
25
+ }
26
+ return arr;
27
+ },
28
+ randomBytes(length) {
29
+ return crypto.randomBytes(length);
30
+ }
31
+ };
31
32
  }
32
- if (typeof globalThis.TextEncoder === "undefined") {
33
- globalThis.TextEncoder = TextEncoder;
33
+ if (typeof globalThis.TextEncoder === 'undefined') {
34
+ globalThis.TextEncoder = TextEncoder;
34
35
  }
35
- if (typeof globalThis.TextDecoder === "undefined") {
36
- globalThis.TextDecoder = TextDecoder;
36
+ if (typeof globalThis.TextDecoder === 'undefined') {
37
+ globalThis.TextDecoder = TextDecoder;
37
38
  }
38
- if (typeof globalThis.EventTarget === "undefined") {
39
- globalThis.EventTarget = EventTarget;
39
+ if (typeof globalThis.EventTarget === 'undefined') {
40
+ globalThis.EventTarget = EventTarget;
40
41
  }
41
- if (typeof globalThis.atob === "undefined") {
42
- globalThis.atob = (a) => uint8ArrayToBinaryStr(toByteArray(a));
42
+ if (typeof globalThis.atob === 'undefined') {
43
+ globalThis.atob = a => uint8ArrayToBinaryStr(toByteArray(a));
43
44
  }
44
- if (typeof globalThis.btoa === "undefined") {
45
- let binaryStringToUint8Array = function(binaryString) {
46
- const uint8Array = new Uint8Array(binaryString.length);
47
- for (let i = 0; i < binaryString.length; i++) {
48
- uint8Array[i] = binaryString.charCodeAt(i);
45
+ if (typeof globalThis.btoa === 'undefined') {
46
+ function binaryStringToUint8Array(binaryString) {
47
+ const uint8Array = new Uint8Array(binaryString.length);
48
+ for (let i = 0; i < binaryString.length; i++) {
49
+ uint8Array[i] = binaryString.charCodeAt(i);
50
+ }
51
+ return uint8Array;
49
52
  }
50
- return uint8Array;
51
- };
52
- globalThis.btoa = (b) => fromByteArray(binaryStringToUint8Array(b));
53
+ globalThis.btoa = b => fromByteArray(binaryStringToUint8Array(b));
53
54
  }
54
- if (typeof globalThis.clearTimeout === "undefined") {
55
- const ogSettimeout = globalThis.setTimeout;
56
- if (!ogSettimeout) {
57
- throw new Error("setTimeout is not defined, no polyfill yet");
58
- }
59
- globalThis.setTimeout = (fn, delayMs, ...args) => {
60
- let aborted = false;
61
- const abortableFn = (...args2) => {
62
- if (aborted) {
63
- return;
64
- }
65
- return fn(...args2);
55
+ if (typeof globalThis.clearTimeout === 'undefined') {
56
+ const ogSettimeout = globalThis.setTimeout;
57
+ if (!ogSettimeout) {
58
+ throw new Error('setTimeout is not defined, no polyfill yet');
59
+ }
60
+ // @ts-expect-error
61
+ globalThis.setTimeout = (fn, delayMs, ...args) => {
62
+ let aborted = false;
63
+ const abortableFn = (...args) => {
64
+ if (aborted) {
65
+ return;
66
+ }
67
+ return fn(...args);
68
+ };
69
+ const val = ogSettimeout(abortableFn, delayMs, ...args);
70
+ return {
71
+ original: val,
72
+ abort() {
73
+ aborted = true;
74
+ }
75
+ };
66
76
  };
67
- const val = ogSettimeout(abortableFn, delayMs, ...args);
68
- return {
69
- original: val,
70
- abort() {
71
- aborted = true;
72
- }
77
+ globalThis.clearTimeout = (id) => {
78
+ if (typeof id === 'object' && !!id && 'abort' in id) {
79
+ id.abort();
80
+ }
73
81
  };
74
- };
75
- globalThis.clearTimeout = (id) => {
76
- if (typeof id === "object" && !!id && "abort" in id) {
77
- id.abort();
78
- }
79
- };
80
82
  }
@@ -1,15 +1,20 @@
1
- import { URL as WHATWG_URL } from "whatwg-url";
2
- import { CloseEventPolyfill, ErrorEventPolyfill, EventPolyfill, MessageEventPolyfill } from "../../external-rpc/jsc-polyfills/event.js";
3
- import { RPCWebSocket } from "../../external-rpc/jsc-polyfills/ws.js";
4
- if (typeof globalThis.URL === "undefined") {
5
- globalThis.URL = WHATWG_URL;
1
+ import { URL as WHATWG_URL } from 'whatwg-url';
2
+ import { CloseEventPolyfill, ErrorEventPolyfill, EventPolyfill, MessageEventPolyfill } from "./event.js";
3
+ import { RPCWebSocket } from "./ws.js";
4
+ if (typeof globalThis.URL === 'undefined') {
5
+ globalThis.URL = WHATWG_URL;
6
6
  }
7
- if (typeof globalThis.Event === "undefined") {
8
- globalThis.Event = EventPolyfill;
9
- globalThis.ErrorEvent = ErrorEventPolyfill;
10
- globalThis.CloseEvent = CloseEventPolyfill;
11
- globalThis.MessageEvent = MessageEventPolyfill;
7
+ if (typeof globalThis.Event === 'undefined') {
8
+ // @ts-expect-error
9
+ globalThis.Event = EventPolyfill;
10
+ // @ts-expect-error
11
+ globalThis.ErrorEvent = ErrorEventPolyfill;
12
+ // @ts-expect-error
13
+ globalThis.CloseEvent = CloseEventPolyfill;
14
+ // @ts-expect-error
15
+ globalThis.MessageEvent = MessageEventPolyfill;
12
16
  }
13
- if (typeof globalThis.WebSocket === "undefined") {
14
- globalThis.WebSocket = RPCWebSocket;
17
+ if (typeof globalThis.WebSocket === 'undefined') {
18
+ // @ts-expect-error
19
+ globalThis.WebSocket = RPCWebSocket;
15
20
  }