@reclaimprotocol/attestor-core 3.1.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/avs/contracts/index.js +18 -8
- package/lib/avs/utils/tasks.d.ts +1 -1
- package/lib/client/create-claim.d.ts +2 -2
- package/lib/client/create-claim.js +89 -33
- package/lib/client/utils/client-socket.d.ts +3 -1
- package/lib/client/utils/client-socket.js +25 -8
- package/lib/config/index.d.ts +4 -0
- package/lib/config/index.js +8 -3
- package/lib/index.js +18 -8
- package/lib/proto/api.d.ts +80 -2
- package/lib/proto/api.js +853 -101
- package/lib/providers/http/index.js +221 -128
- package/lib/providers/http/utils.d.ts +3 -6
- package/lib/providers/http/utils.js +13 -11
- package/lib/providers/index.js +1 -3
- package/lib/scripts/generate-receipt.js +6 -3
- package/lib/scripts/generate-toprf-keys.d.ts +1 -0
- package/lib/scripts/generate-toprf-keys.js +23 -0
- package/lib/server/create-server.js +14 -7
- package/lib/server/handlers/claimTunnel.js +33 -10
- package/lib/server/handlers/createTunnel.js +44 -8
- package/lib/server/handlers/disconnectTunnel.js +2 -2
- package/lib/server/handlers/index.js +4 -2
- package/lib/server/handlers/init.js +17 -2
- package/lib/server/handlers/toprf.d.ts +2 -0
- package/lib/server/handlers/toprf.js +21 -0
- package/lib/server/socket.d.ts +5 -3
- package/lib/server/socket.js +25 -5
- package/lib/server/tunnels/make-tcp-tunnel.js +10 -24
- package/lib/server/utils/apm.js +1 -1
- package/lib/server/utils/assert-valid-claim-request.d.ts +2 -2
- package/lib/server/utils/assert-valid-claim-request.js +17 -9
- package/lib/server/utils/dns.d.ts +1 -0
- package/lib/server/utils/dns.js +22 -0
- package/lib/server/utils/generics.d.ts +1 -1
- package/lib/tests/describe-with-server.d.ts +0 -2
- package/lib/tests/describe-with-server.js +1 -4
- package/lib/tests/mock-provider-server.d.ts +1 -1
- package/lib/tests/test.auth.d.ts +1 -0
- package/lib/tests/test.auth.js +75 -0
- package/lib/tests/test.bgp-listener.d.ts +1 -0
- package/lib/tests/test.bgp-listener.js +169 -0
- package/lib/tests/test.claim-creation.js +100 -7
- package/lib/tests/test.http-parser.d.ts +1 -1
- package/lib/tests/test.http-parser.js +7 -5
- package/lib/tests/test.http-provider-utils.js +155 -30
- package/lib/tests/test.http-provider.js +50 -7
- package/lib/tests/test.zk.js +54 -4
- package/lib/tests/utils.d.ts +6 -0
- package/lib/tests/utils.js +16 -1
- package/lib/types/bgp.d.ts +11 -0
- package/lib/types/bgp.js +3 -0
- package/lib/types/claims.d.ts +14 -5
- package/lib/types/client.d.ts +30 -3
- package/lib/types/general.d.ts +12 -0
- package/lib/types/handlers.d.ts +4 -4
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +2 -1
- package/lib/types/providers.d.ts +9 -9
- package/lib/types/providers.gen.d.ts +12 -152
- package/lib/types/providers.gen.js +2 -6
- package/lib/types/zk.d.ts +11 -2
- package/lib/utils/auth.d.ts +7 -0
- package/lib/utils/auth.js +64 -0
- package/lib/utils/b64-json.d.ts +2 -0
- package/lib/utils/b64-json.js +23 -0
- package/lib/utils/bgp-listener.d.ts +7 -0
- package/lib/utils/bgp-listener.js +126 -0
- package/lib/utils/claims.js +3 -3
- package/lib/utils/generics.d.ts +5 -5
- package/lib/utils/generics.js +3 -3
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +3 -1
- package/lib/utils/redactions.d.ts +19 -6
- package/lib/utils/redactions.js +41 -4
- package/lib/utils/socket-base.d.ts +3 -2
- package/lib/utils/socket-base.js +7 -2
- package/lib/utils/ws.d.ts +5 -5
- package/lib/utils/ws.js +27 -10
- package/lib/utils/zk.d.ts +12 -7
- package/lib/utils/zk.js +197 -42
- package/lib/window-rpc/setup-window-rpc.js +29 -8
- package/lib/window-rpc/types.d.ts +16 -21
- package/lib/window-rpc/utils.d.ts +2 -1
- package/lib/window-rpc/utils.js +27 -1
- package/lib/window-rpc/window-rpc-zk.d.ts +8 -3
- package/lib/window-rpc/window-rpc-zk.js +58 -45
- package/package.json +24 -22
|
@@ -15,16 +15,26 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.ReclaimServiceManager__factory = exports.factories = void 0;
|
|
27
37
|
exports.factories = __importStar(require("./factories"));
|
|
28
38
|
var ReclaimServiceManager__factory_1 = require("./factories/ReclaimServiceManager__factory");
|
|
29
39
|
Object.defineProperty(exports, "ReclaimServiceManager__factory", { enumerable: true, get: function () { return ReclaimServiceManager__factory_1.ReclaimServiceManager__factory; } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZzL2NvbnRyYWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSx5REFBeUM7QUFDekMsNkZBQTRGO0FBQW5GLGdKQUFBLDhCQUE4QixPQUFBIn0=
|
package/lib/avs/utils/tasks.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ export declare function createNewClaimRequestOnChain({ request, payer, chainId,
|
|
|
18
18
|
task: NewTaskCreatedEventObject;
|
|
19
19
|
tx: ethers.ContractReceipt;
|
|
20
20
|
}>;
|
|
21
|
-
export declare function signClaimRequest(request: IReclaimServiceManager.ClaimRequestStruct, owner: Wallet, chainId?: string): Promise<Uint8Array
|
|
21
|
+
export declare function signClaimRequest(request: IReclaimServiceManager.ClaimRequestStruct, owner: Wallet, chainId?: string): Promise<Uint8Array<ArrayBufferLike>>;
|
|
22
22
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CreateClaimOnAttestorOpts, ProviderName } from '../types';
|
|
1
|
+
import type { CreateClaimOnAttestorOpts, ProviderName } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Create a claim on the attestor
|
|
4
4
|
*/
|
|
5
|
-
export declare function createClaimOnAttestor<N extends ProviderName>({ logger: _logger, ...opts }: CreateClaimOnAttestorOpts<N>): Promise<import("../proto/api").ClaimTunnelResponse>;
|
|
5
|
+
export declare function createClaimOnAttestor<N extends ProviderName>({ logger: _logger, maxRetries, ...opts }: CreateClaimOnAttestorOpts<N>): Promise<import("../proto/api").ClaimTunnelResponse>;
|
|
@@ -14,7 +14,7 @@ const tls_2 = require("../utils/tls");
|
|
|
14
14
|
/**
|
|
15
15
|
* Create a claim on the attestor
|
|
16
16
|
*/
|
|
17
|
-
function createClaimOnAttestor({ logger: _logger, ...opts }) {
|
|
17
|
+
function createClaimOnAttestor({ logger: _logger, maxRetries = 3, ...opts }) {
|
|
18
18
|
const logger = _logger
|
|
19
19
|
// if the client has already been initialised
|
|
20
20
|
// and no logger is provided, use the client's logger
|
|
@@ -25,7 +25,7 @@ function createClaimOnAttestor({ logger: _logger, ...opts }) {
|
|
|
25
25
|
logger: attempt
|
|
26
26
|
? logger.child({ attempt })
|
|
27
27
|
: logger
|
|
28
|
-
})), { logger, shouldRetry });
|
|
28
|
+
})), { maxRetries, logger, shouldRetry });
|
|
29
29
|
}
|
|
30
30
|
function shouldRetry(err) {
|
|
31
31
|
if (err instanceof TypeError) {
|
|
@@ -33,17 +33,19 @@ function shouldRetry(err) {
|
|
|
33
33
|
}
|
|
34
34
|
return err instanceof utils_1.AttestorError
|
|
35
35
|
&& err.code !== 'ERROR_INVALID_CLAIM'
|
|
36
|
-
&& err.code !== 'ERROR_BAD_REQUEST'
|
|
36
|
+
&& err.code !== 'ERROR_BAD_REQUEST'
|
|
37
|
+
&& err.code !== 'ERROR_AUTHENTICATION_FAILED';
|
|
37
38
|
}
|
|
38
|
-
async function _createClaimOnAttestor({ name, params, secretParams, context, onStep, ownerPrivateKey, client: clientInit, logger = utils_1.logger, timestampS, updateProviderParams, ...zkOpts }) {
|
|
39
|
+
async function _createClaimOnAttestor({ name, params, secretParams, context, onStep, ownerPrivateKey, client: clientInit, logger = utils_1.logger, timestampS, updateProviderParams, updateParametersFromOprfData = true, ...zkOpts }) {
|
|
39
40
|
const provider = providers_1.providers[name];
|
|
40
|
-
const hostPort = (0, utils_1.getProviderValue)(params, provider.hostPort);
|
|
41
|
+
const hostPort = (0, utils_1.getProviderValue)(params, provider.hostPort, secretParams);
|
|
41
42
|
const geoLocation = (0, utils_1.getProviderValue)(params, provider.geoLocation);
|
|
42
43
|
const providerTlsOpts = (0, utils_1.getProviderValue)(params, provider.additionalClientOptions);
|
|
43
44
|
const tlsOpts = {
|
|
44
45
|
...(0, tls_2.getDefaultTlsOptions)(),
|
|
45
46
|
...providerTlsOpts,
|
|
46
47
|
};
|
|
48
|
+
const { zkEngine = 'snarkjs' } = zkOpts;
|
|
47
49
|
let redactionMode = (0, utils_1.getProviderValue)(params, provider.writeRedactionMode);
|
|
48
50
|
const [host, port] = hostPort.split(':');
|
|
49
51
|
const resParser = (0, utils_1.makeHttpResponseParser)();
|
|
@@ -58,9 +60,14 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
58
60
|
geoLocation,
|
|
59
61
|
id: (0, utils_1.generateTunnelId)()
|
|
60
62
|
};
|
|
63
|
+
const authRequest = 'authRequest' in clientInit
|
|
64
|
+
? (typeof clientInit.authRequest === 'function'
|
|
65
|
+
? await clientInit.authRequest()
|
|
66
|
+
: clientInit.authRequest)
|
|
67
|
+
: undefined;
|
|
61
68
|
const tunnel = await (0, make_rpc_tls_tunnel_1.makeRpcTlsTunnel)({
|
|
62
69
|
tlsOpts,
|
|
63
|
-
connect: (
|
|
70
|
+
connect: (connectMsgs) => {
|
|
64
71
|
let created = false;
|
|
65
72
|
if ('metadata' in clientInit) {
|
|
66
73
|
client = clientInit;
|
|
@@ -68,13 +75,17 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
68
75
|
else {
|
|
69
76
|
client = (0, attestor_pool_1.getAttestorClientFromPool)(clientInit.url, () => {
|
|
70
77
|
created = true;
|
|
71
|
-
return {
|
|
78
|
+
return {
|
|
79
|
+
authRequest: authRequest,
|
|
80
|
+
initMessages: connectMsgs,
|
|
81
|
+
logger
|
|
82
|
+
};
|
|
72
83
|
});
|
|
73
84
|
}
|
|
74
85
|
if (!created) {
|
|
75
86
|
client
|
|
76
87
|
.waitForInit()
|
|
77
|
-
.then(() => client.sendMessage(...
|
|
88
|
+
.then(() => client.sendMessage(...connectMsgs))
|
|
78
89
|
.catch(err => {
|
|
79
90
|
logger.error({ err }, 'error in sending init msgs');
|
|
80
91
|
});
|
|
@@ -112,7 +123,7 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
112
123
|
}
|
|
113
124
|
const { redactions, data: requestStr } = provider.createRequest(
|
|
114
125
|
// @ts-ignore
|
|
115
|
-
secretParams, params);
|
|
126
|
+
secretParams, params, logger);
|
|
116
127
|
const requestData = typeof requestStr === 'string'
|
|
117
128
|
? (0, tls_1.strToUint8Array)(requestStr)
|
|
118
129
|
: requestStr;
|
|
@@ -150,14 +161,15 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
150
161
|
const signatureAlg = signatures_1.SIGNATURES[client.metadata.signatureType];
|
|
151
162
|
let serverIV;
|
|
152
163
|
let clientIV;
|
|
153
|
-
const serverBlock =
|
|
164
|
+
const [serverBlock] = getLastBlocks('server', 1);
|
|
154
165
|
if (serverBlock && serverBlock.message.type === 'ciphertext') {
|
|
155
166
|
serverIV = serverBlock.message.fixedIv;
|
|
156
167
|
}
|
|
157
|
-
const clientBlock =
|
|
168
|
+
const [clientBlock] = getLastBlocks('client', 1);
|
|
158
169
|
if (clientBlock && clientBlock.message.type === 'ciphertext') {
|
|
159
170
|
clientIV = clientBlock.message.fixedIv;
|
|
160
171
|
}
|
|
172
|
+
const transcript = await generateTranscript();
|
|
161
173
|
// now that we have the full transcript, we need
|
|
162
174
|
// to generate the ZK proofs & send them to the attestor
|
|
163
175
|
// to verify & sign our claim
|
|
@@ -170,8 +182,10 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
170
182
|
timestampS: timestampS !== null && timestampS !== void 0 ? timestampS : (0, utils_1.unixTimestampSeconds)(),
|
|
171
183
|
owner: getAddress(),
|
|
172
184
|
},
|
|
173
|
-
transcript:
|
|
174
|
-
zkEngine:
|
|
185
|
+
transcript: transcript,
|
|
186
|
+
zkEngine: zkEngine === 'gnark'
|
|
187
|
+
? api_1.ZKProofEngine.ZK_ENGINE_GNARK
|
|
188
|
+
: api_1.ZKProofEngine.ZK_ENGINE_SNARKJS,
|
|
175
189
|
fixedServerIV: serverIV,
|
|
176
190
|
fixedClientIV: clientIV,
|
|
177
191
|
});
|
|
@@ -206,11 +220,13 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
206
220
|
}
|
|
207
221
|
}
|
|
208
222
|
async function writeRedactedZk() {
|
|
223
|
+
let blocksWritten = tunnel.transcript.length;
|
|
209
224
|
await tunnel.tls.write(requestData);
|
|
210
|
-
|
|
225
|
+
blocksWritten = tunnel.transcript.length - blocksWritten;
|
|
226
|
+
setRevealOfLastSentBlocks({
|
|
211
227
|
type: 'zk',
|
|
212
228
|
redactedPlaintext: (0, utils_1.redactSlices)(requestData, redactions)
|
|
213
|
-
});
|
|
229
|
+
}, blocksWritten);
|
|
214
230
|
}
|
|
215
231
|
/**
|
|
216
232
|
* Write data to the tunnel, with the option to mark the packet
|
|
@@ -223,32 +239,41 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
223
239
|
if (reveal !== lastMsgRevealed) {
|
|
224
240
|
await tunnel.tls.updateTrafficKeys();
|
|
225
241
|
}
|
|
242
|
+
let blocksWritten = tunnel.transcript.length;
|
|
226
243
|
await tunnel.write(data);
|
|
244
|
+
blocksWritten = tunnel.transcript.length - blocksWritten;
|
|
227
245
|
// now we mark the packet to be revealed to the attestor
|
|
228
|
-
|
|
246
|
+
setRevealOfLastSentBlocks(reveal ? { type: 'complete' } : undefined, blocksWritten);
|
|
229
247
|
lastMsgRevealed = reveal;
|
|
230
248
|
}
|
|
231
|
-
function
|
|
232
|
-
const
|
|
233
|
-
if (!
|
|
249
|
+
function setRevealOfLastSentBlocks(reveal, nBlocks = 1) {
|
|
250
|
+
const lastBlocks = getLastBlocks('client', nBlocks);
|
|
251
|
+
if (!lastBlocks.length) {
|
|
234
252
|
return;
|
|
235
253
|
}
|
|
236
|
-
|
|
254
|
+
for (const block of lastBlocks) {
|
|
255
|
+
setRevealOfMessage(block.message, reveal);
|
|
256
|
+
}
|
|
237
257
|
}
|
|
238
|
-
function
|
|
258
|
+
function getLastBlocks(sender, nBlocks) {
|
|
239
259
|
// set the correct index for the server blocks
|
|
260
|
+
const lastBlocks = [];
|
|
240
261
|
for (let i = tunnel.transcript.length - 1; i >= 0; i--) {
|
|
241
262
|
const block = tunnel.transcript[i];
|
|
242
263
|
if (block.sender === sender) {
|
|
243
|
-
|
|
264
|
+
lastBlocks.push(block);
|
|
265
|
+
if (lastBlocks.length === nBlocks) {
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
244
268
|
}
|
|
245
269
|
}
|
|
270
|
+
return lastBlocks;
|
|
246
271
|
}
|
|
247
272
|
/**
|
|
248
273
|
* Generate transcript with reveal data for the attestor to verify
|
|
249
274
|
*/
|
|
250
275
|
async function generateTranscript() {
|
|
251
|
-
addServerSideReveals();
|
|
276
|
+
await addServerSideReveals();
|
|
252
277
|
const startMs = Date.now();
|
|
253
278
|
const revealedMessages = await (0, utils_1.preparePacketsForReveal)(tunnel.transcript, revealMap, {
|
|
254
279
|
logger,
|
|
@@ -273,7 +298,7 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
273
298
|
* the provider's redaction function if available.
|
|
274
299
|
* Otherwise, opts to reveal all server side blocks.
|
|
275
300
|
*/
|
|
276
|
-
function addServerSideReveals() {
|
|
301
|
+
async function addServerSideReveals() {
|
|
277
302
|
const allPackets = tunnel.transcript;
|
|
278
303
|
let serverPacketsToReveal = 'all';
|
|
279
304
|
const packets = [];
|
|
@@ -298,9 +323,10 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
298
323
|
}
|
|
299
324
|
}
|
|
300
325
|
if (provider.getResponseRedactions) {
|
|
301
|
-
serverPacketsToReveal = (0, utils_1.getBlocksToReveal)(serverBlocks, total => provider.getResponseRedactions(total, params));
|
|
326
|
+
serverPacketsToReveal = await (0, utils_1.getBlocksToReveal)(serverBlocks, total => provider.getResponseRedactions(total, params, logger), performOprf);
|
|
302
327
|
}
|
|
303
|
-
const revealedPackets = packets
|
|
328
|
+
const revealedPackets = packets
|
|
329
|
+
.filter(p => p.sender === 'client');
|
|
304
330
|
if (serverPacketsToReveal === 'all') {
|
|
305
331
|
// reveal all server side blocks
|
|
306
332
|
for (const { message, sender } of allPackets) {
|
|
@@ -311,18 +337,28 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
311
337
|
revealedPackets.push(...packets.filter(p => p.sender === 'server'));
|
|
312
338
|
}
|
|
313
339
|
else {
|
|
314
|
-
for (const { block, redactedPlaintext } of serverPacketsToReveal) {
|
|
340
|
+
for (const { block, redactedPlaintext, toprfs } of serverPacketsToReveal) {
|
|
315
341
|
setRevealOfMessage(block.message, {
|
|
316
342
|
type: 'zk',
|
|
317
|
-
redactedPlaintext
|
|
343
|
+
redactedPlaintext,
|
|
344
|
+
toprfs
|
|
318
345
|
});
|
|
319
346
|
revealedPackets.push({ sender: 'server', message: redactedPlaintext });
|
|
347
|
+
if (updateParametersFromOprfData && toprfs) {
|
|
348
|
+
let strParams = (0, utils_1.canonicalStringify)(params);
|
|
349
|
+
for (const toprf of toprfs) {
|
|
350
|
+
strParams = strParams.replaceAll((0, utils_1.uint8ArrayToStr)(toprf.plaintext), (0, utils_1.binaryHashToStr)(toprf.nullifier, toprf.dataLocation.length));
|
|
351
|
+
}
|
|
352
|
+
params = JSON.parse(strParams);
|
|
353
|
+
}
|
|
320
354
|
}
|
|
321
355
|
}
|
|
322
|
-
provider.assertValidProviderReceipt(revealedPackets, {
|
|
356
|
+
await provider.assertValidProviderReceipt(revealedPackets, {
|
|
323
357
|
...params,
|
|
324
|
-
|
|
325
|
-
|
|
358
|
+
// provide secret params for proper
|
|
359
|
+
// request body validation
|
|
360
|
+
secretParams,
|
|
361
|
+
}, logger);
|
|
326
362
|
// reveal all handshake blocks
|
|
327
363
|
// so the attestor can verify there was no
|
|
328
364
|
// hanky-panky
|
|
@@ -338,6 +374,26 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
338
374
|
setRevealOfMessage(p.message, { type: 'complete' });
|
|
339
375
|
}
|
|
340
376
|
}
|
|
377
|
+
async function performOprf(plaintext) {
|
|
378
|
+
var _a;
|
|
379
|
+
logger.info({ length: plaintext.length }, 'generating OPRF...');
|
|
380
|
+
const oprfOperator = ((_a = zkOpts.oprfOperators) === null || _a === void 0 ? void 0 : _a['chacha20'])
|
|
381
|
+
|| (0, utils_1.makeDefaultOPRFOperator)('chacha20', zkEngine, logger);
|
|
382
|
+
const reqData = await oprfOperator.generateOPRFRequestData(plaintext, config_1.TOPRF_DOMAIN_SEPARATOR, logger);
|
|
383
|
+
const res = await client.rpc('toprf', {
|
|
384
|
+
maskedData: reqData.maskedData,
|
|
385
|
+
engine: (0, utils_1.getEngineProto)(zkEngine)
|
|
386
|
+
});
|
|
387
|
+
const nullifier = await oprfOperator.finaliseOPRF(client.initResponse.toprfPublicKey, reqData, [res]);
|
|
388
|
+
const data = {
|
|
389
|
+
nullifier,
|
|
390
|
+
responses: [res],
|
|
391
|
+
mask: reqData.mask,
|
|
392
|
+
dataLocation: undefined,
|
|
393
|
+
plaintext
|
|
394
|
+
};
|
|
395
|
+
return data;
|
|
396
|
+
}
|
|
341
397
|
function setRevealOfMessage(message, reveal) {
|
|
342
398
|
if (reveal) {
|
|
343
399
|
revealMap.set(message, reveal);
|
|
@@ -346,9 +402,9 @@ async function _createClaimOnAttestor({ name, params, secretParams, context, onS
|
|
|
346
402
|
revealMap.delete(message);
|
|
347
403
|
}
|
|
348
404
|
function getAddress() {
|
|
349
|
-
const { getAddress, getPublicKey
|
|
405
|
+
const { getAddress, getPublicKey } = signatureAlg;
|
|
350
406
|
const pubKey = getPublicKey(ownerPrivateKey);
|
|
351
407
|
return getAddress(pubKey);
|
|
352
408
|
}
|
|
353
409
|
}
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNsYWltLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jcmVhdGUtY2xhaW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQ0Esc0RBbUJDO0FBbkRELDhDQUF3RTtBQUN4RSxnRkFBeUU7QUFDekUsa0VBQTBFO0FBQzFFLHVDQUErQztBQUMvQyx1Q0FBaUU7QUFDakUsNkNBQXlDO0FBRXpDLHFDQVlrQjtBQUNsQiwrQ0FBc0Q7QUFDdEQscURBQWlEO0FBQ2pELHVDQUFvRDtBQU9wRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUNwQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQWdDO0lBRTFELE1BQU0sTUFBTSxHQUFHLE9BQU87UUFDckIsNkNBQTZDO1FBQzdDLHFEQUFxRDtRQUNyRCx5Q0FBeUM7V0FDdEMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxDQUFBO0lBQzNELE9BQU8sSUFBQSw0QkFBa0IsRUFDeEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUNWLHNCQUFzQixDQUFJO1FBQ3pCLEdBQUcsSUFBSTtRQUNQLE1BQU0sRUFBRSxPQUFPO1lBQ2QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsTUFBTTtLQUNULENBQUMsQ0FDRixFQUNELEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUN2QixDQUFBO0FBQ0YsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVU7SUFDOUIsSUFBRyxHQUFHLFlBQVksU0FBUyxFQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUE7SUFDYixDQUFDO0lBRUQsT0FBTyxHQUFHLFlBQVkscUJBQWE7V0FDL0IsR0FBRyxDQUFDLElBQUks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
|
|
410
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNsYWltLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jcmVhdGUtY2xhaW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE0Q0Esc0RBcUJDO0FBakVELDhDQUF3RTtBQUN4RSxnRkFBeUU7QUFDekUsa0VBQTBFO0FBQzFFLHVDQUF1RTtBQUN2RSx1Q0FBaUU7QUFDakUsNkNBQXlDO0FBU3pDLHFDQWlCa0I7QUFDbEIsK0NBQXNEO0FBQ3RELHFEQUFpRDtBQUNqRCx1Q0FBb0Q7QUFPcEQ7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDcEMsRUFDQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQ1Y7SUFFL0IsTUFBTSxNQUFNLEdBQUcsT0FBTztRQUNyQiw2Q0FBNkM7UUFDN0MscURBQXFEO1FBQ3JELHlDQUF5QztXQUN0QyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBTSxDQUFDLENBQUE7SUFDM0QsT0FBTyxJQUFBLDRCQUFrQixFQUN4QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQ1Ysc0JBQXNCLENBQUk7UUFDekIsR0FBRyxJQUFJO1FBQ1AsTUFBTSxFQUFFLE9BQU87WUFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxNQUFNO0tBQ1QsQ0FBQyxDQUNGLEVBQ0QsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUNuQyxDQUFBO0FBQ0YsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVU7SUFDOUIsSUFBRyxHQUFHLFlBQVksU0FBUyxFQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUE7SUFDYixDQUFDO0lBRUQsT0FBTyxHQUFHLFlB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
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { InitResponse } from '../../proto/api';
|
|
1
2
|
import { IAttestorClient, IAttestorClientCreateOpts, RPCRequestData, RPCResponseData, RPCType } from '../../types';
|
|
2
3
|
import { AttestorSocket } from '../../utils/socket-base';
|
|
3
4
|
export declare class AttestorClient extends AttestorSocket implements IAttestorClient {
|
|
4
5
|
private waitForInitPromise;
|
|
5
|
-
|
|
6
|
+
initResponse?: InitResponse;
|
|
7
|
+
constructor({ url, initMessages, signatureType, logger, authRequest, makeWebSocket }: IAttestorClientCreateOpts);
|
|
6
8
|
rpc<T extends RPCType>(type: T, request: Partial<RPCRequestData<T>>): Promise<Exclude<import("../../proto/api").RPCMessage[`${T}Response`], undefined>>;
|
|
7
9
|
waitForResponse<T extends RPCType>(id: number): Promise<RPCResponseData<T>>;
|
|
8
10
|
waitForInit: () => Promise<void>;
|
|
@@ -8,14 +8,18 @@ const utils_2 = require("../../utils");
|
|
|
8
8
|
const socket_base_1 = require("../../utils/socket-base");
|
|
9
9
|
const ws_1 = require("../../utils/ws");
|
|
10
10
|
class AttestorClient extends socket_base_1.AttestorSocket {
|
|
11
|
-
constructor({ url, initMessages = [], signatureType = config_1.DEFAULT_METADATA.signatureType, logger = utils_2.logger,
|
|
12
|
-
const initRequest = {
|
|
11
|
+
constructor({ url, initMessages = [], signatureType = config_1.DEFAULT_METADATA.signatureType, logger = utils_2.logger, authRequest, makeWebSocket = ws_1.makeWebSocket }) {
|
|
12
|
+
const initRequest = {
|
|
13
|
+
...config_1.DEFAULT_METADATA,
|
|
14
|
+
signatureType,
|
|
15
|
+
auth: authRequest
|
|
16
|
+
};
|
|
13
17
|
const msg = (0, utils_2.packRpcMessages)({ initRequest }, ...initMessages);
|
|
14
18
|
const initRequestBytes = api_1.RPCMessages.encode(msg).finish();
|
|
15
19
|
const initRequestB64 = utils_1.base64.encode(initRequestBytes);
|
|
16
20
|
url = new URL(url.toString());
|
|
17
21
|
url.searchParams.set('messages', initRequestB64);
|
|
18
|
-
super(
|
|
22
|
+
super(makeWebSocket(url), initRequest, logger);
|
|
19
23
|
this.waitForInit = () => {
|
|
20
24
|
if (this.isClosed) {
|
|
21
25
|
throw new utils_2.AttestorError('ERROR_NETWORK_ERROR', 'Client connection already closed');
|
|
@@ -25,16 +29,29 @@ class AttestorClient extends socket_base_1.AttestorSocket {
|
|
|
25
29
|
const initReqId = msg.messages[0].id;
|
|
26
30
|
this.waitForInitPromise = this
|
|
27
31
|
.waitForResponse(initReqId)
|
|
28
|
-
.then(
|
|
32
|
+
.then(res => {
|
|
29
33
|
logger.info('client initialised');
|
|
30
34
|
this.isInitialised = true;
|
|
35
|
+
this.initResponse = res;
|
|
31
36
|
});
|
|
37
|
+
// swallow the error if anything bad happens, and we've no
|
|
38
|
+
// catch block to handle it
|
|
39
|
+
this.waitForInitPromise
|
|
40
|
+
.catch(() => { });
|
|
32
41
|
this.addEventListener('connection-terminated', ev => (logger.info({ err: ev.data }, 'connection terminated')));
|
|
33
42
|
}
|
|
34
43
|
async rpc(type, request) {
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
44
|
+
this.logger.debug({ type }, 'sending rpc request');
|
|
45
|
+
const now = Date.now();
|
|
46
|
+
try {
|
|
47
|
+
const { messages: [{ id }] } = await this.sendMessage({ [(0, utils_2.getRpcRequestType)(type)]: request });
|
|
48
|
+
const rslt = await this.waitForResponse(id);
|
|
49
|
+
return rslt;
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
const timeTakenMs = Date.now() - now;
|
|
53
|
+
this.logger.debug({ type, timeTakenMs }, 'received rpc response');
|
|
54
|
+
}
|
|
38
55
|
}
|
|
39
56
|
waitForResponse(id) {
|
|
40
57
|
if (this.isClosed) {
|
|
@@ -74,4 +91,4 @@ class AttestorClient extends socket_base_1.AttestorSocket {
|
|
|
74
91
|
}
|
|
75
92
|
}
|
|
76
93
|
exports.AttestorClient = AttestorClient;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvdXRpbHMvY2xpZW50LXNvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBeUM7QUFDekMsdUNBQTZDO0FBQzdDLHVDQUF5RDtBQUV6RCxxQ0FBK0Y7QUFDL0YsdURBQXNEO0FBQ3RELHFDQUFvRTtBQUVwRSxNQUFhLGNBQWUsU0FBUSw0QkFBYztJQU1qRCxZQUFZLEVBQ1gsR0FBRyxFQUNILFlBQVksR0FBRyxFQUFFLEVBQ2pCLGFBQWEsR0FBRyx5QkFBZ0IsQ0FBQyxhQUFhLEVBQzlDLE1BQU0sR0FBRyxjQUFNLEVBQ2YsV0FBVyxFQUNYLGFBQWEsR0FBRyxrQkFBb0IsRUFDVDtRQUMzQixNQUFNLFdBQVcsR0FBRztZQUNuQixHQUFHLHlCQUFnQjtZQUNuQixhQUFhO1lBQ2IsSUFBSSxFQUFFLFdBQVc7U0FDakIsQ0FBQTtRQUNELE1BQU0sR0FBRyxHQUFHLElBQUEsdUJBQWUsRUFBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUE7UUFDN0QsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN6RCxNQUFNLGNBQWMsR0FBRyxjQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFFdEQsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzdCLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUVoRCxLQUFLLENBQ0osYUFBYSxDQUFDLEdBQUcsQ0FBYyxFQUMvQixXQUFXLEVBQ1gsTUFBTSxDQUNOLENBQUE7UUE0RkYsZ0JBQVcsR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBRyxJQUFJLENBQUMs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
|
package/lib/config/index.d.ts
CHANGED
|
@@ -18,3 +18,7 @@ export declare const PING_INTERVAL_MS = 10000;
|
|
|
18
18
|
* @default 30s
|
|
19
19
|
*/
|
|
20
20
|
export declare const MAX_NO_DATA_INTERVAL_MS = 30000;
|
|
21
|
+
export declare const MAX_PAYLOAD_SIZE: number;
|
|
22
|
+
export declare const DEFAULT_AUTH_EXPIRY_S: number;
|
|
23
|
+
export declare const TOPRF_DOMAIN_SEPARATOR = "reclaim-toprf";
|
|
24
|
+
export declare const BGP_WS_URL = "wss://ris-live.ripe.net/v1/ws/?client=reclaim-hijack-detector";
|
package/lib/config/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MAX_NO_DATA_INTERVAL_MS = exports.PING_INTERVAL_MS = exports.DEFAULT_METADATA = exports.MAX_CLAIM_TIMESTAMP_DIFF_S = exports.DNS_SERVERS = exports.CONNECTION_TIMEOUT_MS = exports.API_SERVER_PORT = exports.DEFAULT_REMOTE_FILE_FETCH_BASE_URL = exports.BROWSER_RPC_PATHNAME = exports.WS_PATHNAME = exports.DEFAULT_HTTPS_PORT = exports.RECLAIM_USER_AGENT = exports.DEFAULT_ZK_CONCURRENCY = exports.MAX_ZK_CHUNKS = void 0;
|
|
3
|
+
exports.BGP_WS_URL = exports.TOPRF_DOMAIN_SEPARATOR = exports.DEFAULT_AUTH_EXPIRY_S = exports.MAX_PAYLOAD_SIZE = exports.MAX_NO_DATA_INTERVAL_MS = exports.PING_INTERVAL_MS = exports.DEFAULT_METADATA = exports.MAX_CLAIM_TIMESTAMP_DIFF_S = exports.DNS_SERVERS = exports.CONNECTION_TIMEOUT_MS = exports.API_SERVER_PORT = exports.DEFAULT_REMOTE_FILE_FETCH_BASE_URL = exports.BROWSER_RPC_PATHNAME = exports.WS_PATHNAME = exports.DEFAULT_HTTPS_PORT = exports.RECLAIM_USER_AGENT = exports.DEFAULT_ZK_CONCURRENCY = exports.MAX_ZK_CHUNKS = void 0;
|
|
4
4
|
const api_1 = require("../proto/api");
|
|
5
5
|
exports.MAX_ZK_CHUNKS = 200;
|
|
6
6
|
exports.DEFAULT_ZK_CONCURRENCY = 10;
|
|
@@ -20,7 +20,8 @@ exports.DNS_SERVERS = [
|
|
|
20
20
|
exports.MAX_CLAIM_TIMESTAMP_DIFF_S = 10 * 60;
|
|
21
21
|
exports.DEFAULT_METADATA = {
|
|
22
22
|
signatureType: api_1.ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH,
|
|
23
|
-
clientVersion: api_1.AttestorVersion.ATTESTOR_VERSION_2_0_0
|
|
23
|
+
clientVersion: api_1.AttestorVersion.ATTESTOR_VERSION_2_0_0,
|
|
24
|
+
auth: undefined
|
|
24
25
|
};
|
|
25
26
|
exports.PING_INTERVAL_MS = 10000;
|
|
26
27
|
/**
|
|
@@ -29,4 +30,8 @@ exports.PING_INTERVAL_MS = 10000;
|
|
|
29
30
|
* @default 30s
|
|
30
31
|
*/
|
|
31
32
|
exports.MAX_NO_DATA_INTERVAL_MS = 30000;
|
|
32
|
-
|
|
33
|
+
exports.MAX_PAYLOAD_SIZE = 512 * 1024 * 1024; // 512MB
|
|
34
|
+
exports.DEFAULT_AUTH_EXPIRY_S = 15 * 60; // 15m
|
|
35
|
+
exports.TOPRF_DOMAIN_SEPARATOR = 'reclaim-toprf';
|
|
36
|
+
exports.BGP_WS_URL = 'wss://ris-live.ripe.net/v1/ws/?client=reclaim-hijack-detector';
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUFrRjtBQUVyRSxRQUFBLGFBQWEsR0FBRyxHQUFHLENBQUE7QUFFbkIsUUFBQSxzQkFBc0IsR0FBRyxFQUFFLENBQUE7QUFFM0IsUUFBQSxrQkFBa0IsR0FBRyxlQUFlLENBQUE7QUFFcEMsUUFBQSxrQkFBa0IsR0FBRyxHQUFHLENBQUE7QUFFeEIsUUFBQSxXQUFXLEdBQUcsS0FBSyxDQUFBO0FBRW5CLFFBQUEsb0JBQW9CLEdBQUcsY0FBYyxDQUFBO0FBRXJDLFFBQUEsa0NBQWtDLEdBQUcsR0FBRyw0QkFBb0IsWUFBWSxDQUFBO0FBRXhFLFFBQUEsZUFBZSxHQUFHLElBQUksQ0FBQTtBQUVuQyxNQUFNO0FBQ08sUUFBQSxxQkFBcUIsR0FBRyxLQUFNLENBQUE7QUFFOUIsUUFBQSxXQUFXLEdBQUc7SUFDMUIsU0FBUztJQUNULFNBQVM7Q0FDVCxDQUFBO0FBRUQsTUFBTTtBQUNPLFFBQUEsMEJBQTBCLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQTtBQUVwQyxRQUFBLGdCQUFnQixHQUFnQjtJQUM1QyxhQUFhLEVBQUUsMEJBQW9CLENBQUMsMEJBQTBCO0lBQzlELGFBQWEsRUFBRSxxQkFBZSxDQUFDLHNCQUFzQjtJQUNyRCxJQUFJLEVBQUUsU0FBUztDQUNmLENBQUE7QUFFWSxRQUFBLGdCQUFnQixHQUFHLEtBQU0sQ0FBQTtBQUN0Qzs7OztHQUlHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxLQUFNLENBQUE7QUFFaEMsUUFBQSxnQkFBZ0IsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQSxDQUFDLFFBQVE7QUFFN0MsUUFBQSxxQkFBcUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBLENBQUMsTUFBTTtBQUV0QyxRQUFBLHNCQUFzQixHQUFHLGVBQWUsQ0FBQTtBQUV4QyxRQUFBLFVBQVUsR0FBRywrREFBK0QsQ0FBQSJ9
|
package/lib/index.js
CHANGED
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
36
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
37
|
};
|
|
@@ -36,4 +46,4 @@ __exportStar(require("./providers"), exports);
|
|
|
36
46
|
exports.proto = __importStar(require("./proto/api"));
|
|
37
47
|
__exportStar(require("./client"), exports);
|
|
38
48
|
__exportStar(require("./window-rpc"), exports);
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNERBQTJDO0FBQzNDLCtEQUE0QztBQUM1QywyQ0FBd0I7QUFDeEIsMENBQXVCO0FBQ3ZCLDBDQUF1QjtBQUN2Qiw4Q0FBMkI7QUFDM0IscURBQW9DO0FBQ3BDLDJDQUF3QjtBQUN4QiwrQ0FBNEIifQ==
|