@aztec/prover-client 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.75.0

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 (138) hide show
  1. package/dest/bin/get-proof-inputs.d.ts +2 -0
  2. package/dest/bin/get-proof-inputs.d.ts.map +1 -0
  3. package/dest/bin/get-proof-inputs.js +16 -18
  4. package/dest/block_builder/index.d.ts +6 -0
  5. package/dest/block_builder/index.d.ts.map +1 -0
  6. package/dest/block_builder/index.js +1 -0
  7. package/dest/block_builder/light.d.ts +31 -0
  8. package/dest/block_builder/light.d.ts.map +1 -0
  9. package/dest/block_builder/light.js +13 -23
  10. package/dest/config.d.ts +17 -0
  11. package/dest/config.d.ts.map +1 -0
  12. package/dest/config.js +11 -9
  13. package/dest/index.d.ts +4 -0
  14. package/dest/index.d.ts.map +1 -0
  15. package/dest/index.js +1 -0
  16. package/dest/mocks/fixtures.d.ts +19 -0
  17. package/dest/mocks/fixtures.d.ts.map +1 -0
  18. package/dest/mocks/fixtures.js +26 -28
  19. package/dest/mocks/test_context.d.ts +49 -0
  20. package/dest/mocks/test_context.d.ts.map +1 -0
  21. package/dest/mocks/test_context.js +31 -55
  22. package/dest/orchestrator/block-building-helpers.d.ts +50 -0
  23. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -0
  24. package/dest/orchestrator/block-building-helpers.js +90 -90
  25. package/dest/orchestrator/block-proving-state.d.ts +71 -0
  26. package/dest/orchestrator/block-proving-state.d.ts.map +1 -0
  27. package/dest/orchestrator/block-proving-state.js +70 -95
  28. package/dest/orchestrator/epoch-proving-state.d.ts +56 -0
  29. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -0
  30. package/dest/orchestrator/epoch-proving-state.js +40 -53
  31. package/dest/orchestrator/index.d.ts +2 -0
  32. package/dest/orchestrator/index.d.ts.map +1 -0
  33. package/dest/orchestrator/index.js +1 -0
  34. package/dest/orchestrator/orchestrator.d.ts +108 -0
  35. package/dest/orchestrator/orchestrator.d.ts.map +1 -0
  36. package/dest/orchestrator/orchestrator.js +653 -649
  37. package/dest/orchestrator/orchestrator_metrics.d.ts +8 -0
  38. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -0
  39. package/dest/orchestrator/orchestrator_metrics.js +3 -4
  40. package/dest/orchestrator/tx-proving-state.d.ts +31 -0
  41. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -0
  42. package/dest/orchestrator/tx-proving-state.js +51 -52
  43. package/dest/prover-agent/index.d.ts +4 -0
  44. package/dest/prover-agent/index.d.ts.map +1 -0
  45. package/dest/prover-agent/index.js +1 -0
  46. package/dest/prover-agent/memory-proving-queue.d.ts +82 -0
  47. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -0
  48. package/dest/prover-agent/memory-proving-queue.js +248 -237
  49. package/dest/prover-agent/prover-agent.d.ts +43 -0
  50. package/dest/prover-agent/prover-agent.d.ts.map +1 -0
  51. package/dest/prover-agent/prover-agent.js +187 -184
  52. package/dest/prover-agent/proving-error.d.ts +5 -0
  53. package/dest/prover-agent/proving-error.d.ts.map +1 -0
  54. package/dest/prover-agent/proving-error.js +1 -0
  55. package/dest/prover-agent/queue_metrics.d.ts +10 -0
  56. package/dest/prover-agent/queue_metrics.d.ts.map +1 -0
  57. package/dest/prover-agent/queue_metrics.js +5 -6
  58. package/dest/prover-agent/rpc.d.ts +11 -0
  59. package/dest/prover-agent/rpc.d.ts.map +1 -0
  60. package/dest/prover-agent/rpc.js +4 -6
  61. package/dest/prover-client/factory.d.ts +6 -0
  62. package/dest/prover-client/factory.d.ts.map +1 -0
  63. package/dest/prover-client/factory.js +1 -0
  64. package/dest/prover-client/index.d.ts +3 -0
  65. package/dest/prover-client/index.d.ts.map +1 -0
  66. package/dest/prover-client/index.js +1 -0
  67. package/dest/prover-client/prover-client.d.ts +42 -0
  68. package/dest/prover-client/prover-client.d.ts.map +1 -0
  69. package/dest/prover-client/prover-client.js +25 -30
  70. package/dest/prover-client/server-epoch-prover.d.ts +25 -0
  71. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -0
  72. package/dest/prover-client/server-epoch-prover.js +4 -4
  73. package/dest/proving_broker/broker_prover_facade.d.ts +39 -0
  74. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -0
  75. package/dest/proving_broker/broker_prover_facade.js +59 -70
  76. package/dest/proving_broker/config.d.ts +61 -0
  77. package/dest/proving_broker/config.d.ts.map +1 -0
  78. package/dest/proving_broker/config.js +37 -22
  79. package/dest/proving_broker/factory.d.ts +5 -0
  80. package/dest/proving_broker/factory.d.ts.map +1 -0
  81. package/dest/proving_broker/factory.js +2 -1
  82. package/dest/proving_broker/fixtures.d.ts +5 -0
  83. package/dest/proving_broker/fixtures.d.ts.map +1 -0
  84. package/dest/proving_broker/fixtures.js +1 -0
  85. package/dest/proving_broker/index.d.ts +10 -0
  86. package/dest/proving_broker/index.d.ts.map +1 -0
  87. package/dest/proving_broker/index.js +1 -0
  88. package/dest/proving_broker/proof_store/factory.d.ts +6 -0
  89. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -0
  90. package/dest/proving_broker/proof_store/factory.js +12 -9
  91. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +13 -0
  92. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -0
  93. package/dest/proving_broker/proof_store/gcs_proof_store.js +7 -11
  94. package/dest/proving_broker/proof_store/index.d.ts +4 -0
  95. package/dest/proving_broker/proof_store/index.d.ts.map +1 -0
  96. package/dest/proving_broker/proof_store/index.js +1 -0
  97. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +14 -0
  98. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -0
  99. package/dest/proving_broker/proof_store/inline_proof_store.js +7 -11
  100. package/dest/proving_broker/proof_store/proof_store.d.ts +35 -0
  101. package/dest/proving_broker/proof_store/proof_store.d.ts.map +1 -0
  102. package/dest/proving_broker/proof_store/proof_store.js +2 -3
  103. package/dest/proving_broker/proving_agent.d.ts +44 -0
  104. package/dest/proving_broker/proving_agent.d.ts.map +1 -0
  105. package/dest/proving_broker/proving_agent.js +110 -121
  106. package/dest/proving_broker/proving_agent_instrumentation.d.ts +8 -0
  107. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -0
  108. package/dest/proving_broker/proving_agent_instrumentation.js +3 -3
  109. package/dest/proving_broker/proving_broker.d.ts +75 -0
  110. package/dest/proving_broker/proving_broker.d.ts.map +1 -0
  111. package/dest/proving_broker/proving_broker.js +451 -491
  112. package/dest/proving_broker/proving_broker_database/memory.d.ts +16 -0
  113. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
  114. package/dest/proving_broker/proving_broker_database/memory.js +13 -19
  115. package/dest/proving_broker/proving_broker_database/persisted.d.ts +21 -0
  116. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
  117. package/dest/proving_broker/proving_broker_database/persisted.js +21 -41
  118. package/dest/proving_broker/proving_broker_database.d.ts +39 -0
  119. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
  120. package/dest/proving_broker/proving_broker_database.js +2 -3
  121. package/dest/proving_broker/proving_broker_instrumentation.d.ts +25 -0
  122. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -0
  123. package/dest/proving_broker/proving_broker_instrumentation.js +21 -28
  124. package/dest/proving_broker/proving_job_controller.d.ts +31 -0
  125. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -0
  126. package/dest/proving_broker/proving_job_controller.js +62 -81
  127. package/dest/proving_broker/rpc.d.ts +11 -0
  128. package/dest/proving_broker/rpc.d.ts.map +1 -0
  129. package/dest/proving_broker/rpc.js +15 -23
  130. package/dest/test/mock_prover.d.ts +33 -0
  131. package/dest/test/mock_prover.d.ts.map +1 -0
  132. package/dest/test/mock_prover.js +9 -11
  133. package/package.json +11 -12
  134. package/src/index.ts +1 -1
  135. package/src/orchestrator/block-building-helpers.ts +1 -1
  136. package/src/proving_broker/proving_agent.ts +11 -30
  137. package/src/proving_broker/proving_broker.ts +27 -53
  138. package/src/proving_broker/rpc.ts +2 -8
