@aztec/stdlib 3.0.0-nightly.20250917 → 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 +6 -0
- package/dest/avm/avm.d.ts.map +1 -1
- 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 +7 -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/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 +170 -61
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +101 -39
- 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/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 +15 -40
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +70 -78
- 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/package.json +8 -8
- 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/block-builder.ts +1 -6
- package/src/interfaces/epoch-prover.ts +34 -10
- package/src/interfaces/proving-job.ts +166 -51
- 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/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 +124 -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/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
|
@@ -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>;
|
|
@@ -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,
|
|
@@ -8,7 +8,8 @@ import { encodeAbiParameters, parseAbiParameters } from 'viem';
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
|
|
10
10
|
import type { L2Block } from '../block/l2_block.js';
|
|
11
|
-
import {
|
|
11
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
12
|
+
import { StateReference } from '../tx/state_reference.js';
|
|
12
13
|
import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
|
|
13
14
|
|
|
14
15
|
export class ConsensusPayload implements Signable {
|
|
@@ -16,7 +17,7 @@ export class ConsensusPayload implements Signable {
|
|
|
16
17
|
|
|
17
18
|
constructor(
|
|
18
19
|
/** The proposed block header the attestation is made over */
|
|
19
|
-
public readonly header:
|
|
20
|
+
public readonly header: CheckpointHeader,
|
|
20
21
|
/** The archive root after the block is added */
|
|
21
22
|
public readonly archive: Fr,
|
|
22
23
|
/** The state reference after the block is added */
|
|
@@ -26,7 +27,7 @@ export class ConsensusPayload implements Signable {
|
|
|
26
27
|
static get schema() {
|
|
27
28
|
return z
|
|
28
29
|
.object({
|
|
29
|
-
header:
|
|
30
|
+
header: CheckpointHeader.schema,
|
|
30
31
|
archive: schemas.Fr,
|
|
31
32
|
stateReference: StateReference.schema,
|
|
32
33
|
})
|
|
@@ -66,7 +67,7 @@ export class ConsensusPayload implements Signable {
|
|
|
66
67
|
static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload {
|
|
67
68
|
const reader = BufferReader.asReader(buf);
|
|
68
69
|
const payload = new ConsensusPayload(
|
|
69
|
-
reader.readObject(
|
|
70
|
+
reader.readObject(CheckpointHeader),
|
|
70
71
|
reader.readObject(Fr),
|
|
71
72
|
reader.readObject(StateReference),
|
|
72
73
|
);
|
|
@@ -78,15 +79,15 @@ export class ConsensusPayload implements Signable {
|
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
static fromBlock(block: L2Block): ConsensusPayload {
|
|
81
|
-
return new ConsensusPayload(block.header.
|
|
82
|
+
return new ConsensusPayload(block.header.toCheckpointHeader(), block.archive.root, block.header.state);
|
|
82
83
|
}
|
|
83
84
|
|
|
84
85
|
static empty(): ConsensusPayload {
|
|
85
|
-
return new ConsensusPayload(
|
|
86
|
+
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, StateReference.empty());
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
static random(): ConsensusPayload {
|
|
89
|
-
return new ConsensusPayload(
|
|
90
|
+
return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), StateReference.random());
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
/**
|
package/src/proofs/proof_data.ts
CHANGED
|
@@ -23,14 +23,9 @@ export class ProofData<T extends Bufferable, PROOF_LENGTH extends number> {
|
|
|
23
23
|
publicInputs: {
|
|
24
24
|
fromBuffer: (reader: BufferReader) => T;
|
|
25
25
|
},
|
|
26
|
-
proofLength?: PROOF_LENGTH,
|
|
27
26
|
): ProofData<T, PROOF_LENGTH> {
|
|
28
27
|
const reader = BufferReader.asReader(buffer);
|
|
29
|
-
return new ProofData(
|
|
30
|
-
reader.readObject(publicInputs),
|
|
31
|
-
RecursiveProof.fromBuffer(reader, proofLength),
|
|
32
|
-
reader.readObject(VkData),
|
|
33
|
-
);
|
|
28
|
+
return new ProofData(reader.readObject(publicInputs), RecursiveProof.fromBuffer(reader), reader.readObject(VkData));
|
|
34
29
|
}
|
|
35
30
|
}
|
|
36
31
|
|
|
@@ -4,11 +4,16 @@ export enum ProvingRequestType {
|
|
|
4
4
|
PRIVATE_BASE_ROLLUP,
|
|
5
5
|
PUBLIC_BASE_ROLLUP,
|
|
6
6
|
MERGE_ROLLUP,
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
BLOCK_ROOT_FIRST_ROLLUP,
|
|
8
|
+
BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP,
|
|
9
|
+
BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP,
|
|
9
10
|
BLOCK_ROOT_ROLLUP,
|
|
10
|
-
|
|
11
|
+
BLOCK_ROOT_SINGLE_TX_ROLLUP,
|
|
11
12
|
BLOCK_MERGE_ROLLUP,
|
|
13
|
+
CHECKPOINT_ROOT_ROLLUP,
|
|
14
|
+
CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP,
|
|
15
|
+
CHECKPOINT_PADDING_ROLLUP,
|
|
16
|
+
CHECKPOINT_MERGE_ROLLUP,
|
|
12
17
|
ROOT_ROLLUP,
|
|
13
18
|
|
|
14
19
|
BASE_PARITY,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SpongeBlob } from '@aztec/blob-lib';
|
|
1
|
+
import { SpongeBlob } from '@aztec/blob-lib/types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
4
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|