@reclaimprotocol/attestor-core 4.0.3 → 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.
- package/LICENSE +660 -660
- package/README.md +1 -2
- package/package.json +72 -60
- package/lib/avs/abis/avsDirectoryABI.d.ts +0 -60
- package/lib/avs/abis/avsDirectoryABI.js +0 -344
- package/lib/avs/abis/delegationABI.d.ts +0 -126
- package/lib/avs/abis/delegationABI.js +0 -5
- package/lib/avs/abis/registryABI.d.ts +0 -136
- package/lib/avs/abis/registryABI.js +0 -729
- package/lib/avs/client/create-claim-on-avs.d.ts +0 -12
- package/lib/avs/client/create-claim-on-avs.js +0 -147
- package/lib/avs/config.d.ts +0 -7
- package/lib/avs/config.js +0 -24
- package/lib/avs/contracts/ReclaimServiceManager.d.ts +0 -697
- package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
- package/lib/avs/contracts/common.d.ts +0 -21
- package/lib/avs/contracts/common.js +0 -3
- package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -888
- package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1174
- package/lib/avs/contracts/factories/index.d.ts +0 -1
- package/lib/avs/contracts/factories/index.js +0 -9
- package/lib/avs/contracts/index.d.ts +0 -3
- package/lib/avs/contracts/index.js +0 -40
- package/lib/avs/tests/test.operator.d.ts +0 -11
- package/lib/avs/tests/test.operator.js +0 -313
- package/lib/avs/tests/utils.d.ts +0 -2
- package/lib/avs/tests/utils.js +0 -50
- package/lib/avs/types/index.d.ts +0 -55
- package/lib/avs/types/index.js +0 -3
- package/lib/avs/utils/contracts.d.ts +0 -21
- package/lib/avs/utils/contracts.js +0 -38
- package/lib/avs/utils/register.d.ts +0 -27
- package/lib/avs/utils/register.js +0 -82
- package/lib/avs/utils/tasks.d.ts +0 -22
- package/lib/avs/utils/tasks.js +0 -45
- package/lib/client/create-claim.d.ts +0 -5
- package/lib/client/create-claim.js +0 -424
- package/lib/client/index.d.ts +0 -3
- package/lib/client/index.js +0 -20
- package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
- package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -60
- package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -25
- package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -135
- package/lib/client/utils/attestor-pool.d.ts +0 -6
- package/lib/client/utils/attestor-pool.js +0 -28
- package/lib/client/utils/client-socket.d.ts +0 -11
- package/lib/client/utils/client-socket.js +0 -100
- package/lib/client/utils/message-handler.d.ts +0 -4
- package/lib/client/utils/message-handler.js +0 -94
- package/lib/config/index.d.ts +0 -28
- package/lib/config/index.js +0 -39
- package/lib/index.d.ts +0 -10
- package/lib/index.js +0 -50
- package/lib/mechain/abis/governanceABI.d.ts +0 -50
- package/lib/mechain/abis/governanceABI.js +0 -462
- package/lib/mechain/abis/taskABI.d.ts +0 -157
- package/lib/mechain/abis/taskABI.js +0 -513
- package/lib/mechain/client/create-claim-on-mechain.d.ts +0 -10
- package/lib/mechain/client/create-claim-on-mechain.js +0 -32
- package/lib/mechain/client/index.d.ts +0 -1
- package/lib/mechain/client/index.js +0 -18
- package/lib/mechain/constants/index.d.ts +0 -3
- package/lib/mechain/constants/index.js +0 -7
- package/lib/mechain/index.d.ts +0 -2
- package/lib/mechain/index.js +0 -19
- package/lib/mechain/types/index.d.ts +0 -23
- package/lib/mechain/types/index.js +0 -3
- package/lib/proto/api.d.ts +0 -508
- package/lib/proto/api.js +0 -3700
- package/lib/providers/http/index.d.ts +0 -3
- package/lib/providers/http/index.js +0 -613
- package/lib/providers/http/utils.d.ts +0 -74
- package/lib/providers/http/utils.js +0 -360
- package/lib/providers/index.d.ts +0 -4
- package/lib/providers/index.js +0 -11
- package/lib/scripts/check-avs-registration.d.ts +0 -1
- package/lib/scripts/check-avs-registration.js +0 -29
- package/lib/scripts/generate-provider-types.d.ts +0 -5
- package/lib/scripts/generate-provider-types.js +0 -82
- package/lib/scripts/generate-receipt.d.ts +0 -9
- package/lib/scripts/generate-receipt.js +0 -90
- package/lib/scripts/generate-toprf-keys.d.ts +0 -1
- package/lib/scripts/generate-toprf-keys.js +0 -23
- package/lib/scripts/register-avs-operator.d.ts +0 -1
- package/lib/scripts/register-avs-operator.js +0 -7
- package/lib/scripts/start-server.d.ts +0 -1
- package/lib/scripts/start-server.js +0 -13
- package/lib/scripts/update-avs-metadata.d.ts +0 -1
- package/lib/scripts/update-avs-metadata.js +0 -22
- package/lib/scripts/utils.d.ts +0 -1
- package/lib/scripts/utils.js +0 -11
- package/lib/scripts/verify-root-ca.d.ts +0 -1
- package/lib/scripts/verify-root-ca.js +0 -51
- package/lib/scripts/whitelist-operator.d.ts +0 -1
- package/lib/scripts/whitelist-operator.js +0 -18
- package/lib/server/create-server.d.ts +0 -7
- package/lib/server/create-server.js +0 -92
- package/lib/server/handlers/claimTunnel.d.ts +0 -2
- package/lib/server/handlers/claimTunnel.js +0 -78
- package/lib/server/handlers/completeClaimOnChain.d.ts +0 -2
- package/lib/server/handlers/completeClaimOnChain.js +0 -28
- package/lib/server/handlers/createClaimOnChain.d.ts +0 -2
- package/lib/server/handlers/createClaimOnChain.js +0 -31
- package/lib/server/handlers/createTaskOnMechain.d.ts +0 -2
- package/lib/server/handlers/createTaskOnMechain.js +0 -52
- package/lib/server/handlers/createTunnel.d.ts +0 -2
- package/lib/server/handlers/createTunnel.js +0 -101
- package/lib/server/handlers/disconnectTunnel.d.ts +0 -2
- package/lib/server/handlers/disconnectTunnel.js +0 -10
- package/lib/server/handlers/index.d.ts +0 -4
- package/lib/server/handlers/index.js +0 -22
- package/lib/server/handlers/init.d.ts +0 -2
- package/lib/server/handlers/init.js +0 -36
- package/lib/server/handlers/toprf.d.ts +0 -2
- package/lib/server/handlers/toprf.js +0 -21
- package/lib/server/index.d.ts +0 -4
- package/lib/server/index.js +0 -21
- package/lib/server/socket.d.ts +0 -13
- package/lib/server/socket.js +0 -114
- package/lib/server/tunnels/make-tcp-tunnel.d.ts +0 -20
- package/lib/server/tunnels/make-tcp-tunnel.js +0 -175
- package/lib/server/utils/apm.d.ts +0 -11
- package/lib/server/utils/apm.js +0 -43
- package/lib/server/utils/assert-valid-claim-request.d.ts +0 -30
- package/lib/server/utils/assert-valid-claim-request.js +0 -200
- package/lib/server/utils/config-env.d.ts +0 -1
- package/lib/server/utils/config-env.js +0 -7
- package/lib/server/utils/dns.d.ts +0 -1
- package/lib/server/utils/dns.js +0 -22
- package/lib/server/utils/generics.d.ts +0 -22
- package/lib/server/utils/generics.js +0 -59
- package/lib/server/utils/iso.d.ts +0 -1
- package/lib/server/utils/iso.js +0 -260
- package/lib/server/utils/keep-alive.d.ts +0 -7
- package/lib/server/utils/keep-alive.js +0 -42
- package/lib/server/utils/process-handshake.d.ts +0 -13
- package/lib/server/utils/process-handshake.js +0 -191
- package/lib/tests/describe-with-server.d.ts +0 -20
- package/lib/tests/describe-with-server.js +0 -64
- package/lib/tests/mock-provider-server.d.ts +0 -13
- package/lib/tests/mock-provider-server.js +0 -65
- package/lib/tests/mocks.d.ts +0 -4
- package/lib/tests/mocks.js +0 -23
- package/lib/tests/test.auth.d.ts +0 -1
- package/lib/tests/test.auth.js +0 -75
- package/lib/tests/test.bgp-listener.d.ts +0 -1
- package/lib/tests/test.bgp-listener.js +0 -169
- package/lib/tests/test.claim-creation.d.ts +0 -1
- package/lib/tests/test.claim-creation.js +0 -280
- package/lib/tests/test.http-parser.d.ts +0 -1
- package/lib/tests/test.http-parser.js +0 -120
- package/lib/tests/test.http-provider-utils.d.ts +0 -1
- package/lib/tests/test.http-provider-utils.js +0 -2416
- package/lib/tests/test.http-provider.d.ts +0 -1
- package/lib/tests/test.http-provider.js +0 -114
- package/lib/tests/test.rpc-communication.d.ts +0 -1
- package/lib/tests/test.rpc-communication.js +0 -64
- package/lib/tests/test.rpc-tunnel.d.ts +0 -1
- package/lib/tests/test.rpc-tunnel.js +0 -172
- package/lib/tests/test.signatures.d.ts +0 -1
- package/lib/tests/test.signatures.js +0 -24
- package/lib/tests/test.tcp-tunnel.d.ts +0 -1
- package/lib/tests/test.tcp-tunnel.js +0 -64
- package/lib/tests/test.zk.d.ts +0 -1
- package/lib/tests/test.zk.js +0 -337
- package/lib/tests/utils.d.ts +0 -18
- package/lib/tests/utils.js +0 -64
- package/lib/types/bgp.d.ts +0 -11
- package/lib/types/bgp.js +0 -3
- package/lib/types/claims.d.ts +0 -73
- package/lib/types/claims.js +0 -3
- package/lib/types/client.d.ts +0 -163
- package/lib/types/client.js +0 -3
- package/lib/types/general.d.ts +0 -51
- package/lib/types/general.js +0 -3
- package/lib/types/handlers.d.ts +0 -10
- package/lib/types/handlers.js +0 -3
- package/lib/types/index.d.ts +0 -10
- package/lib/types/index.js +0 -27
- package/lib/types/providers.d.ts +0 -150
- package/lib/types/providers.gen.d.ts +0 -429
- package/lib/types/providers.gen.js +0 -14
- package/lib/types/providers.js +0 -3
- package/lib/types/rpc.d.ts +0 -35
- package/lib/types/rpc.js +0 -3
- package/lib/types/signatures.d.ts +0 -28
- package/lib/types/signatures.js +0 -3
- package/lib/types/tunnel.d.ts +0 -18
- package/lib/types/tunnel.js +0 -3
- package/lib/types/zk.d.ts +0 -23
- package/lib/types/zk.js +0 -3
- package/lib/utils/atomic-operations.d.ts +0 -24
- package/lib/utils/atomic-operations.js +0 -65
- package/lib/utils/auth.d.ts +0 -7
- package/lib/utils/auth.js +0 -64
- package/lib/utils/b64-json.d.ts +0 -2
- package/lib/utils/b64-json.js +0 -23
- package/lib/utils/benchmark.d.ts +0 -1
- package/lib/utils/benchmark.js +0 -70
- package/lib/utils/bgp-listener.d.ts +0 -7
- package/lib/utils/bgp-listener.js +0 -126
- package/lib/utils/claims.d.ts +0 -33
- package/lib/utils/claims.js +0 -112
- package/lib/utils/connection-state-machine.d.ts +0 -43
- package/lib/utils/connection-state-machine.js +0 -129
- package/lib/utils/env.d.ts +0 -3
- package/lib/utils/env.js +0 -20
- package/lib/utils/error.d.ts +0 -27
- package/lib/utils/error.js +0 -43
- package/lib/utils/generics.d.ts +0 -112
- package/lib/utils/generics.js +0 -348
- package/lib/utils/http-parser.d.ts +0 -59
- package/lib/utils/http-parser.js +0 -252
- package/lib/utils/index.d.ts +0 -12
- package/lib/utils/index.js +0 -29
- package/lib/utils/logger.d.ts +0 -13
- package/lib/utils/logger.js +0 -100
- package/lib/utils/prepare-packets.d.ts +0 -16
- package/lib/utils/prepare-packets.js +0 -61
- package/lib/utils/redactions.d.ts +0 -54
- package/lib/utils/redactions.js +0 -148
- package/lib/utils/resource-monitor.d.ts +0 -61
- package/lib/utils/resource-monitor.js +0 -107
- package/lib/utils/retries.d.ts +0 -12
- package/lib/utils/retries.js +0 -28
- package/lib/utils/signatures/eth.d.ts +0 -2
- package/lib/utils/signatures/eth.js +0 -33
- package/lib/utils/signatures/index.d.ts +0 -5
- package/lib/utils/signatures/index.js +0 -11
- package/lib/utils/socket-base.d.ts +0 -22
- package/lib/utils/socket-base.js +0 -95
- package/lib/utils/tls.d.ts +0 -2
- package/lib/utils/tls.js +0 -32
- package/lib/utils/validation.d.ts +0 -2
- package/lib/utils/validation.js +0 -46
- package/lib/utils/ws.d.ts +0 -12
- package/lib/utils/ws.js +0 -38
- package/lib/utils/zk.d.ts +0 -55
- package/lib/utils/zk.js +0 -444
- package/lib/window-rpc/index.d.ts +0 -3
- package/lib/window-rpc/index.js +0 -20
- package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
- package/lib/window-rpc/setup-window-rpc.js +0 -291
- package/lib/window-rpc/types.d.ts +0 -192
- package/lib/window-rpc/types.js +0 -3
- package/lib/window-rpc/utils.d.ts +0 -14
- package/lib/window-rpc/utils.js +0 -102
- package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
- package/lib/window-rpc/window-rpc-zk.js +0 -85
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ALL_ENC_ALGORITHMS = void 0;
|
|
4
|
-
exports.makeWindowRpcZkOperator = makeWindowRpcZkOperator;
|
|
5
|
-
exports.makeWindowRpcOprfOperator = makeWindowRpcOprfOperator;
|
|
6
|
-
const utils_1 = require("../utils");
|
|
7
|
-
const utils_2 = require("../window-rpc/utils");
|
|
8
|
-
exports.ALL_ENC_ALGORITHMS = [
|
|
9
|
-
'aes-256-ctr',
|
|
10
|
-
'aes-128-ctr',
|
|
11
|
-
'chacha20',
|
|
12
|
-
];
|
|
13
|
-
/**
|
|
14
|
-
* The goal of this RPC operator is if the attestor client
|
|
15
|
-
* is running in a WebView, it can call the native
|
|
16
|
-
* application to perform the ZK operations
|
|
17
|
-
*/
|
|
18
|
-
function makeWindowRpcZkOperator(algorithm, bridge, zkEngine = 'snarkjs') {
|
|
19
|
-
return {
|
|
20
|
-
async generateWitness(input) {
|
|
21
|
-
const operator = await (0, utils_1.makeDefaultZkOperator)(algorithm, zkEngine, utils_1.logger);
|
|
22
|
-
return operator.generateWitness(input);
|
|
23
|
-
},
|
|
24
|
-
groth16Prove(input) {
|
|
25
|
-
return callFn({ fn: 'groth16Prove', args: [input] });
|
|
26
|
-
},
|
|
27
|
-
groth16Verify(publicSignals, proof) {
|
|
28
|
-
return callFn({ fn: 'groth16Verify', args: [publicSignals, proof] });
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
function callFn(opts) {
|
|
32
|
-
const id = (0, utils_2.generateRpcRequestId)();
|
|
33
|
-
const waitForRes = (0, utils_2.waitForResponse)('executeZkFunctionV3', id, bridge);
|
|
34
|
-
bridge.send({
|
|
35
|
-
type: 'executeZkFunctionV3',
|
|
36
|
-
id,
|
|
37
|
-
request: opts,
|
|
38
|
-
module: 'attestor-core'
|
|
39
|
-
});
|
|
40
|
-
return waitForRes;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* The goal of this RPC operator is if the attestor client
|
|
45
|
-
* is running in a WebView, it can call the native
|
|
46
|
-
* application to perform the OPRF operations
|
|
47
|
-
*/
|
|
48
|
-
function makeWindowRpcOprfOperator(algorithm, bridge, zkEngine = 'snarkjs') {
|
|
49
|
-
return {
|
|
50
|
-
async generateWitness(input) {
|
|
51
|
-
const operator = await (0, utils_1.makeDefaultZkOperator)(algorithm, zkEngine, utils_1.logger);
|
|
52
|
-
return operator.generateWitness(input);
|
|
53
|
-
},
|
|
54
|
-
groth16Prove(input) {
|
|
55
|
-
return callFn({ fn: 'groth16Prove', args: [input] });
|
|
56
|
-
},
|
|
57
|
-
groth16Verify(publicSignals, proof) {
|
|
58
|
-
return callFn({ fn: 'groth16Verify', args: [publicSignals, proof] });
|
|
59
|
-
},
|
|
60
|
-
generateThresholdKeys(total, threshold) {
|
|
61
|
-
return callFn({ fn: 'generateThresholdKeys', args: [total, threshold] });
|
|
62
|
-
},
|
|
63
|
-
generateOPRFRequestData(data, domainSeparator) {
|
|
64
|
-
return callFn({ fn: 'generateOPRFRequestData', args: [data, domainSeparator] });
|
|
65
|
-
},
|
|
66
|
-
finaliseOPRF(serverPublicKey, request, responses) {
|
|
67
|
-
return callFn({ fn: 'finaliseOPRF', args: [serverPublicKey, request, responses] });
|
|
68
|
-
},
|
|
69
|
-
evaluateOPRF(serverPrivateKey, request) {
|
|
70
|
-
return callFn({ fn: 'evaluateOPRF', args: [serverPrivateKey, request] });
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
function callFn(opts) {
|
|
74
|
-
const id = (0, utils_2.generateRpcRequestId)();
|
|
75
|
-
const waitForRes = (0, utils_2.waitForResponse)('executeOprfFunctionV3', id, bridge);
|
|
76
|
-
bridge.send({
|
|
77
|
-
type: 'executeOprfFunctionV3',
|
|
78
|
-
id,
|
|
79
|
-
request: opts,
|
|
80
|
-
module: 'attestor-core'
|
|
81
|
-
});
|
|
82
|
-
return waitForRes;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJwYy16ay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aW5kb3ctcnBjL3dpbmRvdy1ycGMtemsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0JBLDBEQWlDQztBQVFELDhEQTZDQztBQXJHRCxxQ0FBeUQ7QUFFekQsZ0RBQTRFO0FBRS9ELFFBQUEsa0JBQWtCLEdBQTBCO0lBQ3hELGFBQWE7SUFDYixhQUFhO0lBQ2IsVUFBVTtDQUNWLENBQUE7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3RDLFNBQThCLEVBQzlCLE1BQTJCLEVBQzNCLFdBQXFCLFNBQVM7SUFFOUIsT0FBTztRQUNOLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSztZQUMxQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsNkJBQXFCLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFNLENBQUMsQ0FBQTtZQUN6RSxPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdkMsQ0FBQztRQUNELFlBQVksQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUNELGFBQWEsQ0FBQyxhQUFhLEVBQUUsS0FBSztZQUNqQyxPQUFPLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNyRSxDQUFDO0tBQ0QsQ0FBQTtJQUVELFNBQVMsTUFBTSxDQUFDLElBQW1CO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLElBQUEsNEJBQW9CLEdBQUUsQ0FBQTtRQUNqQyxNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFlLEVBQ2pDLHFCQUFxQixFQUFFLEVBQUUsRUFBRSxNQUFNLENBQ2pD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
|