@aztec/prover-client 0.76.4 → 0.77.0-testnet-ignition.17

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.
Files changed (136) hide show
  1. package/dest/bin/get-proof-inputs.js +20 -17
  2. package/dest/block_builder/index.d.ts +1 -1
  3. package/dest/block_builder/index.d.ts.map +1 -1
  4. package/dest/block_builder/index.js +0 -1
  5. package/dest/block_builder/light.d.ts +4 -2
  6. package/dest/block_builder/light.d.ts.map +1 -1
  7. package/dest/block_builder/light.js +28 -15
  8. package/dest/config.d.ts +2 -2
  9. package/dest/config.d.ts.map +1 -1
  10. package/dest/config.js +10 -12
  11. package/dest/index.d.ts +1 -1
  12. package/dest/index.d.ts.map +1 -1
  13. package/dest/index.js +0 -1
  14. package/dest/mocks/fixtures.d.ts +4 -3
  15. package/dest/mocks/fixtures.d.ts.map +1 -1
  16. package/dest/mocks/fixtures.js +37 -30
  17. package/dest/mocks/test_context.d.ts +16 -12
  18. package/dest/mocks/test_context.d.ts.map +1 -1
  19. package/dest/mocks/test_context.js +85 -62
  20. package/dest/orchestrator/block-building-helpers.d.ts +12 -7
  21. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  22. package/dest/orchestrator/block-building-helpers.js +98 -87
  23. package/dest/orchestrator/block-proving-state.d.ts +13 -8
  24. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  25. package/dest/orchestrator/block-proving-state.js +101 -73
  26. package/dest/orchestrator/epoch-proving-state.d.ts +10 -6
  27. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  28. package/dest/orchestrator/epoch-proving-state.js +57 -41
  29. package/dest/orchestrator/index.js +0 -1
  30. package/dest/orchestrator/orchestrator.d.ts +7 -5
  31. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  32. package/dest/orchestrator/orchestrator.js +656 -654
  33. package/dest/orchestrator/orchestrator_metrics.js +4 -3
  34. package/dest/orchestrator/tx-proving-state.d.ts +7 -4
  35. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  36. package/dest/orchestrator/tx-proving-state.js +54 -52
  37. package/dest/prover-client/factory.d.ts +2 -2
  38. package/dest/prover-client/factory.d.ts.map +1 -1
  39. package/dest/prover-client/factory.js +0 -1
  40. package/dest/prover-client/index.js +0 -1
  41. package/dest/prover-client/prover-client.d.ts +3 -3
  42. package/dest/prover-client/prover-client.d.ts.map +1 -1
  43. package/dest/prover-client/prover-client.js +31 -26
  44. package/dest/prover-client/server-epoch-prover.d.ts +8 -5
  45. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  46. package/dest/prover-client/server-epoch-prover.js +4 -4
  47. package/dest/proving_broker/broker_prover_facade.d.ts +5 -3
  48. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  49. package/dest/proving_broker/broker_prover_facade.js +80 -67
  50. package/dest/proving_broker/config.d.ts +15 -2
  51. package/dest/proving_broker/config.d.ts.map +1 -1
  52. package/dest/proving_broker/config.js +49 -44
  53. package/dest/proving_broker/factory.d.ts +2 -2
  54. package/dest/proving_broker/factory.d.ts.map +1 -1
  55. package/dest/proving_broker/factory.js +1 -6
  56. package/dest/proving_broker/fixtures.d.ts +1 -1
  57. package/dest/proving_broker/fixtures.d.ts.map +1 -1
  58. package/dest/proving_broker/fixtures.js +2 -2
  59. package/dest/proving_broker/index.js +0 -1
  60. package/dest/proving_broker/proof_store/factory.d.ts +1 -1
  61. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -1
  62. package/dest/proving_broker/proof_store/factory.js +9 -12
  63. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +3 -2
  64. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
  65. package/dest/proving_broker/proof_store/gcs_proof_store.js +12 -7
  66. package/dest/proving_broker/proof_store/index.js +0 -1
  67. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +3 -2
  68. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
  69. package/dest/proving_broker/proof_store/inline_proof_store.js +11 -7
  70. package/dest/proving_broker/proof_store/proof_store.d.ts +2 -1
  71. package/dest/proving_broker/proof_store/proof_store.d.ts.map +1 -1
  72. package/dest/proving_broker/proof_store/proof_store.js +3 -2
  73. package/dest/proving_broker/proving_agent.d.ts +3 -2
  74. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  75. package/dest/proving_broker/proving_agent.js +121 -124
  76. package/dest/proving_broker/proving_agent_instrumentation.d.ts +1 -1
  77. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -1
  78. package/dest/proving_broker/proving_agent_instrumentation.js +6 -6
  79. package/dest/proving_broker/proving_broker.d.ts +4 -11
  80. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  81. package/dest/proving_broker/proving_broker.js +490 -446
  82. package/dest/proving_broker/proving_broker_database/memory.d.ts +2 -2
  83. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  84. package/dest/proving_broker/proving_broker_database/memory.js +19 -13
  85. package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -3
  86. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  87. package/dest/proving_broker/proving_broker_database/persisted.js +62 -29
  88. package/dest/proving_broker/proving_broker_database.d.ts +1 -1
  89. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  90. package/dest/proving_broker/proving_broker_database.js +3 -2
  91. package/dest/proving_broker/proving_broker_instrumentation.d.ts +6 -2
  92. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  93. package/dest/proving_broker/proving_broker_instrumentation.js +47 -22
  94. package/dest/proving_broker/proving_job_controller.d.ts +2 -1
  95. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  96. package/dest/proving_broker/proving_job_controller.js +81 -62
  97. package/dest/proving_broker/rpc.d.ts +4 -3
  98. package/dest/proving_broker/rpc.d.ts.map +1 -1
  99. package/dest/proving_broker/rpc.js +29 -25
  100. package/dest/test/mock_prover.d.ts +7 -5
  101. package/dest/test/mock_prover.d.ts.map +1 -1
  102. package/dest/test/mock_prover.js +13 -9
  103. package/package.json +16 -15
  104. package/src/bin/get-proof-inputs.ts +2 -1
  105. package/src/block_builder/index.ts +1 -1
  106. package/src/block_builder/light.ts +7 -10
  107. package/src/config.ts +2 -2
  108. package/src/index.ts +1 -1
  109. package/src/mocks/fixtures.ts +13 -15
  110. package/src/mocks/test_context.ts +60 -102
  111. package/src/orchestrator/block-building-helpers.ts +50 -45
  112. package/src/orchestrator/block-proving-state.ts +18 -22
  113. package/src/orchestrator/epoch-proving-state.ts +11 -16
  114. package/src/orchestrator/orchestrator.ts +26 -33
  115. package/src/orchestrator/tx-proving-state.ts +10 -13
  116. package/src/prover-client/factory.ts +2 -2
  117. package/src/prover-client/prover-client.ts +12 -12
  118. package/src/prover-client/server-epoch-prover.ts +8 -5
  119. package/src/proving_broker/broker_prover_facade.ts +29 -31
  120. package/src/proving_broker/config.ts +31 -3
  121. package/src/proving_broker/factory.ts +3 -11
  122. package/src/proving_broker/fixtures.ts +2 -1
  123. package/src/proving_broker/proof_store/factory.ts +1 -1
  124. package/src/proving_broker/proof_store/gcs_proof_store.ts +3 -3
  125. package/src/proving_broker/proof_store/inline_proof_store.ts +5 -5
  126. package/src/proving_broker/proof_store/proof_store.ts +9 -9
  127. package/src/proving_broker/proving_agent.ts +11 -11
  128. package/src/proving_broker/proving_agent_instrumentation.ts +5 -5
  129. package/src/proving_broker/proving_broker.ts +35 -32
  130. package/src/proving_broker/proving_broker_database/memory.ts +2 -2
  131. package/src/proving_broker/proving_broker_database/persisted.ts +8 -8
  132. package/src/proving_broker/proving_broker_database.ts +1 -1
  133. package/src/proving_broker/proving_broker_instrumentation.ts +24 -2
  134. package/src/proving_broker/proving_job_controller.ts +7 -7
  135. package/src/proving_broker/rpc.ts +6 -7
  136. package/src/test/mock_prover.ts +28 -30
