@aztec/stdlib 3.0.0-nightly.20250917 → 3.0.0-nightly.20250919
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 +2 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/epoch-prover.d.ts +26 -9
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +233 -125
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +120 -102
- package/dest/interfaces/pxe.d.ts +192 -90
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/pxe.js +5 -31
- package/dest/interfaces/server_circuit_prover.d.ts +31 -27
- 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/index.d.ts +2 -3
- package/dest/parity/index.d.ts.map +1 -1
- package/dest/parity/index.js +2 -3
- package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +6 -6
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
- package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +5 -5
- package/dest/parity/parity_root_private_inputs.d.ts +39 -0
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
- package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
- package/dest/proofs/proof_data.d.ts +4 -3
- 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 +16 -11
- package/dest/proofs/proving_request_type.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.js +16 -11
- 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 → block_merge_rollup_private_inputs.d.ts} +17 -10
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.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_private_inputs.d.ts +236 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
- 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_private_inputs.d.ts +30 -0
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.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_private_inputs.d.ts +123 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.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 +14 -12
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +14 -12
- package/dest/rollup/{private_base_rollup_inputs.d.ts → private_tx_base_rollup_private_inputs.d.ts} +7 -7
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{private_base_rollup_inputs.js → private_tx_base_rollup_private_inputs.js} +6 -6
- package/dest/rollup/{public_base_rollup_inputs.d.ts → public_tx_base_rollup_private_inputs.d.ts} +7 -7
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{public_base_rollup_inputs.js → public_tx_base_rollup_private_inputs.js} +6 -6
- package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/root_rollup_private_inputs.js +69 -0
- package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/root_rollup_public_inputs.js +71 -0
- package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
- package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +12 -12
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +14 -14
- package/dest/stats/stats.d.ts +1 -1
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +28 -68
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +90 -115
- 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 +2 -6
- package/src/interfaces/epoch-prover.ts +35 -11
- package/src/interfaces/proving-job.ts +199 -123
- package/src/interfaces/pxe.ts +3 -138
- package/src/interfaces/server_circuit_prover.ts +83 -52
- 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/parity/index.ts +2 -3
- package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +6 -6
- package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
- package/src/proofs/proof_data.ts +5 -8
- package/src/proofs/proving_request_type.ts +14 -8
- 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 → block_merge_rollup_private_inputs.ts} +15 -11
- package/src/rollup/block_rollup_public_inputs.ts +123 -0
- package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
- 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_private_inputs.ts +49 -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_private_inputs.ts +218 -0
- package/src/rollup/epoch_constant_data.ts +32 -8
- package/src/rollup/index.ts +14 -12
- package/src/rollup/{private_base_rollup_inputs.ts → private_tx_base_rollup_private_inputs.ts} +9 -9
- package/src/rollup/{public_base_rollup_inputs.ts → public_tx_base_rollup_private_inputs.ts} +9 -9
- package/src/rollup/root_rollup_private_inputs.ts +90 -0
- package/src/rollup/{root_rollup.ts → root_rollup_public_inputs.ts} +8 -104
- package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
- package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +12 -12
- package/src/stats/stats.ts +18 -12
- package/src/tests/factories.ts +144 -199
- 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/parity/base_parity_inputs.d.ts.map +0 -1
- package/dest/parity/root_parity_input.d.ts +0 -52
- package/dest/parity/root_parity_input.d.ts.map +0 -1
- package/dest/parity/root_parity_input.js +0 -50
- package/dest/parity/root_parity_inputs.d.ts +0 -37
- package/dest/parity/root_parity_inputs.d.ts.map +0 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
- package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
- 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/block_root_rollup.d.ts +0 -283
- package/dest/rollup/block_root_rollup.d.ts.map +0 -1
- package/dest/rollup/block_root_rollup.js +0 -306
- 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/merge_rollup.d.ts.map +0 -1
- 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/rollup/previous_rollup_data.d.ts +0 -47
- package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_data.js +0 -37
- package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/root_rollup.d.ts +0 -106
- package/dest/rollup/root_rollup.d.ts.map +0 -1
- package/dest/rollup/root_rollup.js +0 -147
- package/dest/tx/proposed_block_header.d.ts.map +0 -1
- package/src/parity/root_parity_input.ts +0 -71
- package/src/rollup/block_root_rollup.ts +0 -380
- 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
- package/src/rollup/previous_rollup_data.ts +0 -48
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { BlobAccumulatorPublicInputs, FinalBlobBatchingChallenges } from '@aztec/blob-lib';
|
|
2
|
+
import { ARCHIVE_HEIGHT, BLOBS_PER_BLOCK, FIELDS_PER_BLOB } from '@aztec/constants';
|
|
3
|
+
import { BLS12Point, Fr } from '@aztec/foundation/fields';
|
|
4
|
+
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
5
|
+
import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
6
|
+
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
7
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
8
|
+
|
|
9
|
+
import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
|
|
10
|
+
import { BlockHeader } from '../tx/block_header.js';
|
|
11
|
+
import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
|
|
12
|
+
|
|
13
|
+
export class CheckpointRootRollupHints {
|
|
14
|
+
constructor(
|
|
15
|
+
/**
|
|
16
|
+
* The header of the previous block before this checkpoint.
|
|
17
|
+
*/
|
|
18
|
+
public previousBlockHeader: BlockHeader,
|
|
19
|
+
/**
|
|
20
|
+
* Hint for checking the hash of previous_block_header is the last leaf of the previous archive.
|
|
21
|
+
*/
|
|
22
|
+
public previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
|
|
23
|
+
/**
|
|
24
|
+
* The current blob accumulation state across the epoch.
|
|
25
|
+
*/
|
|
26
|
+
public startBlobAccumulator: BlobAccumulatorPublicInputs,
|
|
27
|
+
/**
|
|
28
|
+
* Finalized challenges z and gamma for performing blob batching. Shared value across the epoch.
|
|
29
|
+
*/
|
|
30
|
+
public finalBlobChallenges: FinalBlobBatchingChallenges,
|
|
31
|
+
/**
|
|
32
|
+
* Flat list of all tx effects which will be added to the blob.
|
|
33
|
+
* Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
34
|
+
* Tuple<Fr, FIELDS_PER_BLOB * BLOBS_PER_BLOCK>
|
|
35
|
+
*/
|
|
36
|
+
public blobFields: Fr[],
|
|
37
|
+
/**
|
|
38
|
+
* KZG commitments representing the blob (precomputed in ts, injected to use inside circuit).
|
|
39
|
+
*/
|
|
40
|
+
public blobCommitments: Tuple<BLS12Point, typeof BLOBS_PER_BLOCK>,
|
|
41
|
+
/**
|
|
42
|
+
* The hash of eth blob hashes for this block
|
|
43
|
+
* See yarn-project/foundation/src/blob/index.ts or body.ts for calculation
|
|
44
|
+
*/
|
|
45
|
+
public blobsHash: Fr,
|
|
46
|
+
) {}
|
|
47
|
+
|
|
48
|
+
static from(fields: FieldsOf<CheckpointRootRollupHints>) {
|
|
49
|
+
return new CheckpointRootRollupHints(...CheckpointRootRollupHints.getFields(fields));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static getFields(fields: FieldsOf<CheckpointRootRollupHints>) {
|
|
53
|
+
return [
|
|
54
|
+
fields.previousBlockHeader,
|
|
55
|
+
fields.previousArchiveSiblingPath,
|
|
56
|
+
fields.startBlobAccumulator,
|
|
57
|
+
fields.finalBlobChallenges,
|
|
58
|
+
fields.blobFields,
|
|
59
|
+
fields.blobCommitments,
|
|
60
|
+
fields.blobsHash,
|
|
61
|
+
] as const;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
toBuffer() {
|
|
65
|
+
return serializeToBuffer(...CheckpointRootRollupHints.getFields(this));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
69
|
+
const reader = BufferReader.asReader(buffer);
|
|
70
|
+
return new CheckpointRootRollupHints(
|
|
71
|
+
BlockHeader.fromBuffer(reader),
|
|
72
|
+
reader.readArray(ARCHIVE_HEIGHT, Fr),
|
|
73
|
+
reader.readObject(BlobAccumulatorPublicInputs),
|
|
74
|
+
reader.readObject(FinalBlobBatchingChallenges),
|
|
75
|
+
// Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
76
|
+
// reader.readArray(FIELDS_PER_BLOB, Fr),
|
|
77
|
+
Array.from({ length: FIELDS_PER_BLOB * BLOBS_PER_BLOCK }, () => Fr.fromBuffer(reader)),
|
|
78
|
+
reader.readArray(BLOBS_PER_BLOCK, BLS12Point),
|
|
79
|
+
Fr.fromBuffer(reader),
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
toString() {
|
|
84
|
+
return bufferToHex(this.toBuffer());
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
static fromString(str: string) {
|
|
88
|
+
return CheckpointRootRollupHints.fromBuffer(hexToBuffer(str));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
toJSON() {
|
|
92
|
+
return this.toBuffer();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
static get schema() {
|
|
96
|
+
return bufferSchemaFor(CheckpointRootRollupHints);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export class CheckpointRootRollupPrivateInputs {
|
|
101
|
+
constructor(
|
|
102
|
+
public previousRollups: [
|
|
103
|
+
RollupHonkProofData<BlockRollupPublicInputs>,
|
|
104
|
+
RollupHonkProofData<BlockRollupPublicInputs>,
|
|
105
|
+
],
|
|
106
|
+
public hints: CheckpointRootRollupHints,
|
|
107
|
+
) {}
|
|
108
|
+
|
|
109
|
+
static from(fields: FieldsOf<CheckpointRootRollupPrivateInputs>) {
|
|
110
|
+
return new CheckpointRootRollupPrivateInputs(...CheckpointRootRollupPrivateInputs.getFields(fields));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
static getFields(fields: FieldsOf<CheckpointRootRollupPrivateInputs>) {
|
|
114
|
+
return [fields.previousRollups, fields.hints] as const;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
toBuffer() {
|
|
118
|
+
return serializeToBuffer(...CheckpointRootRollupPrivateInputs.getFields(this));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
122
|
+
const reader = BufferReader.asReader(buffer);
|
|
123
|
+
return new CheckpointRootRollupPrivateInputs(
|
|
124
|
+
[ProofData.fromBuffer(reader, BlockRollupPublicInputs), ProofData.fromBuffer(reader, BlockRollupPublicInputs)],
|
|
125
|
+
CheckpointRootRollupHints.fromBuffer(reader),
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
toString() {
|
|
130
|
+
return bufferToHex(this.toBuffer());
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
static fromString(str: string) {
|
|
134
|
+
return CheckpointRootRollupPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
toJSON() {
|
|
138
|
+
return this.toBuffer();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
static get schema() {
|
|
142
|
+
return bufferSchemaFor(CheckpointRootRollupPrivateInputs);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export class CheckpointRootSingleBlockRollupPrivateInputs {
|
|
147
|
+
constructor(
|
|
148
|
+
public previousRollup: RollupHonkProofData<BlockRollupPublicInputs>,
|
|
149
|
+
public hints: CheckpointRootRollupHints,
|
|
150
|
+
) {}
|
|
151
|
+
|
|
152
|
+
static from(fields: FieldsOf<CheckpointRootSingleBlockRollupPrivateInputs>) {
|
|
153
|
+
return new CheckpointRootSingleBlockRollupPrivateInputs(
|
|
154
|
+
...CheckpointRootSingleBlockRollupPrivateInputs.getFields(fields),
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
static getFields(fields: FieldsOf<CheckpointRootSingleBlockRollupPrivateInputs>) {
|
|
159
|
+
return [fields.previousRollup, fields.hints] as const;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
toBuffer() {
|
|
163
|
+
return serializeToBuffer(...CheckpointRootSingleBlockRollupPrivateInputs.getFields(this));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
167
|
+
const reader = BufferReader.asReader(buffer);
|
|
168
|
+
return new CheckpointRootSingleBlockRollupPrivateInputs(
|
|
169
|
+
ProofData.fromBuffer(reader, BlockRollupPublicInputs),
|
|
170
|
+
CheckpointRootRollupHints.fromBuffer(reader),
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
toString() {
|
|
175
|
+
return bufferToHex(this.toBuffer());
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
static fromString(str: string) {
|
|
179
|
+
return CheckpointRootSingleBlockRollupPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
toJSON() {
|
|
183
|
+
return this.toBuffer();
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
static get schema() {
|
|
187
|
+
return bufferSchemaFor(CheckpointRootSingleBlockRollupPrivateInputs);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Checkpoint padding circuit does not have any private inputs.
|
|
192
|
+
export class CheckpointPaddingRollupPrivateInputs {
|
|
193
|
+
constructor() {}
|
|
194
|
+
|
|
195
|
+
toBuffer() {
|
|
196
|
+
return Buffer.alloc(0);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
static fromBuffer(_buffer: Buffer | BufferReader) {
|
|
200
|
+
return new CheckpointPaddingRollupPrivateInputs();
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
toString(): `0x${string}` {
|
|
204
|
+
return '0x';
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
static fromString(_str: string) {
|
|
208
|
+
return new CheckpointPaddingRollupPrivateInputs();
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
toJSON() {
|
|
212
|
+
return this.toBuffer();
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
static get schema() {
|
|
216
|
+
return bufferSchemaFor(CheckpointPaddingRollupPrivateInputs);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
2
|
+
import { BufferReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
3
3
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -7,6 +7,14 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
7
7
|
*/
|
|
8
8
|
export class EpochConstantData {
|
|
9
9
|
constructor(
|
|
10
|
+
/**
|
|
11
|
+
* ChainId of the rollup.
|
|
12
|
+
*/
|
|
13
|
+
public chainId: Fr,
|
|
14
|
+
/**
|
|
15
|
+
* Version of the rollup.
|
|
16
|
+
*/
|
|
17
|
+
public version: Fr,
|
|
10
18
|
/**
|
|
11
19
|
* Root of the verification key tree.
|
|
12
20
|
*/
|
|
@@ -25,20 +33,36 @@ export class EpochConstantData {
|
|
|
25
33
|
return new EpochConstantData(...EpochConstantData.getFields(fields));
|
|
26
34
|
}
|
|
27
35
|
|
|
28
|
-
static
|
|
29
|
-
|
|
30
|
-
|
|
36
|
+
static getFields(fields: FieldsOf<EpochConstantData>) {
|
|
37
|
+
return [
|
|
38
|
+
fields.chainId,
|
|
39
|
+
fields.version,
|
|
40
|
+
fields.vkTreeRoot,
|
|
41
|
+
fields.protocolContractTreeRoot,
|
|
42
|
+
fields.proverId,
|
|
43
|
+
] as const;
|
|
31
44
|
}
|
|
32
45
|
|
|
33
|
-
|
|
34
|
-
return
|
|
46
|
+
toFields(): Fr[] {
|
|
47
|
+
return serializeToFields(...EpochConstantData.getFields(this));
|
|
35
48
|
}
|
|
36
49
|
|
|
37
|
-
static
|
|
38
|
-
|
|
50
|
+
static fromBuffer(buffer: Buffer | BufferReader): EpochConstantData {
|
|
51
|
+
const reader = BufferReader.asReader(buffer);
|
|
52
|
+
return new EpochConstantData(
|
|
53
|
+
Fr.fromBuffer(reader),
|
|
54
|
+
Fr.fromBuffer(reader),
|
|
55
|
+
Fr.fromBuffer(reader),
|
|
56
|
+
Fr.fromBuffer(reader),
|
|
57
|
+
Fr.fromBuffer(reader),
|
|
58
|
+
);
|
|
39
59
|
}
|
|
40
60
|
|
|
41
61
|
toBuffer() {
|
|
42
62
|
return serializeToBuffer(...EpochConstantData.getFields(this));
|
|
43
63
|
}
|
|
64
|
+
|
|
65
|
+
static empty() {
|
|
66
|
+
return new EpochConstantData(Fr.ZERO, Fr.ZERO, Fr.ZERO, Fr.ZERO, Fr.ZERO);
|
|
67
|
+
}
|
|
44
68
|
}
|
package/src/rollup/index.ts
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
export * from './avm_proof_data.js';
|
|
2
|
-
export * from './base_or_merge_rollup_public_inputs.js';
|
|
3
2
|
export * from './base_rollup_hints.js';
|
|
4
3
|
export * from './block_constant_data.js';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
4
|
+
export * from './block_merge_rollup_private_inputs.js';
|
|
5
|
+
export * from './block_rollup_public_inputs.js';
|
|
6
|
+
export * from './block_root_rollup_private_inputs.js';
|
|
7
|
+
export * from './checkpoint_constant_data.js';
|
|
8
|
+
export * from './checkpoint_header.js';
|
|
9
|
+
export * from './checkpoint_merge_rollup_private_inputs.js';
|
|
10
|
+
export * from './checkpoint_rollup_public_inputs.js';
|
|
11
|
+
export * from './checkpoint_root_rollup_private_inputs.js';
|
|
8
12
|
export * from './epoch_constant_data.js';
|
|
9
|
-
export * from './
|
|
10
|
-
export * from './
|
|
11
|
-
export * from './padding_block_root_rollup_inputs.js';
|
|
12
|
-
export * from './previous_rollup_block_data.js';
|
|
13
|
-
export * from './previous_rollup_data.js';
|
|
14
|
-
export * from './private_base_rollup_inputs.js';
|
|
15
|
-
export * from './public_base_rollup_inputs.js';
|
|
13
|
+
export * from './private_tx_base_rollup_private_inputs.js';
|
|
14
|
+
export * from './public_tx_base_rollup_private_inputs.js';
|
|
16
15
|
export * from './public_tube_private_inputs.js';
|
|
17
|
-
export * from './
|
|
16
|
+
export * from './root_rollup_private_inputs.js';
|
|
17
|
+
export * from './root_rollup_public_inputs.js';
|
|
18
18
|
export * from './state_diff_hints.js';
|
|
19
|
+
export * from './tx_merge_rollup_private_inputs.js';
|
|
20
|
+
export * from './tx_rollup_public_inputs.js';
|
package/src/rollup/{private_base_rollup_inputs.ts → private_tx_base_rollup_private_inputs.ts}
RENAMED
|
@@ -7,34 +7,34 @@ import { PrivateToRollupKernelCircuitPublicInputs } from '../kernel/private_to_r
|
|
|
7
7
|
import { type CivcProofData, ProofData } from '../proofs/proof_data.js';
|
|
8
8
|
import { PrivateBaseRollupHints } from './base_rollup_hints.js';
|
|
9
9
|
|
|
10
|
-
export class
|
|
10
|
+
export class PrivateTxBaseRollupPrivateInputs {
|
|
11
11
|
constructor(
|
|
12
12
|
public hidingKernelProofData: CivcProofData<PrivateToRollupKernelCircuitPublicInputs>,
|
|
13
13
|
public hints: PrivateBaseRollupHints,
|
|
14
14
|
) {}
|
|
15
15
|
|
|
16
|
-
static from(fields: FieldsOf<
|
|
17
|
-
return new
|
|
16
|
+
static from(fields: FieldsOf<PrivateTxBaseRollupPrivateInputs>): PrivateTxBaseRollupPrivateInputs {
|
|
17
|
+
return new PrivateTxBaseRollupPrivateInputs(...PrivateTxBaseRollupPrivateInputs.getFields(fields));
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
static getFields(fields: FieldsOf<
|
|
20
|
+
static getFields(fields: FieldsOf<PrivateTxBaseRollupPrivateInputs>) {
|
|
21
21
|
return [fields.hidingKernelProofData, fields.hints] as const;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
24
|
+
static fromBuffer(buffer: Buffer | BufferReader): PrivateTxBaseRollupPrivateInputs {
|
|
25
25
|
const reader = BufferReader.asReader(buffer);
|
|
26
|
-
return new
|
|
26
|
+
return new PrivateTxBaseRollupPrivateInputs(
|
|
27
27
|
ProofData.fromBuffer(reader, PrivateToRollupKernelCircuitPublicInputs),
|
|
28
28
|
reader.readObject(PrivateBaseRollupHints),
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
toBuffer() {
|
|
33
|
-
return serializeToBuffer(...
|
|
33
|
+
return serializeToBuffer(...PrivateTxBaseRollupPrivateInputs.getFields(this));
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
static fromString(str: string) {
|
|
37
|
-
return
|
|
37
|
+
return PrivateTxBaseRollupPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
toString() {
|
|
@@ -48,6 +48,6 @@ export class PrivateBaseRollupInputs {
|
|
|
48
48
|
|
|
49
49
|
/** Creates an instance from a hex string. */
|
|
50
50
|
static get schema() {
|
|
51
|
-
return bufferSchemaFor(
|
|
51
|
+
return bufferSchemaFor(PrivateTxBaseRollupPrivateInputs);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -8,24 +8,24 @@ import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
|
|
|
8
8
|
import { AvmProofData } from './avm_proof_data.js';
|
|
9
9
|
import { PublicBaseRollupHints } from './base_rollup_hints.js';
|
|
10
10
|
|
|
11
|
-
export class
|
|
11
|
+
export class PublicTxBaseRollupPrivateInputs {
|
|
12
12
|
constructor(
|
|
13
13
|
public publicTubeProofData: RollupHonkProofData<PrivateToPublicKernelCircuitPublicInputs>,
|
|
14
14
|
public avmProofData: AvmProofData,
|
|
15
15
|
public hints: PublicBaseRollupHints,
|
|
16
16
|
) {}
|
|
17
17
|
|
|
18
|
-
static from(fields: FieldsOf<
|
|
19
|
-
return new
|
|
18
|
+
static from(fields: FieldsOf<PublicTxBaseRollupPrivateInputs>): PublicTxBaseRollupPrivateInputs {
|
|
19
|
+
return new PublicTxBaseRollupPrivateInputs(...PublicTxBaseRollupPrivateInputs.getFields(fields));
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
static getFields(fields: FieldsOf<
|
|
22
|
+
static getFields(fields: FieldsOf<PublicTxBaseRollupPrivateInputs>) {
|
|
23
23
|
return [fields.publicTubeProofData, fields.avmProofData, fields.hints] as const;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
26
|
+
static fromBuffer(buffer: Buffer | BufferReader): PublicTxBaseRollupPrivateInputs {
|
|
27
27
|
const reader = BufferReader.asReader(buffer);
|
|
28
|
-
return new
|
|
28
|
+
return new PublicTxBaseRollupPrivateInputs(
|
|
29
29
|
ProofData.fromBuffer(reader, PrivateToPublicKernelCircuitPublicInputs),
|
|
30
30
|
reader.readObject(AvmProofData),
|
|
31
31
|
reader.readObject(PublicBaseRollupHints),
|
|
@@ -33,11 +33,11 @@ export class PublicBaseRollupInputs {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
toBuffer() {
|
|
36
|
-
return serializeToBuffer(...
|
|
36
|
+
return serializeToBuffer(...PublicTxBaseRollupPrivateInputs.getFields(this));
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
static fromString(str: string) {
|
|
40
|
-
return
|
|
40
|
+
return PublicTxBaseRollupPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
toString() {
|
|
@@ -51,6 +51,6 @@ export class PublicBaseRollupInputs {
|
|
|
51
51
|
|
|
52
52
|
/** Creates an instance from a string. */
|
|
53
53
|
static get schema() {
|
|
54
|
-
return bufferSchemaFor(
|
|
54
|
+
return bufferSchemaFor(PublicTxBaseRollupPrivateInputs);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
2
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
4
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
|
+
|
|
6
|
+
import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
|
|
7
|
+
import { CheckpointRollupPublicInputs } from './checkpoint_rollup_public_inputs.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents inputs of the root rollup circuit.
|
|
11
|
+
*/
|
|
12
|
+
export class RootRollupPrivateInputs {
|
|
13
|
+
constructor(
|
|
14
|
+
/**
|
|
15
|
+
* The previous rollup data.
|
|
16
|
+
* Note: Root rollup circuit is the latest circuit the chain of circuits and the previous rollup data is the data
|
|
17
|
+
* from 2 checkpoint root/merge/padding circuits.
|
|
18
|
+
*/
|
|
19
|
+
public previousRollups: [
|
|
20
|
+
RollupHonkProofData<CheckpointRollupPublicInputs>,
|
|
21
|
+
RollupHonkProofData<CheckpointRollupPublicInputs>,
|
|
22
|
+
],
|
|
23
|
+
) {}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Serializes the inputs to a buffer.
|
|
27
|
+
* @returns - The inputs serialized to a buffer.
|
|
28
|
+
*/
|
|
29
|
+
toBuffer() {
|
|
30
|
+
return serializeToBuffer(...RootRollupPrivateInputs.getFields(this));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Serializes the inputs to a hex string.
|
|
35
|
+
* @returns The instance serialized to a hex string.
|
|
36
|
+
*/
|
|
37
|
+
toString() {
|
|
38
|
+
return bufferToHex(this.toBuffer());
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new instance from fields.
|
|
43
|
+
* @param fields - Fields to create the instance from.
|
|
44
|
+
* @returns A new RootRollupPrivateInputs instance.
|
|
45
|
+
*/
|
|
46
|
+
static from(fields: FieldsOf<RootRollupPrivateInputs>) {
|
|
47
|
+
return new RootRollupPrivateInputs(...RootRollupPrivateInputs.getFields(fields));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Extracts fields from an instance.
|
|
52
|
+
* @param fields - Fields to create the instance from.
|
|
53
|
+
* @returns An array of fields.
|
|
54
|
+
*/
|
|
55
|
+
static getFields(fields: FieldsOf<RootRollupPrivateInputs>) {
|
|
56
|
+
return [fields.previousRollups] as const;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Deserializes the inputs from a buffer.
|
|
61
|
+
* @param buffer - A buffer to deserialize from.
|
|
62
|
+
* @returns A new RootRollupPrivateInputs instance.
|
|
63
|
+
*/
|
|
64
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
65
|
+
const reader = BufferReader.asReader(buffer);
|
|
66
|
+
return new RootRollupPrivateInputs([
|
|
67
|
+
ProofData.fromBuffer(reader, CheckpointRollupPublicInputs),
|
|
68
|
+
ProofData.fromBuffer(reader, CheckpointRollupPublicInputs),
|
|
69
|
+
]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Deserializes the inputs from a hex string.
|
|
74
|
+
* @param str - A hex string to deserialize from.
|
|
75
|
+
* @returns A new RootRollupPrivateInputs instance.
|
|
76
|
+
*/
|
|
77
|
+
static fromString(str: string) {
|
|
78
|
+
return RootRollupPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Returns a representation for JSON serialization. */
|
|
82
|
+
toJSON() {
|
|
83
|
+
return this.toBuffer();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Creates an instance from a string. */
|
|
87
|
+
static get schema() {
|
|
88
|
+
return bufferSchemaFor(RootRollupPrivateInputs);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -7,88 +7,8 @@ import { BufferReader, type Tuple, serializeToBuffer, serializeToFields } from '
|
|
|
7
7
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
8
8
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
9
9
|
|
|
10
|
-
import { FeeRecipient } from './
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Represents inputs of the root rollup circuit.
|
|
15
|
-
*/
|
|
16
|
-
export class RootRollupInputs {
|
|
17
|
-
constructor(
|
|
18
|
-
/**
|
|
19
|
-
* The previous rollup data.
|
|
20
|
-
* Note: Root rollup circuit is the latest circuit the chain of circuits and the previous rollup data is the data
|
|
21
|
-
* from 2 block merge circuits.
|
|
22
|
-
*/
|
|
23
|
-
public previousRollupData: [PreviousRollupBlockData, PreviousRollupBlockData],
|
|
24
|
-
) {}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Serializes the inputs to a buffer.
|
|
28
|
-
* @returns - The inputs serialized to a buffer.
|
|
29
|
-
*/
|
|
30
|
-
toBuffer() {
|
|
31
|
-
return serializeToBuffer(...RootRollupInputs.getFields(this));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Serializes the inputs to a hex string.
|
|
36
|
-
* @returns The instance serialized to a hex string.
|
|
37
|
-
*/
|
|
38
|
-
toString() {
|
|
39
|
-
return bufferToHex(this.toBuffer());
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Creates a new instance from fields.
|
|
44
|
-
* @param fields - Fields to create the instance from.
|
|
45
|
-
* @returns A new RootRollupInputs instance.
|
|
46
|
-
*/
|
|
47
|
-
static from(fields: FieldsOf<RootRollupInputs>): RootRollupInputs {
|
|
48
|
-
return new RootRollupInputs(...RootRollupInputs.getFields(fields));
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Extracts fields from an instance.
|
|
53
|
-
* @param fields - Fields to create the instance from.
|
|
54
|
-
* @returns An array of fields.
|
|
55
|
-
*/
|
|
56
|
-
static getFields(fields: FieldsOf<RootRollupInputs>) {
|
|
57
|
-
return [fields.previousRollupData] as const;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Deserializes the inputs from a buffer.
|
|
62
|
-
* @param buffer - A buffer to deserialize from.
|
|
63
|
-
* @returns A new RootRollupInputs instance.
|
|
64
|
-
*/
|
|
65
|
-
static fromBuffer(buffer: Buffer | BufferReader): RootRollupInputs {
|
|
66
|
-
const reader = BufferReader.asReader(buffer);
|
|
67
|
-
return new RootRollupInputs([
|
|
68
|
-
reader.readObject(PreviousRollupBlockData),
|
|
69
|
-
reader.readObject(PreviousRollupBlockData),
|
|
70
|
-
]);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Deserializes the inputs from a hex string.
|
|
75
|
-
* @param str - A hex string to deserialize from.
|
|
76
|
-
* @returns A new RootRollupInputs instance.
|
|
77
|
-
*/
|
|
78
|
-
static fromString(str: string) {
|
|
79
|
-
return RootRollupInputs.fromBuffer(hexToBuffer(str));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/** Returns a representation for JSON serialization. */
|
|
83
|
-
toJSON() {
|
|
84
|
-
return this.toBuffer();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/** Creates an instance from a string. */
|
|
88
|
-
static get schema() {
|
|
89
|
-
return bufferSchemaFor(RootRollupInputs);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
10
|
+
import { FeeRecipient } from './checkpoint_rollup_public_inputs.js';
|
|
11
|
+
import { EpochConstantData } from './epoch_constant_data.js';
|
|
92
12
|
|
|
93
13
|
/**
|
|
94
14
|
* Represents public inputs of the root rollup circuit.
|
|
@@ -101,13 +21,9 @@ export class RootRollupPublicInputs {
|
|
|
101
21
|
public previousArchiveRoot: Fr,
|
|
102
22
|
/** Root of the archive tree after this rollup is processed */
|
|
103
23
|
public endArchiveRoot: Fr,
|
|
104
|
-
public
|
|
24
|
+
public checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
105
25
|
public fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
106
|
-
public
|
|
107
|
-
public version: Fr,
|
|
108
|
-
public vkTreeRoot: Fr,
|
|
109
|
-
public protocolContractTreeRoot: Fr,
|
|
110
|
-
public proverId: Fr,
|
|
26
|
+
public constants: EpochConstantData,
|
|
111
27
|
public blobPublicInputs: FinalBlobAccumulatorPublicInputs,
|
|
112
28
|
) {}
|
|
113
29
|
|
|
@@ -115,13 +31,9 @@ export class RootRollupPublicInputs {
|
|
|
115
31
|
return [
|
|
116
32
|
fields.previousArchiveRoot,
|
|
117
33
|
fields.endArchiveRoot,
|
|
118
|
-
fields.
|
|
34
|
+
fields.checkpointHeaderHashes,
|
|
119
35
|
fields.fees,
|
|
120
|
-
fields.
|
|
121
|
-
fields.version,
|
|
122
|
-
fields.vkTreeRoot,
|
|
123
|
-
fields.protocolContractTreeRoot,
|
|
124
|
-
fields.proverId,
|
|
36
|
+
fields.constants,
|
|
125
37
|
fields.blobPublicInputs,
|
|
126
38
|
] as const;
|
|
127
39
|
}
|
|
@@ -150,11 +62,7 @@ export class RootRollupPublicInputs {
|
|
|
150
62
|
Fr.fromBuffer(reader),
|
|
151
63
|
reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
|
|
152
64
|
reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient),
|
|
153
|
-
|
|
154
|
-
Fr.fromBuffer(reader),
|
|
155
|
-
Fr.fromBuffer(reader),
|
|
156
|
-
Fr.fromBuffer(reader),
|
|
157
|
-
Fr.fromBuffer(reader),
|
|
65
|
+
EpochConstantData.fromBuffer(reader),
|
|
158
66
|
reader.readObject(FinalBlobAccumulatorPublicInputs),
|
|
159
67
|
);
|
|
160
68
|
}
|
|
@@ -184,11 +92,7 @@ export class RootRollupPublicInputs {
|
|
|
184
92
|
Fr.random(),
|
|
185
93
|
makeTuple(AZTEC_MAX_EPOCH_DURATION, Fr.random),
|
|
186
94
|
makeTuple(AZTEC_MAX_EPOCH_DURATION, FeeRecipient.random),
|
|
187
|
-
Fr.random(),
|
|
188
|
-
Fr.random(),
|
|
189
|
-
Fr.random(),
|
|
190
|
-
Fr.random(),
|
|
191
|
-
Fr.random(),
|
|
95
|
+
new EpochConstantData(Fr.random(), Fr.random(), Fr.random(), Fr.random(), Fr.random()),
|
|
192
96
|
FinalBlobAccumulatorPublicInputs.random(),
|
|
193
97
|
);
|
|
194
98
|
}
|