@aztec/prover-client 0.0.1-commit.993d52e → 0.0.1-commit.9a89641
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/config.d.ts +1 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +16 -2
- package/dest/light/lightweight_checkpoint_builder.d.ts +6 -2
- package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
- package/dest/light/lightweight_checkpoint_builder.js +43 -12
- package/dest/mocks/fixtures.d.ts +1 -1
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +3 -3
- package/dest/mocks/test_context.d.ts +11 -11
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +27 -29
- package/dest/orchestrator/block-building-helpers.d.ts +1 -1
- package/dest/orchestrator/checkpoint-proving-state.d.ts +20 -36
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/checkpoint-proving-state.js +22 -120
- package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts +161 -0
- package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts.map +1 -0
- package/dest/orchestrator/{orchestrator.js → checkpoint-sub-tree-orchestrator.js} +267 -435
- package/dest/orchestrator/chonk-cache.d.ts +39 -0
- package/dest/orchestrator/chonk-cache.d.ts.map +1 -0
- package/dest/orchestrator/chonk-cache.js +80 -0
- package/dest/orchestrator/index.d.ts +4 -2
- package/dest/orchestrator/index.d.ts.map +1 -1
- package/dest/orchestrator/index.js +3 -1
- package/dest/orchestrator/proving-scheduler.d.ts +81 -0
- package/dest/orchestrator/proving-scheduler.d.ts.map +1 -0
- package/dest/orchestrator/proving-scheduler.js +120 -0
- package/dest/orchestrator/top-tree-orchestrator.d.ts +88 -0
- package/dest/orchestrator/top-tree-orchestrator.d.ts.map +1 -0
- package/dest/orchestrator/top-tree-orchestrator.js +232 -0
- package/dest/orchestrator/top-tree-proving-state.d.ts +61 -0
- package/dest/orchestrator/top-tree-proving-state.d.ts.map +1 -0
- package/dest/orchestrator/top-tree-proving-state.js +185 -0
- package/dest/orchestrator/tx-proving-state.d.ts +3 -3
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/prover-client/prover-client.d.ts +62 -5
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/prover-client.js +54 -7
- package/dest/proving_broker/broker_prover_facade.d.ts +3 -3
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +26 -20
- package/dest/proving_broker/config.d.ts +9 -73
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +3 -3
- package/dest/proving_broker/index.d.ts +2 -1
- package/dest/proving_broker/index.d.ts.map +1 -1
- package/dest/proving_broker/index.js +1 -0
- package/dest/proving_broker/proving_broker.d.ts +3 -2
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +219 -76
- package/dest/proving_broker/proving_broker_database/memory.d.ts +5 -2
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/memory.js +14 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +15 -2
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +57 -6
- package/dest/proving_broker/proving_broker_database.d.ts +27 -1
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
- package/dest/proving_broker/rpc.d.ts +15 -4
- package/dest/proving_broker/rpc.d.ts.map +1 -1
- package/dest/proving_broker/rpc.js +91 -24
- package/dest/test/epoch_settlement.d.ts +36 -0
- package/dest/test/epoch_settlement.d.ts.map +1 -0
- package/dest/test/epoch_settlement.js +52 -0
- package/dest/test/index.d.ts +2 -0
- package/dest/test/index.d.ts.map +1 -0
- package/dest/test/index.js +1 -0
- package/dest/test/mock_prover.d.ts +4 -4
- package/dest/test/mock_prover.js +2 -2
- package/package.json +20 -19
- package/src/config.ts +18 -2
- package/src/light/lightweight_checkpoint_builder.ts +48 -20
- package/src/mocks/fixtures.ts +2 -4
- package/src/mocks/test_context.ts +26 -42
- package/src/orchestrator/checkpoint-proving-state.ts +21 -162
- package/src/orchestrator/{orchestrator.ts → checkpoint-sub-tree-orchestrator.ts} +415 -646
- package/src/orchestrator/chonk-cache.ts +99 -0
- package/src/orchestrator/index.ts +8 -1
- package/src/orchestrator/proving-scheduler.ts +160 -0
- package/src/orchestrator/top-tree-orchestrator.ts +384 -0
- package/src/orchestrator/top-tree-proving-state.ts +219 -0
- package/src/orchestrator/tx-proving-state.ts +3 -3
- package/src/prover-client/prover-client.ts +129 -18
- package/src/proving_broker/broker_prover_facade.ts +29 -23
- package/src/proving_broker/config.ts +3 -2
- package/src/proving_broker/index.ts +1 -0
- package/src/proving_broker/proving_broker.ts +209 -78
- package/src/proving_broker/proving_broker_database/memory.ts +16 -2
- package/src/proving_broker/proving_broker_database/persisted.ts +71 -8
- package/src/proving_broker/proving_broker_database.ts +30 -0
- package/src/proving_broker/rpc.ts +52 -24
- package/src/test/epoch_settlement.ts +82 -0
- package/src/test/index.ts +1 -0
- package/src/test/mock_prover.ts +2 -2
- package/dest/orchestrator/epoch-proving-state.d.ts +0 -75
- package/dest/orchestrator/epoch-proving-state.d.ts.map +0 -1
- package/dest/orchestrator/epoch-proving-state.js +0 -269
- package/dest/orchestrator/orchestrator.d.ts +0 -128
- package/dest/orchestrator/orchestrator.d.ts.map +0 -1
- package/dest/prover-client/server-epoch-prover.d.ts +0 -32
- package/dest/prover-client/server-epoch-prover.d.ts.map +0 -1
- package/dest/prover-client/server-epoch-prover.js +0 -40
- package/src/orchestrator/epoch-proving-state.ts +0 -380
- package/src/prover-client/server-epoch-prover.ts +0 -69
package/dest/config.d.ts
CHANGED
|
@@ -14,4 +14,4 @@ export declare const proverClientConfigMappings: ConfigMappingsType<ProverClient
|
|
|
14
14
|
* @returns The prover configuration.
|
|
15
15
|
*/
|
|
16
16
|
export declare function getProverEnvVars(): ProverClientUserConfig;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFFakcsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBQ3RCLEtBQUssa0JBQWtCLEVBR3hCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsdURBQXVEO0FBQ3ZELE1BQU0sTUFBTSxzQkFBc0IsR0FBRyxZQUFZLEdBQUcsaUJBQWlCLEdBQUcsa0JBQWtCLEdBQUcsUUFBUSxHQUFHLFVBQVUsQ0FBQztBQUVuSCxpRUFBaUU7QUFDakUsTUFBTSxNQUFNLGtCQUFrQixHQUFHLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUU3RyxlQUFPLE1BQU0sZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FnRHRFLENBQUM7QUFFRixlQUFPLE1BQU0sMEJBQTBCLEVBQUUsa0JBQWtCLENBQUMsc0JBQXNCLENBS2pGLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQWdCLGdCQUFnQixJQUFJLHNCQUFzQixDQUV6RCJ9
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,wCAAwC,CAAC;AAEjG,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,4BAA4B,CAAC;AAEpC,uDAAuD;AACvD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnH,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC;AAE7G,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,QAAQ,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,wCAAwC,CAAC;AAEjG,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,4BAA4B,CAAC;AAEpC,uDAAuD;AACvD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnH,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC;AAE7G,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,QAAQ,GAAG,UAAU,CAgDtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,sBAAsB,CAKjF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CAEzD"}
|
package/dest/config.js
CHANGED
|
@@ -25,13 +25,27 @@ export const bbConfigMappings = {
|
|
|
25
25
|
},
|
|
26
26
|
numConcurrentIVCVerifiers: {
|
|
27
27
|
env: 'BB_NUM_IVC_VERIFIERS',
|
|
28
|
-
description: 'Max
|
|
28
|
+
description: 'Max concurrent verifications for the RPC verifier (QueuedIVCVerifier).',
|
|
29
29
|
...numberConfigHelper(8)
|
|
30
30
|
},
|
|
31
31
|
bbIVCConcurrency: {
|
|
32
32
|
env: 'BB_IVC_CONCURRENCY',
|
|
33
|
-
description: '
|
|
33
|
+
description: 'Thread count for the RPC IVC verifier.',
|
|
34
34
|
...numberConfigHelper(1)
|
|
35
|
+
},
|
|
36
|
+
bbChonkVerifyMaxBatch: {
|
|
37
|
+
env: 'BB_CHONK_VERIFY_MAX_BATCH',
|
|
38
|
+
description: 'Upper bound on proofs per batch for the peer chonk batch verifier. Proofs are verified immediately as they arrive; this only caps how many can accumulate while a batch is already being processed.',
|
|
39
|
+
...numberConfigHelper(16)
|
|
40
|
+
},
|
|
41
|
+
bbChonkVerifyConcurrency: {
|
|
42
|
+
env: 'BB_CHONK_VERIFY_BATCH_CONCURRENCY',
|
|
43
|
+
description: 'Thread count for the peer batch verifier parallel reduce. 0 = auto.',
|
|
44
|
+
...numberConfigHelper(6)
|
|
45
|
+
},
|
|
46
|
+
bbDebugOutputDir: {
|
|
47
|
+
env: 'BB_DEBUG_OUTPUT_DIR',
|
|
48
|
+
description: 'When set, bb.js operations write input/output files and log equivalent CLI commands to this directory'
|
|
35
49
|
}
|
|
36
50
|
};
|
|
37
51
|
export const proverClientConfigMappings = {
|
|
@@ -34,6 +34,7 @@ export declare class LightweightCheckpointBuilder {
|
|
|
34
34
|
static resumeCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], db: MerkleTreeWriteOperations, existingBlocks: L2Block[], bindings?: LoggerBindings): Promise<LightweightCheckpointBuilder>;
|
|
35
35
|
/** Returns how many blocks have been added to this checkpoint so far */
|
|
36
36
|
getBlockCount(): number;
|
|
37
|
+
getBlocks(): L2Block[];
|
|
37
38
|
/**
|
|
38
39
|
* Adds a new block to the checkpoint. The tx effects must have already been inserted into the db if
|
|
39
40
|
* this is called after tx processing, if that's not the case, then set `insertTxsEffects` to true.
|
|
@@ -41,8 +42,11 @@ export declare class LightweightCheckpointBuilder {
|
|
|
41
42
|
addBlock(globalVariables: GlobalVariables, txs: ProcessedTx[], opts?: {
|
|
42
43
|
insertTxsEffects?: boolean;
|
|
43
44
|
expectedEndState?: StateReference;
|
|
44
|
-
}): Promise<
|
|
45
|
+
}): Promise<{
|
|
46
|
+
block: L2Block;
|
|
47
|
+
timings: Record<string, number>;
|
|
48
|
+
}>;
|
|
45
49
|
completeCheckpoint(): Promise<Checkpoint>;
|
|
46
50
|
clone(): LightweightCheckpointBuilder;
|
|
47
51
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHR3ZWlnaHRfY2hlY2twb2ludF9idWlsZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlnaHQvbGlnaHR3ZWlnaHRfY2hlY2twb2ludF9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQWUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBU2pGLE9BQU8sRUFDTCxLQUFLLHlCQUF5QixFQUM5QixLQUFLLGVBQWUsRUFDcEIsS0FBSyxXQUFXLEVBQ2hCLGNBQWMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBUTFCOzs7OztHQUtHO0FBQ0gscUJBQWEsNEJBQTRCO2FBU3JCLGdCQUFnQixFQUFFLGdCQUFnQjthQUNsQyxTQUFTLEVBQUUseUJBQXlCO0lBQzdDLHFCQUFxQixFQUFFLE1BQU07YUFDcEIsY0FBYyxFQUFFLEVBQUUsRUFBRTtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFDLDJCQUEyQjthQUM1QixFQUFFLEVBQUUseUJBQXlCO0lBYi9DLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFTO0lBRWhDLE9BQU8sQ0FBQyxZQUFZLENBQWdDO0lBQ3BELE9BQU8sQ0FBQyxVQUFVLENBQWE7SUFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBaUI7SUFDL0IsT0FBTyxDQUFDLFVBQVUsQ0FBWTtJQUU5QixZQUNrQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsU0FBUyxFQUFFLHlCQUF5QixFQUM3QyxxQkFBcUIsRUFBRSxNQUFNLEVBQ3BCLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFDbkIsMkJBQTJCLEVBQUUsRUFBRSxFQUFFLEVBQ2xDLEVBQUUsRUFBRSx5QkFBeUIsRUFDN0MsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQVExQjtJQUVELE9BQWEsa0JBQWtCLENBQzdCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxTQUFTLEVBQUUseUJBQXlCLEVBQ3BDLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFDcEIsMkJBQTJCLEVBQUUsRUFBRSxFQUFFLEVBQ2pDLEVBQUUsRUFBRSx5QkFBeUIsRUFDN0IsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUN6QixxQkFBcUIsR0FBRSxNQUFXLEdBQ2pDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQWF2QztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBYSxnQkFBZ0IsQ0FDM0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLFNBQVMsRUFBRSx5QkFBeUIsRUFDcEMscUJBQXFCLEVBQUUsTUFBTSxFQUM3QixjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQ3BCLDJCQUEyQixFQUFFLEVBQUUsRUFBRSxFQUNqQyxFQUFFLEVBQUUseUJBQXlCLEVBQzdCLGNBQWMsRUFBRSxPQUFPLEVBQUUsRUFDekIsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FtRHZDO0lBRUQsd0VBQXdFO0lBQ2pFLGFBQWEsV0FFbkI7SUFFTSxTQUFTLGNBRWY7SUFFRDs7O09BR0c7SUFDVSxRQUFRLENBQ25CLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLEdBQUcsRUFBRSxXQUFXLEVBQUUsRUFDbEIsSUFBSSxHQUFFO1FBQUUsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUM7UUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLGNBQWMsQ0FBQTtLQUFPLEdBQzNFLE9BQU8sQ0FBQztRQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7UUFBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtLQUFFLENBQUMsQ0E4RTlEO0lBRUssa0JBQWtCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQXVEOUM7SUFFRCxLQUFLLGlDQWVKO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightweight_checkpoint_builder.d.ts","sourceRoot":"","sources":["../../src/light/lightweight_checkpoint_builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lightweight_checkpoint_builder.d.ts","sourceRoot":"","sources":["../../src/light/lightweight_checkpoint_builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AASjF,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAQ1B;;;;;GAKG;AACH,qBAAa,4BAA4B;aASrB,gBAAgB,EAAE,gBAAgB;aAClC,SAAS,EAAE,yBAAyB;IAC7C,qBAAqB,EAAE,MAAM;aACpB,cAAc,EAAE,EAAE,EAAE;IACpC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;aAC5B,EAAE,EAAE,yBAAyB;IAb/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAE9B,YACkB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EAC7C,qBAAqB,EAAE,MAAM,EACpB,cAAc,EAAE,EAAE,EAAE,EACnB,2BAA2B,EAAE,EAAE,EAAE,EAClC,EAAE,EAAE,yBAAyB,EAC7C,QAAQ,CAAC,EAAE,cAAc,EAQ1B;IAED,OAAa,kBAAkB,CAC7B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,EACjC,EAAE,EAAE,yBAAyB,EAC7B,QAAQ,CAAC,EAAE,cAAc,EACzB,qBAAqB,GAAE,MAAW,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAavC;IAED;;;;;OAKG;IACH,OAAa,gBAAgB,CAC3B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,yBAAyB,EACpC,qBAAqB,EAAE,MAAM,EAC7B,cAAc,EAAE,EAAE,EAAE,EACpB,2BAA2B,EAAE,EAAE,EAAE,EACjC,EAAE,EAAE,yBAAyB,EAC7B,cAAc,EAAE,OAAO,EAAE,EACzB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAmDvC;IAED,wEAAwE;IACjE,aAAa,WAEnB;IAEM,SAAS,cAEf;IAED;;;OAGG;IACU,QAAQ,CACnB,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,WAAW,EAAE,EAClB,IAAI,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,cAAc,CAAA;KAAO,GAC3E,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CA8E9D;IAEK,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAuD9C;IAED,KAAK,iCAeJ;CACF"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { SpongeBlob, computeBlobsHashFromBlobs, encodeCheckpointEndMarker, getBlobsPerL1Block } from '@aztec/blob-lib';
|
|
2
|
-
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
3
2
|
import { IndexWithinCheckpoint } from '@aztec/foundation/branded-types';
|
|
4
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { elapsed } from '@aztec/foundation/timer';
|
|
7
6
|
import { L2Block } from '@aztec/stdlib/block';
|
|
8
7
|
import { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
9
|
-
import { accumulateCheckpointOutHashes, computeCheckpointOutHash, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
|
|
8
|
+
import { accumulateCheckpointOutHashes, appendL1ToL2MessagesToTree, computeCheckpointOutHash, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
|
|
10
9
|
import { CheckpointHeader, computeBlockHeadersHash } from '@aztec/stdlib/rollup';
|
|
11
10
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
12
11
|
import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '../orchestrator/block-building-helpers.js';
|
|
@@ -50,7 +49,7 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
50
49
|
}
|
|
51
50
|
static async startNewCheckpoint(checkpointNumber, constants, l1ToL2Messages, previousCheckpointOutHashes, db, bindings, feeAssetPriceModifier = 0n) {
|
|
52
51
|
// Insert l1-to-l2 messages into the tree.
|
|
53
|
-
await db
|
|
52
|
+
await appendL1ToL2MessagesToTree(db, l1ToL2Messages);
|
|
54
53
|
return new LightweightCheckpointBuilder(checkpointNumber, constants, feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, db, bindings);
|
|
55
54
|
}
|
|
56
55
|
/**
|
|
@@ -65,6 +64,9 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
65
64
|
numExistingBlocks: existingBlocks.length,
|
|
66
65
|
blockNumbers: existingBlocks.map((b)=>b.header.getBlockNumber())
|
|
67
66
|
});
|
|
67
|
+
if (existingBlocks.length === 0) {
|
|
68
|
+
throw new Error(`Cannot resume checkpoint ${checkpointNumber} with no existing blocks`);
|
|
69
|
+
}
|
|
68
70
|
// Validate block order and consistency
|
|
69
71
|
for(let i = 1; i < existingBlocks.length; i++){
|
|
70
72
|
const prev = existingBlocks[i - 1];
|
|
@@ -93,28 +95,38 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
93
95
|
/** Returns how many blocks have been added to this checkpoint so far */ getBlockCount() {
|
|
94
96
|
return this.blocks.length;
|
|
95
97
|
}
|
|
98
|
+
getBlocks() {
|
|
99
|
+
return this.blocks;
|
|
100
|
+
}
|
|
96
101
|
/**
|
|
97
102
|
* Adds a new block to the checkpoint. The tx effects must have already been inserted into the db if
|
|
98
103
|
* this is called after tx processing, if that's not the case, then set `insertTxsEffects` to true.
|
|
99
104
|
*/ async addBlock(globalVariables, txs, opts = {}) {
|
|
105
|
+
const timings = {};
|
|
100
106
|
const isFirstBlock = this.blocks.length === 0;
|
|
101
107
|
// Empty blocks are only allowed as the first block in a checkpoint
|
|
102
108
|
if (!isFirstBlock && txs.length === 0) {
|
|
103
109
|
throw new Error('Cannot add empty block that is not the first block in the checkpoint.');
|
|
104
110
|
}
|
|
105
111
|
if (isFirstBlock) {
|
|
106
|
-
|
|
112
|
+
const [msGetInitialArchive, initialArchive] = await elapsed(()=>getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db));
|
|
113
|
+
this.lastArchives.push(initialArchive);
|
|
114
|
+
timings.getInitialArchive = msGetInitialArchive;
|
|
107
115
|
}
|
|
108
116
|
const lastArchive = this.lastArchives.at(-1);
|
|
109
117
|
if (opts.insertTxsEffects) {
|
|
110
118
|
this.logger.debug(`Inserting side effects for ${txs.length} txs for block ${globalVariables.blockNumber} into db`, {
|
|
111
119
|
txs: txs.map((tx)=>tx.hash.toString())
|
|
112
120
|
});
|
|
121
|
+
let msInsertSideEffects = 0;
|
|
113
122
|
for (const tx of txs){
|
|
114
|
-
await insertSideEffects(tx, this.db);
|
|
123
|
+
const [ms] = await elapsed(()=>insertSideEffects(tx, this.db));
|
|
124
|
+
msInsertSideEffects += ms;
|
|
115
125
|
}
|
|
126
|
+
timings.insertSideEffects = msInsertSideEffects;
|
|
116
127
|
}
|
|
117
|
-
const endState = await this.db.getStateReference();
|
|
128
|
+
const [msGetEndState, endState] = await elapsed(()=>this.db.getStateReference());
|
|
129
|
+
timings.getEndState = msGetEndState;
|
|
118
130
|
if (opts.expectedEndState && !endState.equals(opts.expectedEndState)) {
|
|
119
131
|
this.logger.error('End state after processing txs does not match expected end state', {
|
|
120
132
|
globalVariables: globalVariables.toInspect(),
|
|
@@ -123,15 +135,22 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
123
135
|
});
|
|
124
136
|
throw new Error(`End state does not match expected end state when building block ${globalVariables.blockNumber}`);
|
|
125
137
|
}
|
|
126
|
-
const { header, body, blockBlobFields } = await buildHeaderAndBodyFromTxs(txs, lastArchive, endState, globalVariables, this.spongeBlob, isFirstBlock);
|
|
138
|
+
const [msBuildHeaderAndBody, { header, body, blockBlobFields }] = await elapsed(()=>buildHeaderAndBodyFromTxs(txs, lastArchive, endState, globalVariables, this.spongeBlob, isFirstBlock));
|
|
139
|
+
timings.buildHeaderAndBody = msBuildHeaderAndBody;
|
|
127
140
|
header.state.validate();
|
|
128
141
|
await this.db.updateArchive(header);
|
|
129
|
-
const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
|
|
142
|
+
const [msUpdateArchive, newArchive] = await elapsed(()=>getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db));
|
|
143
|
+
timings.updateArchive = msUpdateArchive;
|
|
130
144
|
this.lastArchives.push(newArchive);
|
|
145
|
+
const expectedNextLeafIndex = Number(globalVariables.blockNumber) + 1;
|
|
146
|
+
if (newArchive.nextAvailableLeafIndex !== expectedNextLeafIndex) {
|
|
147
|
+
throw new Error(`Archive tree next leaf index mismatch after building block ${globalVariables.blockNumber} (expected ${expectedNextLeafIndex} but got ${newArchive.nextAvailableLeafIndex})`);
|
|
148
|
+
}
|
|
131
149
|
const indexWithinCheckpoint = IndexWithinCheckpoint(this.blocks.length);
|
|
132
150
|
const block = new L2Block(newArchive, header, body, this.checkpointNumber, indexWithinCheckpoint);
|
|
133
151
|
this.blocks.push(block);
|
|
134
|
-
await this.spongeBlob.absorb(blockBlobFields);
|
|
152
|
+
const [msSpongeAbsorb] = await elapsed(()=>this.spongeBlob.absorb(blockBlobFields));
|
|
153
|
+
timings.spongeAbsorb = msSpongeAbsorb;
|
|
135
154
|
this.blobFields.push(...blockBlobFields);
|
|
136
155
|
this.logger.debug(`Built block ${header.getBlockNumber()}`, {
|
|
137
156
|
globalVariables: globalVariables.toInspect(),
|
|
@@ -140,7 +159,10 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
140
159
|
blockHash: (await block.hash()).toString(),
|
|
141
160
|
txs: block.body.txEffects.map((tx)=>tx.txHash.toString())
|
|
142
161
|
});
|
|
143
|
-
return
|
|
162
|
+
return {
|
|
163
|
+
block,
|
|
164
|
+
timings
|
|
165
|
+
};
|
|
144
166
|
}
|
|
145
167
|
async completeCheckpoint() {
|
|
146
168
|
if (!this.blocks.length) {
|
|
@@ -166,6 +188,7 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
166
188
|
// All blocks in the checkpoint have the same timestamp
|
|
167
189
|
const timestamp = blocks[blocks.length - 1].timestamp;
|
|
168
190
|
const totalManaUsed = blocks.reduce((acc, block)=>acc.add(block.header.totalManaUsed), Fr.ZERO);
|
|
191
|
+
const accumulatedFees = blocks.reduce((acc, block)=>acc.add(block.header.totalFees), Fr.ZERO);
|
|
169
192
|
const header = CheckpointHeader.from({
|
|
170
193
|
lastArchiveRoot: this.lastArchives[0].root,
|
|
171
194
|
blobsHash,
|
|
@@ -177,7 +200,15 @@ import { buildHeaderAndBodyFromTxs, getTreeSnapshot, insertSideEffects } from '.
|
|
|
177
200
|
coinbase,
|
|
178
201
|
feeRecipient,
|
|
179
202
|
gasFees,
|
|
180
|
-
totalManaUsed
|
|
203
|
+
totalManaUsed,
|
|
204
|
+
accumulatedFees
|
|
205
|
+
});
|
|
206
|
+
this.logger.debug(`Completed checkpoint ${this.checkpointNumber}`, {
|
|
207
|
+
checkpointNumber: this.checkpointNumber,
|
|
208
|
+
headerHash: header.hash().toString(),
|
|
209
|
+
checkpointOutHash: checkpointOutHash.toString(),
|
|
210
|
+
numPreviousCheckpointOutHashes: this.previousCheckpointOutHashes.length,
|
|
211
|
+
...header.toInspect()
|
|
181
212
|
});
|
|
182
213
|
return new Checkpoint(newArchive, header, blocks, this.checkpointNumber, this.feeAssetPriceModifier);
|
|
183
214
|
}
|
package/dest/mocks/fixtures.d.ts
CHANGED
|
@@ -17,4 +17,4 @@ export declare function getSimulator(config: {
|
|
|
17
17
|
}, logger?: Logger): Promise<CircuitSimulator>;
|
|
18
18
|
export declare const makeGlobals: (blockNumber: number, slotNumber?: number, overrides?: Partial<FieldsOf<GlobalVariables> & FieldsOf<CheckpointConstantData>>) => GlobalVariables;
|
|
19
19
|
export declare const makeCheckpointConstants: (slotNumber: number, overrides?: Partial<FieldsOf<CheckpointConstantData>>) => CheckpointConstantData;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2Nrcy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBK0MsTUFBTSx5QkFBeUIsQ0FBQztBQUc3RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFlbkQsZUFBTyxNQUFNLG9CQUFvQjs7Ozs7OztjQWtDaEMsQ0FBQztBQUVGLHdCQUFzQixZQUFZLENBQ2hDLE1BQU0sRUFBRTtJQUFFLG9CQUFvQixFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQTtDQUFFLEVBQ3hGLE1BQU0sQ0FBQyxFQUFFLE1BQU0sR0FDZCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FnQjNCO0FBRUQsZUFBTyxNQUFNLFdBQVcsa0pBaUJ2QixDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1Qix1R0FnQm5DLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,KAAK,gBAAgB,EAA+C,MAAM,yBAAyB,CAAC;AAG7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,EAAE,KAAK,gBAAgB,EAA+C,MAAM,yBAAyB,CAAC;AAG7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAenD,eAAO,MAAM,oBAAoB;;;;;;;cAkChC,CAAC;AAEF,wBAAsB,YAAY,CAChC,MAAM,EAAE;IAAE,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACxF,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAgB3B;AAED,eAAO,MAAM,WAAW,kJAiBvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,uGAgBnC,CAAC"}
|
package/dest/mocks/fixtures.js
CHANGED
|
@@ -12,11 +12,11 @@ import { CheckpointConstantData } from '@aztec/stdlib/rollup';
|
|
|
12
12
|
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
13
13
|
import { promises as fs } from 'fs';
|
|
14
14
|
import path from 'path';
|
|
15
|
-
const {
|
|
15
|
+
const { TEMP_DIR = '/tmp', BB_BINARY_PATH = '', BB_WORKING_DIRECTORY = '', BB_SKIP_CLEANUP = '', ACVM_BINARY_PATH = '', ACVM_WORKING_DIRECTORY = '' } = process.env;
|
|
16
16
|
// Determines if we have access to the bb binary and a tmp folder for temp files
|
|
17
17
|
export const getEnvironmentConfig = async (logger)=>{
|
|
18
18
|
try {
|
|
19
|
-
const expectedBBPath = BB_BINARY_PATH ? BB_BINARY_PATH : `${path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../../
|
|
19
|
+
const expectedBBPath = BB_BINARY_PATH ? BB_BINARY_PATH : `${path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../../labs-aztec-toolchain/bin')}/bb-avm`;
|
|
20
20
|
await fs.access(expectedBBPath, fs.constants.R_OK);
|
|
21
21
|
const tempWorkingDirectory = `${TEMP_DIR}/${randomBytes(4).toString('hex')}`;
|
|
22
22
|
const bbWorkingDirectory = BB_WORKING_DIRECTORY ? BB_WORKING_DIRECTORY : `${tempWorkingDirectory}/bb`;
|
|
@@ -24,7 +24,7 @@ export const getEnvironmentConfig = async (logger)=>{
|
|
|
24
24
|
recursive: true
|
|
25
25
|
});
|
|
26
26
|
logger.info(`Found native BB binary at ${expectedBBPath} with working directory ${bbWorkingDirectory}`);
|
|
27
|
-
const expectedAcvmPath = ACVM_BINARY_PATH ? ACVM_BINARY_PATH : `${path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../../
|
|
27
|
+
const expectedAcvmPath = ACVM_BINARY_PATH ? ACVM_BINARY_PATH : `${path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../../labs-aztec-toolchain/bin')}/acvm`;
|
|
28
28
|
await fs.access(expectedAcvmPath, fs.constants.R_OK);
|
|
29
29
|
const acvmWorkingDirectory = ACVM_WORKING_DIRECTORY ? ACVM_WORKING_DIRECTORY : `${tempWorkingDirectory}/acvm`;
|
|
30
30
|
await fs.mkdir(acvmWorkingDirectory, {
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
import type { BBProverConfig } from '@aztec/bb-prover';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { Logger } from '@aztec/foundation/log';
|
|
4
|
+
import { SerialQueue } from '@aztec/foundation/queue';
|
|
4
5
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
6
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
+
import type { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
6
8
|
import type { MerkleTreeWriteOperations, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
7
9
|
import type { CheckpointConstantData } from '@aztec/stdlib/rollup';
|
|
8
10
|
import { mockProcessedTx } from '@aztec/stdlib/testing';
|
|
9
11
|
import { type BlockHeader, type GlobalVariables, type ProcessedTx } from '@aztec/stdlib/tx';
|
|
10
12
|
import type { MerkleTreeAdminDatabase } from '@aztec/world-state';
|
|
11
|
-
import type { BlockProvingState } from '../orchestrator/block-proving-state.js';
|
|
12
|
-
import { ProvingOrchestrator } from '../orchestrator/index.js';
|
|
13
13
|
import { BrokerCircuitProverFacade } from '../proving_broker/broker_prover_facade.js';
|
|
14
14
|
import { TestBroker } from '../test/mock_prover.js';
|
|
15
|
+
/**
|
|
16
|
+
* Builds a started `SerialQueue` for use as an orchestrator's deferred-job queue in
|
|
17
|
+
* tests. Production wires a single shared queue via `ProverClient`; tests that construct
|
|
18
|
+
* orchestrators directly use one of these per orchestrator (or share one).
|
|
19
|
+
*/
|
|
20
|
+
export declare function makeTestDeferredJobQueue(concurrency?: number): SerialQueue;
|
|
15
21
|
export declare class TestContext {
|
|
16
22
|
worldState: MerkleTreeAdminDatabase;
|
|
17
23
|
prover: ServerCircuitProver;
|
|
18
24
|
broker: TestBroker;
|
|
19
25
|
brokerProverFacade: BrokerCircuitProverFacade;
|
|
20
|
-
orchestrator: TestProvingOrchestrator;
|
|
21
26
|
private feePayer;
|
|
22
27
|
private directoriesToCleanup;
|
|
23
28
|
private logger;
|
|
@@ -29,8 +34,7 @@ export declare class TestContext {
|
|
|
29
34
|
private nextBlockNumber;
|
|
30
35
|
private epochNumber;
|
|
31
36
|
private feePayerBalance;
|
|
32
|
-
constructor(worldState: MerkleTreeAdminDatabase, prover: ServerCircuitProver, broker: TestBroker, brokerProverFacade: BrokerCircuitProverFacade,
|
|
33
|
-
get epochProver(): TestProvingOrchestrator;
|
|
37
|
+
constructor(worldState: MerkleTreeAdminDatabase, prover: ServerCircuitProver, broker: TestBroker, brokerProverFacade: BrokerCircuitProverFacade, feePayer: AztecAddress, initialFeePayerBalance: Fr, directoriesToCleanup: string[], logger: Logger);
|
|
34
38
|
static new(logger: Logger, { proverCount, createProver }?: {
|
|
35
39
|
proverCount?: number;
|
|
36
40
|
createProver?: (bbConfig: BBProverConfig) => Promise<ServerCircuitProver>;
|
|
@@ -46,6 +50,7 @@ export declare class TestContext {
|
|
|
46
50
|
makeProcessedTxOpts?: (blockGlobalVariables: GlobalVariables, txIndex: number) => Partial<Parameters<typeof mockProcessedTx>[0]>;
|
|
47
51
|
} & Partial<FieldsOf<CheckpointConstantData>>): Promise<{
|
|
48
52
|
constants: CheckpointConstantData;
|
|
53
|
+
checkpoint: Checkpoint;
|
|
49
54
|
header: import("@aztec/stdlib/rollup").CheckpointHeader;
|
|
50
55
|
blocks: {
|
|
51
56
|
header: BlockHeader;
|
|
@@ -58,9 +63,4 @@ export declare class TestContext {
|
|
|
58
63
|
private getBlockHeader;
|
|
59
64
|
private updateTrees;
|
|
60
65
|
}
|
|
61
|
-
|
|
62
|
-
isVerifyBuiltBlockAgainstSyncedStateEnabled: boolean;
|
|
63
|
-
protected verifyBuiltBlockAgainstSyncedState(provingState: BlockProvingState): Promise<void>;
|
|
64
|
-
}
|
|
65
|
-
export {};
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jb250ZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvdGVzdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS3ZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZUFBZSxFQUNwQixLQUFLLFdBQVcsRUFHakIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBV2xFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3BELHFCQUFhLFdBQVc7SUFXYixVQUFVLEVBQUUsdUJBQXVCO0lBQ25DLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLFVBQVU7SUFDbEIsa0JBQWtCLEVBQUUseUJBQXlCO0lBQzdDLFlBQVksRUFBRSx1QkFBdUI7SUFDNUMsT0FBTyxDQUFDLFFBQVE7SUFFaEIsT0FBTyxDQUFDLG9CQUFvQjtJQUM1QixPQUFPLENBQUMsTUFBTTtJQWxCaEIsT0FBTyxDQUFDLE9BQU8sQ0FBdUM7SUFDdEQsT0FBTyxDQUFDLFdBQVcsQ0FBb0I7SUFDdkMsT0FBTyxDQUFDLG1CQUFtQixDQUFZO0lBQ3ZDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBSztJQUNoQyxPQUFPLENBQUMsb0JBQW9CLENBQXVCO0lBQ25ELE9BQU8sQ0FBQyxlQUFlLENBQUs7SUFDNUIsT0FBTyxDQUFDLFdBQVcsQ0FBSztJQUN4QixPQUFPLENBQUMsZUFBZSxDQUFLO0lBRTVCLFlBQ1MsVUFBVSxFQUFFLHVCQUF1QixFQUNuQyxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLGtCQUFrQixFQUFFLHlCQUF5QixFQUM3QyxZQUFZLEVBQUUsdUJBQXVCLEVBQ3BDLFFBQVEsRUFBRSxZQUFZLEVBQzlCLHNCQUFzQixFQUFFLEVBQUUsRUFDbEIsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEVBQzlCLE1BQU0sRUFBRSxNQUFNLEVBR3ZCO0lBRUQsSUFBVyxXQUFXLDRCQUVyQjtJQUVELE9BQWEsR0FBRyxDQUNkLE1BQU0sRUFBRSxNQUFNLEVBQ2QsRUFDRSxXQUFlLEVBQ2YsWUFBOEcsRUFDL0csR0FBRTtRQUNELFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNyQixZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLEtBQUssT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEUsd0JBdURQO0lBRU0sT0FBTyx1Q0FFYjtJQUVLLE9BQU8sa0JBVVo7SUFFTSxhQUFhLFNBS25CO0lBR00sYUFBYSxXQUVuQjtJQUVZLHNCQUFzQixtRUFHbEM7SUFFWSxjQUFjLENBQ3pCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLEVBQ0UsY0FBa0IsRUFDbEIsaUJBQXFCLEVBQ3JCLG1CQUFnQyxFQUNoQyxHQUFHLFlBQVksRUFDaEIsR0FBRTtRQUNELGNBQWMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMzQixtQkFBbUIsQ0FBQyxFQUFFLENBQ3BCLG9CQUFvQixFQUFFLGVBQWUsRUFDckMsT0FBTyxFQUFFLE1BQU0sS0FDWixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyRCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBTTs7Ozs7Ozs7O09BMEduRDtZQUVhLGVBQWU7SUFvQjdCLE9BQU8sQ0FBQyxjQUFjO1lBU1IsV0FBVztDQThCMUI7QUFFRCxjQUFNLHVCQUF3QixTQUFRLG1CQUFtQjtJQUNoRCwyQ0FBMkMsVUFBUztJQUkzRCxVQUFtQixrQ0FBa0MsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUtwRztDQUNGIn0=
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jb250ZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvdGVzdF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS3ZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEcsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUNMLEtBQUssV0FBVyxFQUNoQixLQUFLLGVBQWUsRUFDcEIsS0FBSyxXQUFXLEVBR2pCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVdsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHcEQ7Ozs7R0FJRztBQUNILHdCQUFnQix3QkFBd0IsQ0FBQyxXQUFXLFNBQUssR0FBRyxXQUFXLENBSXRFO0FBRUQscUJBQWEsV0FBVztJQVdiLFVBQVUsRUFBRSx1QkFBdUI7SUFDbkMsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixNQUFNLEVBQUUsVUFBVTtJQUNsQixrQkFBa0IsRUFBRSx5QkFBeUI7SUFDcEQsT0FBTyxDQUFDLFFBQVE7SUFFaEIsT0FBTyxDQUFDLG9CQUFvQjtJQUM1QixPQUFPLENBQUMsTUFBTTtJQWpCaEIsT0FBTyxDQUFDLE9BQU8sQ0FBdUM7SUFDdEQsT0FBTyxDQUFDLFdBQVcsQ0FBb0I7SUFDdkMsT0FBTyxDQUFDLG1CQUFtQixDQUFZO0lBQ3ZDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBSztJQUNoQyxPQUFPLENBQUMsb0JBQW9CLENBQXVCO0lBQ25ELE9BQU8sQ0FBQyxlQUFlLENBQUs7SUFDNUIsT0FBTyxDQUFDLFdBQVcsQ0FBSztJQUN4QixPQUFPLENBQUMsZUFBZSxDQUFLO0lBRTVCLFlBQ1MsVUFBVSxFQUFFLHVCQUF1QixFQUNuQyxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLGtCQUFrQixFQUFFLHlCQUF5QixFQUM1QyxRQUFRLEVBQUUsWUFBWSxFQUM5QixzQkFBc0IsRUFBRSxFQUFFLEVBQ2xCLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxFQUM5QixNQUFNLEVBQUUsTUFBTSxFQUd2QjtJQUVELE9BQWEsR0FBRyxDQUNkLE1BQU0sRUFBRSxNQUFNLEVBQ2QsRUFDRSxXQUFlLEVBQ2YsWUFBOEcsRUFDL0csR0FBRTtRQUNELFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNyQixZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLEtBQUssT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEUsd0JBNkNQO0lBRU0sT0FBTyx1Q0FFYjtJQUVLLE9BQU8sa0JBV1o7SUFFTSxhQUFhLFNBS25CO0lBR00sYUFBYSxXQUVuQjtJQUVZLHNCQUFzQixtRUFHbEM7SUFFWSxjQUFjLENBQ3pCLFNBQVMsRUFBRSxNQUFNLEVBQ2pCLEVBQ0UsY0FBa0IsRUFDbEIsaUJBQXFCLEVBQ3JCLG1CQUFnQyxFQUNoQyxHQUFHLFlBQVksRUFDaEIsR0FBRTtRQUNELGNBQWMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMzQixtQkFBbUIsQ0FBQyxFQUFFLENBQ3BCLG9CQUFvQixFQUFFLGVBQWUsRUFDckMsT0FBTyxFQUFFLE1BQU0sS0FDWixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyRCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBTTs7Ozs7Ozs7OztPQTJHbkQ7WUFFYSxlQUFlO0lBb0I3QixPQUFPLENBQUMsY0FBYztZQVNSLFdBQVc7Q0E4QjFCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAKxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"test_context.d.ts","sourceRoot":"","sources":["../../src/mocks/test_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@ import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
|
3
3
|
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { padArrayEnd, times, timesAsync } from '@aztec/foundation/collection';
|
|
5
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
|
+
import { SerialQueue } from '@aztec/foundation/queue';
|
|
6
7
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
7
8
|
import { ProtocolContractsList } from '@aztec/protocol-contracts';
|
|
8
9
|
import { computeFeePayerBalanceLeafSlot } from '@aztec/protocol-contracts/fee-juice';
|
|
9
10
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
10
11
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
11
|
-
import { EthAddress } from '@aztec/stdlib/block';
|
|
12
12
|
import { mockProcessedTx } from '@aztec/stdlib/testing';
|
|
13
13
|
import { MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
14
14
|
import { TreeSnapshots } from '@aztec/stdlib/tx';
|
|
@@ -16,16 +16,23 @@ import { NativeWorldStateService } from '@aztec/world-state/native';
|
|
|
16
16
|
import { promises as fs } from 'fs';
|
|
17
17
|
import { LightweightCheckpointBuilder } from '../light/lightweight_checkpoint_builder.js';
|
|
18
18
|
import { buildFinalBlobChallenges, getTreeSnapshot, insertSideEffects } from '../orchestrator/block-building-helpers.js';
|
|
19
|
-
import { ProvingOrchestrator } from '../orchestrator/index.js';
|
|
20
19
|
import { BrokerCircuitProverFacade } from '../proving_broker/broker_prover_facade.js';
|
|
21
20
|
import { TestBroker } from '../test/mock_prover.js';
|
|
22
21
|
import { getEnvironmentConfig, getSimulator, makeCheckpointConstants, makeGlobals } from './fixtures.js';
|
|
22
|
+
/**
|
|
23
|
+
* Builds a started `SerialQueue` for use as an orchestrator's deferred-job queue in
|
|
24
|
+
* tests. Production wires a single shared queue via `ProverClient`; tests that construct
|
|
25
|
+
* orchestrators directly use one of these per orchestrator (or share one).
|
|
26
|
+
*/ export function makeTestDeferredJobQueue(concurrency = 10) {
|
|
27
|
+
const queue = new SerialQueue();
|
|
28
|
+
queue.start(concurrency);
|
|
29
|
+
return queue;
|
|
30
|
+
}
|
|
23
31
|
export class TestContext {
|
|
24
32
|
worldState;
|
|
25
33
|
prover;
|
|
26
34
|
broker;
|
|
27
35
|
brokerProverFacade;
|
|
28
|
-
orchestrator;
|
|
29
36
|
feePayer;
|
|
30
37
|
directoriesToCleanup;
|
|
31
38
|
logger;
|
|
@@ -37,12 +44,11 @@ export class TestContext {
|
|
|
37
44
|
nextBlockNumber;
|
|
38
45
|
epochNumber;
|
|
39
46
|
feePayerBalance;
|
|
40
|
-
constructor(worldState, prover, broker, brokerProverFacade,
|
|
47
|
+
constructor(worldState, prover, broker, brokerProverFacade, feePayer, initialFeePayerBalance, directoriesToCleanup, logger){
|
|
41
48
|
this.worldState = worldState;
|
|
42
49
|
this.prover = prover;
|
|
43
50
|
this.broker = broker;
|
|
44
51
|
this.brokerProverFacade = brokerProverFacade;
|
|
45
|
-
this.orchestrator = orchestrator;
|
|
46
52
|
this.feePayer = feePayer;
|
|
47
53
|
this.directoriesToCleanup = directoriesToCleanup;
|
|
48
54
|
this.logger = logger;
|
|
@@ -55,19 +61,19 @@ export class TestContext {
|
|
|
55
61
|
this.epochNumber = 1;
|
|
56
62
|
this.feePayerBalance = initialFeePayerBalance;
|
|
57
63
|
}
|
|
58
|
-
get epochProver() {
|
|
59
|
-
return this.orchestrator;
|
|
60
|
-
}
|
|
61
64
|
static async new(logger, { proverCount = 4, createProver = async (bbConfig)=>new TestCircuitProver(await getSimulator(bbConfig, logger)) } = {}) {
|
|
62
65
|
const directoriesToCleanup = [];
|
|
63
|
-
const feePayer = AztecAddress.
|
|
66
|
+
const feePayer = AztecAddress.fromNumberUnsafe(42222);
|
|
64
67
|
const initialFeePayerBalance = new Fr(10n ** 20n);
|
|
65
68
|
const feePayerSlot = await computeFeePayerBalanceLeafSlot(feePayer);
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
const genesis = {
|
|
70
|
+
prefilledPublicData: [
|
|
71
|
+
new PublicDataTreeLeaf(feePayerSlot, initialFeePayerBalance)
|
|
72
|
+
],
|
|
73
|
+
genesisTimestamp: 0n
|
|
74
|
+
};
|
|
69
75
|
// Separated dbs for public processor and prover - see public_processor for context
|
|
70
|
-
const ws = await NativeWorldStateService.tmp(/*
|
|
76
|
+
const ws = await NativeWorldStateService.tmp(/*cleanupTmpDir=*/ true, genesis);
|
|
71
77
|
let localProver;
|
|
72
78
|
const config = await getEnvironmentConfig(logger);
|
|
73
79
|
if (!config) {
|
|
@@ -79,8 +85,10 @@ export class TestContext {
|
|
|
79
85
|
bbBinaryPath: config.expectedBBPath,
|
|
80
86
|
bbWorkingDirectory: config.bbWorkingDirectory,
|
|
81
87
|
bbSkipCleanup: config.bbSkipCleanup,
|
|
82
|
-
numConcurrentIVCVerifiers:
|
|
83
|
-
bbIVCConcurrency: 1
|
|
88
|
+
numConcurrentIVCVerifiers: 8,
|
|
89
|
+
bbIVCConcurrency: 1,
|
|
90
|
+
bbChonkVerifyMaxBatch: 16,
|
|
91
|
+
bbChonkVerifyConcurrency: 6
|
|
84
92
|
};
|
|
85
93
|
localProver = await createProver(bbConfig);
|
|
86
94
|
}
|
|
@@ -89,10 +97,9 @@ export class TestContext {
|
|
|
89
97
|
}
|
|
90
98
|
const broker = new TestBroker(proverCount, localProver);
|
|
91
99
|
const facade = new BrokerCircuitProverFacade(broker);
|
|
92
|
-
const orchestrator = new TestProvingOrchestrator(ws, facade, EthAddress.ZERO);
|
|
93
100
|
await broker.start();
|
|
94
101
|
facade.start();
|
|
95
|
-
return new this(ws, localProver, broker, facade,
|
|
102
|
+
return new this(ws, localProver, broker, facade, feePayer, initialFeePayerBalance, directoriesToCleanup, logger);
|
|
96
103
|
}
|
|
97
104
|
getFork() {
|
|
98
105
|
return this.worldState.fork();
|
|
@@ -100,6 +107,7 @@ export class TestContext {
|
|
|
100
107
|
async cleanup() {
|
|
101
108
|
await this.brokerProverFacade.stop();
|
|
102
109
|
await this.broker.stop();
|
|
110
|
+
await this.worldState.close();
|
|
103
111
|
for (const dir of this.directoriesToCleanup.filter((x)=>x !== '')){
|
|
104
112
|
try {
|
|
105
113
|
await fs.rm(dir, {
|
|
@@ -182,7 +190,7 @@ export class TestContext {
|
|
|
182
190
|
for(let i = 0; i < numBlocks; i++){
|
|
183
191
|
const txs = blockTxs[i];
|
|
184
192
|
const state = blockEndStates[i];
|
|
185
|
-
const block = await builder.addBlock(blockGlobalVariables[i], txs, {
|
|
193
|
+
const { block } = await builder.addBlock(blockGlobalVariables[i], txs, {
|
|
186
194
|
expectedEndState: state,
|
|
187
195
|
insertTxsEffects: true
|
|
188
196
|
});
|
|
@@ -200,6 +208,7 @@ export class TestContext {
|
|
|
200
208
|
this.checkpointOutHashes.push(checkpoint.getCheckpointOutHash());
|
|
201
209
|
return {
|
|
202
210
|
constants,
|
|
211
|
+
checkpoint,
|
|
203
212
|
header: checkpoint.header,
|
|
204
213
|
blocks,
|
|
205
214
|
l1ToL2Messages,
|
|
@@ -245,14 +254,3 @@ export class TestContext {
|
|
|
245
254
|
return endStateReference;
|
|
246
255
|
}
|
|
247
256
|
}
|
|
248
|
-
class TestProvingOrchestrator extends ProvingOrchestrator {
|
|
249
|
-
isVerifyBuiltBlockAgainstSyncedStateEnabled = false;
|
|
250
|
-
// Disable this check by default, since it requires seeding world state with the block being built
|
|
251
|
-
// This is only enabled in some tests with multiple blocks that populate the pending chain via makePendingBlock
|
|
252
|
-
verifyBuiltBlockAgainstSyncedState(provingState) {
|
|
253
|
-
if (this.isVerifyBuiltBlockAgainstSyncedStateEnabled) {
|
|
254
|
-
return super.verifyBuiltBlockAgainstSyncedState(provingState);
|
|
255
|
-
}
|
|
256
|
-
return Promise.resolve();
|
|
257
|
-
}
|
|
258
|
-
}
|
|
@@ -22,7 +22,7 @@ export declare const insertSideEffects: (tx: ProcessedTx, db: MerkleTreeWriteOpe
|
|
|
22
22
|
nullifierInsertionResult: import("@aztec/stdlib/trees").BatchInsertionResult<number, number>;
|
|
23
23
|
publicDataInsertionResult: import("@aztec/stdlib/trees").SequentialInsertionResult<number>;
|
|
24
24
|
}>;
|
|
25
|
-
export declare function getChonkProofFromTx(tx: Tx | ProcessedTx): RecursiveProof<
|
|
25
|
+
export declare function getChonkProofFromTx(tx: Tx | ProcessedTx): RecursiveProof<1221>;
|
|
26
26
|
export declare function getPublicChonkVerifierPrivateInputsFromTx(tx: Tx | ProcessedTx, proverId: Fr): PublicChonkVerifierPrivateInputs;
|
|
27
27
|
export declare const buildBlobHints: (blobFields: Fr[]) => Promise<{
|
|
28
28
|
blobCommitments: import("@aztec/foundation/curves/bls12").BLS12Point[];
|