@aztec/stdlib 3.0.0-nightly.20250916 → 3.0.0-nightly.20250918
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/avm/avm.d.ts +78 -1
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +20 -2
- package/dest/avm/avm_circuit_public_inputs.d.ts +6 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +11 -6
- package/dest/avm/avm_proving_request.d.ts +41 -0
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/block/body.d.ts +4 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +16 -5
- package/dest/block/index.d.ts +1 -0
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block.d.ts +8 -5
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +14 -7
- package/dest/block/l2_block_code_to_purge.d.ts +3 -14
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +23 -13
- package/dest/block/l2_block_header.d.ts +100 -0
- package/dest/block/l2_block_header.d.ts.map +1 -0
- package/dest/block/l2_block_header.js +146 -0
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
- package/dest/block/published_l2_block.d.ts +2 -2
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +1 -3
- package/dest/interfaces/aztec-node.d.ts +5 -2
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +1 -0
- package/dest/interfaces/block-builder.d.ts +1 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/epoch-prover.d.ts +25 -8
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +204 -61
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +101 -39
- package/dest/interfaces/pxe.d.ts +8 -1
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/pxe.js +1 -0
- package/dest/interfaces/server_circuit_prover.d.ts +19 -16
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +3 -2
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +4 -4
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_context_inputs.d.ts +2 -2
- package/dest/kernel/private_context_inputs.d.ts.map +1 -1
- package/dest/kernel/private_context_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +1 -1
- package/dest/messaging/inbox_leaf.d.ts +2 -0
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/inbox_leaf.js +3 -0
- package/dest/p2p/consensus_payload.d.ts +7 -6
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +7 -6
- package/dest/parity/root_parity_input.d.ts +1 -1
- package/dest/proofs/proof_data.d.ts +1 -1
- package/dest/proofs/proof_data.d.ts.map +1 -1
- package/dest/proofs/proof_data.js +2 -2
- package/dest/proofs/proving_request_type.d.ts +13 -8
- package/dest/proofs/proving_request_type.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.js +13 -8
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +1 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.js +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +12 -3
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +11 -5
- package/dest/rollup/block_constant_data.d.ts +20 -6
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.js +15 -7
- package/dest/rollup/block_merge_rollup.d.ts +10 -9
- package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
- package/dest/rollup/block_merge_rollup.js +14 -13
- package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/block_rollup_public_inputs.js +85 -0
- package/dest/rollup/block_root_rollup.d.ts +148 -184
- package/dest/rollup/block_root_rollup.d.ts.map +1 -1
- package/dest/rollup/block_root_rollup.js +211 -260
- package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
- package/dest/rollup/checkpoint_constant_data.js +55 -0
- package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +11 -12
- package/dest/rollup/checkpoint_header.d.ts.map +1 -0
- package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +9 -9
- package/dest/rollup/checkpoint_merge_rollup.d.ts +30 -0
- package/dest/rollup/checkpoint_merge_rollup.d.ts.map +1 -0
- package/dest/rollup/checkpoint_merge_rollup.js +37 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +105 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.js +105 -0
- package/dest/rollup/checkpoint_root_rollup.d.ts +117 -0
- package/dest/rollup/checkpoint_root_rollup.d.ts.map +1 -0
- package/dest/rollup/checkpoint_root_rollup.js +178 -0
- package/dest/rollup/epoch_constant_data.d.ts +19 -2
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/epoch_constant_data.js +20 -7
- package/dest/rollup/index.d.ts +8 -5
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +8 -5
- package/dest/rollup/rollup_proof_data.d.ts +10 -0
- package/dest/rollup/rollup_proof_data.d.ts.map +1 -0
- package/dest/rollup/rollup_proof_data.js +1 -0
- package/dest/rollup/root_rollup.d.ts +26 -23
- package/dest/rollup/root_rollup.d.ts.map +1 -1
- package/dest/rollup/root_rollup.js +28 -39
- package/dest/stats/stats.d.ts +1 -1
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +17 -41
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +76 -80
- package/dest/tests/mocks.d.ts +3 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +3 -3
- package/dest/tx/block_header.d.ts +12 -13
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +16 -21
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +0 -1
- package/dest/tx/index.d.ts +0 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- package/dest/tx/private_execution_result.d.ts +2 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +3 -3
- package/dest/tx/tx_constant_data.d.ts +4 -4
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_constant_data.js +6 -6
- package/dest/tx/tx_effect.d.ts +0 -3
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +2 -7
- package/dest/zkpassport/index.d.ts +3 -3
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +7 -7
- package/package.json +8 -8
- package/src/avm/avm.ts +22 -0
- package/src/avm/avm_circuit_public_inputs.ts +10 -0
- package/src/block/body.ts +23 -6
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +18 -8
- package/src/block/l2_block_code_to_purge.ts +30 -31
- package/src/block/l2_block_header.ts +232 -0
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
- package/src/block/test/l2_tips_store_test_suite.ts +1 -2
- package/src/interfaces/aztec-node.ts +8 -2
- package/src/interfaces/block-builder.ts +1 -6
- package/src/interfaces/epoch-prover.ts +34 -10
- package/src/interfaces/proving-job.ts +166 -51
- package/src/interfaces/pxe.ts +10 -1
- package/src/interfaces/server_circuit_prover.ts +65 -29
- package/src/interfaces/validator.ts +3 -2
- package/src/kernel/private_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_context_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +1 -1
- package/src/messaging/inbox_leaf.ts +5 -0
- package/src/p2p/consensus_payload.ts +8 -7
- package/src/proofs/proof_data.ts +1 -6
- package/src/proofs/proving_request_type.ts +8 -3
- package/src/rollup/base_or_merge_rollup_public_inputs.ts +1 -1
- package/src/rollup/base_rollup_hints.ts +9 -1
- package/src/rollup/block_constant_data.ts +13 -3
- package/src/rollup/block_merge_rollup.ts +13 -11
- package/src/rollup/block_rollup_public_inputs.ts +123 -0
- package/src/rollup/block_root_rollup.ts +209 -264
- package/src/rollup/checkpoint_constant_data.ts +84 -0
- package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +16 -17
- package/src/rollup/checkpoint_merge_rollup.ts +50 -0
- package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +26 -52
- package/src/rollup/checkpoint_root_rollup.ts +216 -0
- package/src/rollup/epoch_constant_data.ts +32 -8
- package/src/rollup/index.ts +8 -5
- package/src/rollup/rollup_proof_data.ts +12 -0
- package/src/rollup/root_rollup.ts +30 -41
- package/src/stats/stats.ts +8 -3
- package/src/tests/factories.ts +139 -135
- package/src/tests/mocks.ts +6 -13
- package/src/tx/block_header.ts +17 -32
- package/src/tx/global_variables.ts +0 -1
- package/src/tx/index.ts +0 -1
- package/src/tx/private_execution_result.ts +3 -3
- package/src/tx/tx_constant_data.ts +4 -4
- package/src/tx/tx_effect.ts +2 -7
- package/src/zkpassport/index.ts +6 -6
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
- package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
- package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
- package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
- package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
- package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_block_data.js +0 -37
- package/dest/tx/proposed_block_header.d.ts.map +0 -1
- package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
- package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
- package/src/rollup/previous_rollup_block_data.ts +0 -48
|
@@ -1,28 +1,55 @@
|
|
|
1
1
|
import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib';
|
|
2
2
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
3
4
|
|
|
4
|
-
import type { L2Block } from '../block/l2_block.js';
|
|
5
5
|
import type { Proof } from '../proofs/proof.js';
|
|
6
|
+
import type { CheckpointConstantData } from '../rollup/checkpoint_constant_data.js';
|
|
6
7
|
import type { RootRollupPublicInputs } from '../rollup/root_rollup.js';
|
|
7
8
|
import type { BlockHeader } from '../tx/block_header.js';
|
|
8
9
|
import type { Tx } from '../tx/tx.js';
|
|
10
|
+
import type { UInt64 } from '../types/index.js';
|
|
9
11
|
import type { IBlockFactory } from './block-builder.js';
|
|
10
12
|
|
|
11
13
|
/** Coordinates the proving of an entire epoch. */
|
|
12
|
-
export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted'> {
|
|
14
|
+
export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted' | 'startNewBlock'> {
|
|
13
15
|
/**
|
|
14
16
|
* Starts a new epoch. Must be the first method to be called.
|
|
15
17
|
* @param epochNumber - The epoch number.
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
+
* @param firstCheckpointNumber - The number of the first checkpoint in the epoch. Used to determine the correct order when checkpoints are added.
|
|
19
|
+
* @param totalNumCheckpoints - The total number of checkpoints expected in the epoch (must be at least one).
|
|
20
|
+
* @param finalBlobBatchingChallenges - The final blob batching challenges for the epoch.
|
|
18
21
|
**/
|
|
19
22
|
startNewEpoch(
|
|
20
23
|
epochNumber: number,
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
firstCheckpointNumber: Fr,
|
|
25
|
+
totalNumCheckpoints: number,
|
|
23
26
|
finalBlobBatchingChallenges: FinalBlobBatchingChallenges,
|
|
24
27
|
): void;
|
|
25
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Starts a new checkpoint.
|
|
31
|
+
* @param constants - The constants for this checkpoint.
|
|
32
|
+
* @param l1ToL2Messages - The set of L1 to L2 messages to be included in this checkpoint.
|
|
33
|
+
* @param totalNumBlocks - The total number of blocks expected in the checkpoint (must be at least one).
|
|
34
|
+
* @param totalNumBlobFields - The total number of blob fields expected in the checkpoint.
|
|
35
|
+
* @param headerOfLastBlockInPreviousCheckpoint - The header of the last block in the previous checkpoint.
|
|
36
|
+
*/
|
|
37
|
+
startNewCheckpoint(
|
|
38
|
+
constants: CheckpointConstantData,
|
|
39
|
+
l1ToL2Messages: Fr[],
|
|
40
|
+
totalNumBlocks: number,
|
|
41
|
+
totalNumBlobFields: number,
|
|
42
|
+
headerOfLastBlockInPreviousCheckpoint: BlockHeader,
|
|
43
|
+
): Promise<void>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Starts a new block.
|
|
47
|
+
* @param blockNumber - The block number.
|
|
48
|
+
* @param timestamp - The timestamp of the block.
|
|
49
|
+
* @param totalNumTxs - The total number of txs in the block.
|
|
50
|
+
*/
|
|
51
|
+
startNewBlock(blockNumber: number, timestamp: UInt64, totalNumTxs: number): Promise<void>;
|
|
52
|
+
|
|
26
53
|
/**
|
|
27
54
|
* Kickstarts tube circuits for the specified txs. These will be used during epoch proving.
|
|
28
55
|
* Note that if the tube circuits are not started this way, they will be started nontheless after processing.
|
|
@@ -30,7 +57,7 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted'> {
|
|
|
30
57
|
startTubeCircuits(txs: Tx[]): Promise<void>;
|
|
31
58
|
|
|
32
59
|
/** Returns the block. */
|
|
33
|
-
setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<
|
|
60
|
+
setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<BlockHeader>;
|
|
34
61
|
|
|
35
62
|
/** Pads the epoch with empty block roots if needed and blocks until proven. Throws if proving has failed. */
|
|
36
63
|
finalizeEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof; batchedBlobInputs: BatchedBlob }>;
|
|
@@ -41,9 +68,6 @@ export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted'> {
|
|
|
41
68
|
/** Returns an identifier for the prover or zero if not set. */
|
|
42
69
|
getProverId(): EthAddress;
|
|
43
70
|
|
|
44
|
-
/** Returns the block assembled at a given index (zero-based) within the epoch. */
|
|
45
|
-
getBlock(index: number): L2Block;
|
|
46
|
-
|
|
47
71
|
/** Called when no longer required, cleans up internal resources */
|
|
48
72
|
stop(): Promise<void>;
|
|
49
73
|
}
|
|
@@ -17,15 +17,27 @@ import { RootParityInputs } from '../parity/root_parity_inputs.js';
|
|
|
17
17
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
18
18
|
import { RecursiveProof } from '../proofs/recursive_proof.js';
|
|
19
19
|
import { BaseOrMergeRollupPublicInputs } from '../rollup/base_or_merge_rollup_public_inputs.js';
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup.js';
|
|
21
|
+
import { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
|
|
22
|
+
import {
|
|
23
|
+
BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
24
|
+
BlockRootFirstRollupPrivateInputs,
|
|
25
|
+
BlockRootRollupPrivateInputs,
|
|
26
|
+
BlockRootSingleTxFirstRollupPrivateInputs,
|
|
27
|
+
BlockRootSingleTxRollupPrivateInputs,
|
|
28
|
+
} from '../rollup/block_root_rollup.js';
|
|
29
|
+
import { CheckpointMergeRollupPrivateInputs } from '../rollup/checkpoint_merge_rollup.js';
|
|
30
|
+
import { CheckpointRollupPublicInputs } from '../rollup/checkpoint_rollup_public_inputs.js';
|
|
31
|
+
import {
|
|
32
|
+
CheckpointPaddingRollupPrivateInputs,
|
|
33
|
+
CheckpointRootRollupPrivateInputs,
|
|
34
|
+
CheckpointRootSingleBlockRollupPrivateInputs,
|
|
35
|
+
} from '../rollup/checkpoint_root_rollup.js';
|
|
36
|
+
import { PublicTubePrivateInputs } from '../rollup/index.js';
|
|
25
37
|
import { MergeRollupInputs } from '../rollup/merge_rollup.js';
|
|
26
38
|
import { PrivateBaseRollupInputs } from '../rollup/private_base_rollup_inputs.js';
|
|
27
39
|
import { PublicBaseRollupInputs } from '../rollup/public_base_rollup_inputs.js';
|
|
28
|
-
import {
|
|
40
|
+
import { RootRollupPrivateInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
|
|
29
41
|
import type { ServerCircuitName } from '../stats/index.js';
|
|
30
42
|
import { VerificationKeyData } from '../vks/verification_key.js';
|
|
31
43
|
|
|
@@ -87,16 +99,26 @@ export function mapProvingRequestTypeToCircuitName(type: ProvingRequestType): Se
|
|
|
87
99
|
return 'public-base-rollup';
|
|
88
100
|
case ProvingRequestType.MERGE_ROLLUP:
|
|
89
101
|
return 'merge-rollup';
|
|
90
|
-
case ProvingRequestType.
|
|
91
|
-
return '
|
|
92
|
-
case ProvingRequestType.
|
|
93
|
-
return '
|
|
102
|
+
case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP:
|
|
103
|
+
return 'block-root-first-rollup';
|
|
104
|
+
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP:
|
|
105
|
+
return 'block-root-single-tx-first-rollup';
|
|
106
|
+
case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP:
|
|
107
|
+
return 'block-root-empty-tx-first-rollup';
|
|
94
108
|
case ProvingRequestType.BLOCK_ROOT_ROLLUP:
|
|
95
109
|
return 'block-root-rollup';
|
|
96
|
-
case ProvingRequestType.
|
|
97
|
-
return 'single-tx-
|
|
110
|
+
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP:
|
|
111
|
+
return 'block-root-single-tx-rollup';
|
|
98
112
|
case ProvingRequestType.BLOCK_MERGE_ROLLUP:
|
|
99
113
|
return 'block-merge-rollup';
|
|
114
|
+
case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP:
|
|
115
|
+
return 'checkpoint-root-rollup';
|
|
116
|
+
case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP:
|
|
117
|
+
return 'checkpoint-root-single-block-rollup';
|
|
118
|
+
case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP:
|
|
119
|
+
return 'checkpoint-padding-rollup';
|
|
120
|
+
case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP:
|
|
121
|
+
return 'checkpoint-merge-rollup';
|
|
100
122
|
case ProvingRequestType.ROOT_ROLLUP:
|
|
101
123
|
return 'root-rollup';
|
|
102
124
|
case ProvingRequestType.BASE_PARITY:
|
|
@@ -118,18 +140,41 @@ export const ProvingJobInputs = z.discriminatedUnion('type', [
|
|
|
118
140
|
z.object({ type: z.literal(ProvingRequestType.PRIVATE_BASE_ROLLUP), inputs: PrivateBaseRollupInputs.schema }),
|
|
119
141
|
z.object({ type: z.literal(ProvingRequestType.PUBLIC_BASE_ROLLUP), inputs: PublicBaseRollupInputs.schema }),
|
|
120
142
|
z.object({ type: z.literal(ProvingRequestType.MERGE_ROLLUP), inputs: MergeRollupInputs.schema }),
|
|
121
|
-
z.object({ type: z.literal(ProvingRequestType.BLOCK_ROOT_ROLLUP), inputs: BlockRootRollupInputs.schema }),
|
|
122
143
|
z.object({
|
|
123
|
-
type: z.literal(ProvingRequestType.
|
|
124
|
-
inputs:
|
|
144
|
+
type: z.literal(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP),
|
|
145
|
+
inputs: BlockRootFirstRollupPrivateInputs.schema,
|
|
146
|
+
}),
|
|
147
|
+
z.object({
|
|
148
|
+
type: z.literal(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP),
|
|
149
|
+
inputs: BlockRootSingleTxFirstRollupPrivateInputs.schema,
|
|
125
150
|
}),
|
|
126
|
-
z.object({ type: z.literal(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP), inputs: EmptyBlockRootRollupInputs.schema }),
|
|
127
151
|
z.object({
|
|
128
|
-
type: z.literal(ProvingRequestType.
|
|
129
|
-
inputs:
|
|
152
|
+
type: z.literal(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP),
|
|
153
|
+
inputs: BlockRootEmptyTxFirstRollupPrivateInputs.schema,
|
|
130
154
|
}),
|
|
131
|
-
z.object({ type: z.literal(ProvingRequestType.
|
|
132
|
-
z.object({
|
|
155
|
+
z.object({ type: z.literal(ProvingRequestType.BLOCK_ROOT_ROLLUP), inputs: BlockRootRollupPrivateInputs.schema }),
|
|
156
|
+
z.object({
|
|
157
|
+
type: z.literal(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP),
|
|
158
|
+
inputs: BlockRootSingleTxRollupPrivateInputs.schema,
|
|
159
|
+
}),
|
|
160
|
+
z.object({ type: z.literal(ProvingRequestType.BLOCK_MERGE_ROLLUP), inputs: BlockMergeRollupPrivateInputs.schema }),
|
|
161
|
+
z.object({
|
|
162
|
+
type: z.literal(ProvingRequestType.CHECKPOINT_ROOT_ROLLUP),
|
|
163
|
+
inputs: CheckpointRootRollupPrivateInputs.schema,
|
|
164
|
+
}),
|
|
165
|
+
z.object({
|
|
166
|
+
type: z.literal(ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP),
|
|
167
|
+
inputs: CheckpointRootSingleBlockRollupPrivateInputs.schema,
|
|
168
|
+
}),
|
|
169
|
+
z.object({
|
|
170
|
+
type: z.literal(ProvingRequestType.CHECKPOINT_PADDING_ROLLUP),
|
|
171
|
+
inputs: CheckpointPaddingRollupPrivateInputs.schema,
|
|
172
|
+
}),
|
|
173
|
+
z.object({
|
|
174
|
+
type: z.literal(ProvingRequestType.CHECKPOINT_MERGE_ROLLUP),
|
|
175
|
+
inputs: CheckpointMergeRollupPrivateInputs.schema,
|
|
176
|
+
}),
|
|
177
|
+
z.object({ type: z.literal(ProvingRequestType.ROOT_ROLLUP), inputs: RootRollupPrivateInputs.schema }),
|
|
133
178
|
]);
|
|
134
179
|
|
|
135
180
|
export function getProvingJobInputClassFor(type: ProvingRequestType) {
|
|
@@ -144,18 +189,28 @@ export function getProvingJobInputClassFor(type: ProvingRequestType) {
|
|
|
144
189
|
return PublicBaseRollupInputs;
|
|
145
190
|
case ProvingRequestType.MERGE_ROLLUP:
|
|
146
191
|
return MergeRollupInputs;
|
|
147
|
-
case ProvingRequestType.
|
|
148
|
-
return
|
|
149
|
-
case ProvingRequestType.
|
|
150
|
-
return
|
|
192
|
+
case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP:
|
|
193
|
+
return BlockRootFirstRollupPrivateInputs;
|
|
194
|
+
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP:
|
|
195
|
+
return BlockRootSingleTxFirstRollupPrivateInputs;
|
|
196
|
+
case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP:
|
|
197
|
+
return BlockRootEmptyTxFirstRollupPrivateInputs;
|
|
151
198
|
case ProvingRequestType.BLOCK_ROOT_ROLLUP:
|
|
152
|
-
return
|
|
153
|
-
case ProvingRequestType.
|
|
154
|
-
return
|
|
199
|
+
return BlockRootRollupPrivateInputs;
|
|
200
|
+
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP:
|
|
201
|
+
return BlockRootSingleTxRollupPrivateInputs;
|
|
155
202
|
case ProvingRequestType.BLOCK_MERGE_ROLLUP:
|
|
156
|
-
return
|
|
203
|
+
return BlockMergeRollupPrivateInputs;
|
|
204
|
+
case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP:
|
|
205
|
+
return CheckpointRootRollupPrivateInputs;
|
|
206
|
+
case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP:
|
|
207
|
+
return CheckpointRootSingleBlockRollupPrivateInputs;
|
|
208
|
+
case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP:
|
|
209
|
+
return CheckpointPaddingRollupPrivateInputs;
|
|
210
|
+
case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP:
|
|
211
|
+
return CheckpointMergeRollupPrivateInputs;
|
|
157
212
|
case ProvingRequestType.ROOT_ROLLUP:
|
|
158
|
-
return
|
|
213
|
+
return RootRollupPrivateInputs;
|
|
159
214
|
case ProvingRequestType.BASE_PARITY:
|
|
160
215
|
return BaseParityInputs;
|
|
161
216
|
case ProvingRequestType.ROOT_PARITY:
|
|
@@ -175,12 +230,17 @@ export type ProvingJobInputsMap = {
|
|
|
175
230
|
[ProvingRequestType.PRIVATE_BASE_ROLLUP]: PrivateBaseRollupInputs;
|
|
176
231
|
[ProvingRequestType.PUBLIC_BASE_ROLLUP]: PublicBaseRollupInputs;
|
|
177
232
|
[ProvingRequestType.MERGE_ROLLUP]: MergeRollupInputs;
|
|
178
|
-
[ProvingRequestType.
|
|
179
|
-
[ProvingRequestType.
|
|
180
|
-
[ProvingRequestType.
|
|
181
|
-
[ProvingRequestType.
|
|
182
|
-
[ProvingRequestType.
|
|
183
|
-
[ProvingRequestType.
|
|
233
|
+
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: BlockRootFirstRollupPrivateInputs;
|
|
234
|
+
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: BlockRootSingleTxFirstRollupPrivateInputs;
|
|
235
|
+
[ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP]: BlockRootEmptyTxFirstRollupPrivateInputs;
|
|
236
|
+
[ProvingRequestType.BLOCK_ROOT_ROLLUP]: BlockRootRollupPrivateInputs;
|
|
237
|
+
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP]: BlockRootSingleTxRollupPrivateInputs;
|
|
238
|
+
[ProvingRequestType.BLOCK_MERGE_ROLLUP]: BlockMergeRollupPrivateInputs;
|
|
239
|
+
[ProvingRequestType.CHECKPOINT_ROOT_ROLLUP]: CheckpointRootRollupPrivateInputs;
|
|
240
|
+
[ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: CheckpointRootSingleBlockRollupPrivateInputs;
|
|
241
|
+
[ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: CheckpointPaddingRollupPrivateInputs;
|
|
242
|
+
[ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: CheckpointMergeRollupPrivateInputs;
|
|
243
|
+
[ProvingRequestType.ROOT_ROLLUP]: RootRollupPrivateInputs;
|
|
184
244
|
[ProvingRequestType.BASE_PARITY]: BaseParityInputs;
|
|
185
245
|
[ProvingRequestType.ROOT_PARITY]: RootParityInputs;
|
|
186
246
|
};
|
|
@@ -219,37 +279,72 @@ export const ProvingJobResult = z.discriminatedUnion('type', [
|
|
|
219
279
|
),
|
|
220
280
|
}),
|
|
221
281
|
z.object({
|
|
222
|
-
type: z.literal(ProvingRequestType.
|
|
282
|
+
type: z.literal(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP),
|
|
283
|
+
result: schemaForPublicInputsAndRecursiveProof(
|
|
284
|
+
BlockRollupPublicInputs.schema,
|
|
285
|
+
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
286
|
+
),
|
|
287
|
+
}),
|
|
288
|
+
z.object({
|
|
289
|
+
type: z.literal(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP),
|
|
223
290
|
result: schemaForPublicInputsAndRecursiveProof(
|
|
224
|
-
|
|
291
|
+
BlockRollupPublicInputs.schema,
|
|
225
292
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
226
293
|
),
|
|
227
294
|
}),
|
|
228
295
|
z.object({
|
|
229
|
-
type: z.literal(ProvingRequestType.
|
|
296
|
+
type: z.literal(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP),
|
|
230
297
|
result: schemaForPublicInputsAndRecursiveProof(
|
|
231
|
-
|
|
298
|
+
BlockRollupPublicInputs.schema,
|
|
232
299
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
233
300
|
),
|
|
234
301
|
}),
|
|
235
302
|
z.object({
|
|
236
303
|
type: z.literal(ProvingRequestType.BLOCK_ROOT_ROLLUP),
|
|
237
304
|
result: schemaForPublicInputsAndRecursiveProof(
|
|
238
|
-
|
|
305
|
+
BlockRollupPublicInputs.schema,
|
|
239
306
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
240
307
|
),
|
|
241
308
|
}),
|
|
242
309
|
z.object({
|
|
243
|
-
type: z.literal(ProvingRequestType.
|
|
310
|
+
type: z.literal(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP),
|
|
244
311
|
result: schemaForPublicInputsAndRecursiveProof(
|
|
245
|
-
|
|
312
|
+
BlockRollupPublicInputs.schema,
|
|
246
313
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
247
314
|
),
|
|
248
315
|
}),
|
|
249
316
|
z.object({
|
|
250
317
|
type: z.literal(ProvingRequestType.BLOCK_MERGE_ROLLUP),
|
|
251
318
|
result: schemaForPublicInputsAndRecursiveProof(
|
|
252
|
-
|
|
319
|
+
BlockRollupPublicInputs.schema,
|
|
320
|
+
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
321
|
+
),
|
|
322
|
+
}),
|
|
323
|
+
z.object({
|
|
324
|
+
type: z.literal(ProvingRequestType.CHECKPOINT_ROOT_ROLLUP),
|
|
325
|
+
result: schemaForPublicInputsAndRecursiveProof(
|
|
326
|
+
CheckpointRollupPublicInputs.schema,
|
|
327
|
+
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
328
|
+
),
|
|
329
|
+
}),
|
|
330
|
+
z.object({
|
|
331
|
+
type: z.literal(ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP),
|
|
332
|
+
result: schemaForPublicInputsAndRecursiveProof(
|
|
333
|
+
CheckpointRollupPublicInputs.schema,
|
|
334
|
+
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
335
|
+
),
|
|
336
|
+
}),
|
|
337
|
+
z.object({
|
|
338
|
+
type: z.literal(ProvingRequestType.CHECKPOINT_PADDING_ROLLUP),
|
|
339
|
+
result: schemaForPublicInputsAndRecursiveProof(
|
|
340
|
+
CheckpointRollupPublicInputs.schema,
|
|
341
|
+
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
342
|
+
),
|
|
343
|
+
}),
|
|
344
|
+
z.object({
|
|
345
|
+
type: z.literal(ProvingRequestType.CHECKPOINT_MERGE_ROLLUP),
|
|
346
|
+
result: schemaForPublicInputsAndRecursiveProof(
|
|
347
|
+
CheckpointRollupPublicInputs.schema,
|
|
253
348
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
254
349
|
),
|
|
255
350
|
}),
|
|
@@ -285,24 +380,44 @@ export type ProvingJobResultsMap = {
|
|
|
285
380
|
BaseOrMergeRollupPublicInputs,
|
|
286
381
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
287
382
|
>;
|
|
288
|
-
[ProvingRequestType.
|
|
289
|
-
|
|
383
|
+
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
384
|
+
BlockRollupPublicInputs,
|
|
290
385
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
291
386
|
>;
|
|
292
|
-
[ProvingRequestType.
|
|
293
|
-
|
|
387
|
+
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
388
|
+
BlockRollupPublicInputs,
|
|
294
389
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
295
390
|
>;
|
|
296
|
-
[ProvingRequestType.
|
|
297
|
-
|
|
391
|
+
[ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
392
|
+
BlockRollupPublicInputs,
|
|
298
393
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
299
394
|
>;
|
|
300
395
|
[ProvingRequestType.BLOCK_ROOT_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
301
|
-
|
|
396
|
+
BlockRollupPublicInputs,
|
|
397
|
+
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
398
|
+
>;
|
|
399
|
+
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
400
|
+
BlockRollupPublicInputs,
|
|
302
401
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
303
402
|
>;
|
|
304
403
|
[ProvingRequestType.BLOCK_MERGE_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
305
|
-
|
|
404
|
+
BlockRollupPublicInputs,
|
|
405
|
+
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
406
|
+
>;
|
|
407
|
+
[ProvingRequestType.CHECKPOINT_ROOT_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
408
|
+
CheckpointRollupPublicInputs,
|
|
409
|
+
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
410
|
+
>;
|
|
411
|
+
[ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
412
|
+
CheckpointRollupPublicInputs,
|
|
413
|
+
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
414
|
+
>;
|
|
415
|
+
[ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
416
|
+
CheckpointRollupPublicInputs,
|
|
417
|
+
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
418
|
+
>;
|
|
419
|
+
[ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: PublicInputsAndRecursiveProof<
|
|
420
|
+
CheckpointRollupPublicInputs,
|
|
306
421
|
typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
307
422
|
>;
|
|
308
423
|
[ProvingRequestType.ROOT_ROLLUP]: PublicInputsAndRecursiveProof<RootRollupPublicInputs>;
|
package/src/interfaces/pxe.ts
CHANGED
|
@@ -56,12 +56,20 @@ import {
|
|
|
56
56
|
*/
|
|
57
57
|
export interface PXE {
|
|
58
58
|
/**
|
|
59
|
-
* Returns whether an L1 to L2 message is synced by archiver
|
|
59
|
+
* Returns whether an L1 to L2 message is synced by archiver.
|
|
60
60
|
* @param l1ToL2Message - The L1 to L2 message to check.
|
|
61
61
|
* @returns Whether the message is synced and ready to be included in a block.
|
|
62
|
+
* @deprecated Use `waitForL1ToL2MessageReady` and `isL1ToL2MessageReady` instead.
|
|
62
63
|
*/
|
|
63
64
|
isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean>;
|
|
64
65
|
|
|
66
|
+
/**
|
|
67
|
+
* Returns the L2 block number in which this L1 to L2 message becomes available, or undefined if not found.
|
|
68
|
+
* @param l1ToL2Message - The L1 to L2 message to check.
|
|
69
|
+
* @returns The L2 block number or undefined if not synced yet.
|
|
70
|
+
*/
|
|
71
|
+
getL1ToL2MessageBlock(l1ToL2Message: Fr): Promise<number | undefined>;
|
|
72
|
+
|
|
65
73
|
/**
|
|
66
74
|
* Registers a user account in PXE given its master encryption private key.
|
|
67
75
|
* Once a new account is registered, the PXE Service will trial-decrypt all published notes on
|
|
@@ -447,6 +455,7 @@ const PXEInfoSchema = z.object({
|
|
|
447
455
|
|
|
448
456
|
export const PXESchema: ApiSchemaFor<PXE> = {
|
|
449
457
|
isL1ToL2MessageSynced: z.function().args(schemas.Fr).returns(z.boolean()),
|
|
458
|
+
getL1ToL2MessageBlock: z.function().args(schemas.Fr).returns(z.number().optional()),
|
|
450
459
|
registerAccount: z.function().args(schemas.Fr, schemas.Fr).returns(CompleteAddress.schema),
|
|
451
460
|
getRegisteredAccounts: z.function().returns(z.array(CompleteAddress.schema)),
|
|
452
461
|
registerSender: z.function().args(schemas.AztecAddress).returns(schemas.AztecAddress),
|
|
@@ -11,15 +11,27 @@ import type { BaseParityInputs } from '../parity/base_parity_inputs.js';
|
|
|
11
11
|
import type { ParityPublicInputs } from '../parity/parity_public_inputs.js';
|
|
12
12
|
import type { RootParityInputs } from '../parity/root_parity_inputs.js';
|
|
13
13
|
import type { BaseOrMergeRollupPublicInputs } from '../rollup/base_or_merge_rollup_public_inputs.js';
|
|
14
|
-
import type {
|
|
15
|
-
import type {
|
|
16
|
-
import type {
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
import type { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup.js';
|
|
15
|
+
import type { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
|
|
16
|
+
import type {
|
|
17
|
+
BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
18
|
+
BlockRootFirstRollupPrivateInputs,
|
|
19
|
+
BlockRootRollupPrivateInputs,
|
|
20
|
+
BlockRootSingleTxFirstRollupPrivateInputs,
|
|
21
|
+
BlockRootSingleTxRollupPrivateInputs,
|
|
22
|
+
} from '../rollup/block_root_rollup.js';
|
|
23
|
+
import type { CheckpointMergeRollupPrivateInputs } from '../rollup/checkpoint_merge_rollup.js';
|
|
24
|
+
import type { CheckpointRollupPublicInputs } from '../rollup/checkpoint_rollup_public_inputs.js';
|
|
25
|
+
import type {
|
|
26
|
+
CheckpointPaddingRollupPrivateInputs,
|
|
27
|
+
CheckpointRootRollupPrivateInputs,
|
|
28
|
+
CheckpointRootSingleBlockRollupPrivateInputs,
|
|
29
|
+
} from '../rollup/checkpoint_root_rollup.js';
|
|
30
|
+
import type { PublicTubePrivateInputs } from '../rollup/index.js';
|
|
19
31
|
import type { MergeRollupInputs } from '../rollup/merge_rollup.js';
|
|
20
32
|
import type { PrivateBaseRollupInputs } from '../rollup/private_base_rollup_inputs.js';
|
|
21
33
|
import type { PublicBaseRollupInputs } from '../rollup/public_base_rollup_inputs.js';
|
|
22
|
-
import type {
|
|
34
|
+
import type { RootRollupPrivateInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
|
|
23
35
|
import type { Tx } from '../tx/tx.js';
|
|
24
36
|
import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from './proving-job.js';
|
|
25
37
|
|
|
@@ -94,52 +106,76 @@ export interface ServerCircuitProver {
|
|
|
94
106
|
* Creates a proof for the given input.
|
|
95
107
|
* @param input - Input to the circuit.
|
|
96
108
|
*/
|
|
109
|
+
getBlockRootFirstRollupProof(
|
|
110
|
+
input: BlockRootFirstRollupPrivateInputs,
|
|
111
|
+
signal?: AbortSignal,
|
|
112
|
+
epochNumber?: number,
|
|
113
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
114
|
+
|
|
115
|
+
getBlockRootSingleTxFirstRollupProof(
|
|
116
|
+
input: BlockRootSingleTxFirstRollupPrivateInputs,
|
|
117
|
+
signal?: AbortSignal,
|
|
118
|
+
epochNumber?: number,
|
|
119
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
120
|
+
|
|
121
|
+
getBlockRootEmptyTxFirstRollupProof(
|
|
122
|
+
input: BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
123
|
+
signal?: AbortSignal,
|
|
124
|
+
epochNumber?: number,
|
|
125
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
126
|
+
|
|
97
127
|
getBlockRootRollupProof(
|
|
98
|
-
input:
|
|
128
|
+
input: BlockRootRollupPrivateInputs,
|
|
99
129
|
signal?: AbortSignal,
|
|
100
130
|
epochNumber?: number,
|
|
101
|
-
): Promise<
|
|
102
|
-
PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
103
|
-
>;
|
|
131
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
104
132
|
|
|
105
|
-
|
|
106
|
-
input:
|
|
133
|
+
getBlockRootSingleTxRollupProof(
|
|
134
|
+
input: BlockRootSingleTxRollupPrivateInputs,
|
|
107
135
|
signal?: AbortSignal,
|
|
108
136
|
epochNumber?: number,
|
|
109
|
-
): Promise<
|
|
110
|
-
PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
111
|
-
>;
|
|
137
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
112
138
|
|
|
113
139
|
/**
|
|
114
140
|
* Creates a proof for the given input.
|
|
115
141
|
* @param input - Input to the circuit.
|
|
116
142
|
*/
|
|
117
|
-
|
|
118
|
-
input:
|
|
143
|
+
getBlockMergeRollupProof(
|
|
144
|
+
input: BlockMergeRollupPrivateInputs,
|
|
145
|
+
signal?: AbortSignal,
|
|
146
|
+
epochNumber?: number,
|
|
147
|
+
): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
148
|
+
|
|
149
|
+
getCheckpointRootRollupProof(
|
|
150
|
+
input: CheckpointRootRollupPrivateInputs,
|
|
119
151
|
signal?: AbortSignal,
|
|
120
152
|
epochNumber?: number,
|
|
121
153
|
): Promise<
|
|
122
|
-
PublicInputsAndRecursiveProof<
|
|
154
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
123
155
|
>;
|
|
124
156
|
|
|
125
|
-
|
|
126
|
-
input:
|
|
157
|
+
getCheckpointRootSingleBlockRollupProof(
|
|
158
|
+
input: CheckpointRootSingleBlockRollupPrivateInputs,
|
|
127
159
|
signal?: AbortSignal,
|
|
128
160
|
epochNumber?: number,
|
|
129
161
|
): Promise<
|
|
130
|
-
PublicInputsAndRecursiveProof<
|
|
162
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
131
163
|
>;
|
|
132
164
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
165
|
+
getCheckpointPaddingRollupProof(
|
|
166
|
+
input: CheckpointPaddingRollupPrivateInputs,
|
|
167
|
+
signal?: AbortSignal,
|
|
168
|
+
epochNumber?: number,
|
|
169
|
+
): Promise<
|
|
170
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
171
|
+
>;
|
|
172
|
+
|
|
173
|
+
getCheckpointMergeRollupProof(
|
|
174
|
+
input: CheckpointMergeRollupPrivateInputs,
|
|
139
175
|
signal?: AbortSignal,
|
|
140
176
|
epochNumber?: number,
|
|
141
177
|
): Promise<
|
|
142
|
-
PublicInputsAndRecursiveProof<
|
|
178
|
+
PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
143
179
|
>;
|
|
144
180
|
|
|
145
181
|
/**
|
|
@@ -147,7 +183,7 @@ export interface ServerCircuitProver {
|
|
|
147
183
|
* @param input - Input to the circuit.
|
|
148
184
|
*/
|
|
149
185
|
getRootRollupProof(
|
|
150
|
-
input:
|
|
186
|
+
input: RootRollupPrivateInputs,
|
|
151
187
|
signal?: AbortSignal,
|
|
152
188
|
epochNumber?: number,
|
|
153
189
|
): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
|
|
@@ -5,12 +5,13 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
5
5
|
import { type ZodFor, schemas } from '@aztec/foundation/schemas';
|
|
6
6
|
import type { SequencerConfig, SlasherConfig } from '@aztec/stdlib/interfaces/server';
|
|
7
7
|
import type { BlockAttestation, BlockProposal, BlockProposalOptions } from '@aztec/stdlib/p2p';
|
|
8
|
-
import type {
|
|
8
|
+
import type { StateReference, Tx } from '@aztec/stdlib/tx';
|
|
9
9
|
|
|
10
10
|
import type { PeerId } from '@libp2p/interface';
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
|
|
13
13
|
import type { CommitteeAttestationsAndSigners } from '../block/index.js';
|
|
14
|
+
import type { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Validator client configuration
|
|
@@ -59,7 +60,7 @@ export interface Validator {
|
|
|
59
60
|
// Block validation responsibilities
|
|
60
61
|
createBlockProposal(
|
|
61
62
|
blockNumber: number,
|
|
62
|
-
header:
|
|
63
|
+
header: CheckpointHeader,
|
|
63
64
|
archive: Fr,
|
|
64
65
|
stateReference: StateReference,
|
|
65
66
|
txs: Tx[],
|
|
@@ -127,11 +127,11 @@ export class PrivateCircuitPublicInputs {
|
|
|
127
127
|
/**
|
|
128
128
|
* Header of a block whose state is used during private execution (not the block the transaction is included in).
|
|
129
129
|
*/
|
|
130
|
-
public
|
|
130
|
+
public anchorBlockHeader: BlockHeader,
|
|
131
131
|
/**
|
|
132
132
|
* Transaction context.
|
|
133
133
|
*
|
|
134
|
-
* Note: The chainId and version in the txContext are not redundant to the values in self.
|
|
134
|
+
* Note: The chainId and version in the txContext are not redundant to the values in self.anchor_block_header.global_variables because
|
|
135
135
|
* they can be different in case of a protocol upgrade. In such a situation we could be using header from a block
|
|
136
136
|
* before the upgrade took place but be using the updated protocol to execute and prove the transaction.
|
|
137
137
|
*/
|
|
@@ -261,7 +261,7 @@ export class PrivateCircuitPublicInputs {
|
|
|
261
261
|
this.contractClassLogsHashes.isEmpty() &&
|
|
262
262
|
this.startSideEffectCounter.isZero() &&
|
|
263
263
|
this.endSideEffectCounter.isZero() &&
|
|
264
|
-
this.
|
|
264
|
+
this.anchorBlockHeader.isEmpty() &&
|
|
265
265
|
this.txContext.isEmpty()
|
|
266
266
|
);
|
|
267
267
|
}
|
|
@@ -292,7 +292,7 @@ export class PrivateCircuitPublicInputs {
|
|
|
292
292
|
fields.contractClassLogsHashes,
|
|
293
293
|
fields.startSideEffectCounter,
|
|
294
294
|
fields.endSideEffectCounter,
|
|
295
|
-
fields.
|
|
295
|
+
fields.anchorBlockHeader,
|
|
296
296
|
fields.txContext,
|
|
297
297
|
] as const;
|
|
298
298
|
}
|
|
@@ -324,7 +324,7 @@ export class PrivateCircuitPublicInputs {
|
|
|
324
324
|
this.contractClassLogsHashes,
|
|
325
325
|
this.startSideEffectCounter,
|
|
326
326
|
this.endSideEffectCounter,
|
|
327
|
-
this.
|
|
327
|
+
this.anchorBlockHeader,
|
|
328
328
|
this.txContext,
|
|
329
329
|
]);
|
|
330
330
|
}
|
|
@@ -8,7 +8,7 @@ import { TxContext } from '../tx/tx_context.js';
|
|
|
8
8
|
export class PrivateContextInputs {
|
|
9
9
|
constructor(
|
|
10
10
|
public callContext: CallContext,
|
|
11
|
-
public
|
|
11
|
+
public anchorBlockHeader: BlockHeader,
|
|
12
12
|
public txContext: TxContext,
|
|
13
13
|
public startSideEffectCounter: number,
|
|
14
14
|
) {}
|
|
@@ -18,6 +18,6 @@ export class PrivateContextInputs {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
public toFields(): Fr[] {
|
|
21
|
-
return serializeToFields([this.callContext, this.
|
|
21
|
+
return serializeToFields([this.callContext, this.anchorBlockHeader, this.txContext, this.startSideEffectCounter]);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -170,7 +170,7 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
170
170
|
throw new Error('Private tail public inputs is not for rollup circuit.');
|
|
171
171
|
}
|
|
172
172
|
const constants = new TxConstantData(
|
|
173
|
-
this.constants.
|
|
173
|
+
this.constants.anchorBlockHeader,
|
|
174
174
|
this.constants.txContext,
|
|
175
175
|
this.constants.vkTreeRoot,
|
|
176
176
|
this.constants.protocolContractTreeRoot,
|