@@ -1,11 +1,11 @@
1
1
  import { makeBloatedProcessedTx } from '@aztec/circuit-types/test';
2
- import { TreeSnapshots } from '@aztec/circuits.js';
2
+ import { TreeSnapshots, } from '@aztec/circuits.js';
3
3
  import { times, timesParallel } from '@aztec/foundation/collection';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
5
  import { TestDateProvider } from '@aztec/foundation/timer';
6
6
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vks';
7
7
  import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
8
- import { PublicProcessor, PublicTxSimulator, WASMSimulatorWithBlobs } from '@aztec/simulator/server';
8
+ import { PublicProcessor, PublicTxSimulator, WASMSimulatorWithBlobs, } from '@aztec/simulator/server';
9
9
  import { getTelemetryClient } from '@aztec/telemetry-client';
10
10
  import { NativeWorldStateService } from '@aztec/world-state/native';
11
11
  import { jest } from '@jest/globals';
@@ -19,19 +19,7 @@ import { MemoryProvingQueue } from '../prover-agent/memory-proving-queue.js';
19
19
  import { ProverAgent } from '../prover-agent/prover-agent.js';
20
20
  import { getEnvironmentConfig, getSimulationProvider, makeGlobals, updateExpectedTreesFromTxs } from './fixtures.js';
