@zkp2p/reclaim-witness-sdk
Version:
<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>
85 lines • 6.52 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ALL_ENC_ALGORITHMS = void 0;
exports.makeWindowRpcZkOperator = makeWindowRpcZkOperator;
exports.makeWindowRpcOprfOperator = makeWindowRpcOprfOperator;
const utils_1 = require("../utils");
const utils_2 = require("../window-rpc/utils");
exports.ALL_ENC_ALGORITHMS = [
'aes-256-ctr',
'aes-128-ctr',
'chacha20',
];
/**
* The goal of this RPC operator is if the attestor client
* is running in a WebView, it can call the native
* application to perform the ZK operations
*/
function makeWindowRpcZkOperator(algorithm, bridge, zkEngine = 'snarkjs') {
return {
async generateWitness(input) {
const operator = await (0, utils_1.makeDefaultZkOperator)(algorithm, zkEngine, utils_1.logger);
return operator.generateWitness(input);
},
groth16Prove(input) {
return callFn({ fn: 'groth16Prove', args: [input] });
},
groth16Verify(publicSignals, proof) {
return callFn({ fn: 'groth16Verify', args: [publicSignals, proof] });
},
};
function callFn(opts) {
const id = (0, utils_2.generateRpcRequestId)();
const waitForRes = (0, utils_2.waitForResponse)('executeZkFunctionV3', id, bridge);
bridge.send({
type: 'executeZkFunctionV3',
id,
request: opts,
module: 'attestor-core'
});
return waitForRes;
}
}
/**
* The goal of this RPC operator is if the attestor client
* is running in a WebView, it can call the native
* application to perform the OPRF operations
*/
function makeWindowRpcOprfOperator(algorithm, bridge, zkEngine = 'snarkjs') {
return {
async generateWitness(input) {
const operator = await (0, utils_1.makeDefaultZkOperator)(algorithm, zkEngine, utils_1.logger);
return operator.generateWitness(input);
},
groth16Prove(input) {
return callFn({ fn: 'groth16Prove', args: [input] });
},
groth16Verify(publicSignals, proof) {
return callFn({ fn: 'groth16Verify', args: [publicSignals, proof] });
},
generateThresholdKeys(total, threshold) {
return callFn({ fn: 'generateThresholdKeys', args: [total, threshold] });
},
generateOPRFRequestData(data, domainSeparator) {
return callFn({ fn: 'generateOPRFRequestData', args: [data, domainSeparator] });
},
finaliseOPRF(serverPublicKey, request, responses) {
return callFn({ fn: 'finaliseOPRF', args: [serverPublicKey, request, responses] });
},
evaluateOPRF(serverPrivateKey, request) {
return callFn({ fn: 'evaluateOPRF', args: [serverPrivateKey, request] });
},
};
function callFn(opts) {
const id = (0, utils_2.generateRpcRequestId)();
const waitForRes = (0, utils_2.waitForResponse)('executeOprfFunctionV3', id, bridge);
bridge.send({
type: 'executeOprfFunctionV3',
id,
request: opts,
module: 'attestor-core'
});
return waitForRes;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJwYy16ay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aW5kb3ctcnBjL3dpbmRvdy1ycGMtemsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0JBLDBEQWlDQztBQVFELDhEQTZDQztBQXJHRCxxQ0FBeUQ7QUFFekQsZ0RBQTRFO0FBRS9ELFFBQUEsa0JBQWtCLEdBQTBCO0lBQ3hELGFBQWE7SUFDYixhQUFhO0lBQ2IsVUFBVTtDQUNWLENBQUE7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3RDLFNBQThCLEVBQzlCLE1BQTJCLEVBQzNCLFdBQXFCLFNBQVM7SUFFOUIsT0FBTztRQUNOLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSztZQUMxQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsNkJBQXFCLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFNLENBQUMsQ0FBQTtZQUN6RSxPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdkMsQ0FBQztRQUNELFlBQVksQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUNELGFBQWEsQ0FBQyxhQUFhLEVBQUUsS0FBSztZQUNqQyxPQUFPLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNyRSxDQUFDO0tBQ0QsQ0FBQTtJQUVELFNBQVMsTUFBTSxDQUFDLElBQW1CO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLElBQUEsNEJBQW9CLEdBQUUsQ0FBQTtRQUNqQyxNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFlLEVBQ2pDLHFCQUFxQixFQUFFLEVBQUUsRUFBRSxNQUFNLENBQ2pD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
;