@aztec/prover-client 0.55.1 → 0.56.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.
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +6 -27
- package/dest/mocks/test_context.d.ts +4 -5
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +7 -9
- package/dest/orchestrator/block-building-helpers.d.ts +12 -3
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +34 -32
- package/dest/orchestrator/{proving-state.d.ts → block-proving-state.d.ts} +17 -13
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -0
- package/dest/orchestrator/block-proving-state.js +170 -0
- package/dest/orchestrator/epoch-proving-state.d.ts +57 -0
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -0
- package/dest/orchestrator/epoch-proving-state.js +151 -0
- package/dest/orchestrator/orchestrator.d.ts +32 -11
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +246 -139
- package/dest/orchestrator/tx-proving-state.d.ts +3 -2
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +54 -26
- package/dest/prover-agent/memory-proving-queue.d.ts +11 -5
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/memory-proving-queue.js +16 -6
- package/dest/prover-agent/prover-agent.d.ts.map +1 -1
- package/dest/prover-agent/prover-agent.js +10 -10
- package/dest/prover-agent/rpc.d.ts.map +1 -1
- package/dest/prover-agent/rpc.js +6 -2
- package/dest/test/mock_prover.d.ts +4 -2
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +9 -3
- package/package.json +12 -11
- package/src/mocks/fixtures.ts +5 -49
- package/src/mocks/test_context.ts +7 -12
- package/src/orchestrator/block-building-helpers.ts +90 -57
- package/src/orchestrator/{proving-state.ts → block-proving-state.ts} +42 -40
- package/src/orchestrator/epoch-proving-state.ts +232 -0
- package/src/orchestrator/orchestrator.ts +410 -244
- package/src/orchestrator/tx-proving-state.ts +63 -27
- package/src/prover-agent/memory-proving-queue.ts +30 -16
- package/src/prover-agent/prover-agent.ts +11 -9
- package/src/prover-agent/rpc.ts +6 -0
- package/src/test/mock_prover.ts +23 -1
- package/dest/orchestrator/proving-state.d.ts.map +0 -1
- package/dest/orchestrator/proving-state.js +0 -170
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,EAAE,EAEF,eAAe,EAMhB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAuB,KAAK,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAgB/D,eAAO,MAAM,oBAAoB,WAAkB,WAAW;;;;;;cA6B7D,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE;IAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACxF,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AAED,eAAO,MAAM,sBAAsB,cAAe,oBAAoB,+BACF,CAAC;AAErE,eAAO,MAAM,oBAAoB,cAAe,oBAAoB,WAAW,EAAE,WAAW,EAAE,gBAG7F,CAAC;AAGF,eAAO,MAAM,0BAA0B,OAAc,oBAAoB,OAAO,WAAW,EAAE,kBA+B5F,CAAC;AAEF,eAAO,MAAM,WAAW,gBAAiB,MAAM,oBAW9C,CAAC;AAEF,eAAO,MAAM,wBAAwB,cAAe,oBAAoB,KAAG,WACxB,CAAC"}
|
package/dest/mocks/fixtures.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { MerkleTreeId, makeEmptyProcessedTx as makeEmptyProcessedTxFromHistoricalTreeRoots,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
1
|
+
import { MerkleTreeId, makeEmptyProcessedTx as makeEmptyProcessedTxFromHistoricalTreeRoots, } from '@aztec/circuit-types';
|
|
2
|
+
import { makeBloatedProcessedTx as makeBloatedProcessedTxWithVKRoot } from '@aztec/circuit-types/test';
|
|
3
|
+
import { AztecAddress, EthAddress, Fr, GasFees, GlobalVariables, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_TREE_HEIGHT, PUBLIC_DATA_SUBTREE_HEIGHT, PublicDataTreeLeaf, } from '@aztec/circuits.js';
|
|
5
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
6
5
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
7
6
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
@@ -56,27 +55,7 @@ export async function getSimulationProvider(config, logger) {
|
|
|
56
55
|
logger?.info('Using WASM ACVM simulation');
|
|
57
56
|
return new WASMSimulator();
|
|
58
57
|
}
|
|
59
|
-
export const makeBloatedProcessedTx = (builderDb, seed = 0x1) =>
|
|
60
|
-
seed *= MAX_NULLIFIERS_PER_TX; // Ensure no clashing given incremental seeds
|
|
61
|
-
const tx = mockTx(seed);
|
|
62
|
-
const kernelOutput = KernelCircuitPublicInputs.empty();
|
|
63
|
-
kernelOutput.constants.vkTreeRoot = getVKTreeRoot();
|
|
64
|
-
kernelOutput.constants.historicalHeader = builderDb.getInitialHeader();
|
|
65
|
-
kernelOutput.end.publicDataUpdateRequests = makeTuple(MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, i => new PublicDataUpdateRequest(fr(i), fr(i + 10), i + 20), seed + 0x500);
|
|
66
|
-
kernelOutput.end.publicDataUpdateRequests = makeTuple(MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, i => new PublicDataUpdateRequest(fr(i), fr(i + 10), i + 20), seed + 0x600);
|
|
67
|
-
const processedTx = makeProcessedTx(tx, kernelOutput, []);
|
|
68
|
-
processedTx.data.end.noteHashes = makeTuple(MAX_NOTE_HASHES_PER_TX, fr, seed + 0x100);
|
|
69
|
-
processedTx.data.end.nullifiers = makeTuple(MAX_NULLIFIERS_PER_TX, fr, seed + 0x100000);
|
|
70
|
-
processedTx.data.end.nullifiers[tx.data.forPublic.end.nullifiers.length - 1] = Fr.zero();
|
|
71
|
-
processedTx.data.end.l2ToL1Msgs = makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, makeScopedL2ToL1Message, seed + 0x300);
|
|
72
|
-
processedTx.noteEncryptedLogs.unrollLogs().forEach((log, i) => {
|
|
73
|
-
processedTx.data.end.noteEncryptedLogsHashes[i] = new LogHash(Fr.fromBuffer(log.hash()), 0, new Fr(log.length));
|
|
74
|
-
});
|
|
75
|
-
processedTx.encryptedLogs.unrollLogs().forEach((log, i) => {
|
|
76
|
-
processedTx.data.end.encryptedLogsHashes[i] = new ScopedLogHash(new LogHash(Fr.fromBuffer(log.hash()), 0, new Fr(log.length)), log.maskedContractAddress);
|
|
77
|
-
});
|
|
78
|
-
return processedTx;
|
|
79
|
-
};
|
|
58
|
+
export const makeBloatedProcessedTx = (builderDb, seed = 0x1) => makeBloatedProcessedTxWithVKRoot(builderDb, getVKTreeRoot(), seed);
|
|
80
59
|
export const makeEmptyProcessedTx = (builderDb, chainId, version) => {
|
|
81
60
|
const header = builderDb.getInitialHeader();
|
|
82
61
|
return makeEmptyProcessedTxFromHistoricalTreeRoots(header, chainId, version, getVKTreeRoot());
|
|
@@ -92,7 +71,7 @@ export const updateExpectedTreesFromTxs = async (db, txs) => {
|
|
|
92
71
|
}
|
|
93
72
|
};
|
|
94
73
|
export const makeGlobals = (blockNumber) => {
|
|
95
|
-
return new GlobalVariables(Fr.ZERO, Fr.ZERO, new Fr(blockNumber)
|
|
74
|
+
return new GlobalVariables(Fr.ZERO, Fr.ZERO, new Fr(blockNumber) /** block number */, new Fr(blockNumber) /** slot number */, new Fr(blockNumber) /** timestamp */, EthAddress.ZERO, AztecAddress.ZERO, GasFees.empty());
|
|
96
75
|
};
|
|
97
76
|
export const makeEmptyProcessedTestTx = (builderDb) => makeEmptyProcessedTx(builderDb, Fr.ZERO, Fr.ZERO);
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFFWixvQkFBb0IsSUFBSSwyQ0FBMkMsR0FDcEUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsc0JBQXNCLElBQUksZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RyxPQUFPLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVixFQUFFLEVBQ0YsT0FBTyxFQUNQLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEdBQ25CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBMkIsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHL0YsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE1BQU0sRUFDSixjQUFjLEdBQUcsZUFBZSxFQUNoQyxRQUFRLEdBQUcsTUFBTSxFQUNqQixjQUFjLEdBQUcsRUFBRSxFQUNuQixvQkFBb0IsR0FBRyxFQUFFLEVBQ3pCLGdCQUFnQixHQUFHLDBCQUEwQixFQUM3QyxnQkFBZ0IsR0FBRyxFQUFFLEVBQ3JCLHNCQUFzQixHQUFHLEVBQUUsR0FDNUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBRWhCLGdGQUFnRjtBQUNoRixN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
|
|
@@ -3,14 +3,13 @@ import { type BlockProver, type MerkleTreeAdminOperations, type ProcessedTx, typ
|
|
|
3
3
|
import { type Gas, GlobalVariables, type Nullifier, type TxContext } from '@aztec/circuits.js';
|
|
4
4
|
import { type Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
6
|
-
import { type
|
|
6
|
+
import { type PublicExecutionResult, type PublicExecutor, PublicProcessor, type SimulationProvider, type WorldStateDB } from '@aztec/simulator';
|
|
7
7
|
import { type MockProxy } from 'jest-mock-extended';
|
|
8
|
-
import { ProvingOrchestrator } from '../orchestrator/
|
|
8
|
+
import { ProvingOrchestrator } from '../orchestrator/index.js';
|
|
9
9
|
import { ProverAgent } from '../prover-agent/prover-agent.js';
|
|
10
10
|
export declare class TestContext {
|
|
11
11
|
publicExecutor: MockProxy<PublicExecutor>;
|
|
12
|
-
|
|
13
|
-
publicWorldStateDB: MockProxy<WorldStatePublicDB>;
|
|
12
|
+
worldStateDB: MockProxy<WorldStateDB>;
|
|
14
13
|
publicProcessor: PublicProcessor;
|
|
15
14
|
simulationProvider: SimulationProvider;
|
|
16
15
|
globalVariables: GlobalVariables;
|
|
@@ -21,7 +20,7 @@ export declare class TestContext {
|
|
|
21
20
|
blockNumber: number;
|
|
22
21
|
directoriesToCleanup: string[];
|
|
23
22
|
logger: DebugLogger;
|
|
24
|
-
constructor(publicExecutor: MockProxy<PublicExecutor>,
|
|
23
|
+
constructor(publicExecutor: MockProxy<PublicExecutor>, worldStateDB: MockProxy<WorldStateDB>, publicProcessor: PublicProcessor, simulationProvider: SimulationProvider, globalVariables: GlobalVariables, actualDb: MerkleTreeAdminOperations, prover: ServerCircuitProver, proverAgent: ProverAgent, orchestrator: ProvingOrchestrator, blockNumber: number, directoriesToCleanup: string[], logger: DebugLogger);
|
|
25
24
|
get blockProver(): ProvingOrchestrator;
|
|
26
25
|
static new(logger: DebugLogger, worldState?: 'native' | 'legacy', proverCount?: number, createProver?: (bbConfig: BBProverConfig) => Promise<ServerCircuitProver>, blockNumber?: number): Promise<TestContext>;
|
|
27
26
|
cleanup(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,EAAE,EACP,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,GAAG,EAAE,eAAe,EAAU,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,EAAE,EACP,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,GAAG,EAAE,eAAe,EAAU,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,cAAc,EACnB,eAAe,EAEf,KAAK,kBAAkB,EAEvB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,KAAK,SAAS,EAAQ,MAAM,oBAAoB,CAAC;AAK1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,qBAAa,WAAW;IAEb,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC;IACzC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC;IACrC,eAAe,EAAE,eAAe;IAChC,kBAAkB,EAAE,kBAAkB;IACtC,eAAe,EAAE,eAAe;IAChC,QAAQ,EAAE,yBAAyB;IACnC,MAAM,EAAE,mBAAmB;IAC3B,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,mBAAmB;IACjC,WAAW,EAAE,MAAM;IACnB,oBAAoB,EAAE,MAAM,EAAE;IAC9B,MAAM,EAAE,WAAW;gBAXnB,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC,EACzC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,EACrC,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,yBAAyB,EACnC,MAAM,EAAE,mBAAmB,EAC3B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,MAAM,EACnB,oBAAoB,EAAE,MAAM,EAAE,EAC9B,MAAM,EAAE,WAAW;IAG5B,IAAW,WAAW,wBAErB;WAEY,GAAG,CACd,MAAM,EAAE,WAAW,EACnB,UAAU,GAAE,QAAQ,GAAG,QAAmB,EAC1C,WAAW,SAAI,EACf,YAAY,GAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,mBAAmB,CACiB,EACxF,WAAW,SAAI;IA6EX,OAAO;IAOA,sBAAsB,CACjC,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC;IAqC3B,oDAAoD,CAC/D,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,EACtC,YAAY,CAAC,EAAE,CACb,SAAS,EAAE,sBAAsB,EACjC,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,GAAG,EACjB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,SAAS,EAAE,EAC9B,cAAc,CAAC,EAAE,EAAE,EACnB,iBAAiB,CAAC,EAAE,MAAM,KACvB,OAAO,CAAC,qBAAqB,CAAC;CAOtC"}
|
|
@@ -9,15 +9,14 @@ import { mock } from 'jest-mock-extended';
|
|
|
9
9
|
import { tmpdir } from 'os';
|
|
10
10
|
import { join } from 'path';
|
|
11
11
|
import { TestCircuitProver } from '../../../bb-prover/src/test/test_circuit_prover.js';
|
|
12
|
-
import { ProvingOrchestrator } from '../orchestrator/
|
|
12
|
+
import { ProvingOrchestrator } from '../orchestrator/index.js';
|
|
13
13
|
import { MemoryProvingQueue } from '../prover-agent/memory-proving-queue.js';
|
|
14
14
|
import { ProverAgent } from '../prover-agent/prover-agent.js';
|
|
15
15
|
import { getEnvironmentConfig, getSimulationProvider, makeGlobals } from './fixtures.js';
|
|
16
16
|
export class TestContext {
|
|
17
|
-
constructor(publicExecutor,
|
|
17
|
+
constructor(publicExecutor, worldStateDB, publicProcessor, simulationProvider, globalVariables, actualDb, prover, proverAgent, orchestrator, blockNumber, directoriesToCleanup, logger) {
|
|
18
18
|
this.publicExecutor = publicExecutor;
|
|
19
|
-
this.
|
|
20
|
-
this.publicWorldStateDB = publicWorldStateDB;
|
|
19
|
+
this.worldStateDB = worldStateDB;
|
|
21
20
|
this.publicProcessor = publicProcessor;
|
|
22
21
|
this.simulationProvider = simulationProvider;
|
|
23
22
|
this.globalVariables = globalVariables;
|
|
@@ -36,8 +35,7 @@ export class TestContext {
|
|
|
36
35
|
const directoriesToCleanup = [];
|
|
37
36
|
const globalVariables = makeGlobals(blockNumber);
|
|
38
37
|
const publicExecutor = mock();
|
|
39
|
-
const
|
|
40
|
-
const publicWorldStateDB = mock();
|
|
38
|
+
const worldStateDB = mock();
|
|
41
39
|
const publicKernel = new RealPublicKernelCircuitSimulator(new WASMSimulator());
|
|
42
40
|
const telemetry = new NoopTelemetryClient();
|
|
43
41
|
let actualDb;
|
|
@@ -51,7 +49,7 @@ export class TestContext {
|
|
|
51
49
|
const ws = await MerkleTrees.new(openTmpStore(), telemetry);
|
|
52
50
|
actualDb = ws.asLatest();
|
|
53
51
|
}
|
|
54
|
-
const processor =
|
|
52
|
+
const processor = PublicProcessor.create(actualDb, publicExecutor, publicKernel, GlobalVariables.empty(), Header.empty(), worldStateDB, telemetry);
|
|
55
53
|
let localProver;
|
|
56
54
|
const config = await getEnvironmentConfig(logger);
|
|
57
55
|
const simulationProvider = await getSimulationProvider({
|
|
@@ -78,7 +76,7 @@ export class TestContext {
|
|
|
78
76
|
const agent = new ProverAgent(localProver, proverCount);
|
|
79
77
|
queue.start();
|
|
80
78
|
agent.start(queue);
|
|
81
|
-
return new this(publicExecutor,
|
|
79
|
+
return new this(publicExecutor, worldStateDB, processor, simulationProvider, globalVariables, actualDb, localProver, agent, orchestrator, blockNumber, directoriesToCleanup, logger);
|
|
82
80
|
}
|
|
83
81
|
async cleanup() {
|
|
84
82
|
await this.proverAgent.stop();
|
|
@@ -114,4 +112,4 @@ export class TestContext {
|
|
|
114
112
|
return await this.publicProcessor.process(txs, maxTransactions, blockProver, txValidator);
|
|
115
113
|
}
|
|
116
114
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vY2tzL3Rlc3RfY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sRUFBa0MsTUFBTSxvQkFBb0IsQ0FBQztBQUd2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUVMLDRCQUE0QixFQUU1QixlQUFlLEVBQ2YsZ0NBQWdDLEVBRWhDLGFBQWEsR0FFZCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwRSxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQWtCLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RixNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNTLGNBQXlDLEVBQ3pDLFlBQXFDLEVBQ3JDLGVBQWdDLEVB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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { MerkleTreeId, type ProcessedTx } from '@aztec/circuit-types';
|
|
2
|
-
import { AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, BaseRollupInputs, BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs,
|
|
1
|
+
import { type Body, MerkleTreeId, type ProcessedTx } from '@aztec/circuit-types';
|
|
2
|
+
import { AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, BaseRollupInputs, BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, ConstantRollupData, Fr, type GlobalVariables, Header, KernelData, MembershipWitness, MergeRollupInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type ParityPublicInputs, PartialStateReference, PreviousRollupBlockData, PreviousRollupData, PublicDataTreeLeaf, type PublicDataTreeLeafPreimage, type RECURSIVE_PROOF_LENGTH, type RecursiveProof, RootRollupInputs, StateReference, type VerificationKeyAsFields, type VerificationKeyData } from '@aztec/circuits.js';
|
|
3
|
+
import { type DebugLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
4
5
|
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
6
|
/**
|
|
@@ -21,9 +22,17 @@ export declare function createBlockMergeRollupInputs(left: [
|
|
|
21
22
|
RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>,
|
|
22
23
|
VerificationKeyAsFields
|
|
23
24
|
]): BlockMergeRollupInputs;
|
|
25
|
+
export declare function buildHeaderFromCircuitOutputs(previousMergeData: [BaseOrMergeRollupPublicInputs, BaseOrMergeRollupPublicInputs], parityPublicInputs: ParityPublicInputs, rootRollupOutputs: BlockRootOrBlockMergePublicInputs, updatedL1ToL2TreeSnapshot: AppendOnlyTreeSnapshot, logger?: DebugLogger): Header;
|
|
26
|
+
export declare function buildHeaderFromTxEffects(body: Body, globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeOperations): Promise<Header>;
|
|
24
27
|
export declare function validateBlockRootOutput(blockRootOutput: BlockRootOrBlockMergePublicInputs, blockHeader: Header, db: MerkleTreeOperations): Promise<void>;
|
|
25
28
|
export declare function validateState(state: StateReference, db: MerkleTreeOperations): Promise<void>;
|
|
26
|
-
export declare function
|
|
29
|
+
export declare function getRootTreeSiblingPath<TID extends MerkleTreeId>(treeId: TID, db: MerkleTreeOperations): Promise<Tuple<Fr, {
|
|
30
|
+
readonly 1: 32;
|
|
31
|
+
readonly 4: 16;
|
|
32
|
+
readonly 3: 16;
|
|
33
|
+
readonly 0: 20;
|
|
34
|
+
readonly 2: 40;
|
|
35
|
+
}[TID]>>;
|
|
27
36
|
export declare function getRootRollupInput(rollupOutputLeft: BlockRootOrBlockMergePublicInputs, rollupProofLeft: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, verificationKeyLeft: VerificationKeyAsFields, rollupOutputRight: BlockRootOrBlockMergePublicInputs, rollupProofRight: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, verificationKeyRight: VerificationKeyAsFields, proverId: Fr): RootRollupInputs;
|
|
28
37
|
export declare function getPreviousRollupDataFromPublicInputs(rollupOutput: BaseOrMergeRollupPublicInputs, rollupProof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, vk: VerificationKeyAsFields): PreviousRollupData;
|
|
29
38
|
export declare function getPreviousRollupBlockDataFromPublicInputs(rollupOutput: BlockRootOrBlockMergePublicInputs, rollupProof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, vk: VerificationKeyAsFields): PreviousRollupBlockData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { MerkleTreeId } from '@aztec/circuit-types';
|
|
2
|
-
import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot, BaseRollupInputs, BlockMergeRollupInputs,
|
|
1
|
+
import { MerkleTreeId, TxEffect, getTreeHeight } from '@aztec/circuit-types';
|
|
2
|
+
import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot, BaseRollupInputs, BlockMergeRollupInputs, ConstantRollupData, ContentCommitment, Fr, Header, KernelData, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MembershipWitness, MergeRollupInputs, 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_SUBTREE_HEIGHT, PUBLIC_DATA_SUBTREE_SIBLING_PATH_LENGTH, PUBLIC_DATA_TREE_HEIGHT, PartialStateReference, PreviousRollupBlockData, PreviousRollupData, PublicDataHint, PublicDataTreeLeaf, PublicDataUpdateRequest, RootRollupInputs, StateDiffHints, StateReference, VK_TREE_HEIGHT, } from '@aztec/circuits.js';
|
|
3
3
|
import { assertPermutation, makeTuple } from '@aztec/foundation/array';
|
|
4
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
|
+
import { sha256Trunc } from '@aztec/foundation/crypto';
|
|
5
6
|
import { assertLength, toFriendlyJSON } from '@aztec/foundation/serialize';
|
|
7
|
+
import { computeUnbalancedMerkleRoot } from '@aztec/foundation/trees';
|
|
6
8
|
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
7
9
|
import { HintsBuilder, computeFeePayerBalanceLeafSlot } from '@aztec/simulator';
|
|
10
|
+
import { inspect } from 'util';
|
|
8
11
|
// Builds the base rollup inputs, updating the contract, nullifier, and data trees in the process
|
|
9
12
|
export async function buildBaseRollupInput(tx, proof, globalVariables, db, kernelVk) {
|
|
10
13
|
// Get trees info before any changes hit
|
|
@@ -74,7 +77,6 @@ export function createMergeRollupInputs(left, right) {
|
|
|
74
77
|
]);
|
|
75
78
|
return mergeInputs;
|
|
76
79
|
}
|
|
77
|
-
// TODO(#7346): Integrate batch rollup circuits and test below
|
|
78
80
|
export function createBlockMergeRollupInputs(left, right) {
|
|
79
81
|
const mergeInputs = new BlockMergeRollupInputs([
|
|
80
82
|
getPreviousRollupBlockDataFromPublicInputs(left[0], left[1], left[2]),
|
|
@@ -82,6 +84,30 @@ export function createBlockMergeRollupInputs(left, right) {
|
|
|
82
84
|
]);
|
|
83
85
|
return mergeInputs;
|
|
84
86
|
}
|
|
87
|
+
export function buildHeaderFromCircuitOutputs(previousMergeData, parityPublicInputs, rootRollupOutputs, updatedL1ToL2TreeSnapshot, logger) {
|
|
88
|
+
const contentCommitment = new ContentCommitment(new Fr(previousMergeData[0].numTxs + previousMergeData[1].numTxs), sha256Trunc(Buffer.concat([previousMergeData[0].txsEffectsHash.toBuffer(), previousMergeData[1].txsEffectsHash.toBuffer()])), parityPublicInputs.shaRoot.toBuffer(), sha256Trunc(Buffer.concat([previousMergeData[0].outHash.toBuffer(), previousMergeData[1].outHash.toBuffer()])));
|
|
89
|
+
const state = new StateReference(updatedL1ToL2TreeSnapshot, previousMergeData[1].end);
|
|
90
|
+
const header = new Header(rootRollupOutputs.previousArchive, contentCommitment, state, previousMergeData[0].constants.globalVariables, previousMergeData[0].accumulatedFees.add(previousMergeData[1].accumulatedFees));
|
|
91
|
+
if (!header.hash().equals(rootRollupOutputs.endBlockHash)) {
|
|
92
|
+
logger?.error(`Block header mismatch when building header from circuit outputs.` +
|
|
93
|
+
`\n\nHeader: ${inspect(header)}` +
|
|
94
|
+
`\n\nCircuit: ${toFriendlyJSON(rootRollupOutputs)}`);
|
|
95
|
+
throw new Error(`Block header mismatch when building from circuit outputs`);
|
|
96
|
+
}
|
|
97
|
+
return header;
|
|
98
|
+
}
|
|
99
|
+
export async function buildHeaderFromTxEffects(body, globalVariables, l1ToL2Messages, db) {
|
|
100
|
+
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)));
|
|
101
|
+
const previousArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
102
|
+
const outHash = computeUnbalancedMerkleRoot(body.txEffects.map(tx => tx.txOutHash()), TxEffect.empty().txOutHash());
|
|
103
|
+
l1ToL2Messages = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
104
|
+
const hasher = (left, right) => sha256Trunc(Buffer.concat([left, right]));
|
|
105
|
+
const parityHeight = Math.ceil(Math.log2(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP));
|
|
106
|
+
const parityShaRoot = new MerkleTreeCalculator(parityHeight, Fr.ZERO.toBuffer(), hasher).computeTreeRoot(l1ToL2Messages.map(msg => msg.toBuffer()));
|
|
107
|
+
const contentCommitment = new ContentCommitment(new Fr(body.numberOfTxsIncludingPadded), body.getTxsEffectsHash(), parityShaRoot, outHash);
|
|
108
|
+
const fees = body.txEffects.reduce((acc, tx) => acc.add(tx.transactionFee), Fr.ZERO);
|
|
109
|
+
return new Header(previousArchive, contentCommitment, stateReference, globalVariables, fees);
|
|
110
|
+
}
|
|
85
111
|
// Validate that the roots of all local trees match the output of the root circuit simulation
|
|
86
112
|
export async function validateBlockRootOutput(blockRootOutput, blockHeader, db) {
|
|
87
113
|
await Promise.all([
|
|
@@ -97,36 +123,12 @@ export async function validateState(state, db) {
|
|
|
97
123
|
validatePartialState(state.partial, snapshots);
|
|
98
124
|
validateSimulatedTree(await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, db), state.l1ToL2MessageTree, 'L1ToL2MessageTree');
|
|
99
125
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
getPreviousRollupDataFromPublicInputs(rollupOutputRight, rollupProofRight, verificationKeyRight),
|
|
105
|
-
];
|
|
106
|
-
const getRootTreeSiblingPath = async (treeId) => {
|
|
107
|
-
const { size } = await db.getTreeInfo(treeId);
|
|
108
|
-
const path = await db.getSiblingPath(treeId, size);
|
|
109
|
-
return path.toFields();
|
|
110
|
-
};
|
|
111
|
-
// Get blocks tree
|
|
112
|
-
const startArchiveSnapshot = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
113
|
-
const newArchiveSiblingPathArray = await getRootTreeSiblingPath(MerkleTreeId.ARCHIVE);
|
|
114
|
-
const newArchiveSiblingPath = makeTuple(ARCHIVE_HEIGHT, i => (i < newArchiveSiblingPathArray.length ? newArchiveSiblingPathArray[i] : Fr.ZERO), 0);
|
|
115
|
-
return BlockRootRollupInputs.from({
|
|
116
|
-
previousRollupData,
|
|
117
|
-
l1ToL2Roots,
|
|
118
|
-
newL1ToL2Messages,
|
|
119
|
-
newL1ToL2MessageTreeRootSiblingPath: messageTreeRootSiblingPath,
|
|
120
|
-
startL1ToL2MessageTreeSnapshot: messageTreeSnapshot,
|
|
121
|
-
startArchiveSnapshot,
|
|
122
|
-
newArchiveSiblingPath,
|
|
123
|
-
// TODO(#7346): Inject previous block hash (required when integrating batch rollup circuits)
|
|
124
|
-
previousBlockHash: Fr.ZERO,
|
|
125
|
-
proverId,
|
|
126
|
-
});
|
|
126
|
+
export async function getRootTreeSiblingPath(treeId, db) {
|
|
127
|
+
const { size } = await db.getTreeInfo(treeId);
|
|
128
|
+
const path = await db.getSiblingPath(treeId, size);
|
|
129
|
+
return padArrayEnd(path.toFields(), Fr.ZERO, getTreeHeight(treeId));
|
|
127
130
|
}
|
|
128
131
|
// Builds the inputs for the final root rollup circuit, without making any changes to trees
|
|
129
|
-
// TODO(#7346): Integrate batch rollup circuits and test below
|
|
130
132
|
export function getRootRollupInput(rollupOutputLeft, rollupProofLeft, verificationKeyLeft, rollupOutputRight, rollupProofRight, verificationKeyRight, proverId) {
|
|
131
133
|
const previousRollupData = [
|
|
132
134
|
getPreviousRollupBlockDataFromPublicInputs(rollupOutputLeft, rollupProofLeft, verificationKeyLeft),
|
|
@@ -250,4 +252,4 @@ export function validateTx(tx) {
|
|
|
250
252
|
throw new Error(`Empty public data tree in tx: ${toFriendlyJSON(tx)}`);
|
|
251
253
|
}
|
|
252
254
|
}
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsc0JBQXNCLEVBRXRCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFFdEIscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixFQUFFLEVBR0YsVUFBVSxFQUVWLHFCQUFxQixFQUNyQiw0Q0FBNEMsRUFDNUMsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUVqQix3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLHdCQUF3QixFQUN4QixxQ0FBcUMsRUFDckMscUJBQXFCLEVBRXJCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsdUNBQXVDLEVBQ3ZDLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2Qsa0JBQWtCLEVBRWxCLHVCQUF1QixFQUl2QixnQkFBZ0IsRUFDaEIsY0FBYyxFQUVkLGNBQWMsR0FHZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFjLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVloRixpR0FBaUc7QUFDakcsTUFBTSxDQUFDLEtB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
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsWUFBWSxFQUFvQixRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUcsT0FBTyxFQUNMLGNBQWMsRUFDZCxzQkFBc0IsRUFFdEIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUV0QixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLEVBQUUsRUFFRixNQUFNLEVBQ04sVUFBVSxFQUNWLHFCQUFxQixFQUNyQiw0Q0FBNEMsRUFDNUMsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFFcEIsd0JBQXdCLEVBQ3hCLHFDQUFxQyxFQUNyQyx3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLHFCQUFxQixFQUNyQixtQ0FBbUMsRUFDbkMscUJBQXFCLEVBQ3JCLDBCQUEwQixFQUMxQix1Q0FBdUMsRUFDdkMsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxrQkFBa0IsRUFFbEIsdUJBQXVCLEVBR3ZCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsY0FBYyxFQUNkLGNBQWMsR0FHZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBYyxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENB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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type L2Block, type MerkleTreeId, type ProvingResult } from '@aztec/circuit-types';
|
|
2
|
-
import { type AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, type Fr, type GlobalVariables, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_PROOF_LENGTH, type NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, type Proof, type RECURSIVE_PROOF_LENGTH, type RecursiveProof, type RootParityInput, type VerificationKeyAsFields } from '@aztec/circuits.js';
|
|
2
|
+
import { type ARCHIVE_HEIGHT, type AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, type Fr, type GlobalVariables, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, type NESTED_RECURSIVE_PROOF_LENGTH, type NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, type Proof, type RECURSIVE_PROOF_LENGTH, type RecursiveProof, type RootParityInput, type VerificationKeyAsFields } from '@aztec/circuits.js';
|
|
3
3
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import { type TxProvingState } from './tx-proving-state.js';
|
|
5
5
|
export type MergeRollupInputData = {
|
|
@@ -12,19 +12,22 @@ export type MergeRollupInputData = {
|
|
|
12
12
|
};
|
|
13
13
|
export type TreeSnapshots = Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
|
|
14
14
|
/**
|
|
15
|
-
* The current state of the proving schedule
|
|
16
|
-
*
|
|
17
|
-
* Captures resolve and reject callbacks to provide a promise base interface to the consumer of our proving.
|
|
15
|
+
* The current state of the proving schedule for a given block. Managed by ProvingState.
|
|
16
|
+
* Contains the raw inputs and intermediate state to generate every constituent proof in the tree.
|
|
18
17
|
*/
|
|
19
|
-
export declare class
|
|
18
|
+
export declare class BlockProvingState {
|
|
19
|
+
readonly index: number;
|
|
20
20
|
readonly totalNumTxs: number;
|
|
21
|
-
private completionCallback;
|
|
22
|
-
private rejectionCallback;
|
|
23
21
|
readonly globalVariables: GlobalVariables;
|
|
24
22
|
readonly newL1ToL2Messages: Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP>;
|
|
25
23
|
readonly messageTreeSnapshot: AppendOnlyTreeSnapshot;
|
|
26
24
|
readonly messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>;
|
|
27
|
-
|
|
25
|
+
readonly messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot;
|
|
26
|
+
readonly archiveTreeSnapshot: AppendOnlyTreeSnapshot;
|
|
27
|
+
readonly archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
|
|
28
|
+
readonly previousBlockHash: Fr;
|
|
29
|
+
private completionCallback?;
|
|
30
|
+
private rejectionCallback?;
|
|
28
31
|
private mergeRollupInputs;
|
|
29
32
|
private rootParityInputs;
|
|
30
33
|
private finalRootParityInputs;
|
|
@@ -32,7 +35,9 @@ export declare class ProvingState {
|
|
|
32
35
|
finalProof: Proof | undefined;
|
|
33
36
|
block: L2Block | undefined;
|
|
34
37
|
private txs;
|
|
35
|
-
|
|
38
|
+
private provingStateLifecycle;
|
|
39
|
+
constructor(index: number, totalNumTxs: number, globalVariables: GlobalVariables, newL1ToL2Messages: Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP>, messageTreeSnapshot: AppendOnlyTreeSnapshot, messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, messageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, archiveTreeSnapshot: AppendOnlyTreeSnapshot, archiveTreeRootSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHash: Fr, completionCallback?: ((result: ProvingResult) => void) | undefined, rejectionCallback?: ((reason: string) => void) | undefined);
|
|
40
|
+
get blockNumber(): number;
|
|
36
41
|
get numMergeLevels(): bigint;
|
|
37
42
|
findMergeLevel(currentLevel: bigint, currentIndex: bigint): bigint[];
|
|
38
43
|
addNewTx(tx: TxProvingState): number;
|
|
@@ -40,8 +45,6 @@ export declare class ProvingState {
|
|
|
40
45
|
get finalRootParityInput(): RootParityInput<typeof NESTED_RECURSIVE_PROOF_LENGTH> | undefined;
|
|
41
46
|
set finalRootParityInput(input: RootParityInput<typeof NESTED_RECURSIVE_PROOF_LENGTH> | undefined);
|
|
42
47
|
get rootParityInput(): (RootParityInput<439> | undefined)[];
|
|
43
|
-
verifyState(): boolean;
|
|
44
|
-
isAcceptingTransactions(): boolean;
|
|
45
48
|
get allTxs(): TxProvingState[];
|
|
46
49
|
/** Returns the block number as an epoch number. Used for prioritizing proof requests. */
|
|
47
50
|
get epochNumber(): number;
|
|
@@ -62,8 +65,9 @@ export declare class ProvingState {
|
|
|
62
65
|
isReadyForBlockRootRollup(): boolean;
|
|
63
66
|
setRootParityInputs(inputs: RootParityInput<typeof RECURSIVE_PROOF_LENGTH>, index: number): void;
|
|
64
67
|
areRootParityInputsReady(): boolean;
|
|
65
|
-
|
|
68
|
+
isAcceptingTransactions(): boolean;
|
|
69
|
+
verifyState(): boolean;
|
|
66
70
|
reject(reason: string): void;
|
|
67
71
|
resolve(result: ProvingResult): void;
|
|
68
72
|
}
|
|
69
|
-
//# sourceMappingURL=proving-state.d.ts.map
|
|
73
|
+
//# sourceMappingURL=block-proving-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,EAAE,EACP,KAAK,eAAe,EACpB,KAAK,wCAAwC,EAC7C,KAAK,6BAA6B,EAClC,KAAK,mCAAmC,EAExC,KAAK,KAAK,EACV,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,CAAC,6BAA6B,GAAG,SAAS,EAAE,6BAA6B,GAAG,SAAS,CAAC,CAAC;IAC/F,MAAM,EAAE;QACN,cAAc,CAAC,OAAO,6BAA6B,CAAC,GAAG,SAAS;QAChE,cAAc,CAAC,OAAO,6BAA6B,CAAC,GAAG,SAAS;KACjE,CAAC;IACF,gBAAgB,EAAE,CAAC,uBAAuB,GAAG,SAAS,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;CAC9F,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAEtE;;;GAGG;AACH,qBAAa,iBAAiB;aAYV,KAAK,EAAE,MAAM;aACb,WAAW,EAAE,MAAM;aACnB,eAAe,EAAE,eAAe;aAChC,iBAAiB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,mCAAmC,CAAC;aACxE,mBAAmB,EAAE,sBAAsB;aAC3C,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wCAAwC,CAAC;aACtF,iCAAiC,EAAE,sBAAsB;aACzD,mBAAmB,EAAE,sBAAsB;aAC3C,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;aAC5D,iBAAiB,EAAE,EAAE;IACrC,OAAO,CAAC,kBAAkB,CAAC;IAC3B,OAAO,CAAC,iBAAiB,CAAC;IAtB5B,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,gBAAgB,CAAyE;IACjG,OAAO,CAAC,qBAAqB,CAAoE;IAC1F,2BAA2B,EAAE,iCAAiC,GAAG,SAAS,CAAC;IAC3E,UAAU,EAAE,KAAK,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,GAAG,CAAwB;IAEnC,OAAO,CAAC,qBAAqB,CAAiD;gBAG5D,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,mCAAmC,CAAC,EACxE,mBAAmB,EAAE,sBAAsB,EAC3C,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wCAAwC,CAAC,EACtF,iCAAiC,EAAE,sBAAsB,EACzD,mBAAmB,EAAE,sBAAsB,EAC3C,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EAC5D,iBAAiB,EAAE,EAAE,EAC7B,kBAAkB,CAAC,YAAW,aAAa,KAAK,IAAI,aAAA,EACpD,iBAAiB,CAAC,YAAW,MAAM,KAAK,IAAI,aAAA;IAKtD,IAAW,WAAW,WAErB;IAGD,IAAW,cAAc,WAExB;IAIM,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAyBzD,QAAQ,CAAC,EAAE,EAAE,cAAc;IAMlC,IAAW,oBAAoB,WAE9B;IAGD,IAAW,oBAAoB,IAKQ,eAAe,CAAC,OAAO,6BAA6B,CAAC,GAAG,SAAS,CAHvG;IAGD,IAAW,oBAAoB,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,6BAA6B,CAAC,GAAG,SAAS,EAEvG;IAGD,IAAW,eAAe,yCAEzB;IAGD,IAAW,MAAM,qBAEhB;IAED,yFAAyF;IACzF,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED;;;;;;OAMG;IACI,gBAAgB,CACrB,WAAW,EAAE;QACX,6BAA6B;QAC7B,cAAc,CAAC,OAAO,6BAA6B,CAAC;QACpD,uBAAuB;KACxB,EACD,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM;IAsBf,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAKjC,cAAc,CAAC,YAAY,EAAE,MAAM;IAKnC,yBAAyB;IASzB,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,sBAAsB,CAAC,EAAE,KAAK,EAAE,MAAM;IAKzF,wBAAwB;IAKxB,uBAAuB;IAOvB,WAAW;IAKX,MAAM,CAAC,MAAM,EAAE,MAAM;IAWrB,OAAO,CAAC,MAAM,EAAE,aAAa;CASrC"}
|