@aztec/prover-client 0.48.0 → 0.50.1
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 +0 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +2 -7
- package/dest/mocks/test_context.js +2 -2
- package/dest/orchestrator/block-building-helpers.d.ts +14 -3
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +34 -8
- package/dest/orchestrator/index.d.ts +2 -0
- package/dest/orchestrator/index.d.ts.map +1 -0
- package/dest/orchestrator/index.js +2 -0
- package/dest/orchestrator/orchestrator.d.ts +10 -4
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +51 -25
- package/dest/orchestrator/proving-state.d.ts +4 -4
- package/dest/orchestrator/proving-state.d.ts.map +1 -1
- package/dest/orchestrator/proving-state.js +3 -3
- package/dest/prover-agent/memory-proving-queue.d.ts +11 -1
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/memory-proving-queue.js +15 -1
- package/dest/prover-agent/prover-agent.d.ts.map +1 -1
- package/dest/prover-agent/prover-agent.js +7 -1
- package/dest/tx-prover/factory.d.ts +1 -1
- package/dest/tx-prover/factory.d.ts.map +1 -1
- package/dest/tx-prover/factory.js +2 -2
- package/package.json +12 -11
- package/src/config.ts +1 -8
- package/src/mocks/test_context.ts +1 -1
- package/src/orchestrator/block-building-helpers.ts +75 -8
- package/src/orchestrator/index.ts +1 -0
- package/src/orchestrator/orchestrator.ts +77 -26
- package/src/orchestrator/proving-state.ts +4 -4
- package/src/prover-agent/memory-proving-queue.ts +27 -0
- package/src/prover-agent/prover-agent.ts +8 -0
- package/src/tx-prover/factory.ts +1 -1
package/dest/config.d.ts
CHANGED
|
@@ -12,8 +12,6 @@ export type ProverClientConfig = ProverConfig & {
|
|
|
12
12
|
bbWorkingDirectory: string;
|
|
13
13
|
/** The path to the bb binary */
|
|
14
14
|
bbBinaryPath: string;
|
|
15
|
-
/** True to disable proving altogether. */
|
|
16
|
-
disableProver: boolean;
|
|
17
15
|
};
|
|
18
16
|
export declare const proverClientConfigMappings: ConfigMappingsType<ProverClientConfig>;
|
|
19
17
|
/**
|
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,EAAE,KAAK,YAAY,EAAwB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,KAAK,kBAAkB,EAAyB,MAAM,0BAA0B,CAAC;AAE1F;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,0DAA0D;IAC1D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAkB7E,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAErD"}
|
package/dest/config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proverConfigMappings } from '@aztec/circuit-types';
|
|
2
|
-
import {
|
|
2
|
+
import { getConfigFromMappings } from '@aztec/foundation/config';
|
|
3
3
|
export const proverClientConfigMappings = {
|
|
4
4
|
acvmWorkingDirectory: {
|
|
5
5
|
env: 'ACVM_WORKING_DIRECTORY',
|
|
@@ -17,11 +17,6 @@ export const proverClientConfigMappings = {
|
|
|
17
17
|
env: 'BB_BINARY_PATH',
|
|
18
18
|
description: 'The path to the bb binary',
|
|
19
19
|
},
|
|
20
|
-
disableProver: {
|
|
21
|
-
env: 'PROVER_DISABLED',
|
|
22
|
-
description: 'Whether to disable proving.',
|
|
23
|
-
...booleanConfigHelper(),
|
|
24
|
-
},
|
|
25
20
|
...proverConfigMappings,
|
|
26
21
|
};
|
|
27
22
|
/**
|
|
@@ -32,4 +27,4 @@ export const proverClientConfigMappings = {
|
|
|
32
27
|
export function getProverEnvVars() {
|
|
33
28
|
return getConfigFromMappings(proverClientConfigMappings);
|
|
34
29
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUEyQixxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBZ0IxRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBMkM7SUFDaEYsb0JBQW9CLEVBQUU7UUFDcEIsR0FBRyxFQUFFLHdCQUF3QjtRQUM3QixXQUFXLEVBQUUscURBQXFEO0tBQ25FO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsR0FBRyxFQUFFLGtCQUFrQjtRQUN2QixXQUFXLEVBQUUsNkJBQTZCO0tBQzNDO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsR0FBRyxFQUFFLHNCQUFzQjtRQUMzQixXQUFXLEVBQUUsc0NBQXNDO0tBQ3BEO0lBQ0QsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLGdCQUFnQjtRQUNyQixXQUFXLEVBQUUsMkJBQTJCO0tBQ3pDO0lBQ0QsR0FBRyxvQkFBb0I7Q0FDeEIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8scUJBQXFCLENBQXFCLDBCQUEwQixDQUFDLENBQUM7QUFDL0UsQ0FBQyJ9
|
|
@@ -35,8 +35,8 @@ export class TestContext {
|
|
|
35
35
|
const publicContractsDB = mock();
|
|
36
36
|
const publicWorldStateDB = mock();
|
|
37
37
|
const publicKernel = new RealPublicKernelCircuitSimulator(new WASMSimulator());
|
|
38
|
-
const actualDb = await MerkleTrees.new(openTmpStore()).then(t => t.asLatest());
|
|
39
38
|
const telemetry = new NoopTelemetryClient();
|
|
39
|
+
const actualDb = await MerkleTrees.new(openTmpStore(), telemetry).then(t => t.asLatest());
|
|
40
40
|
const processor = new PublicProcessor(actualDb, publicExecutor, publicKernel, GlobalVariables.empty(), Header.empty(), publicContractsDB, publicWorldStateDB, telemetry);
|
|
41
41
|
let localProver;
|
|
42
42
|
const config = await getEnvironmentConfig(logger);
|
|
@@ -97,4 +97,4 @@ export class TestContext {
|
|
|
97
97
|
return await this.publicProcessor.process(txs, maxTransactions, blockProver, txValidator);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vY2tzL3Rlc3RfY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sRUFBa0MsTUFBTSxvQkFBb0IsQ0FBQztBQUd2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUdMLDRCQUE0QixFQUU1QixlQUFlLEVBQ2YsZ0NBQWdDLEVBRWhDLGFBQWEsR0FFZCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBNkIsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUUsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFrQixJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RixNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNTLGNBQXlDLEVBQ3pDLGlCQUF5RCxFQUN6RCxrQkFBaUQsRUFDakQsZUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLFFBQThCLEVBQzlCLE1BQTJCLEVBQzNCLFdBQXdCLEVBQ3hCLFlBQWlDLEVBQ2pDLFdBQW1CLEVBQ25CLG9CQUE4QixFQUM5QixNQUFtQjtRQVpu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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MerkleTreeId, type ProcessedTx } from '@aztec/circuit-types';
|
|
2
|
-
import { AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, BaseRollupInputs, ConstantRollupData, Fr, type GlobalVariables, KernelData, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, MembershipWitness, MergeRollupInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PartialStateReference, PreviousRollupData, PublicDataTreeLeaf, type PublicDataTreeLeafPreimage, type RECURSIVE_PROOF_LENGTH, type RecursiveProof, type RootParityInput, RootRollupInputs, type
|
|
2
|
+
import { AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, BaseRollupInputs, BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, ConstantRollupData, Fr, type GlobalVariables, type Header, KernelData, type L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, MembershipWitness, MergeRollupInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PartialStateReference, PreviousRollupBlockData, PreviousRollupData, PublicDataTreeLeaf, type PublicDataTreeLeafPreimage, type RECURSIVE_PROOF_LENGTH, type RecursiveProof, type RootParityInput, RootRollupInputs, type StateReference, type VerificationKeyAsFields, type VerificationKeyData } from '@aztec/circuits.js';
|
|
3
3
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
5
5
|
/**
|
|
@@ -12,10 +12,21 @@ type BaseTreeNames = 'NoteHashTree' | 'ContractTree' | 'NullifierTree' | 'Public
|
|
|
12
12
|
export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
|
|
13
13
|
export declare function buildBaseRollupInput(tx: ProcessedTx, proof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, globalVariables: GlobalVariables, db: MerkleTreeOperations, kernelVk: VerificationKeyData): Promise<BaseRollupInputs>;
|
|
14
14
|
export declare function createMergeRollupInputs(left: [BaseOrMergeRollupPublicInputs, RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, VerificationKeyAsFields], right: [BaseOrMergeRollupPublicInputs, RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, VerificationKeyAsFields]): MergeRollupInputs;
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function createBlockMergeRollupInputs(left: [
|
|
16
|
+
BlockRootOrBlockMergePublicInputs,
|
|
17
|
+
RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>,
|
|
18
|
+
VerificationKeyAsFields
|
|
19
|
+
], right: [
|
|
20
|
+
BlockRootOrBlockMergePublicInputs,
|
|
21
|
+
RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>,
|
|
22
|
+
VerificationKeyAsFields
|
|
23
|
+
]): BlockMergeRollupInputs;
|
|
24
|
+
export declare function validateBlockRootOutput(blockRootOutput: BlockRootOrBlockMergePublicInputs, blockHeader: Header, db: MerkleTreeOperations): Promise<void>;
|
|
16
25
|
export declare function validateState(state: StateReference, db: MerkleTreeOperations): Promise<void>;
|
|
17
|
-
export declare function
|
|
26
|
+
export declare function getBlockRootRollupInput(rollupOutputLeft: BaseOrMergeRollupPublicInputs, rollupProofLeft: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, verificationKeyLeft: VerificationKeyAsFields, rollupOutputRight: BaseOrMergeRollupPublicInputs, rollupProofRight: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, verificationKeyRight: VerificationKeyAsFields, l1ToL2Roots: RootParityInput<typeof NESTED_RECURSIVE_PROOF_LENGTH>, 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>, db: MerkleTreeOperations, proverId: Fr): Promise<BlockRootRollupInputs>;
|
|
27
|
+
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;
|
|
18
28
|
export declare function getPreviousRollupDataFromPublicInputs(rollupOutput: BaseOrMergeRollupPublicInputs, rollupProof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, vk: VerificationKeyAsFields): PreviousRollupData;
|
|
29
|
+
export declare function getPreviousRollupBlockDataFromPublicInputs(rollupOutput: BlockRootOrBlockMergePublicInputs, rollupProof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, vk: VerificationKeyAsFields): PreviousRollupBlockData;
|
|
19
30
|
export declare function getConstantRollupData(globalVariables: GlobalVariables, db: MerkleTreeOperations): Promise<ConstantRollupData>;
|
|
20
31
|
export declare function getTreeSnapshot(id: MerkleTreeId, db: MerkleTreeOperations): Promise<AppendOnlyTreeSnapshot>;
|
|
21
32
|
export declare function getKernelDataFor(tx: ProcessedTx, vk: VerificationKeyData, proof: RecursiveProof<typeof RECURSIVE_PROOF_LENGTH>): KernelData;
|
|
@@ -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,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAEL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,gBAAgB,EAChB,kBAAkB,EAClB,EAAE,EACF,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,wCAAwC,EAG7C,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,6BAA6B,EAMlC,KAAK,mCAAmC,EAKxC,qBAAqB,EACrB,kBAAkB,EAElB,kBAAkB,EAClB,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MerkleTreeId } from '@aztec/circuit-types';
|
|
2
|
-
import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot, BaseRollupInputs, ConstantRollupData, Fr, KernelData, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MembershipWitness, MergeRollupInputs, NOTE_HASH_SUBTREE_HEIGHT, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_HEIGHT, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NullifierLeafPreimage, PUBLIC_DATA_SUBTREE_HEIGHT, PUBLIC_DATA_SUBTREE_SIBLING_PATH_LENGTH, PUBLIC_DATA_TREE_HEIGHT, PartialStateReference, PreviousRollupData, PublicDataHint, PublicDataTreeLeaf, PublicDataUpdateRequest, RootRollupInputs, StateDiffHints, VK_TREE_HEIGHT, } from '@aztec/circuits.js';
|
|
2
|
+
import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot, BaseRollupInputs, BlockMergeRollupInputs, BlockRootRollupInputs, ConstantRollupData, Fr, KernelData, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MembershipWitness, MergeRollupInputs, NOTE_HASH_SUBTREE_HEIGHT, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_HEIGHT, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NullifierLeafPreimage, PUBLIC_DATA_SUBTREE_HEIGHT, PUBLIC_DATA_SUBTREE_SIBLING_PATH_LENGTH, PUBLIC_DATA_TREE_HEIGHT, PartialStateReference, PreviousRollupBlockData, PreviousRollupData, PublicDataHint, PublicDataTreeLeaf, PublicDataUpdateRequest, RootRollupInputs, StateDiffHints, 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
5
|
import { assertLength, toFriendlyJSON } from '@aztec/foundation/serialize';
|
|
@@ -74,11 +74,19 @@ export function createMergeRollupInputs(left, right) {
|
|
|
74
74
|
]);
|
|
75
75
|
return mergeInputs;
|
|
76
76
|
}
|
|
77
|
+
// TODO(#7346): Integrate batch rollup circuits and test below
|
|
78
|
+
export function createBlockMergeRollupInputs(left, right) {
|
|
79
|
+
const mergeInputs = new BlockMergeRollupInputs([
|
|
80
|
+
getPreviousRollupBlockDataFromPublicInputs(left[0], left[1], left[2]),
|
|
81
|
+
getPreviousRollupBlockDataFromPublicInputs(right[0], right[1], right[2]),
|
|
82
|
+
]);
|
|
83
|
+
return mergeInputs;
|
|
84
|
+
}
|
|
77
85
|
// Validate that the roots of all local trees match the output of the root circuit simulation
|
|
78
|
-
export async function
|
|
86
|
+
export async function validateBlockRootOutput(blockRootOutput, blockHeader, db) {
|
|
79
87
|
await Promise.all([
|
|
80
|
-
validateState(
|
|
81
|
-
validateSimulatedTree(await getTreeSnapshot(MerkleTreeId.ARCHIVE, db),
|
|
88
|
+
validateState(blockHeader.state, db),
|
|
89
|
+
validateSimulatedTree(await getTreeSnapshot(MerkleTreeId.ARCHIVE, db), blockRootOutput.newArchive, 'Archive'),
|
|
82
90
|
]);
|
|
83
91
|
}
|
|
84
92
|
export async function validateState(state, db) {
|
|
@@ -89,8 +97,8 @@ export async function validateState(state, db) {
|
|
|
89
97
|
validatePartialState(state.partial, snapshots);
|
|
90
98
|
validateSimulatedTree(await getTreeSnapshot(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, db), state.l1ToL2MessageTree, 'L1ToL2MessageTree');
|
|
91
99
|
}
|
|
92
|
-
// Builds the inputs for the root rollup circuit, without making any changes to trees
|
|
93
|
-
export async function
|
|
100
|
+
// Builds the inputs for the block root rollup circuit, without making any changes to trees
|
|
101
|
+
export async function getBlockRootRollupInput(rollupOutputLeft, rollupProofLeft, verificationKeyLeft, rollupOutputRight, rollupProofRight, verificationKeyRight, l1ToL2Roots, newL1ToL2Messages, messageTreeSnapshot, messageTreeRootSiblingPath, db, proverId) {
|
|
94
102
|
const previousRollupData = [
|
|
95
103
|
getPreviousRollupDataFromPublicInputs(rollupOutputLeft, rollupProofLeft, verificationKeyLeft),
|
|
96
104
|
getPreviousRollupDataFromPublicInputs(rollupOutputRight, rollupProofRight, verificationKeyRight),
|
|
@@ -104,7 +112,7 @@ export async function getRootRollupInput(rollupOutputLeft, rollupProofLeft, veri
|
|
|
104
112
|
const startArchiveSnapshot = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
105
113
|
const newArchiveSiblingPathArray = await getRootTreeSiblingPath(MerkleTreeId.ARCHIVE);
|
|
106
114
|
const newArchiveSiblingPath = makeTuple(ARCHIVE_HEIGHT, i => (i < newArchiveSiblingPathArray.length ? newArchiveSiblingPathArray[i] : Fr.ZERO), 0);
|
|
107
|
-
return
|
|
115
|
+
return BlockRootRollupInputs.from({
|
|
108
116
|
previousRollupData,
|
|
109
117
|
l1ToL2Roots,
|
|
110
118
|
newL1ToL2Messages,
|
|
@@ -112,6 +120,20 @@ export async function getRootRollupInput(rollupOutputLeft, rollupProofLeft, veri
|
|
|
112
120
|
startL1ToL2MessageTreeSnapshot: messageTreeSnapshot,
|
|
113
121
|
startArchiveSnapshot,
|
|
114
122
|
newArchiveSiblingPath,
|
|
123
|
+
// TODO(#7346): Inject previous block hash (required when integrating batch rollup circuits)
|
|
124
|
+
previousBlockHash: Fr.ZERO,
|
|
125
|
+
proverId,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
// 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
|
+
export function getRootRollupInput(rollupOutputLeft, rollupProofLeft, verificationKeyLeft, rollupOutputRight, rollupProofRight, verificationKeyRight, proverId) {
|
|
131
|
+
const previousRollupData = [
|
|
132
|
+
getPreviousRollupBlockDataFromPublicInputs(rollupOutputLeft, rollupProofLeft, verificationKeyLeft),
|
|
133
|
+
getPreviousRollupBlockDataFromPublicInputs(rollupOutputRight, rollupProofRight, verificationKeyRight),
|
|
134
|
+
];
|
|
135
|
+
return RootRollupInputs.from({
|
|
136
|
+
previousRollupData,
|
|
115
137
|
proverId,
|
|
116
138
|
});
|
|
117
139
|
}
|
|
@@ -119,6 +141,10 @@ export function getPreviousRollupDataFromPublicInputs(rollupOutput, rollupProof,
|
|
|
119
141
|
const leafIndex = getVKIndex(vk);
|
|
120
142
|
return new PreviousRollupData(rollupOutput, rollupProof, vk, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
121
143
|
}
|
|
144
|
+
export function getPreviousRollupBlockDataFromPublicInputs(rollupOutput, rollupProof, vk) {
|
|
145
|
+
const leafIndex = getVKIndex(vk);
|
|
146
|
+
return new PreviousRollupBlockData(rollupOutput, rollupProof, vk, new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
147
|
+
}
|
|
122
148
|
export async function getConstantRollupData(globalVariables, db) {
|
|
123
149
|
return ConstantRollupData.from({
|
|
124
150
|
vkTreeRoot: getVKTreeRoot(),
|
|
@@ -224,4 +250,4 @@ export function validateTx(tx) {
|
|
|
224
250
|
throw new Error(`Empty public data tree in tx: ${toFriendlyJSON(tx)}`);
|
|
225
251
|
}
|
|
226
252
|
}
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsc0JBQXNCLEVBRXRCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsRUFBRSxFQUVGLFVBQVUsRUFFVixxQkFBcUIsRUFDckIsNENBQTRDLEVBQzVDLGlCQUFpQixFQUNqQixpQkFBaUIsRUFFakIsd0JBQXdCLEVBQ3hCLHFDQUFxQyxFQUNyQyx3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLHFCQUFxQixFQUVyQixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLHVDQUF1QyxFQUN2Qyx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2Qsa0JBQWtCLEVBRWxCLHVCQUF1QixFQUl2QixnQkFBZ0IsRUFFaEIsY0FBYyxFQUVkLGNBQWMsR0FHZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFjLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVloRixpR0FBaUc7QUFDakcsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsRUFBZSxFQUNmLEtBQTJELEVB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
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsc0JBQXNCLEVBRXRCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFFdEIscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixFQUFFLEVBR0YsVUFBVSxFQUVWLHFCQUFxQixFQUNyQiw0Q0FBNEMsRUFDNUMsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUVqQix3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLHdCQUF3QixFQUN4QixxQ0FBcUMsRUFDckMscUJBQXFCLEVBRXJCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsdUNBQXVDLEVBQ3ZDLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2Qsa0JBQWtCLEVBRWxCLHVCQUF1QixFQUl2QixnQkFBZ0IsRUFDaEIsY0FBYyxFQUVkLGNBQWMsR0FHZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFjLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVloRixpR0FBaUc7QUFDakcsTUFBTSxDQUFDLEtB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { ProvingOrchestrator } from './orchestrator.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ProcessedTx } from '@aztec/circuit-types';
|
|
2
|
-
import { type BlockProver, type
|
|
2
|
+
import { type BlockProver, type ProvingBlockResult, type ProvingTicket, type ServerCircuitProver } from '@aztec/circuit-types/interfaces';
|
|
3
3
|
import { Fr, type GlobalVariables } from '@aztec/circuits.js';
|
|
4
4
|
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
5
5
|
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
@@ -61,11 +61,17 @@ export declare class ProvingOrchestrator implements BlockProver {
|
|
|
61
61
|
* Cancel any further proving of the block
|
|
62
62
|
*/
|
|
63
63
|
cancelBlock(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Extract the block header from public inputs.
|
|
66
|
+
* TODO(#7346): Refactor this once new batch rollup circuits are integrated
|
|
67
|
+
* @returns The header of this proving state's block.
|
|
68
|
+
*/
|
|
69
|
+
private extractBlockHeader;
|
|
64
70
|
/**
|
|
65
71
|
* Performs the final tree update for the block and returns the fully proven block.
|
|
66
72
|
* @returns The fully proven block and proof.
|
|
67
73
|
*/
|
|
68
|
-
finaliseBlock(): Promise<
|
|
74
|
+
finaliseBlock(): Promise<ProvingBlockResult>;
|
|
69
75
|
/**
|
|
70
76
|
* Starts the proving process for the given transaction and adds it to our state
|
|
71
77
|
* @param tx - The transaction whose proving we wish to commence
|
|
@@ -85,10 +91,10 @@ export declare class ProvingOrchestrator implements BlockProver {
|
|
|
85
91
|
private enqueueBaseRollup;
|
|
86
92
|
private enqueueTube;
|
|
87
93
|
private enqueueMergeRollup;
|
|
88
|
-
private
|
|
94
|
+
private enqueueBlockRootRollup;
|
|
89
95
|
private enqueueBaseParityCircuit;
|
|
90
96
|
private enqueueRootParityCircuit;
|
|
91
|
-
private
|
|
97
|
+
private checkAndEnqueueBlockRootRollup;
|
|
92
98
|
/**
|
|
93
99
|
* Stores the inputs to a merge/root circuit and enqueues the circuit if ready
|
|
94
100
|
* @param provingState - The proving state being operated on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EASjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EASjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,WAAW,EAEhB,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAOL,EAAE,EACF,KAAK,eAAe,EAsBrB,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAoB/D;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IAQnD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,SAAS,CAA6C;IAE9D,OAAO,CAAC,OAAO,CAA6B;gBAGlC,EAAE,EAAE,oBAAoB,EACxB,MAAM,EAAE,mBAAmB,EACnC,eAAe,EAAE,eAAe,EACf,QAAQ,GAAE,EAAY;IAKzC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIxB;;OAEG;IACI,KAAK;IAIZ;;;;;;;OAOG;IAKU,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,GACnB,OAAO,CAAC,aAAa,CAAC;IAiFzB;;;OAGG;IAIU,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrD;;OAEG;IAYU,iBAAiB;IA2C9B,OAAO,CAAC,iBAAiB;IA4CzB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAmBhC;;OAEG;IACI,WAAW;IAQlB;;;;OAIG;YACW,kBAAkB;IAyChC;;;OAGG;IAQU,aAAa;IAqE1B;;;;OAIG;YACW,kBAAkB;IAShC,OAAO,CAAC,kBAAkB;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YA4DT,uBAAuB;IAwCrC,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,iBAAiB;IAgFzB,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,kBAAkB;YAiCZ,sBAAsB;IAoDpC,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,wBAAwB;YAmBlB,8BAA8B;IAQ5C;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IA0BrC;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAkDjB,OAAO,CAAC,sCAAsC;IAqB9C,OAAO,CAAC,4BAA4B;IAsCpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;CA+C5B"}
|