@@ -1,85 +1,80 @@
1
1
  import { Blob } from '@aztec/blob-lib';
2
- import { Body, MerkleTreeId, TxEffect, getTreeHeight, } from '@aztec/circuit-types';
3
- import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot, BlockHeader, ContentCommitment, Fr, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MembershipWitness, MerkleTreeCalculator, NOTE_HASH_SUBTREE_HEIGHT, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_HEIGHT, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NullifierLeafPreimage, PUBLIC_DATA_TREE_HEIGHT, PartialStateReference, PublicDataHint, PublicDataTreeLeaf, PublicDataTreeLeafPreimage, StateReference, } from '@aztec/circuits.js';
4
- import { ConstantRollupData, PrivateBaseRollupHints, PrivateBaseStateDiffHints, PublicBaseRollupHints, } from '@aztec/circuits.js/rollup';
2
+ import { ARCHIVE_HEIGHT, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NOTE_HASH_SUBTREE_HEIGHT, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_HEIGHT, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PUBLIC_DATA_TREE_HEIGHT } from '@aztec/constants';
5
3
  import { makeTuple } from '@aztec/foundation/array';
6
4
  import { padArrayEnd } from '@aztec/foundation/collection';
7
5
  import { sha256Trunc } from '@aztec/foundation/crypto';
6
+ import { Fr } from '@aztec/foundation/fields';
8
7
  import { assertLength, serializeToBuffer, toFriendlyJSON } from '@aztec/foundation/serialize';
9
- import { computeUnbalancedMerkleRoot } from '@aztec/foundation/trees';
10
- import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vks';
8
+ import { MembershipWitness, MerkleTreeCalculator, computeUnbalancedMerkleRoot } from '@aztec/foundation/trees';
9
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
11
10
  import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
