@aztec/prover-client 0.0.1-commit.d3ec352c → 0.0.1-commit.fcb71a6
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/block-factory/light.d.ts +2 -2
- package/dest/block-factory/light.d.ts.map +1 -1
- package/dest/block-factory/light.js +1 -1
- package/dest/config.d.ts +2 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +1 -1
- package/dest/light/index.d.ts +2 -0
- package/dest/light/index.d.ts.map +1 -0
- package/dest/light/index.js +1 -0
- package/dest/light/lightweight_checkpoint_builder.d.ts +20 -13
- package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
- package/dest/light/lightweight_checkpoint_builder.js +55 -15
- package/dest/mocks/fixtures.js +2 -2
- package/dest/mocks/test_context.d.ts +2 -2
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +7 -5
- package/dest/orchestrator/block-building-helpers.d.ts +3 -3
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +1 -1
- package/dest/orchestrator/block-proving-state.d.ts +2 -2
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +1 -1
- package/dest/orchestrator/checkpoint-proving-state.d.ts +2 -2
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/checkpoint-proving-state.js +2 -1
- package/dest/orchestrator/epoch-proving-state.d.ts +2 -2
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.d.ts +4 -4
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +3 -26
- package/dest/orchestrator/orchestrator_metrics.d.ts +1 -3
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator_metrics.js +0 -9
- package/dest/orchestrator/tx-proving-state.d.ts +2 -2
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +3 -3
- package/dest/prover-client/factory.d.ts +3 -3
- package/dest/prover-client/factory.d.ts.map +1 -1
- package/dest/prover-client/prover-client.d.ts +3 -3
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.d.ts +2 -2
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.d.ts +2 -2
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +3 -10
- package/dest/proving_broker/config.d.ts +2 -2
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +1 -1
- package/dest/proving_broker/fixtures.js +1 -1
- package/dest/proving_broker/proving_broker.d.ts +1 -1
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +3 -0
- package/dest/proving_broker/proving_job_controller.d.ts +1 -1
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +2 -3
- package/dest/test/mock_prover.d.ts +2 -2
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +1 -1
- package/package.json +17 -15
- package/src/block-factory/light.ts +1 -1
- package/src/config.ts +1 -1
- package/src/light/index.ts +1 -0
- package/src/light/lightweight_checkpoint_builder.ts +77 -22
- package/src/mocks/fixtures.ts +2 -2
- package/src/mocks/test_context.ts +7 -5
- package/src/orchestrator/block-building-helpers.ts +1 -1
- package/src/orchestrator/block-proving-state.ts +1 -1
- package/src/orchestrator/checkpoint-proving-state.ts +2 -1
- package/src/orchestrator/epoch-proving-state.ts +1 -1
- package/src/orchestrator/orchestrator.ts +5 -30
- package/src/orchestrator/orchestrator_metrics.ts +1 -20
- package/src/orchestrator/tx-proving-state.ts +4 -5
- package/src/prover-client/factory.ts +6 -2
- package/src/prover-client/prover-client.ts +3 -2
- package/src/prover-client/server-epoch-prover.ts +1 -1
- package/src/proving_broker/broker_prover_facade.ts +2 -11
- package/src/proving_broker/config.ts +1 -1
- package/src/proving_broker/fixtures.ts +1 -1
- package/src/proving_broker/proving_broker.ts +3 -0
- package/src/proving_broker/proving_job_controller.ts +2 -3
- package/src/test/mock_prover.ts +1 -6
|
@@ -19,7 +19,7 @@ export declare class TestBroker implements ProvingJobProducer {
|
|
|
19
19
|
}
|
|
20
20
|
export declare class MockProver implements ServerCircuitProver {
|
|
21
21
|
constructor();
|
|
22
|
-
getAvmProof(_inputs: AvmCircuitInputs,
|
|
22
|
+
getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<16200>>;
|
|
23
23
|
getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
|
|
24
24
|
getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
|
|
25
25
|
getPublicChonkVerifierProof(_inputs: PublicChonkVerifierPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
@@ -38,4 +38,4 @@ export declare class MockProver implements ServerCircuitProver {
|
|
|
38
38
|
getCheckpointPaddingRollupProof(_input: CheckpointPaddingRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
39
39
|
getRootRollupProof(_input: RootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19wcm92ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfcHJvdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCx5Q0FBeUMsRUFFMUMsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFDTCxLQUFLLFVBQVUsRUFDZixLQUFLLFlBQVksRUFDakIsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyw2QkFBNkIsRUFDbEMsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdGLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsd0NBQXdDLEVBQ3hDLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIseUNBQXlDLEVBQ3pDLG9DQUFvQyxFQUNwQyxrQ0FBa0MsRUFDbEMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1QixpQ0FBaUMsRUFDakMsNENBQTRDLEVBQzVDLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixvQkFBb0IsRUFDckIsTUFBTSxzQkFBc0IsQ0FBQztBQVc5QixPQUFPLEVBQW9CLEtBQUssVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFLM0YscUJBQWEsVUFBVyxZQUFXLGtCQUFrQjtJQU9qRCxPQUFPLENBQUMsVUFBVTtJQU5wQixPQUFPLENBQUMsTUFBTSxDQUFnQjtJQUM5QixPQUFPLENBQUMsTUFBTSxDQUFpQjtJQUUvQixZQUNFLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLE1B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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yCAAyC,EAE1C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EAGzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,KAAK,EACV,6BAA6B,EAC7B,uBAAuB,EACvB,wCAAwC,EACxC,iCAAiC,EACjC,4BAA4B,EAC5B,yCAAyC,EACzC,oCAAoC,EACpC,kCAAkC,EAClC,oCAAoC,EACpC,4BAA4B,EAC5B,iCAAiC,EACjC,4CAA4C,EAC5C,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAW9B,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAK3F,qBAAa,UAAW,YAAW,kBAAkB;IAOjD,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAiB;IAE/B,YACE,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,EACnB,UAAU,GAAE,UAAmC,EACvD,iBAAiB,SAAM,EAOxB;IAEY,KAAK,kBAGjB;IAEY,IAAI,kBAGhB;IAEM,aAAa,IAAI,UAAU,CAEjC;IAED,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE5D;IACD,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE/D;IACD,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1C;IAED,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAE7D;CACF;AAED,qBAAa,UAAW,YAAW,mBAAmB;IACpD,cAAgB;IAEhB,WAAW,
|
|
1
|
+
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
|
package/dest/test/mock_prover.js
CHANGED
|
@@ -43,7 +43,7 @@ export class TestBroker {
|
|
|
43
43
|
}
|
|
44
44
|
export class MockProver {
|
|
45
45
|
constructor(){}
|
|
46
|
-
getAvmProof(_inputs,
|
|
46
|
+
getAvmProof(_inputs, _signal, _epochNumber) {
|
|
47
47
|
return Promise.resolve(makeProofAndVerificationKey(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED), VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED)));
|
|
48
48
|
}
|
|
49
49
|
getBaseParityProof(_inputs, _signal, _epochNumber) {
|
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-client",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.fcb71a6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
7
7
|
"./block-factory": "./dest/block-factory/index.js",
|
|
8
8
|
"./broker": "./dest/proving_broker/index.js",
|
|
9
|
+
"./broker/config": "./dest/proving_broker/config.js",
|
|
9
10
|
"./orchestrator": "./dest/orchestrator/index.js",
|
|
10
11
|
"./helpers": "./dest/orchestrator/block-building-helpers.js",
|
|
12
|
+
"./light": "./dest/light/index.js",
|
|
11
13
|
"./config": "./dest/config.js"
|
|
12
14
|
},
|
|
13
15
|
"typedocOptions": {
|
|
@@ -67,19 +69,19 @@
|
|
|
67
69
|
]
|
|
68
70
|
},
|
|
69
71
|
"dependencies": {
|
|
70
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
71
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
72
|
-
"@aztec/constants": "0.0.1-commit.
|
|
73
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
74
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
75
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
76
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
77
|
-
"@aztec/noir-types": "0.0.1-commit.
|
|
78
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
79
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
80
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
81
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
82
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
72
|
+
"@aztec/bb-prover": "0.0.1-commit.fcb71a6",
|
|
73
|
+
"@aztec/blob-lib": "0.0.1-commit.fcb71a6",
|
|
74
|
+
"@aztec/constants": "0.0.1-commit.fcb71a6",
|
|
75
|
+
"@aztec/ethereum": "0.0.1-commit.fcb71a6",
|
|
76
|
+
"@aztec/foundation": "0.0.1-commit.fcb71a6",
|
|
77
|
+
"@aztec/kv-store": "0.0.1-commit.fcb71a6",
|
|
78
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.fcb71a6",
|
|
79
|
+
"@aztec/noir-types": "0.0.1-commit.fcb71a6",
|
|
80
|
+
"@aztec/protocol-contracts": "0.0.1-commit.fcb71a6",
|
|
81
|
+
"@aztec/simulator": "0.0.1-commit.fcb71a6",
|
|
82
|
+
"@aztec/stdlib": "0.0.1-commit.fcb71a6",
|
|
83
|
+
"@aztec/telemetry-client": "0.0.1-commit.fcb71a6",
|
|
84
|
+
"@aztec/world-state": "0.0.1-commit.fcb71a6",
|
|
83
85
|
"@google-cloud/storage": "^7.15.0",
|
|
84
86
|
"@iarna/toml": "^2.2.5",
|
|
85
87
|
"commander": "^12.1.0",
|
|
@@ -89,7 +91,7 @@
|
|
|
89
91
|
"zod": "^3.23.8"
|
|
90
92
|
},
|
|
91
93
|
"devDependencies": {
|
|
92
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
94
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.fcb71a6",
|
|
93
95
|
"@jest/globals": "^30.0.0",
|
|
94
96
|
"@types/jest": "^30.0.0",
|
|
95
97
|
"@types/node": "^22.15.17",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SpongeBlob, computeBlobsHashFromBlobs, encodeCheckpointEndMarker, getBlobsPerL1Block } from '@aztec/blob-lib';
|
|
2
2
|
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
3
3
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
-
import { Fr } from '@aztec/foundation/
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import { L2Block, L2BlockHeader } from '@aztec/stdlib/block';
|
|
7
7
|
import type { IBlockFactory, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
package/src/config.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getConfigFromMappings,
|
|
6
6
|
numberConfigHelper,
|
|
7
7
|
} from '@aztec/foundation/config';
|
|
8
|
-
import { type ProverConfig, proverConfigMappings } from '@aztec/stdlib/interfaces/
|
|
8
|
+
import { type ProverConfig, proverConfigMappings } from '@aztec/stdlib/interfaces/prover-config';
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
11
|
type ProverAgentConfig,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lightweight_checkpoint_builder.js';
|
|
@@ -2,15 +2,21 @@ import { SpongeBlob, computeBlobsHashFromBlobs, encodeCheckpointEndMarker, getBl
|
|
|
2
2
|
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
3
3
|
import type { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
|
-
import { Fr } from '@aztec/foundation/
|
|
5
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
6
|
import { createLogger } from '@aztec/foundation/log';
|
|
7
7
|
import { L2BlockNew } from '@aztec/stdlib/block';
|
|
8
8
|
import { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
9
9
|
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
10
10
|
import { computeCheckpointOutHash, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
|
|
11
|
-
import {
|
|
11
|
+
import { CheckpointHeader, computeBlockHeadersHash } from '@aztec/stdlib/rollup';
|
|
12
12
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
type CheckpointGlobalVariables,
|
|
15
|
+
ContentCommitment,
|
|
16
|
+
type GlobalVariables,
|
|
17
|
+
type ProcessedTx,
|
|
18
|
+
StateReference,
|
|
19
|
+
} from '@aztec/stdlib/tx';
|
|
14
20
|
|
|
15
21
|
import {
|
|
16
22
|
buildHeaderAndBodyFromTxs,
|
|
@@ -21,29 +27,30 @@ import {
|
|
|
21
27
|
/**
|
|
22
28
|
* Builds a checkpoint and its header and the blocks in it from a set of processed tx without running any circuits.
|
|
23
29
|
*
|
|
24
|
-
* It updates the l1-to-l2 message tree when starting a new checkpoint,
|
|
25
|
-
*
|
|
30
|
+
* It updates the l1-to-l2 message tree when starting a new checkpoint, and then updates the archive tree when each block is added.
|
|
31
|
+
* Finally completes the checkpoint by computing its header.
|
|
26
32
|
*/
|
|
27
33
|
export class LightweightCheckpointBuilder {
|
|
28
34
|
private readonly logger = createLogger('lightweight-checkpoint-builder');
|
|
35
|
+
|
|
29
36
|
private lastArchives: AppendOnlyTreeSnapshot[] = [];
|
|
30
37
|
private spongeBlob: SpongeBlob;
|
|
31
38
|
private blocks: L2BlockNew[] = [];
|
|
32
39
|
private blobFields: Fr[] = [];
|
|
33
40
|
|
|
34
41
|
constructor(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
public readonly checkpointNumber: CheckpointNumber,
|
|
43
|
+
public readonly constants: CheckpointGlobalVariables,
|
|
44
|
+
public readonly l1ToL2Messages: Fr[],
|
|
45
|
+
public readonly db: MerkleTreeWriteOperations,
|
|
39
46
|
) {
|
|
40
47
|
this.spongeBlob = SpongeBlob.init();
|
|
41
|
-
this.logger.debug('Starting new checkpoint', { constants
|
|
48
|
+
this.logger.debug('Starting new checkpoint', { constants, l1ToL2Messages });
|
|
42
49
|
}
|
|
43
50
|
|
|
44
51
|
static async startNewCheckpoint(
|
|
45
52
|
checkpointNumber: CheckpointNumber,
|
|
46
|
-
constants:
|
|
53
|
+
constants: CheckpointGlobalVariables,
|
|
47
54
|
l1ToL2Messages: Fr[],
|
|
48
55
|
db: MerkleTreeWriteOperations,
|
|
49
56
|
): Promise<LightweightCheckpointBuilder> {
|
|
@@ -56,16 +63,46 @@ export class LightweightCheckpointBuilder {
|
|
|
56
63
|
return new LightweightCheckpointBuilder(checkpointNumber, constants, l1ToL2Messages, db);
|
|
57
64
|
}
|
|
58
65
|
|
|
59
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Adds a new block to the checkpoint. The tx effects must have already been inserted into the db if
|
|
68
|
+
* this is called after tx processing, if that's not the case, then set `insertTxsEffects` to true.
|
|
69
|
+
*/
|
|
70
|
+
public async addBlock(
|
|
71
|
+
globalVariables: GlobalVariables,
|
|
72
|
+
txs: ProcessedTx[],
|
|
73
|
+
opts: { insertTxsEffects?: boolean; expectedEndState?: StateReference } = {},
|
|
74
|
+
): Promise<L2BlockNew> {
|
|
60
75
|
const isFirstBlock = this.blocks.length === 0;
|
|
76
|
+
|
|
77
|
+
// Empty blocks are only allowed as the first block in a checkpoint
|
|
78
|
+
if (!isFirstBlock && txs.length === 0) {
|
|
79
|
+
throw new Error('Cannot add empty block that is not the first block in the checkpoint.');
|
|
80
|
+
}
|
|
81
|
+
|
|
61
82
|
if (isFirstBlock) {
|
|
62
83
|
this.lastArchives.push(await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db));
|
|
63
84
|
}
|
|
64
85
|
|
|
65
86
|
const lastArchive = this.lastArchives.at(-1)!;
|
|
66
87
|
|
|
67
|
-
|
|
68
|
-
|
|
88
|
+
if (opts.insertTxsEffects) {
|
|
89
|
+
this.logger.debug(
|
|
90
|
+
`Inserting side effects for ${txs.length} txs for block ${globalVariables.blockNumber} into db`,
|
|
91
|
+
{ txs: txs.map(tx => tx.hash.toString()) },
|
|
92
|
+
);
|
|
93
|
+
for (const tx of txs) {
|
|
94
|
+
await insertSideEffects(tx, this.db);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const endState = await this.db.getStateReference();
|
|
99
|
+
if (opts.expectedEndState && !endState.equals(opts.expectedEndState)) {
|
|
100
|
+
this.logger.error('End state after processing txs does not match expected end state', {
|
|
101
|
+
globalVariables: globalVariables.toInspect(),
|
|
102
|
+
expectedEndState: opts.expectedEndState.toInspect(),
|
|
103
|
+
actualEndState: endState.toInspect(),
|
|
104
|
+
});
|
|
105
|
+
throw new Error(`End state does not match expected end state when building block ${globalVariables.blockNumber}`);
|
|
69
106
|
}
|
|
70
107
|
|
|
71
108
|
const { header, body, blockBlobFields } = await buildHeaderAndBodyFromTxs(
|
|
@@ -77,11 +114,14 @@ export class LightweightCheckpointBuilder {
|
|
|
77
114
|
isFirstBlock,
|
|
78
115
|
);
|
|
79
116
|
|
|
117
|
+
header.state.validate();
|
|
118
|
+
|
|
80
119
|
await this.db.updateArchive(header);
|
|
81
120
|
const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
|
|
82
121
|
this.lastArchives.push(newArchive);
|
|
83
122
|
|
|
84
|
-
const
|
|
123
|
+
const indexWithinCheckpoint = this.blocks.length;
|
|
124
|
+
const block = new L2BlockNew(newArchive, header, body, this.checkpointNumber, indexWithinCheckpoint);
|
|
85
125
|
this.blocks.push(block);
|
|
86
126
|
|
|
87
127
|
await this.spongeBlob.absorb(blockBlobFields);
|
|
@@ -100,7 +140,7 @@ export class LightweightCheckpointBuilder {
|
|
|
100
140
|
|
|
101
141
|
async completeCheckpoint(): Promise<Checkpoint> {
|
|
102
142
|
if (!this.blocks.length) {
|
|
103
|
-
throw new Error('
|
|
143
|
+
throw new Error('Cannot complete a checkpoint with no blocks');
|
|
104
144
|
}
|
|
105
145
|
|
|
106
146
|
const numBlobFields = this.blobFields.length + 1; // +1 for the checkpoint end marker.
|
|
@@ -119,8 +159,9 @@ export class LightweightCheckpointBuilder {
|
|
|
119
159
|
|
|
120
160
|
const outHash = computeCheckpointOutHash(blocks.map(block => block.body.txEffects.map(tx => tx.l2ToL1Msgs)));
|
|
121
161
|
|
|
122
|
-
const
|
|
162
|
+
const { slotNumber, coinbase, feeRecipient, gasFees } = this.constants;
|
|
123
163
|
|
|
164
|
+
// TODO(palla/mbps): Should we source this from the constants instead?
|
|
124
165
|
// timestamp of a checkpoint is the timestamp of the last block in the checkpoint.
|
|
125
166
|
const timestamp = blocks[blocks.length - 1].timestamp;
|
|
126
167
|
|
|
@@ -128,16 +169,30 @@ export class LightweightCheckpointBuilder {
|
|
|
128
169
|
|
|
129
170
|
const header = CheckpointHeader.from({
|
|
130
171
|
lastArchiveRoot: this.lastArchives[0].root,
|
|
131
|
-
blockHeadersHash,
|
|
132
172
|
contentCommitment: new ContentCommitment(blobsHash, inHash, outHash),
|
|
133
|
-
|
|
173
|
+
blockHeadersHash,
|
|
174
|
+
slotNumber,
|
|
134
175
|
timestamp,
|
|
135
|
-
coinbase
|
|
136
|
-
feeRecipient
|
|
137
|
-
gasFees
|
|
176
|
+
coinbase,
|
|
177
|
+
feeRecipient,
|
|
178
|
+
gasFees,
|
|
138
179
|
totalManaUsed,
|
|
139
180
|
});
|
|
140
181
|
|
|
141
182
|
return new Checkpoint(newArchive, header, blocks, this.checkpointNumber);
|
|
142
183
|
}
|
|
184
|
+
|
|
185
|
+
clone() {
|
|
186
|
+
const clone = new LightweightCheckpointBuilder(
|
|
187
|
+
this.checkpointNumber,
|
|
188
|
+
this.constants,
|
|
189
|
+
[...this.l1ToL2Messages],
|
|
190
|
+
this.db,
|
|
191
|
+
);
|
|
192
|
+
clone.lastArchives = [...this.lastArchives];
|
|
193
|
+
clone.spongeBlob = this.spongeBlob.clone();
|
|
194
|
+
clone.blocks = [...this.blocks];
|
|
195
|
+
clone.blobFields = [...this.blobFields];
|
|
196
|
+
return clone;
|
|
197
|
+
}
|
|
143
198
|
}
|
package/src/mocks/fixtures.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { randomBytes } from '@aztec/foundation/crypto';
|
|
2
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import type { Logger } from '@aztec/foundation/log';
|
|
6
6
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
7
7
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
@@ -3,7 +3,7 @@ import { TestCircuitProver } from '@aztec/bb-prover';
|
|
|
3
3
|
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
4
4
|
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
5
5
|
import { padArrayEnd, times, timesAsync } from '@aztec/foundation/collection';
|
|
6
|
-
import { Fr } from '@aztec/foundation/
|
|
6
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
7
7
|
import type { Logger } from '@aztec/foundation/log';
|
|
8
8
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
9
9
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
@@ -250,17 +250,19 @@ export class TestContext {
|
|
|
250
250
|
// Add tx effects to db and build block headers.
|
|
251
251
|
const blocks = [];
|
|
252
252
|
for (let i = 0; i < numBlocks; i++) {
|
|
253
|
-
const isFirstBlock = i === 0;
|
|
254
253
|
const txs = blockTxs[i];
|
|
255
254
|
const state = blockEndStates[i];
|
|
256
255
|
|
|
257
|
-
const block = await builder.addBlock(blockGlobalVariables[i],
|
|
256
|
+
const block = await builder.addBlock(blockGlobalVariables[i], txs, {
|
|
257
|
+
expectedEndState: state,
|
|
258
|
+
insertTxsEffects: true,
|
|
259
|
+
});
|
|
258
260
|
|
|
259
261
|
const header = block.header;
|
|
260
262
|
this.headers.set(block.number, header);
|
|
261
263
|
|
|
262
|
-
const blockMsgs =
|
|
263
|
-
await this.worldState.handleL2BlockAndMessages(block, blockMsgs
|
|
264
|
+
const blockMsgs = block.indexWithinCheckpoint === 0 ? l1ToL2Messages : [];
|
|
265
|
+
await this.worldState.handleL2BlockAndMessages(block, blockMsgs);
|
|
264
266
|
|
|
265
267
|
blocks.push({ header, txs });
|
|
266
268
|
}
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
import { makeTuple } from '@aztec/foundation/array';
|
|
23
23
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
24
24
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
25
|
-
import { Fr } from '@aztec/foundation/
|
|
25
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
26
26
|
import { type Bufferable, assertLength, toFriendlyJSON } from '@aztec/foundation/serialize';
|
|
27
27
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
28
28
|
import { getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
NUM_BASE_PARITY_PER_ROOT_PARITY,
|
|
8
8
|
} from '@aztec/constants';
|
|
9
9
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
10
|
-
import { Fr } from '@aztec/foundation/
|
|
10
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
11
11
|
import { type Tuple, assertLength } from '@aztec/foundation/serialize';
|
|
12
12
|
import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
13
13
|
import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
@@ -14,7 +14,8 @@ import {
|
|
|
14
14
|
} from '@aztec/constants';
|
|
15
15
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
16
16
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
17
|
-
import { BLS12Point
|
|
17
|
+
import { BLS12Point } from '@aztec/foundation/curves/bls12';
|
|
18
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
18
19
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
19
20
|
import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
20
21
|
import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
@@ -6,7 +6,7 @@ import type {
|
|
|
6
6
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
7
7
|
} from '@aztec/constants';
|
|
8
8
|
import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
9
|
-
import type { Fr } from '@aztec/foundation/
|
|
9
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
10
10
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
11
11
|
import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
12
12
|
import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
@@ -8,21 +8,21 @@ import {
|
|
|
8
8
|
} from '@aztec/constants';
|
|
9
9
|
import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
10
10
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
11
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
11
12
|
import { AbortError } from '@aztec/foundation/error';
|
|
12
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
13
13
|
import { createLogger } from '@aztec/foundation/log';
|
|
14
14
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
15
15
|
import { assertLength } from '@aztec/foundation/serialize';
|
|
16
16
|
import { pushTestData } from '@aztec/foundation/testing';
|
|
17
17
|
import { elapsed } from '@aztec/foundation/timer';
|
|
18
18
|
import type { TreeNodeLocation } from '@aztec/foundation/trees';
|
|
19
|
-
import { readAvmMinimalPublicTxInputsFromFile } from '@aztec/simulator/public/fixtures';
|
|
20
19
|
import { EthAddress } from '@aztec/stdlib/block';
|
|
21
20
|
import type {
|
|
22
21
|
EpochProver,
|
|
23
22
|
ForkMerkleTreeOperations,
|
|
24
23
|
MerkleTreeWriteOperations,
|
|
25
24
|
PublicInputsAndRecursiveProof,
|
|
25
|
+
ReadonlyWorldStateAccess,
|
|
26
26
|
ServerCircuitProver,
|
|
27
27
|
} from '@aztec/stdlib/interfaces/server';
|
|
28
28
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
@@ -97,7 +97,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
97
97
|
private dbs: Map<BlockNumber, MerkleTreeWriteOperations> = new Map();
|
|
98
98
|
|
|
99
99
|
constructor(
|
|
100
|
-
private dbProvider: ForkMerkleTreeOperations,
|
|
100
|
+
private dbProvider: ReadonlyWorldStateAccess & ForkMerkleTreeOperations,
|
|
101
101
|
private prover: ServerCircuitProver,
|
|
102
102
|
private readonly proverId: EthAddress,
|
|
103
103
|
telemetryClient: TelemetryClient = getTelemetryClient(),
|
|
@@ -310,7 +310,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
310
310
|
|
|
311
311
|
validateTx(tx);
|
|
312
312
|
|
|
313
|
-
logger.
|
|
313
|
+
logger.debug(`Received transaction: ${tx.hash}`);
|
|
314
314
|
|
|
315
315
|
const startSpongeBlob = spongeBlobState.clone();
|
|
316
316
|
const [hints, treeSnapshots] = await this.prepareBaseRollupInputs(
|
|
@@ -1207,8 +1207,6 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
1207
1207
|
|
|
1208
1208
|
const txProvingState = provingState.getTxProvingState(txIndex);
|
|
1209
1209
|
|
|
1210
|
-
// This function tries to do AVM proving. If there is a failure, it fakes the proof unless AVM_PROVING_STRICT is defined.
|
|
1211
|
-
// Nothing downstream depends on the AVM proof yet. So having this mode lets us incrementally build the AVM circuit.
|
|
1212
1210
|
const doAvmProving = wrapCallbackInSpan(
|
|
1213
1211
|
this.tracer,
|
|
1214
1212
|
'ProvingOrchestrator.prover.getAvmProof',
|
|
@@ -1217,30 +1215,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
1217
1215
|
},
|
|
1218
1216
|
async (signal: AbortSignal) => {
|
|
1219
1217
|
const inputs = txProvingState.getAvmInputs();
|
|
1220
|
-
|
|
1221
|
-
// TODO(#14234)[Unconditional PIs validation]: Remove the whole try-catch logic and
|
|
1222
|
-
// just keep the next line but removing the second argument (false).
|
|
1223
|
-
return await this.prover.getAvmProof(inputs, false, signal, provingState.epochNumber);
|
|
1224
|
-
} catch (err) {
|
|
1225
|
-
if (process.env.AVM_PROVING_STRICT) {
|
|
1226
|
-
logger.error(`Error thrown when proving AVM circuit with AVM_PROVING_STRICT on`, err);
|
|
1227
|
-
throw err;
|
|
1228
|
-
} else {
|
|
1229
|
-
logger.warn(
|
|
1230
|
-
`Error thrown when proving AVM circuit but AVM_PROVING_STRICT is off. Use snapshotted
|
|
1231
|
-
AVM inputs and carrying on. ${inspect(err)}.`,
|
|
1232
|
-
);
|
|
1233
|
-
|
|
1234
|
-
try {
|
|
1235
|
-
this.metrics.incAvmFallback();
|
|
1236
|
-
const snapshotAvmPrivateInputs = readAvmMinimalPublicTxInputsFromFile();
|
|
1237
|
-
return await this.prover.getAvmProof(snapshotAvmPrivateInputs, true, signal, provingState.epochNumber);
|
|
1238
|
-
} catch (err) {
|
|
1239
|
-
logger.error(`Error thrown when proving snapshotted AVM inputs.`, err);
|
|
1240
|
-
throw err;
|
|
1241
|
-
}
|
|
1242
|
-
}
|
|
1243
|
-
}
|
|
1218
|
+
return await this.prover.getAvmProof(inputs, signal, provingState.epochNumber);
|
|
1244
1219
|
},
|
|
1245
1220
|
);
|
|
1246
1221
|
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Histogram,
|
|
3
|
-
Metrics,
|
|
4
|
-
type TelemetryClient,
|
|
5
|
-
type Tracer,
|
|
6
|
-
type UpDownCounter,
|
|
7
|
-
ValueType,
|
|
8
|
-
} from '@aztec/telemetry-client';
|
|
1
|
+
import { type Histogram, Metrics, type TelemetryClient, type Tracer, ValueType } from '@aztec/telemetry-client';
|
|
9
2
|
|
|
10
3
|
export class ProvingOrchestratorMetrics {
|
|
11
4
|
public readonly tracer: Tracer;
|
|
12
5
|
|
|
13
6
|
private baseRollupInputsDuration: Histogram;
|
|
14
|
-
private avmFallbackCount: UpDownCounter;
|
|
15
7
|
|
|
16
8
|
constructor(client: TelemetryClient, name = 'ProvingOrchestrator') {
|
|
17
9
|
this.tracer = client.getTracer(name);
|
|
@@ -22,20 +14,9 @@ export class ProvingOrchestratorMetrics {
|
|
|
22
14
|
description: 'Duration to build base rollup inputs',
|
|
23
15
|
valueType: ValueType.INT,
|
|
24
16
|
});
|
|
25
|
-
|
|
26
|
-
this.avmFallbackCount = meter.createUpDownCounter(Metrics.PROVING_ORCHESTRATOR_AVM_FALLBACK_COUNT, {
|
|
27
|
-
description: 'How many times the AVM fallback was used',
|
|
28
|
-
valueType: ValueType.INT,
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
this.avmFallbackCount.add(0);
|
|
32
17
|
}
|
|
33
18
|
|
|
34
19
|
recordBaseRollupInputs(durationMs: number) {
|
|
35
20
|
this.baseRollupInputsDuration.record(Math.ceil(durationMs));
|
|
36
21
|
}
|
|
37
|
-
|
|
38
|
-
incAvmFallback() {
|
|
39
|
-
this.avmFallbackCount.add(1);
|
|
40
|
-
}
|
|
41
22
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
|
-
import type { Fr } from '@aztec/foundation/
|
|
3
|
-
import {
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
4
4
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
5
5
|
import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
6
|
-
import { ProofData } from '@aztec/stdlib/proofs';
|
|
6
|
+
import { ProofData, ProofDataForFixedVk } from '@aztec/stdlib/proofs';
|
|
7
7
|
import {
|
|
8
8
|
type BaseRollupHints,
|
|
9
9
|
PrivateBaseRollupHints,
|
|
@@ -114,10 +114,9 @@ export class TxProvingState {
|
|
|
114
114
|
|
|
115
115
|
const publicChonkVerifierProofData = toProofData(this.publicChonkVerifier);
|
|
116
116
|
|
|
117
|
-
const avmProofData = new
|
|
117
|
+
const avmProofData = new ProofDataForFixedVk(
|
|
118
118
|
this.processedTx.avmProvingRequest.inputs.publicInputs,
|
|
119
119
|
this.avm.proof,
|
|
120
|
-
getAvmVkData(),
|
|
121
120
|
);
|
|
122
121
|
|
|
123
122
|
return new PublicTxBaseRollupPrivateInputs(publicChonkVerifierProofData, avmProofData, this.baseRollupHints);
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
ForkMerkleTreeOperations,
|
|
3
|
+
ProvingJobBroker,
|
|
4
|
+
ReadonlyWorldStateAccess,
|
|
5
|
+
} from '@aztec/stdlib/interfaces/server';
|
|
2
6
|
import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
|
|
3
7
|
|
|
4
8
|
import type { ProverClientConfig } from '../config.js';
|
|
@@ -6,7 +10,7 @@ import { ProverClient } from './prover-client.js';
|
|
|
6
10
|
|
|
7
11
|
export function createProverClient(
|
|
8
12
|
config: ProverClientConfig,
|
|
9
|
-
worldState: ForkMerkleTreeOperations,
|
|
13
|
+
worldState: ForkMerkleTreeOperations & ReadonlyWorldStateAccess,
|
|
10
14
|
broker: ProvingJobBroker,
|
|
11
15
|
telemetry: TelemetryClient = getTelemetryClient(),
|
|
12
16
|
) {
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
type ProvingJobBroker,
|
|
12
12
|
type ProvingJobConsumer,
|
|
13
13
|
type ProvingJobProducer,
|
|
14
|
+
type ReadonlyWorldStateAccess,
|
|
14
15
|
type ServerCircuitProver,
|
|
15
16
|
tryStop,
|
|
16
17
|
} from '@aztec/stdlib/interfaces/server';
|
|
@@ -33,7 +34,7 @@ export class ProverClient implements EpochProverManager {
|
|
|
33
34
|
|
|
34
35
|
private constructor(
|
|
35
36
|
private config: ProverClientConfig,
|
|
36
|
-
private worldState: ForkMerkleTreeOperations,
|
|
37
|
+
private worldState: ForkMerkleTreeOperations & ReadonlyWorldStateAccess,
|
|
37
38
|
private orchestratorClient: ProvingJobProducer,
|
|
38
39
|
private agentClient?: ProvingJobConsumer,
|
|
39
40
|
private telemetry: TelemetryClient = getTelemetryClient(),
|
|
@@ -99,7 +100,7 @@ export class ProverClient implements EpochProverManager {
|
|
|
99
100
|
*/
|
|
100
101
|
public static async new(
|
|
101
102
|
config: ProverClientConfig,
|
|
102
|
-
worldState: ForkMerkleTreeOperations,
|
|
103
|
+
worldState: ForkMerkleTreeOperations & ReadonlyWorldStateAccess,
|
|
103
104
|
broker: ProvingJobBroker,
|
|
104
105
|
telemetry: TelemetryClient = getTelemetryClient(),
|
|
105
106
|
) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
|
|
2
2
|
import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
3
|
-
import type { Fr } from '@aztec/foundation/
|
|
3
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import type { EthAddress } from '@aztec/stdlib/block';
|
|
5
5
|
import type { EpochProver } from '@aztec/stdlib/interfaces/server';
|
|
6
6
|
import type { Proof } from '@aztec/stdlib/proofs';
|