@devtion/actions 0.0.0-2319823 → 0.0.0-2e5a17d
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 +70 -23
- package/dist/index.node.js +70 -22
- package/dist/types/src/helpers/constants.d.ts +1 -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 +2 -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.1.
|
|
3
|
+
* @version 1.1.1
|
|
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,8 @@ const commonTerms = {
|
|
|
339
338
|
finalizeCircuit: "finalizeCircuit",
|
|
340
339
|
finalizeCeremony: "finalizeCeremony",
|
|
341
340
|
downloadCircuitArtifacts: "downloadCircuitArtifacts",
|
|
342
|
-
transferObject: "transferObject"
|
|
341
|
+
transferObject: "transferObject",
|
|
342
|
+
bandadaValidateProof: "bandadaValidateProof"
|
|
343
343
|
}
|
|
344
344
|
};
|
|
345
345
|
|
|
@@ -705,8 +705,8 @@ const uploadParts = async (chunksWithUrls, contentType, cloudFunctions, ceremony
|
|
|
705
705
|
// @ts-ignore
|
|
706
706
|
const response = await fetch(chunksWithUrls[i].preSignedUrl, {
|
|
707
707
|
retryOptions: {
|
|
708
|
-
retryInitialDelay: 500,
|
|
709
|
-
socketTimeout: 60000,
|
|
708
|
+
retryInitialDelay: 500, // 500 ms.
|
|
709
|
+
socketTimeout: 60000, // 60 seconds.
|
|
710
710
|
retryMaxDuration: 300000 // 5 minutes.
|
|
711
711
|
},
|
|
712
712
|
method: "PUT",
|
|
@@ -1003,6 +1003,17 @@ const getClosedCeremonies = async (firestoreDatabase) => {
|
|
|
1003
1003
|
]);
|
|
1004
1004
|
return fromQueryToFirebaseDocumentInfo(closedCeremoniesQuerySnap.docs);
|
|
1005
1005
|
};
|
|
1006
|
+
/**
|
|
1007
|
+
* Query all ceremonies
|
|
1008
|
+
* @notice get all ceremonies from the database.
|
|
1009
|
+
* @dev this is a helper for the CLI ceremony methods.
|
|
1010
|
+
* @param firestoreDatabase <Firestore> - the Firestore service instance associated to the current Firebase application.
|
|
1011
|
+
* @returns <Promise<Array<FirebaseDocumentInfo>>> - the list of all ceremonies.
|
|
1012
|
+
*/
|
|
1013
|
+
const getAllCeremonies = async (firestoreDatabase) => {
|
|
1014
|
+
const ceremoniesQuerySnap = await queryCollection(firestoreDatabase, commonTerms.collections.ceremonies.name, []);
|
|
1015
|
+
return fromQueryToFirebaseDocumentInfo(ceremoniesQuerySnap.docs);
|
|
1016
|
+
};
|
|
1006
1017
|
|
|
1007
1018
|
/**
|
|
1008
1019
|
* @hidden
|
|
@@ -1262,6 +1273,41 @@ const readBytesFromFile = (localFilePath, offset, length, position) => {
|
|
|
1262
1273
|
// Return the read bytes.
|
|
1263
1274
|
return buffer;
|
|
1264
1275
|
};
|
|
1276
|
+
/**
|
|
1277
|
+
* Given a buffer in little endian format, convert it to bigint
|
|
1278
|
+
* @param buffer
|
|
1279
|
+
* @returns
|
|
1280
|
+
*/
|
|
1281
|
+
function leBufferToBigint(buffer) {
|
|
1282
|
+
return BigInt(`0x${buffer.reverse().toString("hex")}`);
|
|
1283
|
+
}
|
|
1284
|
+
/**
|
|
1285
|
+
* Given an input containing string values, convert them
|
|
1286
|
+
* to bigint
|
|
1287
|
+
* @param input - The input to convert
|
|
1288
|
+
* @returns the input with string values converted to bigint
|
|
1289
|
+
*/
|
|
1290
|
+
const unstringifyBigInts = (input) => {
|
|
1291
|
+
if (typeof input === "string" && /^[0-9]+$/.test(input)) {
|
|
1292
|
+
return BigInt(input);
|
|
1293
|
+
}
|
|
1294
|
+
if (typeof input === "string" && /^0x[0-9a-fA-F]+$/.test(input)) {
|
|
1295
|
+
return BigInt(input);
|
|
1296
|
+
}
|
|
1297
|
+
if (Array.isArray(input)) {
|
|
1298
|
+
return input.map(unstringifyBigInts);
|
|
1299
|
+
}
|
|
1300
|
+
if (input === null) {
|
|
1301
|
+
return null;
|
|
1302
|
+
}
|
|
1303
|
+
if (typeof input === "object") {
|
|
1304
|
+
return Object.entries(input).reduce((acc, [key, value]) => {
|
|
1305
|
+
acc[key] = unstringifyBigInts(value);
|
|
1306
|
+
return acc;
|
|
1307
|
+
}, {});
|
|
1308
|
+
}
|
|
1309
|
+
return input;
|
|
1310
|
+
};
|
|
1265
1311
|
/**
|
|
1266
1312
|
* Return the info about the R1CS file.ù
|
|
1267
1313
|
* @dev this method was built taking inspiration from
|
|
@@ -1322,17 +1368,17 @@ const getR1CSInfo = (localR1CSFilePath) => {
|
|
|
1322
1368
|
let constraints = 0;
|
|
1323
1369
|
try {
|
|
1324
1370
|
// Get 'number of section' (jump magic r1cs and version1 data).
|
|
1325
|
-
const numberOfSections =
|
|
1371
|
+
const numberOfSections = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, 8));
|
|
1326
1372
|
// Jump to first section.
|
|
1327
1373
|
pointer = 12;
|
|
1328
1374
|
// For each section
|
|
1329
1375
|
for (let i = 0; i < numberOfSections; i++) {
|
|
1330
1376
|
// Read section type.
|
|
1331
|
-
const sectionType =
|
|
1377
|
+
const sectionType = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer));
|
|
1332
1378
|
// Jump to section size.
|
|
1333
1379
|
pointer += 4;
|
|
1334
1380
|
// Read section size
|
|
1335
|
-
const sectionSize = Number(
|
|
1381
|
+
const sectionSize = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
|
|
1336
1382
|
// If at header section (0x00000001 : Header Section).
|
|
1337
1383
|
if (sectionType === BigInt(1)) {
|
|
1338
1384
|
// Read info from header section.
|
|
@@ -1364,22 +1410,22 @@ const getR1CSInfo = (localR1CSFilePath) => {
|
|
|
1364
1410
|
*/
|
|
1365
1411
|
pointer += sectionSize - 20;
|
|
1366
1412
|
// Read R1CS info.
|
|
1367
|
-
wires = Number(
|
|
1413
|
+
wires = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1368
1414
|
pointer += 4;
|
|
1369
|
-
publicOutputs = Number(
|
|
1415
|
+
publicOutputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1370
1416
|
pointer += 4;
|
|
1371
|
-
publicInputs = Number(
|
|
1417
|
+
publicInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1372
1418
|
pointer += 4;
|
|
1373
|
-
privateInputs = Number(
|
|
1419
|
+
privateInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1374
1420
|
pointer += 4;
|
|
1375
|
-
labels = Number(
|
|
1421
|
+
labels = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
|
|
1376
1422
|
pointer += 8;
|
|
1377
|
-
constraints = Number(
|
|
1423
|
+
constraints = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1378
1424
|
}
|
|
1379
1425
|
pointer += 8 + Number(sectionSize);
|
|
1380
1426
|
}
|
|
1381
1427
|
return {
|
|
1382
|
-
curve: "bn-128",
|
|
1428
|
+
curve: "bn-128", /// @note currently default to bn-128 as we support only Groth16 proving system.
|
|
1383
1429
|
wires,
|
|
1384
1430
|
constraints,
|
|
1385
1431
|
privateInputs,
|
|
@@ -1558,9 +1604,10 @@ const parseCeremonyFile = async (path, cleanup = false) => {
|
|
|
1558
1604
|
}
|
|
1559
1605
|
circuits.push(circuit);
|
|
1560
1606
|
// remove the local r1cs and wasm downloads (if used for verifying the config only vs setup)
|
|
1561
|
-
if (cleanup)
|
|
1607
|
+
if (cleanup) {
|
|
1562
1608
|
fs.unlinkSync(localR1csPath);
|
|
1563
|
-
|
|
1609
|
+
fs.unlinkSync(localWasmPath);
|
|
1610
|
+
}
|
|
1564
1611
|
}
|
|
1565
1612
|
const setupData = {
|
|
1566
1613
|
ceremonyInputData: {
|
|
@@ -1926,11 +1973,11 @@ const p256 = (proofPart) => {
|
|
|
1926
1973
|
*/
|
|
1927
1974
|
const formatSolidityCalldata = (circuitInput, _proof) => {
|
|
1928
1975
|
try {
|
|
1929
|
-
const proof =
|
|
1976
|
+
const proof = unstringifyBigInts(_proof);
|
|
1930
1977
|
// format the public inputs to the circuit
|
|
1931
1978
|
const formattedCircuitInput = [];
|
|
1932
1979
|
for (const cInput of circuitInput) {
|
|
1933
|
-
formattedCircuitInput.push(p256(
|
|
1980
|
+
formattedCircuitInput.push(p256(unstringifyBigInts(cInput)));
|
|
1934
1981
|
}
|
|
1935
1982
|
// construct calldata
|
|
1936
1983
|
const calldata = {
|
|
@@ -2312,8 +2359,8 @@ const createSSMClient = async () => {
|
|
|
2312
2359
|
* @returns <Array<string>> - the list of startup commands to be executed.
|
|
2313
2360
|
*/
|
|
2314
2361
|
const vmBootstrapCommand = (bucketName) => [
|
|
2315
|
-
"#!/bin/bash",
|
|
2316
|
-
`aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`,
|
|
2362
|
+
"#!/bin/bash", // shabang.
|
|
2363
|
+
`aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`, // copy file from S3 bucket to VM.
|
|
2317
2364
|
`chmod +x ${vmBootstrapScriptFilename} && bash ${vmBootstrapScriptFilename}` // grant permission and execute.
|
|
2318
2365
|
];
|
|
2319
2366
|
/**
|
|
@@ -2404,7 +2451,7 @@ const createEC2Instance = async (ec2, commands, instanceType, volumeSize, diskTy
|
|
|
2404
2451
|
DeviceName: "/dev/xvda",
|
|
2405
2452
|
Ebs: {
|
|
2406
2453
|
DeleteOnTermination: true,
|
|
2407
|
-
VolumeSize: volumeSize,
|
|
2454
|
+
VolumeSize: volumeSize, // disk size in GB.
|
|
2408
2455
|
VolumeType: diskType
|
|
2409
2456
|
}
|
|
2410
2457
|
}
|
|
@@ -2590,4 +2637,4 @@ const retrieveCommandStatus = async (ssm, instanceId, commandId) => {
|
|
|
2590
2637
|
}
|
|
2591
2638
|
};
|
|
2592
2639
|
|
|
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 };
|
|
2640
|
+
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.1.
|
|
3
|
+
* @version 1.1.1
|
|
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,8 @@ const commonTerms = {
|
|
|
341
340
|
finalizeCircuit: "finalizeCircuit",
|
|
342
341
|
finalizeCeremony: "finalizeCeremony",
|
|
343
342
|
downloadCircuitArtifacts: "downloadCircuitArtifacts",
|
|
344
|
-
transferObject: "transferObject"
|
|
343
|
+
transferObject: "transferObject",
|
|
344
|
+
bandadaValidateProof: "bandadaValidateProof"
|
|
345
345
|
}
|
|
346
346
|
};
|
|
347
347
|
|
|
@@ -707,8 +707,8 @@ const uploadParts = async (chunksWithUrls, contentType, cloudFunctions, ceremony
|
|
|
707
707
|
// @ts-ignore
|
|
708
708
|
const response = await fetch(chunksWithUrls[i].preSignedUrl, {
|
|
709
709
|
retryOptions: {
|
|
710
|
-
retryInitialDelay: 500,
|
|
711
|
-
socketTimeout: 60000,
|
|
710
|
+
retryInitialDelay: 500, // 500 ms.
|
|
711
|
+
socketTimeout: 60000, // 60 seconds.
|
|
712
712
|
retryMaxDuration: 300000 // 5 minutes.
|
|
713
713
|
},
|
|
714
714
|
method: "PUT",
|
|
@@ -1005,6 +1005,17 @@ const getClosedCeremonies = async (firestoreDatabase) => {
|
|
|
1005
1005
|
]);
|
|
1006
1006
|
return fromQueryToFirebaseDocumentInfo(closedCeremoniesQuerySnap.docs);
|
|
1007
1007
|
};
|
|
1008
|
+
/**
|
|
1009
|
+
* Query all ceremonies
|
|
1010
|
+
* @notice get all ceremonies from the database.
|
|
1011
|
+
* @dev this is a helper for the CLI ceremony methods.
|
|
1012
|
+
* @param firestoreDatabase <Firestore> - the Firestore service instance associated to the current Firebase application.
|
|
1013
|
+
* @returns <Promise<Array<FirebaseDocumentInfo>>> - the list of all ceremonies.
|
|
1014
|
+
*/
|
|
1015
|
+
const getAllCeremonies = async (firestoreDatabase) => {
|
|
1016
|
+
const ceremoniesQuerySnap = await queryCollection(firestoreDatabase, commonTerms.collections.ceremonies.name, []);
|
|
1017
|
+
return fromQueryToFirebaseDocumentInfo(ceremoniesQuerySnap.docs);
|
|
1018
|
+
};
|
|
1008
1019
|
|
|
1009
1020
|
/**
|
|
1010
1021
|
* @hidden
|
|
@@ -1264,6 +1275,41 @@ const readBytesFromFile = (localFilePath, offset, length, position) => {
|
|
|
1264
1275
|
// Return the read bytes.
|
|
1265
1276
|
return buffer;
|
|
1266
1277
|
};
|
|
1278
|
+
/**
|
|
1279
|
+
* Given a buffer in little endian format, convert it to bigint
|
|
1280
|
+
* @param buffer
|
|
1281
|
+
* @returns
|
|
1282
|
+
*/
|
|
1283
|
+
function leBufferToBigint(buffer) {
|
|
1284
|
+
return BigInt(`0x${buffer.reverse().toString("hex")}`);
|
|
1285
|
+
}
|
|
1286
|
+
/**
|
|
1287
|
+
* Given an input containing string values, convert them
|
|
1288
|
+
* to bigint
|
|
1289
|
+
* @param input - The input to convert
|
|
1290
|
+
* @returns the input with string values converted to bigint
|
|
1291
|
+
*/
|
|
1292
|
+
const unstringifyBigInts = (input) => {
|
|
1293
|
+
if (typeof input === "string" && /^[0-9]+$/.test(input)) {
|
|
1294
|
+
return BigInt(input);
|
|
1295
|
+
}
|
|
1296
|
+
if (typeof input === "string" && /^0x[0-9a-fA-F]+$/.test(input)) {
|
|
1297
|
+
return BigInt(input);
|
|
1298
|
+
}
|
|
1299
|
+
if (Array.isArray(input)) {
|
|
1300
|
+
return input.map(unstringifyBigInts);
|
|
1301
|
+
}
|
|
1302
|
+
if (input === null) {
|
|
1303
|
+
return null;
|
|
1304
|
+
}
|
|
1305
|
+
if (typeof input === "object") {
|
|
1306
|
+
return Object.entries(input).reduce((acc, [key, value]) => {
|
|
1307
|
+
acc[key] = unstringifyBigInts(value);
|
|
1308
|
+
return acc;
|
|
1309
|
+
}, {});
|
|
1310
|
+
}
|
|
1311
|
+
return input;
|
|
1312
|
+
};
|
|
1267
1313
|
/**
|
|
1268
1314
|
* Return the info about the R1CS file.ù
|
|
1269
1315
|
* @dev this method was built taking inspiration from
|
|
@@ -1324,17 +1370,17 @@ const getR1CSInfo = (localR1CSFilePath) => {
|
|
|
1324
1370
|
let constraints = 0;
|
|
1325
1371
|
try {
|
|
1326
1372
|
// Get 'number of section' (jump magic r1cs and version1 data).
|
|
1327
|
-
const numberOfSections =
|
|
1373
|
+
const numberOfSections = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, 8));
|
|
1328
1374
|
// Jump to first section.
|
|
1329
1375
|
pointer = 12;
|
|
1330
1376
|
// For each section
|
|
1331
1377
|
for (let i = 0; i < numberOfSections; i++) {
|
|
1332
1378
|
// Read section type.
|
|
1333
|
-
const sectionType =
|
|
1379
|
+
const sectionType = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer));
|
|
1334
1380
|
// Jump to section size.
|
|
1335
1381
|
pointer += 4;
|
|
1336
1382
|
// Read section size
|
|
1337
|
-
const sectionSize = Number(
|
|
1383
|
+
const sectionSize = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
|
|
1338
1384
|
// If at header section (0x00000001 : Header Section).
|
|
1339
1385
|
if (sectionType === BigInt(1)) {
|
|
1340
1386
|
// Read info from header section.
|
|
@@ -1366,22 +1412,22 @@ const getR1CSInfo = (localR1CSFilePath) => {
|
|
|
1366
1412
|
*/
|
|
1367
1413
|
pointer += sectionSize - 20;
|
|
1368
1414
|
// Read R1CS info.
|
|
1369
|
-
wires = Number(
|
|
1415
|
+
wires = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1370
1416
|
pointer += 4;
|
|
1371
|
-
publicOutputs = Number(
|
|
1417
|
+
publicOutputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1372
1418
|
pointer += 4;
|
|
1373
|
-
publicInputs = Number(
|
|
1419
|
+
publicInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1374
1420
|
pointer += 4;
|
|
1375
|
-
privateInputs = Number(
|
|
1421
|
+
privateInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1376
1422
|
pointer += 4;
|
|
1377
|
-
labels = Number(
|
|
1423
|
+
labels = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
|
|
1378
1424
|
pointer += 8;
|
|
1379
|
-
constraints = Number(
|
|
1425
|
+
constraints = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
|
|
1380
1426
|
}
|
|
1381
1427
|
pointer += 8 + Number(sectionSize);
|
|
1382
1428
|
}
|
|
1383
1429
|
return {
|
|
1384
|
-
curve: "bn-128",
|
|
1430
|
+
curve: "bn-128", /// @note currently default to bn-128 as we support only Groth16 proving system.
|
|
1385
1431
|
wires,
|
|
1386
1432
|
constraints,
|
|
1387
1433
|
privateInputs,
|
|
@@ -1560,9 +1606,10 @@ const parseCeremonyFile = async (path, cleanup = false) => {
|
|
|
1560
1606
|
}
|
|
1561
1607
|
circuits.push(circuit);
|
|
1562
1608
|
// remove the local r1cs and wasm downloads (if used for verifying the config only vs setup)
|
|
1563
|
-
if (cleanup)
|
|
1609
|
+
if (cleanup) {
|
|
1564
1610
|
fs.unlinkSync(localR1csPath);
|
|
1565
|
-
|
|
1611
|
+
fs.unlinkSync(localWasmPath);
|
|
1612
|
+
}
|
|
1566
1613
|
}
|
|
1567
1614
|
const setupData = {
|
|
1568
1615
|
ceremonyInputData: {
|
|
@@ -1928,11 +1975,11 @@ const p256 = (proofPart) => {
|
|
|
1928
1975
|
*/
|
|
1929
1976
|
const formatSolidityCalldata = (circuitInput, _proof) => {
|
|
1930
1977
|
try {
|
|
1931
|
-
const proof =
|
|
1978
|
+
const proof = unstringifyBigInts(_proof);
|
|
1932
1979
|
// format the public inputs to the circuit
|
|
1933
1980
|
const formattedCircuitInput = [];
|
|
1934
1981
|
for (const cInput of circuitInput) {
|
|
1935
|
-
formattedCircuitInput.push(p256(
|
|
1982
|
+
formattedCircuitInput.push(p256(unstringifyBigInts(cInput)));
|
|
1936
1983
|
}
|
|
1937
1984
|
// construct calldata
|
|
1938
1985
|
const calldata = {
|
|
@@ -2314,8 +2361,8 @@ const createSSMClient = async () => {
|
|
|
2314
2361
|
* @returns <Array<string>> - the list of startup commands to be executed.
|
|
2315
2362
|
*/
|
|
2316
2363
|
const vmBootstrapCommand = (bucketName) => [
|
|
2317
|
-
"#!/bin/bash",
|
|
2318
|
-
`aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`,
|
|
2364
|
+
"#!/bin/bash", // shabang.
|
|
2365
|
+
`aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`, // copy file from S3 bucket to VM.
|
|
2319
2366
|
`chmod +x ${vmBootstrapScriptFilename} && bash ${vmBootstrapScriptFilename}` // grant permission and execute.
|
|
2320
2367
|
];
|
|
2321
2368
|
/**
|
|
@@ -2406,7 +2453,7 @@ const createEC2Instance = async (ec2, commands, instanceType, volumeSize, diskTy
|
|
|
2406
2453
|
DeviceName: "/dev/xvda",
|
|
2407
2454
|
Ebs: {
|
|
2408
2455
|
DeleteOnTermination: true,
|
|
2409
|
-
VolumeSize: volumeSize,
|
|
2456
|
+
VolumeSize: volumeSize, // disk size in GB.
|
|
2410
2457
|
VolumeType: diskType
|
|
2411
2458
|
}
|
|
2412
2459
|
}
|
|
@@ -2634,6 +2681,7 @@ exports.generatePreSignedUrlsParts = generatePreSignedUrlsParts;
|
|
|
2634
2681
|
exports.generateValidContributionsAttestation = generateValidContributionsAttestation;
|
|
2635
2682
|
exports.generateZkeyFromScratch = generateZkeyFromScratch;
|
|
2636
2683
|
exports.genesisZkeyIndex = genesisZkeyIndex;
|
|
2684
|
+
exports.getAllCeremonies = getAllCeremonies;
|
|
2637
2685
|
exports.getAllCollectionDocs = getAllCollectionDocs;
|
|
2638
2686
|
exports.getBucketName = getBucketName;
|
|
2639
2687
|
exports.getCeremonyCircuits = getCeremonyCircuits;
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8HvB,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":"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"}
|
|
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":"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"}
|
|
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-2e5a17d",
|
|
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": "45ce4ab3de9e13929ad6d6ca87e3e98176ef02ca"
|
|
83
82
|
}
|
package/src/helpers/constants.ts
CHANGED
|
@@ -313,6 +313,7 @@ export const commonTerms = {
|
|
|
313
313
|
finalizeCircuit: "finalizeCircuit",
|
|
314
314
|
finalizeCeremony: "finalizeCeremony",
|
|
315
315
|
downloadCircuitArtifacts: "downloadCircuitArtifacts",
|
|
316
|
-
transferObject: "transferObject"
|
|
316
|
+
transferObject: "transferObject",
|
|
317
|
+
bandadaValidateProof: "bandadaValidateProof"
|
|
317
318
|
}
|
|
318
319
|
}
|
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
|