12
- import { computeFeePayerBalanceLeafSlot } from '@aztec/simulator/server';
11
+ import { computeFeePayerBalanceLeafSlot } from '@aztec/protocol-contracts/fee-juice';
12
+ import { PublicDataHint } from '@aztec/stdlib/avm';
13
+ import { Body } from '@aztec/stdlib/block';
14
+ import { ContractClassLog } from '@aztec/stdlib/logs';
15
+ import { ConstantRollupData, PrivateBaseRollupHints, PrivateBaseStateDiffHints, PublicBaseRollupHints } from '@aztec/stdlib/rollup';
16
+ import { AppendOnlyTreeSnapshot, MerkleTreeId, NullifierLeafPreimage, PublicDataTreeLeaf, PublicDataTreeLeafPreimage, getTreeHeight } from '@aztec/stdlib/trees';
17
+ import { BlockHeader, ContentCommitment, PartialStateReference, StateReference, TxEffect } from '@aztec/stdlib/tx';
13
18
  import { Attributes, runInSpan } from '@aztec/telemetry-client';
14
19
  import { inspect } from 'util';
15
20
  // Builds the hints for base rollup. Updating the contract, nullifier, and data trees in the process.
16
- export const buildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseRollupHints', async (span, tx, globalVariables, db, startSpongeBlob) => {
21
+ export const buildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseRollupHints', async (span, tx, globalVariables, db, startSpongeBlob)=>{
17
22
  span.setAttribute(Attributes.TX_HASH, tx.hash.toString());
18
23
  // Get trees info before any changes hit
19
24
  const constants = await getConstantRollupData(globalVariables, db);
20
25
  const start = new PartialStateReference(await getTreeSnapshot(MerkleTreeId.NOTE_HASH_TREE, db), await getTreeSnapshot(MerkleTreeId.NULLIFIER_TREE, db), await getTreeSnapshot(MerkleTreeId.PUBLIC_DATA_TREE, db));
21
26
  // Get the subtree sibling paths for the circuit
22
27
  const noteHashSubtreeSiblingPathArray = await getSubtreeSiblingPath(MerkleTreeId.NOTE_HASH_TREE, NOTE_HASH_SUBTREE_HEIGHT, db);
23
- const noteHashSubtreeSiblingPath = makeTuple(NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, i => i < noteHashSubtreeSiblingPathArray.length ? noteHashSubtreeSiblingPathArray[i] : Fr.ZERO);
28
+ const noteHashSubtreeSiblingPath = makeTuple(NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, (i)=>i < noteHashSubtreeSiblingPathArray.length ? noteHashSubtreeSiblingPathArray[i] : Fr.ZERO);
24
29
  // Update the note hash trees with the new items being inserted to get the new roots
25
30
  // that will be used by the next iteration of the base rollup circuit, skipping the empty ones
26
31
  const noteHashes = padArrayEnd(tx.txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX);
27
32
  await db.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, noteHashes);
33
+ // Create data hint for reading fee payer initial balance in Fee Juice
34
+ const leafSlot = await computeFeePayerBalanceLeafSlot(tx.data.feePayer);
35
+ const feePayerFeeJuiceBalanceReadHint = await getPublicDataHint(db, leafSlot.toBigInt());
28
36
  // The read witnesses for a given TX should be generated before the writes of the same TX are applied.
29
37
  // All reads that refer to writes in the same tx are transient and can be simplified out.
30
38
  const txPublicDataUpdateRequestInfo = await processPublicDataUpdateRequests(tx, db);
31
39
  // Update the nullifier tree, capturing the low nullifier info for each individual operation
