@devtion/actions 0.0.0-2319823 → 0.0.0-2cb7418
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/dist/index.mjs +71 -23
- package/dist/index.node.js +71 -22
- package/dist/types/src/helpers/constants.d.ts +2 -0
- package/dist/types/src/helpers/constants.d.ts.map +1 -1
- package/dist/types/src/helpers/contracts.d.ts.map +1 -1
- package/dist/types/src/helpers/crypto.d.ts +1 -0
- package/dist/types/src/helpers/crypto.d.ts.map +1 -1
- package/dist/types/src/helpers/database.d.ts +8 -0
- package/dist/types/src/helpers/database.d.ts.map +1 -1
- package/dist/types/src/helpers/utils.d.ts +15 -1
- package/dist/types/src/helpers/utils.d.ts.map +1 -1
- package/dist/types/src/helpers/verification.d.ts +3 -2
- package/dist/types/src/helpers/verification.d.ts.map +1 -1
- package/dist/types/src/helpers/vm.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +7 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/package.json +3 -4
- package/src/helpers/constants.ts +3 -1
- package/src/helpers/contracts.ts +3 -3
- package/src/helpers/database.ts +13 -0
- package/src/helpers/utils.ts +58 -13
- package/src/helpers/verification.ts +6 -6
- package/src/helpers/vm.ts +3 -2
- package/src/index.ts +1 -0
- package/src/types/index.ts +21 -1
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module @p0tion/actions
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.2.0
|
|
4
4
|
* @file A set of actions and helpers for CLI commands
|
|
5
5
|
* @copyright Ethereum Foundation 2022
|
|
6
6
|
* @license MIT
|
|
@@ -15,7 +15,6 @@ import { onSnapshot, query, collection, getDocs, doc, getDoc, where, Timestamp,
|
|
|
15
15
|
import { zKey, groth16 } from 'snarkjs';
|
|
16
16
|
import crypto from 'crypto';
|
|
17
17
|
import blake from 'blakejs';
|
|
18
|
-
import { utils } from 'ffjavascript';
|
|
19
18
|
import winston from 'winston';
|
|
20
19
|
import { pipeline } from 'stream';
|
|
21
20
|
import { promisify } from 'util';
|
|
@@ -339,7 +338,9 @@ const commonTerms = {
|
|
|
339
338
|
finalizeCircuit: "finalizeCircuit",
|
|
340
339
|
finalizeCeremony: "finalizeCeremony",
|
|
341
340
|
downloadCircuitArtifacts: "downloadCircuitArtifacts",
|
|
342
|
-
transferObject: "transferObject"
|
|
341
|
+
transferObject: "transferObject",
|
|
342
|
+
bandadaValidateProof: "bandadaValidateProof",
|
|
343
|
+
checkNonceOfSIWEAddress: "checkNonceOfSIWEAddress"
|
|
343
344
|
}
|
|
344
345
|
};
|
|
345
346
|
|
|
@@ -705,8 +706,8 @@ const uploadParts = async (chunksWithUrls, contentType, cloudFunctions, ceremony
|
|
|
705
706
|
// @ts-ignore
|
|
706
707
|
const response = await fetch(chunksWithUrls[i].preSignedUrl, {
|
|
707
708
|
retryOptions: {
|
|
708
|
-
retryInitialDelay: 500,
|
|
709
|
-
socketTimeout: 60000,
|
|
709
|
+
retryInitialDelay: 500, // 500 ms.
|
|
710
|
+
socketTimeout: 60000, // 60 seconds.
|
|
710
711
|
retryMaxDuration: 300000 // 5 minutes.
|
|
711
712
|
},
|
|
712
713
|
method: "PUT",
|
|
@@ -1003,6 +1004,17 @@ const getClosedCeremonies = async (firestoreDatabase) => {
|
|
|
1003
1004
|
]);
|
|
1004
1005
|
return fromQueryToFirebaseDocumentInfo(closedCeremoniesQuerySnap.docs);
|
|
1005
1006
|
};
|
|
1007
|
+
/**
|
|
1008
|
+
* Query all ceremonies
|
|
1009
|
+
* @notice get all ceremonies from the database.
|
|
1010
|
+
* @dev this is a helper for the CLI ceremony methods.
|
|
1011
|
+
* @param firestoreDatabase <Firestore> - the Firestore service instance associated to the current Firebase application.
|
|
1012
|
+
* @returns <Promise<Array<FirebaseDocumentInfo>>> - the list of all ceremonies.
|
|
1013
|
+
*/
|
|
1014
|
+
const getAllCeremonies = async (firestoreDatabase) => {
|
|
1015
|
+
const ceremoniesQuerySnap = await queryCollection(firestoreDatabase, commonTerms.collections.ceremonies.name, []);
|
|
1016
|
+
return fromQueryToFirebaseDocumentInfo(ceremoniesQuerySnap.docs);
|
|
1017
|
+
};
|
|
1006
1018
|
|
|
1007
1019
|
/**
|
|
1008
1020
|
* @hidden
|
|
@@ -1262,6 +1274,41 @@ const readBytesFromFile = (localFilePath, offset, length, position) => {
|
|
|
1262
1274
|
// Return the read bytes.
|
|
1263
1275
|
return buffer;
|
|
1264
1276
|
};
|
|
1277
|
+
/**
|
|
1278
|
+
* Given a buffer in little endian format, convert it to bigint
|
|
1279
|
+
* @param buffer
|
|
1280
|
+
* @returns
|
|
1281
|
+
*/
|
|
1282
|
+
function leBufferToBigint(buffer) {
|
|
1283
|
+
return BigInt(`0x${buffer.reverse().toString("hex")}`);
|
|
1284
|
+
}
|
|
1285
|
+
/**
|
|
1286
|
+
* Given an input containing string values, convert them
|
|
1287
|
+
* to bigint
|
|
1288
|
+
* @param input - The input to convert
|
|
1289
|
+
* @returns the input with string values converted to bigint
|
|
1290
|
+
*/
|
|
1291
|
+
const unstringifyBigInts = (input) => {
|
|
1292
|
+
if (typeof input === "string" && /^[0-9]+$/.test(input)) {
|
|
1293
|
+
return BigInt(input);
|
|
1294
|
+
}
|
|
1295
|
+
if (typeof input === "string" && /^0x[0-9a-fA-F]+$/.test(input)) {
|
|
1296
|
+
return BigInt(input);
|
|
1297
|
+
}
|
|
1298
|
+
if (Array.isArray(input)) {
|
|
1299
|
+
return input.map(unstringifyBigInts);
|
|
1300
|
+
}
|
|
1301
|
+
if (input === null) {
|
|
1302
|
+
return null;
|
|
1303
|
+
}
|
|
1304
|
+
if (typeof input === "object") {
|
|
1305
|
+
return Object.entries(input).reduce((acc, [key, value]) => {
|
|
1306
|
+
acc[key] = unstringifyBigInts(value);
|
|
1307
|
+
return acc;
|
|
1308
|
+
}, {});
|
|
1309
|
+
}
|
|
1310
|
+
return input;
|
|
1311
|
+
};
|
|
1265
1312
|
/**
|
|
1266
1313
|
* Return the info about the R1CS file.ù
|
|
1267
1314
|
* @dev this method was built taking inspiration from
|
|
@@ -1322,17 +1369,17 @@ const getR1CSInfo = (localR1CSFilePath) => {
|
|
|
1322
1369
|
let constraints = 0;
|
|
1323
1370
|
try {
|
|
1324
1371
|
// Get 'number of section' (jump magic r1cs and version1 data).
|
|
1325
|
-
const numberOfSections =
|
|
1372
|
+
const numberOfSections = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, 8));
|
|
1326
1373
|
// Jump to first section.
|
|
1327
1374
|
pointer = 12;
|
|
1328
1375
|
// For each section
|
|
1329
1376
|
for (let i = 0; i < numberOfSections; i++) {
|
|
1330
1377
|
// Read section type.
|
|
1331
|
-
const sectionType =
|
|
1378
|
+
const sectionType = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer));
|
|
1332
1379
|
// Jump to section size.
|
|
1333
1380
|
pointer += 4;
|
|
1334
1381
|
// Read section size
|
|
1335
|
-
const sectionSize = Number(
|
|
1382
|
+
const sectionSize = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
|
|
1336
1383
|
// If at header section (0x00000001 : Header Section).
|
|
1337
1384
|
if (sectionType === BigInt(1)) {
|
|
1338
1385
|
// Read info from header section.
|
|
@@ -1364,22 +1411,22 @@ const getR1CSInfo = (localR1CSFilePath) => {
|
|
|
1364
1411
|
*/
|
|
1365
1412
|
pointer += sectionSize - 20;
|
|
1366
1413
|
// Read R1CS info.
|
|
1367
|
-
wires = Number(
|
|
1414
|
+
wires = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1368
1415
|
pointer += 4;
|
|
1369
|
-
publicOutputs = Number(
|
|
1416
|
+
publicOutputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1370
1417
|
pointer += 4;
|
|
1371
|
-
publicInputs = Number(
|
|
1418
|
+
publicInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1372
1419
|
pointer += 4;
|
|
1373
|
-
privateInputs = Number(
|
|
1420
|
+
privateInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1374
1421
|
pointer += 4;
|
|
1375
|
-
labels = Number(
|
|
1422
|
+
labels = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
|
|
1376
1423
|
pointer += 8;
|
|
1377
|
-
constraints = Number(
|
|
1424
|
+
constraints = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1378
1425
|
}
|
|
1379
1426
|
pointer += 8 + Number(sectionSize);
|
|
1380
1427
|
}
|
|
1381
1428
|
return {
|
|
1382
|
-
curve: "bn-128",
|
|
1429
|
+
curve: "bn-128", /// @note currently default to bn-128 as we support only Groth16 proving system.
|
|
1383
1430
|
wires,
|
|
1384
1431
|
constraints,
|
|
1385
1432
|
privateInputs,
|
|
@@ -1558,9 +1605,10 @@ const parseCeremonyFile = async (path, cleanup = false) => {
|
|
|
1558
1605
|
}
|
|
1559
1606
|
circuits.push(circuit);
|
|
1560
1607
|
// remove the local r1cs and wasm downloads (if used for verifying the config only vs setup)
|
|
1561
|
-
if (cleanup)
|
|
1608
|
+
if (cleanup) {
|
|
1562
1609
|
fs.unlinkSync(localR1csPath);
|
|
1563
|
-
|
|
1610
|
+
fs.unlinkSync(localWasmPath);
|
|
1611
|
+
}
|
|
1564
1612
|
}
|
|
1565
1613
|
const setupData = {
|
|
1566
1614
|
ceremonyInputData: {
|
|
@@ -1926,11 +1974,11 @@ const p256 = (proofPart) => {
|
|
|
1926
1974
|
*/
|
|
1927
1975
|
const formatSolidityCalldata = (circuitInput, _proof) => {
|
|
1928
1976
|
try {
|
|
1929
|
-
const proof =
|
|
1977
|
+
const proof = unstringifyBigInts(_proof);
|
|
1930
1978
|
// format the public inputs to the circuit
|
|
1931
1979
|
const formattedCircuitInput = [];
|
|
1932
1980
|
for (const cInput of circuitInput) {
|
|
1933
|
-
formattedCircuitInput.push(p256(
|
|
1981
|
+
formattedCircuitInput.push(p256(unstringifyBigInts(cInput)));
|
|
1934
1982
|
}
|
|
1935
1983
|
// construct calldata
|
|
1936
1984
|
const calldata = {
|
|
@@ -2312,8 +2360,8 @@ const createSSMClient = async () => {
|
|
|
2312
2360
|
* @returns <Array<string>> - the list of startup commands to be executed.
|
|
2313
2361
|
*/
|
|
2314
2362
|
const vmBootstrapCommand = (bucketName) => [
|
|
2315
|
-
"#!/bin/bash",
|
|
2316
|
-
`aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`,
|
|
2363
|
+
"#!/bin/bash", // shabang.
|
|
2364
|
+
`aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`, // copy file from S3 bucket to VM.
|
|
2317
2365
|
`chmod +x ${vmBootstrapScriptFilename} && bash ${vmBootstrapScriptFilename}` // grant permission and execute.
|
|
2318
2366
|
];
|
|
2319
2367
|
/**
|
|
@@ -2404,7 +2452,7 @@ const createEC2Instance = async (ec2, commands, instanceType, volumeSize, diskTy
|
|
|
2404
2452
|
DeviceName: "/dev/xvda",
|
|
2405
2453
|
Ebs: {
|
|
2406
2454
|
DeleteOnTermination: true,
|
|
2407
|
-
VolumeSize: volumeSize,
|
|
2455
|
+
VolumeSize: volumeSize, // disk size in GB.
|
|
2408
2456
|
VolumeType: diskType
|
|
2409
2457
|
}
|
|
2410
2458
|
}
|
|
@@ -2590,4 +2638,4 @@ const retrieveCommandStatus = async (ssm, instanceId, commandId) => {
|
|
|
2590
2638
|
}
|
|
2591
2639
|
};
|
|
2592
2640
|
|
|
2593
|
-
export { CeremonyState, CeremonyTimeoutType, CeremonyType, CircuitContributionVerificationMechanism, DiskTypeForVM, ParticipantContributionStep, ParticipantStatus, RequestType, TestingEnvironment, TimeoutType, autoGenerateEntropy, blake512FromPath, checkAndPrepareCoordinatorForFinalization, checkIfObjectExist, checkIfRunning, checkParticipantForCeremony, commonTerms, compareCeremonyArtifacts, compareHashes, compileContract, completeMultiPartUpload, computeDiskSizeForVM, computeSHA256ToHex, computeSmallestPowersOfTauForCircuit, convertBytesOrKbToGb, convertToDoubleDigits, createCustomLoggerForFile, createEC2Client, createEC2Instance, createS3Bucket, createSSMClient, downloadAllCeremonyArtifacts, downloadCeremonyArtifact, ec2InstanceTag, exportVerifierAndVKey, exportVerifierContract, exportVkey, extractPoTFromFilename, extractPrefix, extractR1CSInfoValueForGivenKey, finalContributionIndex, finalizeCeremony, finalizeCircuit, formatSolidityCalldata, formatZkeyIndex, fromQueryToFirebaseDocumentInfo, generateGROTH16Proof, generateGetObjectPreSignedUrl, generatePreSignedUrlsParts, generateValidContributionsAttestation, generateZkeyFromScratch, genesisZkeyIndex, getAllCollectionDocs, getBucketName, getCeremonyCircuits, getCircuitBySequencePosition, getCircuitContributionsFromContributor, getCircuitsCollectionPath, getClosedCeremonies, getContributionsCollectionPath, getContributionsValidityForContributor, getCurrentActiveParticipantTimeout, getCurrentFirebaseAuthUser, getDocumentById, getOpenedCeremonies, getParticipantsCollectionPath, getPotStorageFilePath, getPublicAttestationPreambleForContributor, getR1CSInfo, getR1csStorageFilePath, getTimeoutsCollectionPath, getTranscriptStorageFilePath, getVerificationKeyStorageFilePath, getVerifierContractStorageFilePath, getWasmStorageFilePath, getZkeyStorageFilePath, githubReputation, initializeFirebaseCoreServices, isCoordinator, multiPartUpload, numExpIterations, p256, parseCeremonyFile, permanentlyStoreCurrentContributionTimeAndHash, potFileDownloadMainUrl, potFilenameTemplate, powersOfTauFiles, progressToNextCircuitForContribution, progressToNextContributionStep, queryCollection, resumeContributionAfterTimeoutExpiration, retrieveCommandOutput, retrieveCommandStatus, runCommandUsingSSM, setupCeremony, signInToFirebaseWithCredentials, solidityVersion, startEC2Instance, stopEC2Instance, temporaryStoreCurrentContributionMultiPartUploadId, temporaryStoreCurrentContributionUploadedChunkData, terminateEC2Instance, toHex, verificationKeyAcronym, verifierSmartContractAcronym, verifyCeremony, verifyContribution, verifyGROTH16Proof, verifyGROTH16ProofOnChain, verifyZKey, vmBootstrapCommand, vmBootstrapScriptFilename, vmConfigurationTypes, vmContributionVerificationCommand, vmDependenciesAndCacheArtifactsCommand };
|
|
2641
|
+
export { CeremonyState, CeremonyTimeoutType, CeremonyType, CircuitContributionVerificationMechanism, DiskTypeForVM, ParticipantContributionStep, ParticipantStatus, RequestType, TestingEnvironment, TimeoutType, autoGenerateEntropy, blake512FromPath, checkAndPrepareCoordinatorForFinalization, checkIfObjectExist, checkIfRunning, checkParticipantForCeremony, commonTerms, compareCeremonyArtifacts, compareHashes, compileContract, completeMultiPartUpload, computeDiskSizeForVM, computeSHA256ToHex, computeSmallestPowersOfTauForCircuit, convertBytesOrKbToGb, convertToDoubleDigits, createCustomLoggerForFile, createEC2Client, createEC2Instance, createS3Bucket, createSSMClient, downloadAllCeremonyArtifacts, downloadCeremonyArtifact, ec2InstanceTag, exportVerifierAndVKey, exportVerifierContract, exportVkey, extractPoTFromFilename, extractPrefix, extractR1CSInfoValueForGivenKey, finalContributionIndex, finalizeCeremony, finalizeCircuit, formatSolidityCalldata, formatZkeyIndex, fromQueryToFirebaseDocumentInfo, generateGROTH16Proof, generateGetObjectPreSignedUrl, generatePreSignedUrlsParts, generateValidContributionsAttestation, generateZkeyFromScratch, genesisZkeyIndex, getAllCeremonies, getAllCollectionDocs, getBucketName, getCeremonyCircuits, getCircuitBySequencePosition, getCircuitContributionsFromContributor, getCircuitsCollectionPath, getClosedCeremonies, getContributionsCollectionPath, getContributionsValidityForContributor, getCurrentActiveParticipantTimeout, getCurrentFirebaseAuthUser, getDocumentById, getOpenedCeremonies, getParticipantsCollectionPath, getPotStorageFilePath, getPublicAttestationPreambleForContributor, getR1CSInfo, getR1csStorageFilePath, getTimeoutsCollectionPath, getTranscriptStorageFilePath, getVerificationKeyStorageFilePath, getVerifierContractStorageFilePath, getWasmStorageFilePath, getZkeyStorageFilePath, githubReputation, initializeFirebaseCoreServices, isCoordinator, multiPartUpload, numExpIterations, p256, parseCeremonyFile, permanentlyStoreCurrentContributionTimeAndHash, potFileDownloadMainUrl, potFilenameTemplate, powersOfTauFiles, progressToNextCircuitForContribution, progressToNextContributionStep, queryCollection, resumeContributionAfterTimeoutExpiration, retrieveCommandOutput, retrieveCommandStatus, runCommandUsingSSM, setupCeremony, signInToFirebaseWithCredentials, solidityVersion, startEC2Instance, stopEC2Instance, temporaryStoreCurrentContributionMultiPartUploadId, temporaryStoreCurrentContributionUploadedChunkData, terminateEC2Instance, toHex, verificationKeyAcronym, verifierSmartContractAcronym, verifyCeremony, verifyContribution, verifyGROTH16Proof, verifyGROTH16ProofOnChain, verifyZKey, vmBootstrapCommand, vmBootstrapScriptFilename, vmConfigurationTypes, vmContributionVerificationCommand, vmDependenciesAndCacheArtifactsCommand };
|
package/dist/index.node.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module @devtion/actions
|
|
3
|
-
* @version 1.
|
|
3
|
+
* @version 1.2.0
|
|
4
4
|
* @file A set of actions and helpers for CLI commands
|
|
5
5
|
* @copyright Ethereum Foundation 2022
|
|
6
6
|
* @license MIT
|
|
@@ -17,7 +17,6 @@ var firestore = require('firebase/firestore');
|
|
|
17
17
|
var snarkjs = require('snarkjs');
|
|
18
18
|
var crypto = require('crypto');
|
|
19
19
|
var blake = require('blakejs');
|
|
20
|
-
var ffjavascript = require('ffjavascript');
|
|
21
20
|
var winston = require('winston');
|
|
22
21
|
var stream = require('stream');
|
|
23
22
|
var util = require('util');
|
|
@@ -341,7 +340,9 @@ const commonTerms = {
|
|
|
341
340
|
finalizeCircuit: "finalizeCircuit",
|
|
342
341
|
finalizeCeremony: "finalizeCeremony",
|
|
343
342
|
downloadCircuitArtifacts: "downloadCircuitArtifacts",
|
|
344
|
-
transferObject: "transferObject"
|
|
343
|
+
transferObject: "transferObject",
|
|
344
|
+
bandadaValidateProof: "bandadaValidateProof",
|
|
345
|
+
checkNonceOfSIWEAddress: "checkNonceOfSIWEAddress"
|
|
345
346
|
}
|
|
346
347
|
};
|
|
347
348
|
|
|
@@ -707,8 +708,8 @@ const uploadParts = async (chunksWithUrls, contentType, cloudFunctions, ceremony
|
|
|
707
708
|
// @ts-ignore
|
|
708
709
|
const response = await fetch(chunksWithUrls[i].preSignedUrl, {
|
|
709
710
|
retryOptions: {
|
|
710
|
-
retryInitialDelay: 500,
|
|
711
|
-
socketTimeout: 60000,
|
|
711
|
+
retryInitialDelay: 500, // 500 ms.
|
|
712
|
+
socketTimeout: 60000, // 60 seconds.
|
|
712
713
|
retryMaxDuration: 300000 // 5 minutes.
|
|
713
714
|
},
|
|
714
715
|
method: "PUT",
|
|
@@ -1005,6 +1006,17 @@ const getClosedCeremonies = async (firestoreDatabase) => {
|
|
|
1005
1006
|
]);
|
|
1006
1007
|
return fromQueryToFirebaseDocumentInfo(closedCeremoniesQuerySnap.docs);
|
|
1007
1008
|
};
|
|
1009
|
+
/**
|
|
1010
|
+
* Query all ceremonies
|
|
1011
|
+
* @notice get all ceremonies from the database.
|
|
1012
|
+
* @dev this is a helper for the CLI ceremony methods.
|
|
1013
|
+
* @param firestoreDatabase <Firestore> - the Firestore service instance associated to the current Firebase application.
|
|
1014
|
+
* @returns <Promise<Array<FirebaseDocumentInfo>>> - the list of all ceremonies.
|
|
1015
|
+
*/
|
|
1016
|
+
const getAllCeremonies = async (firestoreDatabase) => {
|
|
1017
|
+
const ceremoniesQuerySnap = await queryCollection(firestoreDatabase, commonTerms.collections.ceremonies.name, []);
|
|
1018
|
+
return fromQueryToFirebaseDocumentInfo(ceremoniesQuerySnap.docs);
|
|
1019
|
+
};
|
|
1008
1020
|
|
|
1009
1021
|
/**
|
|
1010
1022
|
* @hidden
|
|
@@ -1264,6 +1276,41 @@ const readBytesFromFile = (localFilePath, offset, length, position) => {
|
|
|
1264
1276
|
// Return the read bytes.
|
|
1265
1277
|
return buffer;
|
|
1266
1278
|
};
|
|
1279
|
+
/**
|
|
1280
|
+
* Given a buffer in little endian format, convert it to bigint
|
|
1281
|
+
* @param buffer
|
|
1282
|
+
* @returns
|
|
1283
|
+
*/
|
|
1284
|
+
function leBufferToBigint(buffer) {
|
|
1285
|
+
return BigInt(`0x${buffer.reverse().toString("hex")}`);
|
|
1286
|
+
}
|
|
1287
|
+
/**
|
|
1288
|
+
* Given an input containing string values, convert them
|
|
1289
|
+
* to bigint
|
|
1290
|
+
* @param input - The input to convert
|
|
1291
|
+
* @returns the input with string values converted to bigint
|
|
1292
|
+
*/
|
|
1293
|
+
const unstringifyBigInts = (input) => {
|
|
1294
|
+
if (typeof input === "string" && /^[0-9]+$/.test(input)) {
|
|
1295
|
+
return BigInt(input);
|
|
1296
|
+
}
|
|
1297
|
+
if (typeof input === "string" && /^0x[0-9a-fA-F]+$/.test(input)) {
|
|
1298
|
+
return BigInt(input);
|
|
1299
|
+
}
|
|
1300
|
+
if (Array.isArray(input)) {
|
|
1301
|
+
return input.map(unstringifyBigInts);
|
|
1302
|
+
}
|
|
1303
|
+
if (input === null) {
|
|
1304
|
+
return null;
|
|
1305
|
+
}
|
|
1306
|
+
if (typeof input === "object") {
|
|
1307
|
+
return Object.entries(input).reduce((acc, [key, value]) => {
|
|
1308
|
+
acc[key] = unstringifyBigInts(value);
|
|
1309
|
+
return acc;
|
|
1310
|
+
}, {});
|
|
1311
|
+
}
|
|
1312
|
+
return input;
|
|
1313
|
+
};
|
|
1267
1314
|
/**
|
|
1268
1315
|
* Return the info about the R1CS file.ù
|
|
1269
1316
|
* @dev this method was built taking inspiration from
|
|
@@ -1324,17 +1371,17 @@ const getR1CSInfo = (localR1CSFilePath) => {
|
|
|
1324
1371
|
let constraints = 0;
|
|
1325
1372
|
try {
|
|
1326
1373
|
// Get 'number of section' (jump magic r1cs and version1 data).
|
|
1327
|
-
const numberOfSections =
|
|
1374
|
+
const numberOfSections = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, 8));
|
|
1328
1375
|
// Jump to first section.
|
|
1329
1376
|
pointer = 12;
|
|
1330
1377
|
// For each section
|
|
1331
1378
|
for (let i = 0; i < numberOfSections; i++) {
|
|
1332
1379
|
// Read section type.
|
|
1333
|
-
const sectionType =
|
|
1380
|
+
const sectionType = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer));
|
|
1334
1381
|
// Jump to section size.
|
|
1335
1382
|
pointer += 4;
|
|
1336
1383
|
// Read section size
|
|
1337
|
-
const sectionSize = Number(
|
|
1384
|
+
const sectionSize = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
|
|
1338
1385
|
// If at header section (0x00000001 : Header Section).
|
|
1339
1386
|
if (sectionType === BigInt(1)) {
|
|
1340
1387
|
// Read info from header section.
|
|
@@ -1366,22 +1413,22 @@ const getR1CSInfo = (localR1CSFilePath) => {
|
|
|
1366
1413
|
*/
|
|
1367
1414
|
pointer += sectionSize - 20;
|
|
1368
1415
|
// Read R1CS info.
|
|
1369
|
-
wires = Number(
|
|
1416
|
+
wires = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1370
1417
|
pointer += 4;
|
|
1371
|
-
publicOutputs = Number(
|
|
1418
|
+
publicOutputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1372
1419
|
pointer += 4;
|
|
1373
|
-
publicInputs = Number(
|
|
1420
|
+
publicInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1374
1421
|
pointer += 4;
|
|
1375
|
-
privateInputs = Number(
|
|
1422
|
+
privateInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1376
1423
|
pointer += 4;
|
|
1377
|
-
labels = Number(
|
|
1424
|
+
labels = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
|
|
1378
1425
|
pointer += 8;
|
|
1379
|
-
constraints = Number(
|
|
1426
|
+
constraints = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1380
1427
|
}
|
|
1381
1428
|
pointer += 8 + Number(sectionSize);
|
|
1382
1429
|
}
|
|
1383
1430
|
return {
|
|
1384
|
-
curve: "bn-128",
|
|
1431
|
+
curve: "bn-128", /// @note currently default to bn-128 as we support only Groth16 proving system.
|
|
1385
1432
|
wires,
|
|
1386
1433
|
constraints,
|
|
1387
1434
|
privateInputs,
|
|
@@ -1560,9 +1607,10 @@ const parseCeremonyFile = async (path, cleanup = false) => {
|
|
|
1560
1607
|
}
|
|
1561
1608
|
circuits.push(circuit);
|
|
1562
1609
|
// remove the local r1cs and wasm downloads (if used for verifying the config only vs setup)
|
|
1563
|
-
if (cleanup)
|
|
1610
|
+
if (cleanup) {
|
|
1564
1611
|
fs.unlinkSync(localR1csPath);
|
|
1565
|
-
|
|
1612
|
+
fs.unlinkSync(localWasmPath);
|
|
1613
|
+
}
|
|
1566
1614
|
}
|
|
1567
1615
|
const setupData = {
|
|
1568
1616
|
ceremonyInputData: {
|
|
@@ -1928,11 +1976,11 @@ const p256 = (proofPart) => {
|
|
|
1928
1976
|
*/
|
|
1929
1977
|
const formatSolidityCalldata = (circuitInput, _proof) => {
|
|
1930
1978
|
try {
|
|
1931
|
-
const proof =
|
|
1979
|
+
const proof = unstringifyBigInts(_proof);
|
|
1932
1980
|
// format the public inputs to the circuit
|
|
1933
1981
|
const formattedCircuitInput = [];
|
|
1934
1982
|
for (const cInput of circuitInput) {
|
|
1935
|
-
formattedCircuitInput.push(p256(
|
|
1983
|
+
formattedCircuitInput.push(p256(unstringifyBigInts(cInput)));
|
|
1936
1984
|
}
|
|
1937
1985
|
// construct calldata
|
|
1938
1986
|
const calldata = {
|
|
@@ -2314,8 +2362,8 @@ const createSSMClient = async () => {
|
|
|
2314
2362
|
* @returns <Array<string>> - the list of startup commands to be executed.
|
|
2315
2363
|
*/
|
|
2316
2364
|
const vmBootstrapCommand = (bucketName) => [
|
|
2317
|
-
"#!/bin/bash",
|
|
2318
|
-
`aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`,
|
|
2365
|
+
"#!/bin/bash", // shabang.
|
|
2366
|
+
`aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`, // copy file from S3 bucket to VM.
|
|
2319
2367
|
`chmod +x ${vmBootstrapScriptFilename} && bash ${vmBootstrapScriptFilename}` // grant permission and execute.
|
|
2320
2368
|
];
|
|
2321
2369
|
/**
|
|
@@ -2406,7 +2454,7 @@ const createEC2Instance = async (ec2, commands, instanceType, volumeSize, diskTy
|
|
|
2406
2454
|
DeviceName: "/dev/xvda",
|
|
2407
2455
|
Ebs: {
|
|
2408
2456
|
DeleteOnTermination: true,
|
|
2409
|
-
VolumeSize: volumeSize,
|
|
2457
|
+
VolumeSize: volumeSize, // disk size in GB.
|
|
2410
2458
|
VolumeType: diskType
|
|
2411
2459
|
}
|
|
2412
2460
|
}
|
|
@@ -2634,6 +2682,7 @@ exports.generatePreSignedUrlsParts = generatePreSignedUrlsParts;
|
|
|
2634
2682
|
exports.generateValidContributionsAttestation = generateValidContributionsAttestation;
|
|
2635
2683
|
exports.generateZkeyFromScratch = generateZkeyFromScratch;
|
|
2636
2684
|
exports.genesisZkeyIndex = genesisZkeyIndex;
|
|
2685
|
+
exports.getAllCeremonies = getAllCeremonies;
|
|
2637
2686
|
exports.getAllCollectionDocs = getAllCollectionDocs;
|
|
2638
2687
|
exports.getBucketName = getBucketName;
|
|
2639
2688
|
exports.getCeremonyCircuits = getCeremonyCircuits;
|
|
@@ -195,6 +195,8 @@ export declare const commonTerms: {
|
|
|
195
195
|
finalizeCeremony: string;
|
|
196
196
|
downloadCircuitArtifacts: string;
|
|
197
197
|
transferObject: string;
|
|
198
|
+
bandadaValidateProof: string;
|
|
199
|
+
checkNonceOfSIWEAddress: string;
|
|
198
200
|
};
|
|
199
201
|
};
|
|
200
202
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/helpers/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,sBAAsB,+CAA+C,CAAA;AAElF,eAAO,MAAM,mBAAmB,6BAA6B,CAAA;AAE7D,eAAO,MAAM,gBAAgB,UAAU,CAAA;AAEvC,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,eAAO,MAAM,sBAAsB,UAAU,CAAA;AAE7C,eAAO,MAAM,sBAAsB,SAAS,CAAA;AAE5C,eAAO,MAAM,4BAA4B,aAAa,CAAA;AAEtD,eAAO,MAAM,cAAc,sBAAsB,CAAA;AAEjD,eAAO,MAAM,yBAAyB,iBAAiB,CAAA;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ChC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;GA6G5B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/helpers/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,sBAAsB,+CAA+C,CAAA;AAElF,eAAO,MAAM,mBAAmB,6BAA6B,CAAA;AAE7D,eAAO,MAAM,gBAAgB,UAAU,CAAA;AAEvC,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,eAAO,MAAM,sBAAsB,UAAU,CAAA;AAE7C,eAAO,MAAM,sBAAsB,SAAS,CAAA;AAE5C,eAAO,MAAM,4BAA4B,aAAa,CAAA;AAEtD,eAAO,MAAM,cAAc,sBAAsB,CAAA;AAEjD,eAAO,MAAM,yBAAyB,iBAAiB,CAAA;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ChC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;GA6G5B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HvB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/helpers/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/helpers/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAS,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAiB9C;;;;;GAKG;AACH,eAAO,MAAM,IAAI,cAAe,GAAG,QAKlC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,EAAE,UAAU,GAAG,KAAG,GAwB5E,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,aAAoB,GAAG,SAAS,GAAG,KAAG,QAAQ,OAAO,CAG1F,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,iBAAwB,MAAM,KAAG,QAAQ,GAAG,CA6BvE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,iBAAwB,MAAM,UAAU,MAAM,KAAG,QAAQ,QAAQ,CAOnG,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,cACZ,SAAS,aACT,SAAS,kBACJ,MAAM,mBACL,MAAM,qBACJ,MAAM,wBACH,MAAM,UACpB,MAAM,WACL,GAAG,KACb,QAAQ,IAAI,CAkHd,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../src/helpers/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AASnB;;;;GAIG;AACH,eAAO,MAAM,KAAK,WAAY,UAAU,KAAG,MAAoD,CAAA;AAE/F;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAgB,GAAG,QAAQ,KAAG,QAAQ,MAAM,CAaxE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UAAW,MAAM,KAAG,MAAiE,CAAA;AAEpH;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAiB,MAAM,SAAS,MAAM,KAAG,QAAQ,OAAO,CAKjF,CAAA"}
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../src/helpers/crypto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AASnB;;;;GAIG;AACH,eAAO,MAAM,KAAK,WAAY,UAAU,KAAG,MAAoD,CAAA;AAE/F;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAgB,GAAG,QAAQ,KAAG,QAAQ,MAAM,CAaxE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UAAW,MAAM,KAAG,MAAiE,CAAA;AAEpH;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAiB,MAAM,SAAS,MAAM,KAAG,QAAQ,OAAO,CAKjF,CAAA"}
|
|
@@ -102,4 +102,12 @@ export declare const getCurrentActiveParticipantTimeout: (firestoreDatabase: Fir
|
|
|
102
102
|
* @returns <Promise<Array<FirebaseDocumentInfo>>> - the list of closed ceremonies.
|
|
103
103
|
*/
|
|
104
104
|
export declare const getClosedCeremonies: (firestoreDatabase: Firestore) => Promise<Array<FirebaseDocumentInfo>>;
|
|
105
|
+
/**
|
|
106
|
+
* Query all ceremonies
|
|
107
|
+
* @notice get all ceremonies from the database.
|
|
108
|
+
* @dev this is a helper for the CLI ceremony methods.
|
|
109
|
+
* @param firestoreDatabase <Firestore> - the Firestore service instance associated to the current Firebase application.
|
|
110
|
+
* @returns <Promise<Array<FirebaseDocumentInfo>>> - the list of all ceremonies.
|
|
111
|
+
*/
|
|
112
|
+
export declare const getAllCeremonies: (firestoreDatabase: Firestore) => Promise<Array<FirebaseDocumentInfo>>;
|
|
105
113
|
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/helpers/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,YAAY,EACZ,gBAAgB,EAChB,SAAS,EAIT,eAAe,EACf,qBAAqB,EACrB,aAAa,EAGhB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAGrD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,eAAgB,MAAM,KAAG,MACwC,CAAA;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,eAAgB,MAAM,KAAG,MACwC,CAAA;AAEvG;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,eAAgB,MAAM,aAAa,MAAM,KAAG,MACkB,CAAA;AAEzG;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,eAAgB,MAAM,iBAAiB,MAAM,KAAG,MACsB,CAAA;AAE5G;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sBACL,SAAS,cAChB,MAAM,oBACA,MAAM,eAAe,CAAC,KACzC,QAAQ,cAAc,YAAY,CAAC,CAQrC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,iBAC1B,MAAM,qBAAqB,CAAC,KAC3C,MAAM,oBAAoB,CAKtB,CAAA;AAEP;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,sBACV,SAAS,cAChB,MAAM,KACnB,QAAQ,MAAM,sBAAsB,YAAY,CAAC,CAAC,CACiB,CAAA;AAEtE;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sBACL,SAAS,cAChB,MAAM,cACN,MAAM,KACnB,QAAQ,iBAAiB,YAAY,CAAC,CAIxC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,sBAA6B,SAAS,KAAG,QAAQ,MAAM,oBAAoB,CAAC,CAW3G,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,sBACT,SAAS,cAChB,MAAM,KACnB,QAAQ,MAAM,oBAAoB,CAAC,CAG6E,CAAA;AAEnH;;;;;;;;GAQG;AACH,eAAO,MAAM,sCAAsC,sBAC5B,SAAS,cAChB,MAAM,aACP,MAAM,iBACF,MAAM,KACtB,QAAQ,MAAM,oBAAoB,CAAC,CAQrC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,sBACxB,SAAS,cAChB,MAAM,iBACH,MAAM,KACtB,QAAQ,MAAM,oBAAoB,CAAC,CAQrC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,sBAA6B,SAAS,KAAG,QAAQ,MAAM,oBAAoB,CAAC,CAW3G,CAAA"}
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/helpers/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,YAAY,EACZ,gBAAgB,EAChB,SAAS,EAIT,eAAe,EACf,qBAAqB,EACrB,aAAa,EAGhB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAGrD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,eAAgB,MAAM,KAAG,MACwC,CAAA;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,eAAgB,MAAM,KAAG,MACwC,CAAA;AAEvG;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,eAAgB,MAAM,aAAa,MAAM,KAAG,MACkB,CAAA;AAEzG;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,eAAgB,MAAM,iBAAiB,MAAM,KAAG,MACsB,CAAA;AAE5G;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sBACL,SAAS,cAChB,MAAM,oBACA,MAAM,eAAe,CAAC,KACzC,QAAQ,cAAc,YAAY,CAAC,CAQrC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,iBAC1B,MAAM,qBAAqB,CAAC,KAC3C,MAAM,oBAAoB,CAKtB,CAAA;AAEP;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,sBACV,SAAS,cAChB,MAAM,KACnB,QAAQ,MAAM,sBAAsB,YAAY,CAAC,CAAC,CACiB,CAAA;AAEtE;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sBACL,SAAS,cAChB,MAAM,cACN,MAAM,KACnB,QAAQ,iBAAiB,YAAY,CAAC,CAIxC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,sBAA6B,SAAS,KAAG,QAAQ,MAAM,oBAAoB,CAAC,CAW3G,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,sBACT,SAAS,cAChB,MAAM,KACnB,QAAQ,MAAM,oBAAoB,CAAC,CAG6E,CAAA;AAEnH;;;;;;;;GAQG;AACH,eAAO,MAAM,sCAAsC,sBAC5B,SAAS,cAChB,MAAM,aACP,MAAM,iBACF,MAAM,KACtB,QAAQ,MAAM,oBAAoB,CAAC,CAQrC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,sBACxB,SAAS,cAChB,MAAM,iBACH,MAAM,KACtB,QAAQ,MAAM,oBAAoB,CAAC,CAQrC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,sBAA6B,SAAS,KAAG,QAAQ,MAAM,oBAAoB,CAAC,CAW3G,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,sBAA6B,SAAS,KAAG,QAAQ,MAAM,oBAAoB,CAAC,CAIxG,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import { Firestore } from "firebase/firestore";
|
|
3
4
|
import { ReadPosition } from "fs";
|
|
4
5
|
import winston, { Logger } from "winston";
|
|
5
|
-
import { CircuitMetadata, Contribution, ContributionValidity, FirebaseDocumentInfo, SetupCeremonyData } from "../types/index";
|
|
6
|
+
import { CircuitMetadata, Contribution, ContributionValidity, FirebaseDocumentInfo, SetupCeremonyData, StringifiedBigInts, BigIntVariants } from "../types/index";
|
|
6
7
|
/**
|
|
7
8
|
* Return a string with double digits if the provided input is one digit only.
|
|
8
9
|
* @param in <number> - the input number to be converted.
|
|
@@ -118,6 +119,19 @@ export declare const createCustomLoggerForFile: (filename: string, level?: winst
|
|
|
118
119
|
* @returns <Buffer> - the buffer w/ the read bytes.
|
|
119
120
|
*/
|
|
120
121
|
export declare const readBytesFromFile: (localFilePath: string, offset: number, length: number, position: ReadPosition) => Buffer;
|
|
122
|
+
/**
|
|
123
|
+
* Given a buffer in little endian format, convert it to bigint
|
|
124
|
+
* @param buffer
|
|
125
|
+
* @returns
|
|
126
|
+
*/
|
|
127
|
+
export declare function leBufferToBigint(buffer: Buffer): bigint;
|
|
128
|
+
/**
|
|
129
|
+
* Given an input containing string values, convert them
|
|
130
|
+
* to bigint
|
|
131
|
+
* @param input - The input to convert
|
|
132
|
+
* @returns the input with string values converted to bigint
|
|
133
|
+
*/
|
|
134
|
+
export declare const unstringifyBigInts: (input: StringifiedBigInts) => BigIntVariants;
|
|
121
135
|
/**
|
|
122
136
|
* Return the info about the R1CS file.ù
|
|
123
137
|
* @dev this method was built taking inspiration from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/helpers/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/helpers/utils.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAW,EAAE,YAAY,EAAqB,MAAM,IAAI,CAAA;AACxD,OAAO,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIzC,OAAO,EACH,eAAe,EACf,YAAY,EAGZ,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EAGjB,kBAAkB,EAClB,cAAc,EACjB,MAAM,gBAAgB,CAAA;AAiBvB;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,WAAY,MAAM,KAAG,MAA0D,CAAA;AAEjH;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,MAEsC,CAAA;AAElF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,iBAAkB,MAAM,UAAU,MAAM,KAAG,MAgBtF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,gBAAiB,MAAM,WAAW,MAAM,WAUxF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,aAAc,MAAM,KAAG,MASlD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,wBAAyB,MAAM,KAAG,MACH,CAAA;AAElE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,cAAsE,CAAA;AAEtG;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,aAC3B,MAAM,oBAAoB,CAAC,oBACnB,MAAM,KACzB,oBAYF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,cAAe,MAAM,WAAW,OAAO,KAAG,MAC1B,CAAA;AAEjD;;;;;;;;GAQG;AACH,eAAO,MAAM,sCAAsC,sBAC5B,SAAS,YAClB,MAAM,oBAAoB,CAAC,cACzB,MAAM,iBACH,MAAM,gBACP,OAAO,KACtB,QAAQ,MAAM,oBAAoB,CAAC,CAmCrC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,0CAA0C,0BAC5B,MAAM,gBACf,MAAM,gBACN,OAAO,WAM4B,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qCAAqC,sBAC3B,SAAS,YAClB,MAAM,oBAAoB,CAAC,cACzB,MAAM,iBACH,MAAM,4BACK,MAAM,YAAY,CAAC,yBACtB,MAAM,gBACf,MAAM,gBACN,OAAO,KACtB,QAAQ,MAAM,CA2DhB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,aAAc,MAAM,UAAS,QAAQ,aAAa,CAAC,OAAO,CAAC,KAAY,MAQvG,CAAA;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,kBACX,MAAM,UACb,MAAM,UACN,MAAM,YACJ,YAAY,KACvB,MAYF,CAAA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,UAAW,kBAAkB,KAAG,cAyB9D,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,sBAAuB,MAAM,KAAG,eA0IvD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,SAAgB,MAAM,YAAW,OAAO,KAAW,QAAQ,iBAAiB,CA8NzG,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CircuitSignals, Groth16Proof, PublicSignals } from "snarkjs";
|
|
1
2
|
import { Firestore } from "firebase/firestore";
|
|
2
3
|
import { Functions } from "firebase/functions";
|
|
3
4
|
import { CeremonyArtifacts } from "../types/index";
|
|
@@ -18,7 +19,7 @@ export declare const verifyZKey: (r1csLocalFilePath: string, zkeyLocalPath: stri
|
|
|
18
19
|
* @param logger <any> Optional logger
|
|
19
20
|
* @returns <Promise<object>> The proof
|
|
20
21
|
*/
|
|
21
|
-
export declare const generateGROTH16Proof: (circuitInput:
|
|
22
|
+
export declare const generateGROTH16Proof: (circuitInput: CircuitSignals, zkeyFilePath: string, wasmFilePath: string, logger?: any) => Promise<any>;
|
|
22
23
|
/**
|
|
23
24
|
* Verifies a GROTH16 proof
|
|
24
25
|
* @param verificationKeyPath <string> Path to the verification key
|
|
@@ -26,7 +27,7 @@ export declare const generateGROTH16Proof: (circuitInput: object, zkeyFilePath:
|
|
|
26
27
|
* @param proof <object> Proof
|
|
27
28
|
* @returns <Promise<boolean>> Whether the proof is valid or not
|
|
28
29
|
*/
|
|
29
|
-
export declare const verifyGROTH16Proof: (verificationKeyPath: string, publicSignals:
|
|
30
|
+
export declare const verifyGROTH16Proof: (verificationKeyPath: string, publicSignals: PublicSignals, proof: Groth16Proof) => Promise<boolean>;
|
|
30
31
|
/**
|
|
31
32
|
* Helper method to extract the Solidity verifier
|
|
32
33
|
* from a final zKey file and save it to a local file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../../src/helpers/verification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../../src/helpers/verification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAiB,MAAM,SAAS,CAAA;AAEpF,OAAO,EAAE,SAAS,EAAS,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAyB9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,sBACA,MAAM,iBACV,MAAM,oBACH,MAAM,WACf,GAAG,KACb,QAAQ,OAAO,CASjB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,iBACf,cAAc,gBACd,MAAM,gBACN,MAAM,WACX,GAAG,KACb,QAAQ,GAAG,CAYb,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,wBACN,MAAM,uCAEpB,YAAY,KACpB,QAAQ,OAAO,CAIjB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,kBAAyB,MAAM,gBAAgB,MAAM,iBAcvF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,kBAAyB,MAAM,iBAGrD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,kBACf,MAAM,qBACF,MAAM,iBACV,MAAM,gBACP,MAAM,kBAMvB,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,iBAClB,OAAO,iBACN,MAAM,gBACP,MAAM,iBACL,MAAM,UACb,GAAG,mCACsB,MAAM,0BACf,MAAM,WACrB,MAAM,kBAqBlB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,sBACd,SAAS,cAChB,MAAM,cACN,MAAM,gBACJ,MAAM,gBACN,MAAM,eACP,MAAM,eACN,MAAM,WACV,OAAO,KACjB,QAAQ,OAAO,CAajB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,cAC1B,SAAS,aACT,SAAS,kBACJ,MAAM,mBACL,MAAM,KACxB,QAAQ,iBAAiB,EAAE,CAqF7B,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,cACxB,SAAS,cACR,MAAM,aACP,MAAM,iBACF,MAAM,KACtB,QAAQ,MAAM,CAYhB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm.d.ts","sourceRoot":"","sources":["../../../../src/helpers/vm.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,SAAS,
|
|
1
|
+
{"version":3,"file":"vm.d.ts","sourceRoot":"","sources":["../../../../src/helpers/vm.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,SAAS,EAGZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEH,SAAS,EAGZ,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAOtC;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAa,QAAQ,SAAS,CAYzD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAa,QAAQ,SAAS,CAYzD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,eAAgB,MAAM,KAAG,MAAM,MAAM,CAInE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sCAAsC,aACrC,MAAM,WACP,MAAM,YACL,MAAM,UACR,MAAM,KACf,MAAM,MAAM,CAyBd,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,eAC9B,MAAM,uBACG,MAAM,gDACmB,MAAM,KACrD,MAAM,MAAM,CAOd,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,oBAAqB,MAAM,OAAO,MAAM,KAAG,MACuB,CAAA;AAEnG;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,QACrB,SAAS,YACJ,MAAM,EAAE,gBACJ,MAAM,cACR,MAAM,YACR,aAAa,KACxB,QAAQ,WAAW,CAgErB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,cAAqB,SAAS,cAAc,MAAM,KAAG,QAAQ,OAAO,CAe9F,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAe,SAAS,cAAc,MAAM,kBAYxE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAe,SAAS,cAAc,MAAM,kBAYvE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAe,SAAS,cAAc,MAAM,kBAc5E,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,QACtB,SAAS,cACF,MAAM,YACR,MAAM,MAAM,CAAC,KACxB,QAAQ,MAAM,CAwBhB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAe,SAAS,cAAc,MAAM,aAAa,MAAM,KAAG,QAAQ,MAAM,CAiBjH,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAe,SAAS,cAAc,MAAM,aAAa,MAAM,KAAG,QAAQ,MAAM,CAgBjH,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { downloadCeremonyArtifact, getBucketName, multiPartUpload, getR1csStorageFilePath, getPotStorageFilePath, getZkeyStorageFilePath, getVerificationKeyStorageFilePath, getVerifierContractStorageFilePath, getTranscriptStorageFilePath, getWasmStorageFilePath } from "./helpers/storage";
|
|
2
|
-
export { queryCollection, fromQueryToFirebaseDocumentInfo, getAllCollectionDocs, getCircuitContributionsFromContributor, getDocumentById, getCurrentActiveParticipantTimeout, getClosedCeremonies, getParticipantsCollectionPath, getCircuitsCollectionPath, getContributionsCollectionPath, getTimeoutsCollectionPath, getOpenedCeremonies, getCeremonyCircuits } from "./helpers/database";
|
|
2
|
+
export { queryCollection, fromQueryToFirebaseDocumentInfo, getAllCollectionDocs, getCircuitContributionsFromContributor, getDocumentById, getCurrentActiveParticipantTimeout, getClosedCeremonies, getParticipantsCollectionPath, getCircuitsCollectionPath, getContributionsCollectionPath, getTimeoutsCollectionPath, getOpenedCeremonies, getAllCeremonies, getCeremonyCircuits } from "./helpers/database";
|
|
3
3
|
export { compareCeremonyArtifacts, downloadAllCeremonyArtifacts, exportVerifierAndVKey, exportVerifierContract, exportVkey, generateGROTH16Proof, generateZkeyFromScratch, verifyGROTH16Proof, verifyZKey } from "./helpers/verification";
|
|
4
4
|
export { initializeFirebaseCoreServices } from "./helpers/services";
|
|
5
5
|
export { signInToFirebaseWithCredentials, getCurrentFirebaseAuthUser, isCoordinator } from "./helpers/authentication";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iCAAiC,EACjC,kCAAkC,EAClC,4BAA4B,EAC5B,sBAAsB,EACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACH,eAAe,EACf,+BAA+B,EAC/B,oBAAoB,EACpB,sCAAsC,EACtC,eAAe,EACf,kCAAkC,EAClC,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,wBAAwB,EACxB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,UAAU,EACb,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACrH,OAAO,EACH,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,+BAA+B,EAC/B,eAAe,EACf,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,0CAA0C,EAC1C,sCAAsC,EACtC,qCAAqC,EACrC,yBAAyB,EACzB,WAAW,EACX,oCAAoC,EACpC,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACH,aAAa,EACb,2BAA2B,EAC3B,oCAAoC,EACpC,wCAAwC,EACxC,cAAc,EACd,6BAA6B,EAC7B,8BAA8B,EAC9B,8CAA8C,EAC9C,kDAAkD,EAClD,kDAAkD,EAClD,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yCAAyC,EACzC,eAAe,EACf,gBAAgB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EACH,eAAe,EACf,cAAc,EACd,IAAI,EACJ,yBAAyB,EACzB,sBAAsB,EACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EACH,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC3B,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,wCAAwC,EACxC,aAAa,EAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EACH,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,oCAAoC,EACpC,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gCAAgC,EAChC,UAAU,EACV,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,mCAAmC,EACnC,iBAAiB,EACjB,oCAAoC,EACpC,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACf,MAAM,eAAe,CAAA;AACtB,OAAO,EACH,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,sCAAsC,EACtC,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,iCAAiC,EACjC,qBAAqB,EACxB,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -170,7 +170,7 @@ export type VMConfiguration = {
|
|
|
170
170
|
/**
|
|
171
171
|
* Group information about the circuit contribution verification mechanism.
|
|
172
172
|
* @typedef {Object} CircuitContributionVerification
|
|
173
|
-
* @property {CircuitContributionVerificationMechanism} cfOrVm - the mechanism
|
|
173
|
+
* @property {CircuitContributionVerificationMechanism} cfOrVm - the mechanism chosen by the coordinator.
|
|
174
174
|
* @property {VMConfiguration} [vm] - the VM configuration specs.
|
|
175
175
|
*/
|
|
176
176
|
export type CircuitContributionVerification = {
|
|
@@ -600,4 +600,10 @@ export type CeremonySetupTemplate = {
|
|
|
600
600
|
penalty: number;
|
|
601
601
|
circuits: Array<CircuitDocument & CeremonySetupTemplateCircuitArtifacts & CeremonySetupTemplateCircuitTimeout & CeremonySetupTemplateCircuitName>;
|
|
602
602
|
};
|
|
603
|
+
export type StringifiedBigInts = StringifiedBigInts[] | string | string[] | string[][] | string[][][] | {
|
|
604
|
+
[key: string]: StringifiedBigInts;
|
|
605
|
+
} | null;
|
|
606
|
+
export type BigIntVariants = BigIntVariants[] | StringifiedBigInts | bigint | bigint[] | bigint[][] | bigint[][][] | {
|
|
607
|
+
[key: string]: BigIntVariants;
|
|
608
|
+
} | Uint8Array | null;
|
|
603
609
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EACH,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,wCAAwC,EACxC,aAAa,EACb,2BAA2B,EAC3B,iBAAiB,EACpB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,MAAM,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,WAAW,EAAE,WAAW,CAAA;IACxB,iBAAiB,EAAE,SAAS,CAAA;IAC5B,iBAAiB,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAA;IACpC,IAAI,EAAE,YAAY,CAAA;CACrB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAA;IACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,oBAAoB,EAAE,mBAAmB,CAAA;IACzC,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACrC,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC1C,MAAM,EAAE,wCAAwC,CAAA;IAChD,EAAE,CAAC,EAAE,eAAe,CAAA;CACvB,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,YAAY,EAAE,+BAA+B,CAAA;IAC7C,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG;IAC/C,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,aAAa,CAAA;IACpB,IAAI,EAAE,YAAY,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,oCAAoC,GAAG;IAC/C,2BAA2B,EAAE,MAAM,CAAA;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;CACpC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB,EAAE,MAAM,CAAA;IAC5B,MAAM,EAAE,iBAAiB,CAAA;IACzB,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,gBAAgB,CAAC,EAAE,2BAA2B,CAAA;IAC9C,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oBAAoB,CAAC,EAAE,oCAAoC,CAAA;CAC9D,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,sBAAsB,EAAE,MAAM,CAAA;CACjC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC7C,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAC7B,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,MAAM,CAAA;IACxB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAA;CACvC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,2BAA2B,EAAE,MAAM,CAAA;IACnC,2BAA2B,EAAE,MAAM,CAAA;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,iBAAiB,CAAA;IACxB,oBAAoB,EAAE,gCAAgC,CAAA;IACtD,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;CACtB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,eAAe,CAAA;CACxB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,YAAY,CAAA;CACrB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,gBAAgB,CAAA;CACzB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,mBAAmB,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,4BAA4B,EAAE,MAAM,CAAA;IACpC,iBAAiB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oCAAoC,GAAG;IAC/C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,oBAAoB,CAAA;CAC7B,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;IAChC,gBAAgB,EAAE,KAAK,CAAC,qCAAqC,CAAC,CAAA;CACjE,CAAA;AAED,MAAM,MAAM,qCAAqC,GAAG;IAChD,SAAS,EAAE;QACP,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,MAAM,CAAA;KAC1B,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG;IAC9C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,oBAAoB,EAAE,mBAAmB,CAAA;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,KAAK,CACX,eAAe,GACX,qCAAqC,GACrC,mCAAmC,GACnC,gCAAgC,CACvC,CAAA;CACJ,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devtion/actions",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-2cb7418",
|
|
4
4
|
"description": "A set of actions and helpers for CLI commands",
|
|
5
5
|
"repository": "git@github.com:privacy-scaling-explorations/p0tion.git",
|
|
6
6
|
"homepage": "https://github.com/privacy-scaling-explorations/p0tion",
|
|
@@ -51,13 +51,12 @@
|
|
|
51
51
|
"chai-as-promised": "^7.1.1",
|
|
52
52
|
"dotenv": "^16.0.3",
|
|
53
53
|
"ethers": "^5.7.2",
|
|
54
|
-
"ffjavascript": "^0.2.57",
|
|
55
54
|
"firebase": "^9.21.0",
|
|
56
55
|
"firebase-admin": "^11.8.0",
|
|
57
56
|
"googleapis": "^118.0.0",
|
|
58
57
|
"rimraf": "^5.0.0",
|
|
59
58
|
"rollup": "^3.21.6",
|
|
60
|
-
"snarkjs": "
|
|
59
|
+
"snarkjs": "0.7.3",
|
|
61
60
|
"solc": "^0.8.19"
|
|
62
61
|
},
|
|
63
62
|
"devDependencies": {
|
|
@@ -79,5 +78,5 @@
|
|
|
79
78
|
"publishConfig": {
|
|
80
79
|
"access": "public"
|
|
81
80
|
},
|
|
82
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "ab9fdd5025661b41824cda16265a674d2ca8e2bf"
|
|
83
82
|
}
|
package/src/helpers/constants.ts
CHANGED
|
@@ -313,6 +313,8 @@ export const commonTerms = {
|
|
|
313
313
|
finalizeCircuit: "finalizeCircuit",
|
|
314
314
|
finalizeCeremony: "finalizeCeremony",
|
|
315
315
|
downloadCircuitArtifacts: "downloadCircuitArtifacts",
|
|
316
|
-
transferObject: "transferObject"
|
|
316
|
+
transferObject: "transferObject",
|
|
317
|
+
bandadaValidateProof: "bandadaValidateProof",
|
|
318
|
+
checkNonceOfSIWEAddress: "checkNonceOfSIWEAddress"
|
|
317
319
|
}
|
|
318
320
|
}
|
package/src/helpers/contracts.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Contract, ContractFactory, Signer } from "ethers"
|
|
2
|
-
import { utils as ffUtils } from "ffjavascript"
|
|
3
2
|
import { Firestore, where } from "firebase/firestore"
|
|
4
3
|
import { Functions } from "firebase/functions"
|
|
5
4
|
import fs from "fs"
|
|
@@ -16,6 +15,7 @@ import {
|
|
|
16
15
|
import { compareHashes } from "./crypto"
|
|
17
16
|
import { commonTerms, finalContributionIndex, verificationKeyAcronym, verifierSmartContractAcronym } from "./constants"
|
|
18
17
|
import { fromQueryToFirebaseDocumentInfo, queryCollection } from "./database"
|
|
18
|
+
import { unstringifyBigInts } from "./utils"
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Formats part of a GROTH16 SNARK proof
|
|
@@ -41,11 +41,11 @@ export const p256 = (proofPart: any) => {
|
|
|
41
41
|
*/
|
|
42
42
|
export const formatSolidityCalldata = (circuitInput: string[], _proof: any): any => {
|
|
43
43
|
try {
|
|
44
|
-
const proof =
|
|
44
|
+
const proof = unstringifyBigInts(_proof) as any
|
|
45
45
|
// format the public inputs to the circuit
|
|
46
46
|
const formattedCircuitInput = []
|
|
47
47
|
for (const cInput of circuitInput) {
|
|
48
|
-
formattedCircuitInput.push(p256(
|
|
48
|
+
formattedCircuitInput.push(p256(unstringifyBigInts(cInput)))
|
|
49
49
|
}
|
|
50
50
|
// construct calldata
|
|
51
51
|
const calldata = {
|
package/src/helpers/database.ts
CHANGED
|
@@ -219,3 +219,16 @@ export const getClosedCeremonies = async (firestoreDatabase: Firestore): Promise
|
|
|
219
219
|
|
|
220
220
|
return fromQueryToFirebaseDocumentInfo(closedCeremoniesQuerySnap.docs)
|
|
221
221
|
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Query all ceremonies
|
|
225
|
+
* @notice get all ceremonies from the database.
|
|
226
|
+
* @dev this is a helper for the CLI ceremony methods.
|
|
227
|
+
* @param firestoreDatabase <Firestore> - the Firestore service instance associated to the current Firebase application.
|
|
228
|
+
* @returns <Promise<Array<FirebaseDocumentInfo>>> - the list of all ceremonies.
|
|
229
|
+
*/
|
|
230
|
+
export const getAllCeremonies = async (firestoreDatabase: Firestore): Promise<Array<FirebaseDocumentInfo>> => {
|
|
231
|
+
const ceremoniesQuerySnap = await queryCollection(firestoreDatabase, commonTerms.collections.ceremonies.name, [])
|
|
232
|
+
|
|
233
|
+
return fromQueryToFirebaseDocumentInfo(ceremoniesQuerySnap.docs)
|
|
234
|
+
}
|
package/src/helpers/utils.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Firestore } from "firebase/firestore"
|
|
2
2
|
import fs, { ReadPosition, createWriteStream } from "fs"
|
|
3
|
-
import { utils as ffUtils } from "ffjavascript"
|
|
4
3
|
import winston, { Logger } from "winston"
|
|
5
4
|
import fetch from "@adobe/node-fetch-retry"
|
|
6
5
|
import { pipeline } from "stream"
|
|
@@ -14,7 +13,9 @@ import {
|
|
|
14
13
|
FirebaseDocumentInfo,
|
|
15
14
|
SetupCeremonyData,
|
|
16
15
|
CeremonySetupTemplate,
|
|
17
|
-
CeremonySetupTemplateCircuitArtifacts
|
|
16
|
+
CeremonySetupTemplateCircuitArtifacts,
|
|
17
|
+
StringifiedBigInts,
|
|
18
|
+
BigIntVariants
|
|
18
19
|
} from "../types/index"
|
|
19
20
|
import { finalContributionIndex, genesisZkeyIndex, potFilenameTemplate } from "./constants"
|
|
20
21
|
import {
|
|
@@ -358,6 +359,48 @@ export const readBytesFromFile = (
|
|
|
358
359
|
return buffer
|
|
359
360
|
}
|
|
360
361
|
|
|
362
|
+
/**
|
|
363
|
+
* Given a buffer in little endian format, convert it to bigint
|
|
364
|
+
* @param buffer
|
|
365
|
+
* @returns
|
|
366
|
+
*/
|
|
367
|
+
export function leBufferToBigint(buffer: Buffer): bigint {
|
|
368
|
+
return BigInt(`0x${buffer.reverse().toString("hex")}`)
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Given an input containing string values, convert them
|
|
373
|
+
* to bigint
|
|
374
|
+
* @param input - The input to convert
|
|
375
|
+
* @returns the input with string values converted to bigint
|
|
376
|
+
*/
|
|
377
|
+
export const unstringifyBigInts = (input: StringifiedBigInts): BigIntVariants => {
|
|
378
|
+
if (typeof input === "string" && /^[0-9]+$/.test(input)) {
|
|
379
|
+
return BigInt(input)
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
if (typeof input === "string" && /^0x[0-9a-fA-F]+$/.test(input)) {
|
|
383
|
+
return BigInt(input)
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
if (Array.isArray(input)) {
|
|
387
|
+
return input.map(unstringifyBigInts)
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
if (input === null) {
|
|
391
|
+
return null
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
if (typeof input === "object") {
|
|
395
|
+
return Object.entries(input).reduce<Record<string, bigint>>((acc, [key, value]) => {
|
|
396
|
+
acc[key] = unstringifyBigInts(value) as bigint
|
|
397
|
+
return acc
|
|
398
|
+
}, {})
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
return input
|
|
402
|
+
}
|
|
403
|
+
|
|
361
404
|
/**
|
|
362
405
|
* Return the info about the R1CS file.ù
|
|
363
406
|
* @dev this method was built taking inspiration from
|
|
@@ -420,7 +463,7 @@ export const getR1CSInfo = (localR1CSFilePath: string): CircuitMetadata => {
|
|
|
420
463
|
|
|
421
464
|
try {
|
|
422
465
|
// Get 'number of section' (jump magic r1cs and version1 data).
|
|
423
|
-
const numberOfSections =
|
|
466
|
+
const numberOfSections = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, 8))
|
|
424
467
|
|
|
425
468
|
// Jump to first section.
|
|
426
469
|
pointer = 12
|
|
@@ -428,13 +471,13 @@ export const getR1CSInfo = (localR1CSFilePath: string): CircuitMetadata => {
|
|
|
428
471
|
// For each section
|
|
429
472
|
for (let i = 0; i < numberOfSections; i++) {
|
|
430
473
|
// Read section type.
|
|
431
|
-
const sectionType =
|
|
474
|
+
const sectionType = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer))
|
|
432
475
|
|
|
433
476
|
// Jump to section size.
|
|
434
477
|
pointer += 4
|
|
435
478
|
|
|
436
479
|
// Read section size
|
|
437
|
-
const sectionSize = Number(
|
|
480
|
+
const sectionSize = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)))
|
|
438
481
|
|
|
439
482
|
// If at header section (0x00000001 : Header Section).
|
|
440
483
|
if (sectionType === BigInt(1)) {
|
|
@@ -469,22 +512,22 @@ export const getR1CSInfo = (localR1CSFilePath: string): CircuitMetadata => {
|
|
|
469
512
|
pointer += sectionSize - 20
|
|
470
513
|
|
|
471
514
|
// Read R1CS info.
|
|
472
|
-
wires = Number(
|
|
515
|
+
wires = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)))
|
|
473
516
|
pointer += 4
|
|
474
517
|
|
|
475
|
-
publicOutputs = Number(
|
|
518
|
+
publicOutputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)))
|
|
476
519
|
pointer += 4
|
|
477
520
|
|
|
478
|
-
publicInputs = Number(
|
|
521
|
+
publicInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)))
|
|
479
522
|
pointer += 4
|
|
480
523
|
|
|
481
|
-
privateInputs = Number(
|
|
524
|
+
privateInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)))
|
|
482
525
|
pointer += 4
|
|
483
526
|
|
|
484
|
-
labels = Number(
|
|
527
|
+
labels = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)))
|
|
485
528
|
pointer += 8
|
|
486
529
|
|
|
487
|
-
constraints = Number(
|
|
530
|
+
constraints = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)))
|
|
488
531
|
}
|
|
489
532
|
|
|
490
533
|
pointer += 8 + Number(sectionSize)
|
|
@@ -712,8 +755,10 @@ export const parseCeremonyFile = async (path: string, cleanup: boolean = false):
|
|
|
712
755
|
circuits.push(circuit)
|
|
713
756
|
|
|
714
757
|
// remove the local r1cs and wasm downloads (if used for verifying the config only vs setup)
|
|
715
|
-
if (cleanup)
|
|
716
|
-
|
|
758
|
+
if (cleanup) {
|
|
759
|
+
fs.unlinkSync(localR1csPath)
|
|
760
|
+
fs.unlinkSync(localWasmPath)
|
|
761
|
+
}
|
|
717
762
|
}
|
|
718
763
|
|
|
719
764
|
const setupData: SetupCeremonyData = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { groth16, zKey } from "snarkjs"
|
|
1
|
+
import { CircuitSignals, Groth16Proof, PublicSignals, groth16, zKey } from "snarkjs"
|
|
2
2
|
import fs from "fs"
|
|
3
3
|
import { Firestore, where } from "firebase/firestore"
|
|
4
4
|
import { Functions } from "firebase/functions"
|
|
@@ -61,7 +61,7 @@ export const verifyZKey = async (
|
|
|
61
61
|
* @returns <Promise<object>> The proof
|
|
62
62
|
*/
|
|
63
63
|
export const generateGROTH16Proof = async (
|
|
64
|
-
circuitInput:
|
|
64
|
+
circuitInput: CircuitSignals,
|
|
65
65
|
zkeyFilePath: string,
|
|
66
66
|
wasmFilePath: string,
|
|
67
67
|
logger?: any
|
|
@@ -88,8 +88,8 @@ export const generateGROTH16Proof = async (
|
|
|
88
88
|
*/
|
|
89
89
|
export const verifyGROTH16Proof = async (
|
|
90
90
|
verificationKeyPath: string,
|
|
91
|
-
publicSignals:
|
|
92
|
-
proof:
|
|
91
|
+
publicSignals: PublicSignals,
|
|
92
|
+
proof: Groth16Proof
|
|
93
93
|
): Promise<boolean> => {
|
|
94
94
|
const verificationKey = JSON.parse(fs.readFileSync(verificationKeyPath).toString())
|
|
95
95
|
const success = await groth16.verify(verificationKey, publicSignals, proof)
|
|
@@ -182,8 +182,8 @@ export const generateZkeyFromScratch = async (
|
|
|
182
182
|
await zKey.beacon(
|
|
183
183
|
finalContributionZKeyLocalPath,
|
|
184
184
|
zkeyLocalPath,
|
|
185
|
-
coordinatorIdentifier
|
|
186
|
-
beacon
|
|
185
|
+
coordinatorIdentifier!,
|
|
186
|
+
beacon!,
|
|
187
187
|
numExpIterations,
|
|
188
188
|
logger
|
|
189
189
|
)
|
package/src/helpers/vm.ts
CHANGED
|
@@ -5,7 +5,8 @@ import {
|
|
|
5
5
|
StopInstancesCommand,
|
|
6
6
|
TerminateInstancesCommand,
|
|
7
7
|
EC2Client,
|
|
8
|
-
RunInstancesCommandInput
|
|
8
|
+
RunInstancesCommandInput,
|
|
9
|
+
_InstanceType
|
|
9
10
|
} from "@aws-sdk/client-ec2"
|
|
10
11
|
import {
|
|
11
12
|
GetCommandInvocationCommand,
|
|
@@ -164,7 +165,7 @@ export const createEC2Instance = async (
|
|
|
164
165
|
// Parametrize the VM EC2 instance.
|
|
165
166
|
const params: RunInstancesCommandInput = {
|
|
166
167
|
ImageId: amiId,
|
|
167
|
-
InstanceType: instanceType,
|
|
168
|
+
InstanceType: instanceType as _InstanceType,
|
|
168
169
|
MaxCount: 1,
|
|
169
170
|
MinCount: 1,
|
|
170
171
|
// nb. to find this: iam -> roles -> role_name.
|
package/src/index.ts
CHANGED
package/src/types/index.ts
CHANGED
|
@@ -190,7 +190,7 @@ export type VMConfiguration = {
|
|
|
190
190
|
/**
|
|
191
191
|
* Group information about the circuit contribution verification mechanism.
|
|
192
192
|
* @typedef {Object} CircuitContributionVerification
|
|
193
|
-
* @property {CircuitContributionVerificationMechanism} cfOrVm - the mechanism
|
|
193
|
+
* @property {CircuitContributionVerificationMechanism} cfOrVm - the mechanism chosen by the coordinator.
|
|
194
194
|
* @property {VMConfiguration} [vm] - the VM configuration specs.
|
|
195
195
|
*/
|
|
196
196
|
export type CircuitContributionVerification = {
|
|
@@ -652,3 +652,23 @@ export type CeremonySetupTemplate = {
|
|
|
652
652
|
CeremonySetupTemplateCircuitName
|
|
653
653
|
>
|
|
654
654
|
}
|
|
655
|
+
|
|
656
|
+
export type StringifiedBigInts =
|
|
657
|
+
| StringifiedBigInts[]
|
|
658
|
+
| string
|
|
659
|
+
| string[]
|
|
660
|
+
| string[][]
|
|
661
|
+
| string[][][]
|
|
662
|
+
| { [key: string]: StringifiedBigInts }
|
|
663
|
+
| null
|
|
664
|
+
|
|
665
|
+
export type BigIntVariants =
|
|
666
|
+
| BigIntVariants[]
|
|
667
|
+
| StringifiedBigInts
|
|
668
|
+
| bigint
|
|
669
|
+
| bigint[]
|
|
670
|
+
| bigint[][]
|
|
671
|
+
| bigint[][][]
|
|
672
|
+
| { [key: string]: BigIntVariants }
|
|
673
|
+
| Uint8Array
|
|
674
|
+
| null
|