21
21
  export class TestContext {
22
- publicTxSimulator;
23
- worldState;
24
- publicProcessor;
25
- simulationProvider;
26
- globalVariables;
27
- prover;
28
- proverAgent;
29
- orchestrator;
30
- blockNumber;
31
- directoriesToCleanup;
32
- logger;
33
- headers;
34
- constructor(publicTxSimulator, worldState, publicProcessor, simulationProvider, globalVariables, prover, proverAgent, orchestrator, blockNumber, directoriesToCleanup, logger){
22
+ constructor(publicTxSimulator, worldState, publicProcessor, simulationProvider, globalVariables, prover, proverAgent, orchestrator, blockNumber, directoriesToCleanup, logger) {
35
23
  this.publicTxSimulator = publicTxSimulator;
36
24
  this.worldState = worldState;
37
25
  this.publicProcessor = publicProcessor;
@@ -48,7 +36,7 @@ export class TestContext {
48
36
  get epochProver() {
49
37
  return this.orchestrator;
50
38
  }
51
- static async new(logger, proverCount = 4, createProver = (_)=>Promise.resolve(new TestCircuitProver(new WASMSimulatorWithBlobs())), blockNumber = 1) {
39
+ static async new(logger, proverCount = 4, createProver = _ => Promise.resolve(new TestCircuitProver(new WASMSimulatorWithBlobs())), blockNumber = 1) {
52
40
  const directoriesToCleanup = [];
53
41
  const globalVariables = makeGlobals(blockNumber);
54
42
  const worldStateDB = mock();
@@ -62,17 +50,18 @@ export class TestContext {
62
50
  const config = await getEnvironmentConfig(logger);
63
51
  const simulationProvider = await getSimulationProvider({
64
52
  acvmWorkingDirectory: config?.acvmWorkingDirectory,
65
- acvmBinaryPath: config?.expectedAcvmPath
53
+ acvmBinaryPath: config?.expectedAcvmPath,
66
54
  });
67
55
  if (!config) {
68
56
  localProver = new TestCircuitProver(simulationProvider);
69
- } else {
57
+ }
58
+ else {
70
59
  const bbConfig = {
71
60
  acvmBinaryPath: config.expectedAcvmPath,
72
61
  acvmWorkingDirectory: config.acvmWorkingDirectory,
73
62
  bbBinaryPath: config.expectedBBPath,
74
63
  bbWorkingDirectory: config.bbWorkingDirectory,
75
- bbSkipCleanup: config.bbSkipCleanup
64
+ bbSkipCleanup: config.bbSkipCleanup,
76
65
  };
77
66
  localProver = await createProver(bbConfig);
78
67
  }
@@ -97,17 +86,12 @@ export class TestContext {
97
86
  }
98
87
  async cleanup() {
99
88
  await this.proverAgent.stop();
100
- for (const dir of this.directoriesToCleanup.filter((x)=>x !== '')){
101
- await fs.rm(dir, {
102
- recursive: true,
103
- force: true
104
- });
89
+ for (const dir of this.directoriesToCleanup.filter(x => x !== '')) {
90
+ await fs.rm(dir, { recursive: true, force: true });
105
91
  }
106
92
  }
107
93
  async makeProcessedTx(seedOrOpts) {
108
- const opts = typeof seedOrOpts === 'number' ? {
109
- seed: seedOrOpts
110
- } : seedOrOpts;
94
+ const opts = typeof seedOrOpts === 'number' ? { seed: seedOrOpts } : seedOrOpts;
111
95
  const blockNum = (opts?.globalVariables ?? this.globalVariables).blockNumber.toNumber();
112
96
  const header = this.getBlockHeader(blockNum - 1);
113
97
  return makeBloatedProcessedTx({
@@ -115,37 +99,29 @@ export class TestContext {
115
99
  vkTreeRoot: await getVKTreeRoot(),
116
100
  protocolContractTreeRoot,
117
101
  globalVariables: this.globalVariables,
118
- ...opts
102
+ ...opts,
119
103
  });
120
104
  }
121
- /** Creates a block with the given number of txs and adds it to world-state */ async makePendingBlock(numTxs, numMsgs = 0, blockNumOrGlobals = this.globalVariables, makeProcessedTxOpts = ()=>({})) {
105
+ /** Creates a block with the given number of txs and adds it to world-state */
106
+ async makePendingBlock(numTxs, numMsgs = 0, blockNumOrGlobals = this.globalVariables, makeProcessedTxOpts = () => ({})) {
122
107
  const globalVariables = typeof blockNumOrGlobals === 'number' ? makeGlobals(blockNumOrGlobals) : blockNumOrGlobals;
123
108
  const blockNum = globalVariables.blockNumber.toNumber();
124
109
  const db = await this.worldState.fork();
125
- const msgs = times(numMsgs, (i)=>new Fr(blockNum * 100 + i));
126
- const txs = await timesParallel(numTxs, (i)=>this.makeProcessedTx({
127
- seed: i + blockNum * 1000,
128
- globalVariables,
129
- ...makeProcessedTxOpts(i)
130
- }));
110
+ const msgs = times(numMsgs, i => new Fr(blockNum * 100 + i));
111
+ const txs = await timesParallel(numTxs, i => this.makeProcessedTx({ seed: i + blockNum * 1000, globalVariables, ...makeProcessedTxOpts(i) }));
131
112
  await this.setEndTreeRoots(txs);
132
113
  const block = await buildBlock(txs, globalVariables, msgs, db);
133
114
  this.headers.set(blockNum, block.header);
134
115
  await this.worldState.handleL2BlockAndMessages(block, msgs);
135
- return {
136
- block,
137
- txs,
138
- msgs
139
- };
116
+ return { block, txs, msgs };
140
117
  }
141
118
  async processPublicFunctions(txs, maxTransactions) {
142
- const defaultExecutorImplementation = (_stateManager, executionRequest, allocatedGas, _transactionFee, _fnName)=>{
143
- for (const tx of txs){
144
- const allCalls = tx.publicTeardownFunctionCall.isEmpty() ? tx.enqueuedPublicFunctionCalls : [
145
- ...tx.enqueuedPublicFunctionCalls,
146
- tx.publicTeardownFunctionCall
147
- ];
148
- for (const request of allCalls){
119
+ const defaultExecutorImplementation = (_stateManager, executionRequest, allocatedGas, _transactionFee, _fnName) => {
120
+ for (const tx of txs) {
121
+ const allCalls = tx.publicTeardownFunctionCall.isEmpty()
122
+ ? tx.enqueuedPublicFunctionCalls
123
+ : [...tx.enqueuedPublicFunctionCalls, tx.publicTeardownFunctionCall];
124
+ for (const request of allCalls) {
149
125
  if (executionRequest.callContext.equals(request.callContext)) {
150
126
  return Promise.resolve(new AvmFinalizedCallResult(/*reverted=*/ false, /*output=*/ [], /*gasLeft=*/ allocatedGas));
151
127
  }
@@ -157,10 +133,8 @@ export class TestContext {
157
133
  }
158
134
  async setEndTreeRoots(txs) {
159
135
  const db = await this.worldState.fork();
160
- for (const tx of txs){
161
- await updateExpectedTreesFromTxs(db, [
162
- tx
163
- ]);
136
+ for (const tx of txs) {
137
+ await updateExpectedTreesFromTxs(db, [tx]);
164
138
  const stateReference = await db.getStateReference();
165
139
  if (tx.avmProvingRequest) {
166
140
  tx.avmProvingRequest.inputs.publicInputs.endTreeSnapshots = new TreeSnapshots(stateReference.l1ToL2MessageTree, stateReference.partial.noteHashTree, stateReference.partial.nullifierTree, stateReference.partial.publicDataTree);
@@ -173,13 +147,14 @@ export class TestContext {
173
147
  if (executorMock) {
174
148
  simulateInternal.mockImplementation(executorMock);
175
149
  }
176
- return await this.publicProcessor.process(txs, {
177
- maxTransactions
178
- });
150
+ return await this.publicProcessor.process(txs, { maxTransactions });
179
151
  }
180
152
  }
181
153
  class TestProvingOrchestrator extends ProvingOrchestrator {
182
- isVerifyBuiltBlockAgainstSyncedStateEnabled = false;
154
+ constructor() {
155
+ super(...arguments);
156
+ this.isVerifyBuiltBlockAgainstSyncedStateEnabled = false;
157
+ }
183
158
  // Disable this check by default, since it requires seeding world state with the block being built
184
159
  // This is only enabled in some tests with multiple blocks that populate the pending chain via makePendingBlock
185
160
  verifyBuiltBlockAgainstSyncedState(l2Block, newArchive) {
@@ -189,3 +164,4 @@ class TestProvingOrchestrator extends ProvingOrchestrator {
189
164
  return Promise.resolve();
190
165
  }
191
166
  }
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vY2tzL3Rlc3RfY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBS0wsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsaUJBQWlCLEVBRWpCLHNCQUFzQixHQUV2QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRWhHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSww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
@@ -0,0 +1,50 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { Body, MerkleTreeId, type MerkleTreeWriteOperations, type ProcessedTx, TxEffect } from '@aztec/circuit-types';
4
+ import { AppendOnlyTreeSnapshot, BlockHeader, Fr, type GlobalVariables, MembershipWitness, type ParityPublicInputs, PartialStateReference, PublicDataHint, StateReference } from '@aztec/circuits.js';
5
+ import { type SpongeBlob } from '@aztec/circuits.js/blobs';
6
+ import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, ConstantRollupData, PrivateBaseRollupHints, PublicBaseRollupHints } from '@aztec/circuits.js/rollup';
7
+ import { Blob } from '@aztec/foundation/blob';
8
+ import { type Logger } from '@aztec/foundation/log';
9
+ import { type Tuple } from '@aztec/foundation/serialize';
10
+ import { type MerkleTreeReadOperations } from '@aztec/world-state';
11
+ /**
12
+ * Type representing the names of the trees for the base rollup.
13
+ */
14
+ type BaseTreeNames = 'NoteHashTree' | 'ContractTree' | 'NullifierTree' | 'PublicDataTree';
15
+ /**
16
+ * Type representing the names of the trees.
17
+ */
18
+ export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
19
+ export declare const buildBaseRollupHints: (tx: ProcessedTx, globalVariables: GlobalVariables, db: MerkleTreeWriteOperations, startSpongeBlob: SpongeBlob) => Promise<PublicBaseRollupHints | PrivateBaseRollupHints>;
20
+ export declare function getPublicDataHint(db: MerkleTreeWriteOperations, leafSlot: bigint): Promise<PublicDataHint>;
21
+ export declare const buildBlobHints: (txEffects: TxEffect[]) => Promise<{
22
+ blobFields: Fr[];
23
+ blobCommitments: [Fr, Fr][];
24
+ blobs: Blob[];
25
+ blobsHash: Fr;
26
+ }>;
27
+ export declare const buildHeaderFromCircuitOutputs: (previousRollupData: BaseOrMergeRollupPublicInputs[], parityPublicInputs: ParityPublicInputs, rootRollupOutputs: BlockRootOrBlockMergePublicInputs, endState: StateReference, logger?: Logger | undefined) => Promise<BlockHeader>;
28
+ export declare const buildHeaderAndBodyFromTxs: (txs: ProcessedTx[], globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeReadOperations) => Promise<{
29
+ header: BlockHeader;
30
+ body: Body;
31
+ }>;
32
+ export declare function getBlobsHashFromBlobs(inputs: Blob[]): Buffer;
33
+ export declare function validateBlockRootOutput(blockRootOutput: BlockRootOrBlockMergePublicInputs, blockHeader: BlockHeader, db: MerkleTreeReadOperations): Promise<void>;
34
+ export declare const validateState: (state: StateReference, db: MerkleTreeReadOperations) => Promise<void>;
35
+ export declare function getRootTreeSiblingPath<TID extends MerkleTreeId>(treeId: TID, db: MerkleTreeReadOperations): Promise<Tuple<Fr, {
36
+ readonly 1: 40;
37
+ readonly 4: 29;
38
+ readonly 3: 39;
39
+ readonly 0: 40;
40
+ readonly 2: 40;
41
+ }[TID]>>;
42
+ export declare const getConstantRollupData: (globalVariables: GlobalVariables, db: MerkleTreeReadOperations) => Promise<ConstantRollupData>;
43
+ export declare function getTreeSnapshot(id: MerkleTreeId, db: MerkleTreeReadOperations): Promise<AppendOnlyTreeSnapshot>;
44
+ export declare function makeEmptyMembershipWitness<N extends number>(height: N): MembershipWitness<N>;
45
+ export declare function getSubtreeSiblingPath(treeId: MerkleTreeId, subtreeHeight: number, db: MerkleTreeReadOperations): Promise<Fr[]>;
46
+ export declare function getMembershipWitnessFor<N extends number>(value: Fr, treeId: MerkleTreeId, height: N, db: MerkleTreeReadOperations): Promise<MembershipWitness<N>>;
47
+ export declare function validatePartialState(partialState: PartialStateReference, treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>): void;
48
+ export declare function validateTx(tx: ProcessedTx): void;
49
+ export {};
50
+ //# sourceMappingURL=block-building-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,QAAQ,EAET,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,sBAAsB,EACtB,WAAW,EAEX,EAAE,EACF,KAAK,eAAe,EAIpB,iBAAiB,EAUjB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,cAAc,EAGd,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,kBAAkB,EAClB,sBAAsB,EAEtB,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAG9C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,KAAK,EAAmD,MAAM,6BAA6B,CAAC;AAM1G,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAInE;;GAEG;AACH,KAAK,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC1F;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAGxE,eAAO,MAAM,oBAAoB,4KAsLhC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,2BAkBtF;AAED,eAAO,MAAM,cAAc;;;;;EAU1B,CAAC;AAEF,eAAO,MAAM,6BAA6B,oOAoDzC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;EAoDrC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAG5D;AAGD,wBAAsB,uBAAuB,CAC3C,eAAe,EAAE,iCAAiC,EAClD,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,wBAAwB,iBAM7B;AAED,eAAO,MAAM,aAAa,wEAmBzB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,wBAAwB;;;;;;SAI/G;AAED,eAAO,MAAM,qBAAqB,iGAWjC,CAAC;AAEF,wBAAsB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAGrH;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,wBAMrE;AA4CD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,wBAAwB,GAC3B,OAAO,CAAC,EAAE,EAAE,CAAC,CAMf;AAGD,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAC5D,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,wBAAwB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAY/B;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,qBAAqB,EACnC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,QASzD;AAqBD,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,QAczC"}