32
- const { lowLeavesWitnessData: nullifierWitnessLeaves, newSubtreeSiblingPath: nullifiersSubtreeSiblingPath, sortedNewLeaves: sortednullifiers, sortedNewLeavesIndexes, } = await db.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(tx.txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map(n => n.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
40
+ const { lowLeavesWitnessData: nullifierWitnessLeaves, newSubtreeSiblingPath: nullifiersSubtreeSiblingPath, sortedNewLeaves: sortednullifiers, sortedNewLeavesIndexes } = await db.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(tx.txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map((n)=>n.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
33
41
  if (nullifierWitnessLeaves === undefined) {
34
42
  throw new Error(`Could not craft nullifier batch insertion proofs`);
35
43
  }
36
44
  // Extract witness objects from returned data
37
- const nullifierPredecessorMembershipWitnessesWithoutPadding = nullifierWitnessLeaves.map(l => MembershipWitness.fromBufferArray(l.index, assertLength(l.siblingPath.toBufferArray(), NULLIFIER_TREE_HEIGHT)));
45
+ const nullifierPredecessorMembershipWitnessesWithoutPadding = nullifierWitnessLeaves.map((l)=>MembershipWitness.fromBufferArray(l.index, assertLength(l.siblingPath.toBufferArray(), NULLIFIER_TREE_HEIGHT)));
38
46
  const nullifierSubtreeSiblingPathArray = nullifiersSubtreeSiblingPath.toFields();
39
- const nullifierSubtreeSiblingPath = makeTuple(NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, i => i < nullifierSubtreeSiblingPathArray.length ? nullifierSubtreeSiblingPathArray[i] : Fr.ZERO);
47
+ const nullifierSubtreeSiblingPath = makeTuple(NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, (i)=>i < nullifierSubtreeSiblingPathArray.length ? nullifierSubtreeSiblingPathArray[i] : Fr.ZERO);
40
48
  // Append new data to startSpongeBlob
41
49
  const inputSpongeBlob = startSpongeBlob.clone();
42
50
  await startSpongeBlob.absorb(tx.txEffect.toBlobFields());
51
+ const contractClassLogsPreimages = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, (i)=>tx.txEffect.contractClassLogs[i] || ContractClassLog.empty());
43
52
  if (tx.avmProvingRequest) {
44
53
  const blockHash = await tx.constants.historicalHeader.hash();
45
54
  const archiveRootMembershipWitness = await getMembershipWitnessFor(blockHash, MerkleTreeId.ARCHIVE, ARCHIVE_HEIGHT, db);
46
55
  return PublicBaseRollupHints.from({
47
56
  startSpongeBlob: inputSpongeBlob,
48
57
  archiveRootMembershipWitness,
49
- constants,
58
+ contractClassLogsPreimages,
59
+ constants
50
60
  });
51
- }
52
- else {
53
- if (txPublicDataUpdateRequestInfo.lowPublicDataWritesMembershipWitnesses.length > 1 ||
54
- txPublicDataUpdateRequestInfo.lowPublicDataWritesPreimages.length > 1 ||
55
- txPublicDataUpdateRequestInfo.publicDataWritesSiblingPaths.length > 1) {
61
+ } else {
62
+ if (txPublicDataUpdateRequestInfo.lowPublicDataWritesMembershipWitnesses.length > 1 || txPublicDataUpdateRequestInfo.lowPublicDataWritesPreimages.length > 1 || txPublicDataUpdateRequestInfo.publicDataWritesSiblingPaths.length > 1) {
56
63
  throw new Error(`More than one public data write in a private only tx`);
57
64
  }
58
- // Create data hint for reading fee payer initial balance in Fee Juice
59
- // If no fee payer is set, read hint should be empty
60
- const leafSlot = await computeFeePayerBalanceLeafSlot(tx.data.feePayer);
61
- const feePayerFeeJuiceBalanceReadHint = tx.data.feePayer.isZero()
62
- ? PublicDataHint.empty()
63
- : await getPublicDataHint(db, leafSlot.toBigInt());
64
65
  const feeWriteLowLeafPreimage = txPublicDataUpdateRequestInfo.lowPublicDataWritesPreimages[0] || PublicDataTreeLeafPreimage.empty();
65
- const feeWriteLowLeafMembershipWitness = txPublicDataUpdateRequestInfo.lowPublicDataWritesMembershipWitnesses[0] ||
66
- MembershipWitness.empty(PUBLIC_DATA_TREE_HEIGHT);
67
- const feeWriteSiblingPath = txPublicDataUpdateRequestInfo.publicDataWritesSiblingPaths[0] ||
68
- makeTuple(PUBLIC_DATA_TREE_HEIGHT, () => Fr.ZERO);
66
+ const feeWriteLowLeafMembershipWitness = txPublicDataUpdateRequestInfo.lowPublicDataWritesMembershipWitnesses[0] || MembershipWitness.empty(PUBLIC_DATA_TREE_HEIGHT);
67
+ const feeWriteSiblingPath = txPublicDataUpdateRequestInfo.publicDataWritesSiblingPaths[0] || makeTuple(PUBLIC_DATA_TREE_HEIGHT, ()=>Fr.ZERO);
69
68
  const stateDiffHints = PrivateBaseStateDiffHints.from({
70
- nullifierPredecessorPreimages: makeTuple(MAX_NULLIFIERS_PER_TX, i => i < nullifierWitnessLeaves.length
71
- ? nullifierWitnessLeaves[i].leafPreimage
72
- : NullifierLeafPreimage.empty()),
73
- nullifierPredecessorMembershipWitnesses: makeTuple(MAX_NULLIFIERS_PER_TX, i => i < nullifierPredecessorMembershipWitnessesWithoutPadding.length
74
- ? nullifierPredecessorMembershipWitnessesWithoutPadding[i]
75
- : makeEmptyMembershipWitness(NULLIFIER_TREE_HEIGHT)),
76
- sortedNullifiers: makeTuple(MAX_NULLIFIERS_PER_TX, i => Fr.fromBuffer(sortednullifiers[i])),
77
- sortedNullifierIndexes: makeTuple(MAX_NULLIFIERS_PER_TX, i => sortedNewLeavesIndexes[i]),
69
+ nullifierPredecessorPreimages: makeTuple(MAX_NULLIFIERS_PER_TX, (i)=>i < nullifierWitnessLeaves.length ? nullifierWitnessLeaves[i].leafPreimage : NullifierLeafPreimage.empty()),
70
+ nullifierPredecessorMembershipWitnesses: makeTuple(MAX_NULLIFIERS_PER_TX, (i)=>i < nullifierPredecessorMembershipWitnessesWithoutPadding.length ? nullifierPredecessorMembershipWitnessesWithoutPadding[i] : makeEmptyMembershipWitness(NULLIFIER_TREE_HEIGHT)),
71
+ sortedNullifiers: makeTuple(MAX_NULLIFIERS_PER_TX, (i)=>Fr.fromBuffer(sortednullifiers[i])),
72
+ sortedNullifierIndexes: makeTuple(MAX_NULLIFIERS_PER_TX, (i)=>sortedNewLeavesIndexes[i]),
78
73
  noteHashSubtreeSiblingPath,
79
74
  nullifierSubtreeSiblingPath,
80
75
  feeWriteLowLeafPreimage,
81
76
  feeWriteLowLeafMembershipWitness,
82
- feeWriteSiblingPath,
77
+ feeWriteSiblingPath
83
78
  });
84
79
  const blockHash = await tx.constants.historicalHeader.hash();
85
80
  const archiveRootMembershipWitness = await getMembershipWitnessFor(blockHash, MerkleTreeId.ARCHIVE, ARCHIVE_HEIGHT, db);
@@ -87,20 +82,21 @@ export const buildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseR
87
82
  start,
88
83
  startSpongeBlob: inputSpongeBlob,
89
84
  stateDiffHints,
90
- feePayerFeeJuiceBalanceReadHint: feePayerFeeJuiceBalanceReadHint,
85
+ feePayerFeeJuiceBalanceReadHint,
91
86
  archiveRootMembershipWitness,
92
- constants,
87
+ contractClassLogsPreimages,
88
+ constants
93
89
  });
94
90
  }
95
91
  });
