@devtion/actions 0.0.0-a9e4cd4 → 0.0.0-bbc217a

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module @p0tion/actions
3
- * @version 1.1.1
3
+ * @version 1.2.5
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';
@@ -27,10 +26,10 @@ import { EC2Client, RunInstancesCommand, DescribeInstanceStatusCommand, StartIns
27
26
  import { SSMClient, SendCommandCommand, GetCommandInvocationCommand } from '@aws-sdk/client-ssm';
28
27
  import dotenv from 'dotenv';
29
28
 
30
- // Main part for the Hermez Phase 1 Trusted Setup URLs to download PoT files.
31
- const potFileDownloadMainUrl = `https://hermez.s3-eu-west-1.amazonaws.com/`;
32
- // Main part for the Hermez Phase 1 Trusted Setup PoT files to be downloaded.
33
- const potFilenameTemplate = `powersOfTau28_hez_final_`;
29
+ // Main part for the PPoT Phase 1 Trusted Setup URLs to download PoT files.
30
+ const potFileDownloadMainUrl = `https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/`;
31
+ // Main part for the PPoT Phase 1 Trusted Setup PoT files to be downloaded.
32
+ const potFilenameTemplate = `ppot_0080_`;
34
33
  // The genesis zKey index.
35
34
  const genesisZkeyIndex = `00000`;
36
35
  // The number of exponential iterations to be executed by SnarkJS when finalizing the ceremony.
@@ -47,6 +46,8 @@ const verifierSmartContractAcronym = "verifier";
47
46
  const ec2InstanceTag = "p0tionec2instance";
48
47
  // The name of the VM startup script file.
49
48
  const vmBootstrapScriptFilename = "bootstrap.sh";
49
+ // Match hash output by snarkjs in transcript log
50
+ const contribHashRegex = new RegExp("Contribution.+Hash.+\n\t\t.+\n\t\t.+\n.+\n\t\t.+\r?\n");
50
51
  /**
51
52
  * Define the supported VM configuration types.
52
53
  * @dev the VM configurations can be retrieved at https://aws.amazon.com/ec2/instance-types/
@@ -104,112 +105,116 @@ const vmConfigurationTypes = {
104
105
  */
105
106
  const powersOfTauFiles = [
106
107
  {
107
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_01.ptau",
108
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_01.ptau",
108
109
  size: 0.000084
109
110
  },
110
111
  {
111
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_02.ptau",
112
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_02.ptau",
112
113
  size: 0.000086
113
114
  },
114
115
  {
115
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_03.ptau",
116
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_03.ptau",
116
117
  size: 0.000091
117
118
  },
118
119
  {
119
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_04.ptau",
120
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_04.ptau",
120
121
  size: 0.0001
121
122
  },
122
123
  {
123
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_05.ptau",
124
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_05.ptau",
124
125
  size: 0.000117
125
126
  },
126
127
  {
127
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_06.ptau",
128
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_06.ptau",
128
129
  size: 0.000153
129
130
  },
130
131
  {
131
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_07.ptau",
132
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_07.ptau",
132
133
  size: 0.000225
133
134
  },
134
135
  {
135
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_08.ptau",
136
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_08.ptau",
136
137
  size: 0.0004
137
138
  },
138
139
  {
139
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_09.ptau",
140
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_09.ptau",
140
141
  size: 0.000658
141
142
  },
142
143
  {
143
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_10.ptau",
144
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_10.ptau",
144
145
  size: 0.0013
145
146
  },
146
147
  {
147
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_11.ptau",
148
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_11.ptau",
148
149
  size: 0.0023
149
150
  },
150
151
  {
151
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_12.ptau",
152
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_12.ptau",
152
153
  size: 0.0046
153
154
  },
154
155
  {
155
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_13.ptau",
156
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_13.ptau",
156
157
  size: 0.0091
157
158
  },
158
159
  {
159
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_14.ptau",
160
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_14.ptau",
160
161
  size: 0.0181
161
162
  },
162
163
  {
163
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_15.ptau",
164
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_15.ptau",
164
165
  size: 0.0361
165
166
  },
166
167
  {
167
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_16.ptau",
168
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_16.ptau",
168
169
  size: 0.0721
169
170
  },
170
171
  {
171
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_17.ptau",
172
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_17.ptau",
172
173
  size: 0.144
173
174
  },
174
175
  {
175
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_18.ptau",
176
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_18.ptau",
176
177
  size: 0.288
177
178
  },
178
179
  {
179
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_19.ptau",
180
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_19.ptau",
180
181
  size: 0.576
181
182
  },
182
183
  {
183
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_20.ptau",
184
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_20.ptau",
184
185
  size: 1.1
185
186
  },
186
187
  {
187
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_21.ptau",
188
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_21.ptau",
188
189
  size: 2.3
189
190
  },
190
191
  {
191
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_22.ptau",
192
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_22.ptau",
192
193
  size: 4.5
193
194
  },
194
195
  {
195
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_23.ptau",
196
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_23.ptau",
196
197
  size: 9.0
197
198
  },
198
199
  {
199
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_24.ptau",
200
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_24.ptau",
200
201
  size: 18.0
201
202
  },
202
203
  {
203
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_25.ptau",
204
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_25.ptau",
204
205
  size: 36.0
205
206
  },
206
207
  {
207
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_26.ptau",
208
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_26.ptau",
208
209
  size: 72.0
209
210
  },
210
211
  {
211
- ref: "https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_27.ptau",
212
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_27.ptau",
212
213
  size: 144.0
214
+ },
215
+ {
216
+ ref: "https://pse-trusted-setup-ppot.s3.eu-central-1.amazonaws.com/pot28_0080/ppot_0080_final.ptau",
217
+ size: 288.0
213
218
  }
214
219
  ];
215
220
  /**
@@ -339,7 +344,9 @@ const commonTerms = {
339
344
  finalizeCircuit: "finalizeCircuit",
340
345
  finalizeCeremony: "finalizeCeremony",
341
346
  downloadCircuitArtifacts: "downloadCircuitArtifacts",
342
- transferObject: "transferObject"
347
+ transferObject: "transferObject",
348
+ bandadaValidateProof: "bandadaValidateProof",
349
+ checkNonceOfSIWEAddress: "checkNonceOfSIWEAddress"
343
350
  }
344
351
  };
345
352
 
@@ -705,8 +712,8 @@ const uploadParts = async (chunksWithUrls, contentType, cloudFunctions, ceremony
705
712
  // @ts-ignore
706
713
  const response = await fetch(chunksWithUrls[i].preSignedUrl, {
707
714
  retryOptions: {
708
- retryInitialDelay: 500,
709
- socketTimeout: 60000,
715
+ retryInitialDelay: 500, // 500 ms.
716
+ socketTimeout: 60000, // 60 seconds.
710
717
  retryMaxDuration: 300000 // 5 minutes.
711
718
  },
712
719
  method: "PUT",
@@ -1003,6 +1010,17 @@ const getClosedCeremonies = async (firestoreDatabase) => {
1003
1010
  ]);
1004
1011
  return fromQueryToFirebaseDocumentInfo(closedCeremoniesQuerySnap.docs);
1005
1012
  };
1013
+ /**
1014
+ * Query all ceremonies
1015
+ * @notice get all ceremonies from the database.
1016
+ * @dev this is a helper for the CLI ceremony methods.
1017
+ * @param firestoreDatabase <Firestore> - the Firestore service instance associated to the current Firebase application.
1018
+ * @returns <Promise<Array<FirebaseDocumentInfo>>> - the list of all ceremonies.
1019
+ */
1020
+ const getAllCeremonies = async (firestoreDatabase) => {
1021
+ const ceremoniesQuerySnap = await queryCollection(firestoreDatabase, commonTerms.collections.ceremonies.name, []);
1022
+ return fromQueryToFirebaseDocumentInfo(ceremoniesQuerySnap.docs);
1023
+ };
1006
1024
 
1007
1025
  /**
1008
1026
  * @hidden
@@ -1262,6 +1280,41 @@ const readBytesFromFile = (localFilePath, offset, length, position) => {
1262
1280
  // Return the read bytes.
1263
1281
  return buffer;
1264
1282
  };
1283
+ /**
1284
+ * Given a buffer in little endian format, convert it to bigint
1285
+ * @param buffer
1286
+ * @returns
1287
+ */
1288
+ function leBufferToBigint(buffer) {
1289
+ return BigInt(`0x${buffer.reverse().toString("hex")}`);
1290
+ }
1291
+ /**
1292
+ * Given an input containing string values, convert them
1293
+ * to bigint
1294
+ * @param input - The input to convert
1295
+ * @returns the input with string values converted to bigint
1296
+ */
1297
+ const unstringifyBigInts = (input) => {
1298
+ if (typeof input === "string" && /^[0-9]+$/.test(input)) {
1299
+ return BigInt(input);
1300
+ }
1301
+ if (typeof input === "string" && /^0x[0-9a-fA-F]+$/.test(input)) {
1302
+ return BigInt(input);
1303
+ }
1304
+ if (Array.isArray(input)) {
1305
+ return input.map(unstringifyBigInts);
1306
+ }
1307
+ if (input === null) {
1308
+ return null;
1309
+ }
1310
+ if (typeof input === "object") {
1311
+ return Object.entries(input).reduce((acc, [key, value]) => {
1312
+ acc[key] = unstringifyBigInts(value);
1313
+ return acc;
1314
+ }, {});
1315
+ }
1316
+ return input;
1317
+ };
1265
1318
  /**
1266
1319
  * Return the info about the R1CS file.ù
1267
1320
  * @dev this method was built taking inspiration from
@@ -1322,18 +1375,17 @@ const getR1CSInfo = (localR1CSFilePath) => {
1322
1375
  let constraints = 0;
1323
1376
  try {
1324
1377
  // Get 'number of section' (jump magic r1cs and version1 data).
1325
- const numberOfSections = utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 4, 8));
1378
+ const numberOfSections = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, 8));
1326
1379
  // Jump to first section.
1327
1380
  pointer = 12;
1328
- let found = false;
1329
1381
  // For each section
1330
- for (let i = 0; i < numberOfSections && !found; i++) {
1382
+ for (let i = 0; i < numberOfSections; i++) {
1331
1383
  // Read section type.
1332
- const sectionType = utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 4, pointer));
1384
+ const sectionType = leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer));
1333
1385
  // Jump to section size.
1334
1386
  pointer += 4;
1335
1387
  // Read section size
1336
- const sectionSize = Number(utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
1388
+ const sectionSize = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
1337
1389
  // If at header section (0x00000001 : Header Section).
1338
1390
  if (sectionType === BigInt(1)) {
1339
1391
  // Read info from header section.
@@ -1365,23 +1417,22 @@ const getR1CSInfo = (localR1CSFilePath) => {
1365
1417
  */
1366
1418
  pointer += sectionSize - 20;
1367
1419
  // Read R1CS info.
1368
- wires = Number(utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1420
+ wires = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1369
1421
  pointer += 4;
1370
- publicOutputs = Number(utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1422
+ publicOutputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1371
1423
  pointer += 4;
1372
- publicInputs = Number(utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1424
+ publicInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1373
1425
  pointer += 4;
1374
- privateInputs = Number(utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1426
+ privateInputs = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1375
1427
  pointer += 4;
1376
- labels = Number(utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
1428
+ labels = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 8, pointer)));
1377
1429
  pointer += 8;
1378
- constraints = Number(utils.leBuff2int(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1379
- found = true;
1430
+ constraints = Number(leBufferToBigint(readBytesFromFile(localR1CSFilePath, 0, 4, pointer)));
1380
1431
  }
1381
1432
  pointer += 8 + Number(sectionSize);
1382
1433
  }
1383
1434
  return {
1384
- curve: "bn-128",
1435
+ curve: "bn-128", /// @note currently default to bn-128 as we support only Groth16 proving system.
1385
1436
  wires,
1386
1437
  constraints,
1387
1438
  privateInputs,
@@ -1929,11 +1980,11 @@ const p256 = (proofPart) => {
1929
1980
  */
1930
1981
  const formatSolidityCalldata = (circuitInput, _proof) => {
1931
1982
  try {
1932
- const proof = utils.unstringifyBigInts(_proof);
1983
+ const proof = unstringifyBigInts(_proof);
1933
1984
  // format the public inputs to the circuit
1934
1985
  const formattedCircuitInput = [];
1935
1986
  for (const cInput of circuitInput) {
1936
- formattedCircuitInput.push(p256(utils.unstringifyBigInts(cInput)));
1987
+ formattedCircuitInput.push(p256(unstringifyBigInts(cInput)));
1937
1988
  }
1938
1989
  // construct calldata
1939
1990
  const calldata = {
@@ -2315,8 +2366,8 @@ const createSSMClient = async () => {
2315
2366
  * @returns <Array<string>> - the list of startup commands to be executed.
2316
2367
  */
2317
2368
  const vmBootstrapCommand = (bucketName) => [
2318
- "#!/bin/bash",
2319
- `aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`,
2369
+ "#!/bin/bash", // shabang.
2370
+ `aws s3 cp s3://${bucketName}/${vmBootstrapScriptFilename} ${vmBootstrapScriptFilename}`, // copy file from S3 bucket to VM.
2320
2371
  `chmod +x ${vmBootstrapScriptFilename} && bash ${vmBootstrapScriptFilename}` // grant permission and execute.
2321
2372
  ];
2322
2373
  /**
@@ -2407,7 +2458,7 @@ const createEC2Instance = async (ec2, commands, instanceType, volumeSize, diskTy
2407
2458
  DeviceName: "/dev/xvda",
2408
2459
  Ebs: {
2409
2460
  DeleteOnTermination: true,
2410
- VolumeSize: volumeSize,
2461
+ VolumeSize: volumeSize, // disk size in GB.
2411
2462
  VolumeType: diskType
2412
2463
  }
2413
2464
  }
@@ -2593,4 +2644,4 @@ const retrieveCommandStatus = async (ssm, instanceId, commandId) => {
2593
2644
  }
2594
2645
  };
2595
2646
 
2596
- 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 };
2647
+ 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, contribHashRegex, 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 };