96
92
  export async function getPublicDataHint(db, leafSlot) {
97
- const { index } = (await db.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot)) ?? {};
93
+ const { index } = await db.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot) ?? {};
98
94
  if (index === undefined) {
99
95
  throw new Error(`Cannot find the previous value index for public data ${leafSlot}.`);
100
96
  }
101
97
  const siblingPath = await db.getSiblingPath(MerkleTreeId.PUBLIC_DATA_TREE, index);
102
98
  const membershipWitness = new MembershipWitness(PUBLIC_DATA_TREE_HEIGHT, index, siblingPath.toTuple());
103
- const leafPreimage = (await db.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, index));
99
+ const leafPreimage = await db.getLeafPreimage(MerkleTreeId.PUBLIC_DATA_TREE, index);
104
100
  if (!leafPreimage) {
105
101
  throw new Error(`Cannot find the leaf preimage for public data tree at index ${index}.`);
106
102
  }
@@ -108,76 +104,90 @@ export async function getPublicDataHint(db, leafSlot) {
108
104
  const value = exists ? leafPreimage.value : Fr.ZERO;
109
105
  return new PublicDataHint(new Fr(leafSlot), value, membershipWitness, leafPreimage);
110
106
  }
111
- export const buildBlobHints = runInSpan('BlockBuilderHelpers', 'buildBlobHints', async (_span, txEffects) => {
112
- const blobFields = txEffects.flatMap(tx => tx.toBlobFields());
107
+ export const buildBlobHints = runInSpan('BlockBuilderHelpers', 'buildBlobHints', async (_span, txEffects)=>{
108
+ const blobFields = txEffects.flatMap((tx)=>tx.toBlobFields());
113
109
  const blobs = await Blob.getBlobs(blobFields);
114
- const blobCommitments = blobs.map(b => b.commitmentToFields());
110
+ const blobCommitments = blobs.map((b)=>b.commitmentToFields());
115
111
  const blobsHash = new Fr(getBlobsHashFromBlobs(blobs));
116
- return { blobFields, blobCommitments, blobs, blobsHash };
112
+ return {
113
+ blobFields,
114
+ blobCommitments,
115
+ blobs,
116
+ blobsHash
117
+ };
117
118
  });
118
- export const buildHeaderFromCircuitOutputs = runInSpan('BlockBuilderHelpers', 'buildHeaderFromCircuitOutputs', async (_span, previousRollupData, parityPublicInputs, rootRollupOutputs, endState, logger) => {
119
+ export const buildHeaderFromCircuitOutputs = runInSpan('BlockBuilderHelpers', 'buildHeaderFromCircuitOutputs', async (_span, previousRollupData, parityPublicInputs, rootRollupOutputs, endState, logger)=>{
119
120
  if (previousRollupData.length > 2) {
120
121
  throw new Error(`There can't be more than 2 previous rollups. Received ${previousRollupData.length}.`);
121
122
  }
122
123
  const blobsHash = rootRollupOutputs.blobPublicInputs[0].getBlobsHash();
123
- const numTxs = previousRollupData.reduce((sum, d) => sum + d.numTxs, 0);
124
- const outHash = previousRollupData.length === 0
125
- ? Fr.ZERO.toBuffer()
126
- : previousRollupData.length === 1
127
- ? previousRollupData[0].outHash.toBuffer()
128
- : sha256Trunc(Buffer.concat([previousRollupData[0].outHash.toBuffer(), previousRollupData[1].outHash.toBuffer()]));
124
+ const numTxs = previousRollupData.reduce((sum, d)=>sum + d.numTxs, 0);
125
+ const outHash = previousRollupData.length === 0 ? Fr.ZERO.toBuffer() : previousRollupData.length === 1 ? previousRollupData[0].outHash.toBuffer() : sha256Trunc(Buffer.concat([
126
+ previousRollupData[0].outHash.toBuffer(),
127
+ previousRollupData[1].outHash.toBuffer()
128
+ ]));
129
129
  const contentCommitment = new ContentCommitment(new Fr(numTxs), blobsHash, parityPublicInputs.shaRoot.toBuffer(), outHash);
130
- const accumulatedFees = previousRollupData.reduce((sum, d) => sum.add(d.accumulatedFees), Fr.ZERO);
131
- const accumulatedManaUsed = previousRollupData.reduce((sum, d) => sum.add(d.accumulatedManaUsed), Fr.ZERO);
130
+ const accumulatedFees = previousRollupData.reduce((sum, d)=>sum.add(d.accumulatedFees), Fr.ZERO);
131
+ const accumulatedManaUsed = previousRollupData.reduce((sum, d)=>sum.add(d.accumulatedManaUsed), Fr.ZERO);
132
132
  const header = new BlockHeader(rootRollupOutputs.previousArchive, contentCommitment, endState, rootRollupOutputs.endGlobalVariables, accumulatedFees, accumulatedManaUsed);
133
133
  if (!(await header.hash()).equals(rootRollupOutputs.endBlockHash)) {
134
- logger?.error(`Block header mismatch when building header from circuit outputs.` +
135
- `\n\nHeader: ${inspect(header)}` +
136
- `\n\nCircuit: ${toFriendlyJSON(rootRollupOutputs)}`);
134
+ logger?.error(`Block header mismatch when building header from circuit outputs.` + `\n\nHeader: ${inspect(header)}` + `\n\nCircuit: ${toFriendlyJSON(rootRollupOutputs)}`);
137
135
  throw new Error(`Block header mismatch when building from circuit outputs`);
138
136
  }
139
137
  return header;
140
138
  });
141
- export const buildHeaderAndBodyFromTxs = runInSpan('BlockBuilderHelpers', 'buildHeaderAndBodyFromTxs', async (span, txs, globalVariables, l1ToL2Messages, db) => {
139
+ export const buildHeaderAndBodyFromTxs = runInSpan('BlockBuilderHelpers', 'buildHeaderAndBodyFromTxs', async (span, txs, globalVariables, l1ToL2Messages, db)=>{
142
140
  span.setAttribute(Attributes.BLOCK_NUMBER, globalVariables.blockNumber.toNumber());
143
141
  const stateReference = new StateReference(await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, db), new PartialStateReference(await getTreeSnapshot(MerkleTreeId.NOTE_HASH_TREE, db), await getTreeSnapshot(MerkleTreeId.NULLIFIER_TREE, db), await getTreeSnapshot(MerkleTreeId.PUBLIC_DATA_TREE, db)));
144
142
  const previousArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
145
- const txEffects = txs.map(tx => tx.txEffect);
143
+ const txEffects = txs.map((tx)=>tx.txEffect);
146
144
  const body = new Body(txEffects);
147
145
  const numTxs = body.txEffects.length;
148
- const outHash = numTxs === 0
149
- ? Fr.ZERO.toBuffer()
150
- : numTxs === 1
151
- ? body.txEffects[0].txOutHash()
152
- : computeUnbalancedMerkleRoot(body.txEffects.map(tx => tx.txOutHash()), TxEffect.empty().txOutHash());
146
+ const outHash = numTxs === 0 ? Fr.ZERO.toBuffer() : numTxs === 1 ? body.txEffects[0].txOutHash() : computeUnbalancedMerkleRoot(body.txEffects.map((tx)=>tx.txOutHash()), TxEffect.empty().txOutHash());
153
147
  l1ToL2Messages = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
154
- const hasher = (left, right) => Promise.resolve(sha256Trunc(Buffer.concat([left, right])));
148
+ const hasher = (left, right)=>Promise.resolve(sha256Trunc(Buffer.concat([
149
+ left,
150
+ right
151
+ ])));
155
152
  const parityHeight = Math.ceil(Math.log2(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
156
153
  const parityCalculator = await MerkleTreeCalculator.create(parityHeight, Fr.ZERO.toBuffer(), hasher);
157
- const parityShaRoot = await parityCalculator.computeTreeRoot(l1ToL2Messages.map(msg => msg.toBuffer()));
154
+ const parityShaRoot = await parityCalculator.computeTreeRoot(l1ToL2Messages.map((msg)=>msg.toBuffer()));
158
155
  const blobsHash = getBlobsHashFromBlobs(await Blob.getBlobs(body.toBlobFields()));
159
156
  const contentCommitment = new ContentCommitment(new Fr(numTxs), blobsHash, parityShaRoot, outHash);
160
- const fees = body.txEffects.reduce((acc, tx) => acc.add(tx.transactionFee), Fr.ZERO);
161
- const manaUsed = txs.reduce((acc, tx) => acc.add(new Fr(tx.gasUsed.totalGas.l2Gas)), Fr.ZERO);
157
+ const fees = body.txEffects.reduce((acc, tx)=>acc.add(tx.transactionFee), Fr.ZERO);
158
+ const manaUsed = txs.reduce((acc, tx)=>acc.add(new Fr(tx.gasUsed.billedGas.l2Gas)), Fr.ZERO);
162
159
  const header = new BlockHeader(previousArchive, contentCommitment, stateReference, globalVariables, fees, manaUsed);
163
- return { header, body };
160
+ return {
161
+ header,
162
+ body
163
+ };
164
164
  });
165
165
  export function getBlobsHashFromBlobs(inputs) {
166
- const blobHashes = serializeToBuffer(inputs.map(b => b.getEthVersionedBlobHash()));
166
+ const blobHashes = serializeToBuffer(inputs.map((b)=>b.getEthVersionedBlobHash()));
167
167
  return sha256Trunc(serializeToBuffer(blobHashes));
168
168
  }
169
169
  // Validate that the roots of all local trees match the output of the root circuit simulation
170
170
  export async function validateBlockRootOutput(blockRootOutput, blockHeader, db) {
171
171
  await Promise.all([
172
172
  validateState(blockHeader.state, db),
173
- validateSimulatedTree(await getTreeSnapshot(MerkleTreeId.ARCHIVE, db), blockRootOutput.newArchive, 'Archive'),
173
+ validateSimulatedTree(await getTreeSnapshot(MerkleTreeId.ARCHIVE, db), blockRootOutput.newArchive, 'Archive')
174
174
  ]);
175
175
  }
176
- export const validateState = runInSpan('BlockBuilderHelpers', 'validateState', async (_span, state, db) => {
177
- const promises = [MerkleTreeId.NOTE_HASH_TREE, MerkleTreeId.NULLIFIER_TREE, MerkleTreeId.PUBLIC_DATA_TREE].map(async (id) => {
178
- return { key: id, value: await getTreeSnapshot(id, db) };
176
+ export const validateState = runInSpan('BlockBuilderHelpers', 'validateState', async (_span, state, db)=>{
177
+ const promises = [
178
+ MerkleTreeId.NOTE_HASH_TREE,
179
+ MerkleTreeId.NULLIFIER_TREE,
180
+ MerkleTreeId.PUBLIC_DATA_TREE
181
+ ].map(async (id)=>{
182
+ return {
183
+ key: id,
184
+ value: await getTreeSnapshot(id, db)
185
+ };
179
186
  });
180
- const snapshots = new Map((await Promise.all(promises)).map(obj => [obj.key, obj.value]));
187
+ const snapshots = new Map((await Promise.all(promises)).map((obj)=>[
188
+ obj.key,
189
+ obj.value
190
+ ]));
181
191
  validatePartialState(state.partial, snapshots);
182
192
  validateSimulatedTree(await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, db), state.l1ToL2MessageTree, 'L1ToL2MessageTree');
183
193
  });
@@ -186,12 +196,12 @@ export async function getRootTreeSiblingPath(treeId, db) {
186
196
  const path = await db.getSiblingPath(treeId, size);
187
197
  return padArrayEnd(path.toFields(), Fr.ZERO, getTreeHeight(treeId));
188
198
  }
189
- export const getConstantRollupData = runInSpan('BlockBuilderHelpers', 'getConstantRollupData', async (_span, globalVariables, db) => {
199
+ export const getConstantRollupData = runInSpan('BlockBuilderHelpers', 'getConstantRollupData', async (_span, globalVariables, db)=>{
190
200
  return ConstantRollupData.from({
191
201
  vkTreeRoot: getVKTreeRoot(),
192
202
  protocolContractTreeRoot,
193
203
  lastArchive: await getTreeSnapshot(MerkleTreeId.ARCHIVE, db),
194
- globalVariables,
204
+ globalVariables
195
205
  });
196
206
  });
197
207
  export async function getTreeSnapshot(id, db) {
@@ -199,20 +209,20 @@ export async function getTreeSnapshot(id, db) {
199
209
  return new AppendOnlyTreeSnapshot(Fr.fromBuffer(treeInfo.root), Number(treeInfo.size));
200
210
  }
201
211
  export function makeEmptyMembershipWitness(height) {
202
- return new MembershipWitness(height, 0n, makeTuple(height, () => Fr.ZERO));
212
+ return new MembershipWitness(height, 0n, makeTuple(height, ()=>Fr.ZERO));
203
213
  }
204
- const processPublicDataUpdateRequests = runInSpan('BlockBuilderHelpers', 'processPublicDataUpdateRequests', async (span, tx, db) => {
214
+ const processPublicDataUpdateRequests = runInSpan('BlockBuilderHelpers', 'processPublicDataUpdateRequests', async (span, tx, db)=>{
205
215
  span.setAttribute(Attributes.TX_HASH, tx.hash.toString());
206
- const allPublicDataWrites = tx.txEffect.publicDataWrites.map(({ leafSlot, value }) => new PublicDataTreeLeaf(leafSlot, value));
207
- const { lowLeavesWitnessData, insertionWitnessData } = await db.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, allPublicDataWrites.map(write => {
216
+ const allPublicDataWrites = tx.txEffect.publicDataWrites.map(({ leafSlot, value })=>new PublicDataTreeLeaf(leafSlot, value));
217
+ const { lowLeavesWitnessData, insertionWitnessData } = await db.sequentialInsert(MerkleTreeId.PUBLIC_DATA_TREE, allPublicDataWrites.map((write)=>{
208
218
  if (write.isEmpty()) {
209
219
  throw new Error(`Empty public data write in tx: ${toFriendlyJSON(tx)}`);
210
220
  }
211
221
  return write.toBuffer();
212
222
  }));
213
- const lowPublicDataWritesPreimages = lowLeavesWitnessData.map(lowLeafWitness => lowLeafWitness.leafPreimage);
214
- const lowPublicDataWritesMembershipWitnesses = lowLeavesWitnessData.map(lowLeafWitness => MembershipWitness.fromBufferArray(lowLeafWitness.index, assertLength(lowLeafWitness.siblingPath.toBufferArray(), PUBLIC_DATA_TREE_HEIGHT)));
215
- const publicDataWritesSiblingPaths = insertionWitnessData.map(w => {
223
+ const lowPublicDataWritesPreimages = lowLeavesWitnessData.map((lowLeafWitness)=>lowLeafWitness.leafPreimage);
224
+ const lowPublicDataWritesMembershipWitnesses = lowLeavesWitnessData.map((lowLeafWitness)=>MembershipWitness.fromBufferArray(lowLeafWitness.index, assertLength(lowLeafWitness.siblingPath.toBufferArray(), PUBLIC_DATA_TREE_HEIGHT)));
225
+ const publicDataWritesSiblingPaths = insertionWitnessData.map((w)=>{
216
226
  const insertionSiblingPath = w.siblingPath.toFields();
217
227
  assertLength(insertionSiblingPath, PUBLIC_DATA_TREE_HEIGHT);
218
228
  return insertionSiblingPath;
@@ -220,11 +230,11 @@ const processPublicDataUpdateRequests = runInSpan('BlockBuilderHelpers', 'proces
220
230
  return {
221
231
  lowPublicDataWritesPreimages,
222
232
  lowPublicDataWritesMembershipWitnesses,
223
- publicDataWritesSiblingPaths,
233
+ publicDataWritesSiblingPaths
224
234
  };
225
235
  });
226
236
  export async function getSubtreeSiblingPath(treeId, subtreeHeight, db) {
227
- const nextAvailableLeafIndex = await db.getTreeInfo(treeId).then(t => t.size);
237
+ const nextAvailableLeafIndex = await db.getTreeInfo(treeId).then((t)=>t.size);
228
238
  const fullSiblingPath = await db.getSiblingPath(treeId, nextAvailableLeafIndex);
229
239
  // Drop the first subtreeHeight items since we only care about the path to the subtree root
230
240
  return fullSiblingPath.getSubtreeSiblingPath(subtreeHeight).toFields();
@@ -235,7 +245,9 @@ export async function getMembershipWitnessFor(value, treeId, height, db) {
235
245
  if (value.isZero()) {
236
246
  return makeEmptyMembershipWitness(height);
237
247
  }
238
- const index = (await db.findLeafIndices(treeId, [value.toBuffer()]))[0];
248
+ const index = (await db.findLeafIndices(treeId, [
249
+ value.toBuffer()
250
+ ]))[0];
239
251
  if (index === undefined) {
240
252
  throw new Error(`Leaf with value ${value} not found in tree ${MerkleTreeId[treeId]}`);
241
253
  }
@@ -271,4 +283,3 @@ export function validateTx(tx) {
271
283
  throw new Error(`Empty public data tree in tx: ${toFriendlyJSON(tx)}`);
272
284
  }
273
285
  }
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLElBQUksRUFDSixZQUFZLEVBR1osUUFBUSxFQUNSLGFBQWEsR0FDZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsRUFBRSxFQUVGLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLHdCQUF3QixFQUN4QixxQ0FBcUMsRUFDckMscUJBQXFCLEVBQ3JCLG1DQUFtQyxFQUNuQyxxQkFBcUIsRUFDckIsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixjQUFjLEdBQ2YsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBR0wsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIscUJBQXFCLEdBQ3RCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFjLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RSxP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
@@ -1,12 +1,17 @@
1
- import { type L2Block, type MerkleTreeId, type PublicInputsAndRecursiveProof } from '@aztec/circuit-types';
2
- import { type ARCHIVE_HEIGHT, type AppendOnlyTreeSnapshot, type BlockHeader, Fr, type GlobalVariables, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, type ParityPublicInputs, RootParityInputs } from '@aztec/circuits.js';
3
- import { SpongeBlob } from '@aztec/circuits.js/blobs';
4
- import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, SingleTxBlockRootRollupInputs } from '@aztec/circuits.js/rollup';
5
- import { type Logger } from '@aztec/foundation/log';
6
- import { type Tuple } from '@aztec/foundation/serialize';
1
+ import { SpongeBlob } from '@aztec/blob-lib';
2
+ import { type ARCHIVE_HEIGHT, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import type { Logger } from '@aztec/foundation/log';
5
+ import type { Tuple } from '@aztec/foundation/serialize';
7
6
  import { type TreeNodeLocation } from '@aztec/foundation/trees';
8
- import { type EpochProvingState } from './epoch-proving-state.js';
9
- import { type TxProvingState } from './tx-proving-state.js';
7
+ import type { L2Block } from '@aztec/stdlib/block';
8
+ import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
9
+ import { type ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
10
+ import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
11
+ import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
12
+ import { type BlockHeader, type GlobalVariables } from '@aztec/stdlib/tx';
13
+ import type { EpochProvingState } from './epoch-proving-state.js';
14
+ import type { TxProvingState } from './tx-proving-state.js';
10
15
  export type TreeSnapshots = Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
11
16
  /**
12
17
  * The current state of the proving schedule for a given block. Managed by ProvingState.
@@ -1 +1 @@
1
- {"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"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"}