@aztec/stdlib 0.87.3-nightly.20250529 → 0.87.4
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/abi/abi.d.ts +0 -3
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +0 -38
- package/dest/avm/avm.d.ts +12 -696
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +8 -16
- package/dest/avm/avm_accumulated_data.d.ts +0 -77
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +0 -67
- package/dest/avm/avm_circuit_public_inputs.d.ts +3 -73
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +9 -19
- package/dest/avm/avm_proving_request.d.ts +0 -366
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +2 -2
- package/dest/block/index.d.ts +0 -1
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +0 -1
- package/dest/block/l2_block.d.ts +2 -3
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +5 -10
- package/dest/block/l2_block_source.d.ts +4 -9
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +0 -1
- package/dest/block/published_l2_block.d.ts +69 -99
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +12 -38
- package/dest/block/test/l2_tips_store_test_suite.js +1 -1
- package/dest/interfaces/archiver.js +2 -2
- package/dest/interfaces/aztec-node.js +2 -2
- package/dest/interfaces/p2p.d.ts +2 -5
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +2 -1
- package/dest/interfaces/proving-job.d.ts +4 -370
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +2 -2
- package/dest/interfaces/server_circuit_prover.d.ts +2 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -1
- package/dest/kernel/hints/key_validation_hint.d.ts +6 -2
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_hint.js +7 -5
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +7 -7
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.js +4 -8
- package/dest/kernel/hints/read_request_hints.d.ts +8 -8
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/index.d.ts +0 -1
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +0 -1
- package/dest/kernel/private_kernel_data.d.ts +25 -6
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.js +19 -8
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -7
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +6 -10
- package/dest/kernel/private_kernel_reset_dimensions.d.ts +10 -10
- package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_dimensions.js +29 -29
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -10
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +3 -8
- package/dest/kernel/public_call_request.d.ts +0 -54
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +0 -58
- package/dest/logs/contract_class_log.d.ts +4 -0
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +33 -0
- package/dest/logs/log_with_tx_data.d.ts +3 -3
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.js +13 -9
- package/dest/logs/private_log.d.ts +0 -1
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +0 -3
- package/dest/logs/public_log.d.ts +0 -1
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +0 -3
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +0 -1
- package/dest/rollup/avm_proof_data.d.ts +5 -7
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +4 -12
- package/dest/rollup/base_rollup_hints.d.ts +4 -4
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +8 -8
- package/dest/rollup/previous_rollup_block_data.d.ts +15 -6
- package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_block_data.js +13 -8
- package/dest/rollup/previous_rollup_data.d.ts +15 -6
- package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_data.js +13 -8
- package/dest/rollup/private_tube_data.d.ts +3 -3
- package/dest/rollup/private_tube_data.d.ts.map +1 -1
- package/dest/rollup/private_tube_data.js +3 -3
- package/dest/rollup/public_tube_data.d.ts +3 -3
- package/dest/rollup/public_tube_data.d.ts.map +1 -1
- package/dest/rollup/public_tube_data.js +3 -3
- package/dest/rollup/root_rollup.d.ts +10 -9
- package/dest/rollup/root_rollup.d.ts.map +1 -1
- package/dest/rollup/root_rollup.js +20 -9
- package/dest/tests/factories.d.ts +1 -2
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +19 -25
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +3 -4
- package/dest/tx/processed_tx.d.ts.map +1 -1
- package/dest/tx/processed_tx.js +5 -2
- package/dest/tx/tx.d.ts +25 -10
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +50 -25
- package/dest/tx/tx_effect.d.ts +1 -1
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +2 -2
- package/dest/validators/types.d.ts +0 -4
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/vks/index.d.ts +1 -1
- package/dest/vks/index.d.ts.map +1 -1
- package/dest/vks/index.js +1 -1
- package/dest/vks/{vk_data.d.ts → vk_witness_data.d.ts} +8 -8
- package/dest/vks/vk_witness_data.d.ts.map +1 -0
- package/dest/vks/{vk_data.js → vk_witness_data.js} +10 -10
- package/package.json +7 -7
- package/src/abi/abi.ts +0 -37
- package/src/avm/avm.ts +0 -14
- package/src/avm/avm_accumulated_data.ts +0 -93
- package/src/avm/avm_circuit_public_inputs.ts +2 -22
- package/src/block/body.ts +2 -7
- package/src/block/index.ts +0 -1
- package/src/block/l2_block.ts +3 -8
- package/src/block/l2_block_source.ts +3 -9
- package/src/block/published_l2_block.ts +24 -38
- package/src/block/test/l2_tips_store_test_suite.ts +1 -1
- package/src/interfaces/archiver.ts +2 -2
- package/src/interfaces/aztec-node.ts +2 -2
- package/src/interfaces/p2p.ts +3 -8
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/server_circuit_prover.ts +2 -3
- package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +3 -3
- package/src/kernel/hints/key_validation_hint.ts +6 -4
- package/src/kernel/hints/private_kernel_reset_hints.ts +43 -34
- package/src/kernel/hints/read_request_hints.ts +15 -27
- package/src/kernel/index.ts +0 -1
- package/src/kernel/private_kernel_data.ts +29 -7
- package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +13 -16
- package/src/kernel/private_kernel_reset_dimensions.ts +27 -27
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -10
- package/src/kernel/public_call_request.ts +0 -66
- package/src/logs/contract_class_log.ts +36 -0
- package/src/logs/log_with_tx_data.ts +11 -7
- package/src/logs/private_log.ts +0 -4
- package/src/logs/public_log.ts +0 -4
- package/src/logs/tx_scoped_l2_log.ts +0 -1
- package/src/rollup/avm_proof_data.ts +7 -14
- package/src/rollup/base_rollup_hints.ts +4 -4
- package/src/rollup/previous_rollup_block_data.ts +12 -6
- package/src/rollup/previous_rollup_data.ts +12 -6
- package/src/rollup/private_tube_data.ts +4 -4
- package/src/rollup/public_tube_data.ts +4 -4
- package/src/rollup/root_rollup.ts +19 -6
- package/src/tests/factories.ts +32 -36
- package/src/tests/mocks.ts +3 -6
- package/src/tx/processed_tx.ts +5 -4
- package/src/tx/tx.ts +54 -28
- package/src/tx/tx_effect.ts +5 -23
- package/src/validators/types.ts +0 -2
- package/src/vks/index.ts +1 -1
- package/src/vks/{vk_data.ts → vk_witness_data.ts} +6 -6
- package/dest/block/proposal/committee_attestation.d.ts +0 -34
- package/dest/block/proposal/committee_attestation.d.ts.map +0 -1
- package/dest/block/proposal/committee_attestation.js +0 -59
- package/dest/block/proposal/index.d.ts +0 -2
- package/dest/block/proposal/index.d.ts.map +0 -1
- package/dest/block/proposal/index.js +0 -1
- package/dest/kernel/padded_side_effects.d.ts +0 -26
- package/dest/kernel/padded_side_effects.d.ts.map +0 -1
- package/dest/kernel/padded_side_effects.js +0 -51
- package/dest/vks/vk_data.d.ts.map +0 -1
- package/src/block/proposal/committee_attestation.ts +0 -70
- package/src/block/proposal/index.ts +0 -1
- package/src/kernel/padded_side_effects.ts +0 -73
|
@@ -96,6 +96,8 @@ export class ContractClassLogFields {
|
|
|
96
96
|
|
|
97
97
|
export class ContractClassLog {
|
|
98
98
|
static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * CONTRACT_CLASS_LOG_LENGTH;
|
|
99
|
+
// Keeps original first field pre-siloing. Only set by silo().
|
|
100
|
+
public unsiloedFirstField?: Fr | undefined;
|
|
99
101
|
|
|
100
102
|
constructor(
|
|
101
103
|
public contractAddress: AztecAddress,
|
|
@@ -178,6 +180,40 @@ export class ContractClassLog {
|
|
|
178
180
|
);
|
|
179
181
|
}
|
|
180
182
|
|
|
183
|
+
setUnsiloedFirstField(field: Fr) {
|
|
184
|
+
this.unsiloedFirstField = field;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
toUnsiloed() {
|
|
188
|
+
if (this.contractAddress.isZero()) {
|
|
189
|
+
return this;
|
|
190
|
+
}
|
|
191
|
+
if (this.unsiloedFirstField) {
|
|
192
|
+
return new ContractClassLog(
|
|
193
|
+
this.contractAddress,
|
|
194
|
+
new ContractClassLogFields([this.unsiloedFirstField].concat(this.fields.fields.slice(1))),
|
|
195
|
+
this.emittedLength,
|
|
196
|
+
);
|
|
197
|
+
} else {
|
|
198
|
+
return this;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// TODO(#13914): Don't need to silo the contract class logs.
|
|
203
|
+
async silo() {
|
|
204
|
+
if (this.contractAddress.isZero()) {
|
|
205
|
+
return this;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
const fields = this.fields.clone();
|
|
209
|
+
const unsiloedField = fields.fields[0];
|
|
210
|
+
const siloedField = await poseidon2Hash([this.contractAddress, unsiloedField]);
|
|
211
|
+
fields.fields[0] = siloedField;
|
|
212
|
+
const cloned = new ContractClassLog(this.contractAddress, fields, this.emittedLength);
|
|
213
|
+
cloned.setUnsiloedFirstField(unsiloedField);
|
|
214
|
+
return cloned;
|
|
215
|
+
}
|
|
216
|
+
|
|
181
217
|
async hash() {
|
|
182
218
|
return await this.fields.hash();
|
|
183
219
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { MAX_NOTE_HASHES_PER_TX,
|
|
1
|
+
import { MAX_NOTE_HASHES_PER_TX, PUBLIC_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
4
4
|
|
|
5
|
-
// TypeScript representation of the Noir aztec::oracle::message_discovery::
|
|
6
|
-
// response for PXE's custom
|
|
7
|
-
export class
|
|
5
|
+
// TypeScript representation of the Noir aztec::oracle::message_discovery::LogWithTxData struct. This is used as a
|
|
6
|
+
// response for PXE's custom getLogByTag oracle.
|
|
7
|
+
export class LogWithTxData {
|
|
8
8
|
constructor(
|
|
9
9
|
// The emitted fields of a log.
|
|
10
|
-
public
|
|
10
|
+
// For public logs, the contract address is prepended to the content.
|
|
11
|
+
public logContent: Fr[],
|
|
11
12
|
public txHash: TxHash,
|
|
12
13
|
public uniqueNoteHashesInTx: Fr[],
|
|
13
14
|
public firstNullifierInTx: Fr,
|
|
@@ -15,7 +16,10 @@ export class PublicLogWithTxData {
|
|
|
15
16
|
|
|
16
17
|
toNoirSerialization(): (Fr | Fr[])[] {
|
|
17
18
|
return [
|
|
18
|
-
|
|
19
|
+
// The log fields length is PUBLIC_LOG_SIZE_IN_FIELDS. + 1 because the contract address is prepended to the content.
|
|
20
|
+
// This is only used for public logs currently, so the maxLength is PUBLIC_LOG_SIZE_IN_FIELDS + 1.
|
|
21
|
+
// TODO(#11639): this could also be used for private logs.
|
|
22
|
+
...toBoundedVecSerialization(this.logContent, PUBLIC_LOG_SIZE_IN_FIELDS + 1),
|
|
19
23
|
this.txHash.hash,
|
|
20
24
|
...toBoundedVecSerialization(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
|
|
21
25
|
this.firstNullifierInTx,
|
|
@@ -23,7 +27,7 @@ export class PublicLogWithTxData {
|
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
static noirSerializationOfEmpty(): (Fr | Fr[])[] {
|
|
26
|
-
return new
|
|
30
|
+
return new LogWithTxData([], TxHash.zero(), [], new Fr(0)).toNoirSerialization();
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
|
package/src/logs/private_log.ts
CHANGED
|
@@ -44,10 +44,6 @@ export class PrivateLog {
|
|
|
44
44
|
return this.fields.slice(0, this.emittedLength);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
getEmittedFieldsWithoutTag() {
|
|
48
|
-
return this.fields.slice(1, this.emittedLength);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
47
|
toBlobFields(): Fr[] {
|
|
52
48
|
return [new Fr(this.emittedLength)].concat(this.getEmittedFields());
|
|
53
49
|
}
|
package/src/logs/public_log.ts
CHANGED
|
@@ -50,10 +50,6 @@ export class PublicLog {
|
|
|
50
50
|
return this.fields.slice(0, this.emittedLength);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
getEmittedFieldsWithoutTag() {
|
|
54
|
-
return this.fields.slice(1, this.emittedLength);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
53
|
toBlobFields(): Fr[] {
|
|
58
54
|
return [new Fr(this.emittedLength), this.contractAddress.toField()].concat(this.getEmittedFields());
|
|
59
55
|
}
|
|
@@ -6,7 +6,6 @@ import { TxHash } from '../tx/tx_hash.js';
|
|
|
6
6
|
import { PrivateLog } from './private_log.js';
|
|
7
7
|
import { PublicLog } from './public_log.js';
|
|
8
8
|
|
|
9
|
-
// TODO(#14460): Split to private and public versions instead of having this weird mix.
|
|
10
9
|
export class TxScopedL2Log {
|
|
11
10
|
constructor(
|
|
12
11
|
/*
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { AVM_PROOF_LENGTH_IN_FIELDS } from '@aztec/constants';
|
|
3
2
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
3
|
|
|
5
4
|
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
6
5
|
import { RecursiveProof, makeEmptyRecursiveProof } from '../proofs/recursive_proof.js';
|
|
7
|
-
import {
|
|
6
|
+
import { VkWitnessData } from '../vks/vk_witness_data.js';
|
|
8
7
|
|
|
9
8
|
export class AvmProofData {
|
|
10
9
|
constructor(
|
|
11
10
|
public publicInputs: AvmCircuitPublicInputs,
|
|
12
|
-
public proof: RecursiveProof<typeof
|
|
13
|
-
public vkData:
|
|
11
|
+
public proof: RecursiveProof<typeof AVM_PROOF_LENGTH_IN_FIELDS>,
|
|
12
|
+
public vkData: VkWitnessData,
|
|
14
13
|
) {}
|
|
15
14
|
|
|
16
15
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
@@ -18,7 +17,7 @@ export class AvmProofData {
|
|
|
18
17
|
return new AvmProofData(
|
|
19
18
|
reader.readObject(AvmCircuitPublicInputs),
|
|
20
19
|
RecursiveProof.fromBuffer(reader),
|
|
21
|
-
reader.readObject(
|
|
20
|
+
reader.readObject(VkWitnessData),
|
|
22
21
|
);
|
|
23
22
|
}
|
|
24
23
|
|
|
@@ -29,14 +28,8 @@ export class AvmProofData {
|
|
|
29
28
|
static empty() {
|
|
30
29
|
return new AvmProofData(
|
|
31
30
|
AvmCircuitPublicInputs.empty(),
|
|
32
|
-
makeEmptyRecursiveProof(
|
|
33
|
-
|
|
31
|
+
makeEmptyRecursiveProof(AVM_PROOF_LENGTH_IN_FIELDS),
|
|
32
|
+
VkWitnessData.empty(),
|
|
34
33
|
);
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
|
-
|
|
38
|
-
// TODO(#14234)[Unconditional PIs validation]: remove this function.
|
|
39
|
-
export function enhanceProofWithPiValidationFlag(proof: Fr[], skipPublicInputsValidation: boolean): Fr[] {
|
|
40
|
-
const skipPublicInputsField = skipPublicInputsValidation ? new Fr(1) : new Fr(0);
|
|
41
|
-
return [skipPublicInputsField].concat(proof).slice(0, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED);
|
|
42
|
-
}
|
|
@@ -39,7 +39,7 @@ export class PrivateBaseRollupHints {
|
|
|
39
39
|
/**
|
|
40
40
|
* Preimages to the kernel's contractClassLogsHashes.
|
|
41
41
|
*/
|
|
42
|
-
public
|
|
42
|
+
public contractClassLogsPreimages: Tuple<ContractClassLogFields, typeof MAX_CONTRACT_CLASS_LOGS_PER_TX>,
|
|
43
43
|
/**
|
|
44
44
|
* Data which is not modified by the base rollup circuit.
|
|
45
45
|
*/
|
|
@@ -57,7 +57,7 @@ export class PrivateBaseRollupHints {
|
|
|
57
57
|
fields.stateDiffHints,
|
|
58
58
|
fields.feePayerFeeJuiceBalanceReadHint,
|
|
59
59
|
fields.archiveRootMembershipWitness,
|
|
60
|
-
fields.
|
|
60
|
+
fields.contractClassLogsPreimages,
|
|
61
61
|
fields.constants,
|
|
62
62
|
] as const;
|
|
63
63
|
}
|
|
@@ -121,7 +121,7 @@ export class PublicBaseRollupHints {
|
|
|
121
121
|
/**
|
|
122
122
|
* Preimages to the kernel's contractClassLogsHashes.
|
|
123
123
|
*/
|
|
124
|
-
public
|
|
124
|
+
public contractClassLogsPreimages: Tuple<ContractClassLogFields, typeof MAX_CONTRACT_CLASS_LOGS_PER_TX>,
|
|
125
125
|
/**
|
|
126
126
|
* Data which is not modified by the base rollup circuit.
|
|
127
127
|
*/
|
|
@@ -136,7 +136,7 @@ export class PublicBaseRollupHints {
|
|
|
136
136
|
return [
|
|
137
137
|
fields.startSpongeBlob,
|
|
138
138
|
fields.archiveRootMembershipWitness,
|
|
139
|
-
fields.
|
|
139
|
+
fields.contractClassLogsPreimages,
|
|
140
140
|
fields.constants,
|
|
141
141
|
] as const;
|
|
142
142
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
1
|
+
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
3
4
|
|
|
4
5
|
import { RecursiveProof } from '../proofs/recursive_proof.js';
|
|
5
|
-
import {
|
|
6
|
+
import { VerificationKeyAsFields } from '../vks/verification_key.js';
|
|
6
7
|
import { BlockRootOrBlockMergePublicInputs } from './block_root_or_block_merge_public_inputs.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -19,9 +20,13 @@ export class PreviousRollupBlockData {
|
|
|
19
20
|
*/
|
|
20
21
|
public proof: RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>,
|
|
21
22
|
/**
|
|
22
|
-
* The verification key
|
|
23
|
+
* The verification key of the block merge or block root rollup circuit.
|
|
23
24
|
*/
|
|
24
|
-
public
|
|
25
|
+
public vk: VerificationKeyAsFields,
|
|
26
|
+
/**
|
|
27
|
+
* Sibling path of the rollup circuit's vk in a big tree of rollup circuit vks.
|
|
28
|
+
*/
|
|
29
|
+
public vkWitness: MembershipWitness<typeof VK_TREE_HEIGHT>,
|
|
25
30
|
) {}
|
|
26
31
|
|
|
27
32
|
/**
|
|
@@ -29,7 +34,7 @@ export class PreviousRollupBlockData {
|
|
|
29
34
|
* @returns The buffer of the serialized previous rollup data.
|
|
30
35
|
*/
|
|
31
36
|
public toBuffer(): Buffer {
|
|
32
|
-
return serializeToBuffer(this.blockRootOrBlockMergePublicInputs, this.proof, this.
|
|
37
|
+
return serializeToBuffer(this.blockRootOrBlockMergePublicInputs, this.proof, this.vk, this.vkWitness);
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
/**
|
|
@@ -42,7 +47,8 @@ export class PreviousRollupBlockData {
|
|
|
42
47
|
return new PreviousRollupBlockData(
|
|
43
48
|
reader.readObject(BlockRootOrBlockMergePublicInputs),
|
|
44
49
|
RecursiveProof.fromBuffer(reader, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
45
|
-
reader.readObject(
|
|
50
|
+
reader.readObject(VerificationKeyAsFields),
|
|
51
|
+
MembershipWitness.fromBuffer(reader, VK_TREE_HEIGHT),
|
|
46
52
|
);
|
|
47
53
|
}
|
|
48
54
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
1
|
+
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
3
4
|
|
|
4
5
|
import { RecursiveProof } from '../proofs/recursive_proof.js';
|
|
5
|
-
import {
|
|
6
|
+
import { VerificationKeyAsFields } from '../vks/verification_key.js';
|
|
6
7
|
import { BaseOrMergeRollupPublicInputs } from './base_or_merge_rollup_public_inputs.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -19,9 +20,13 @@ export class PreviousRollupData {
|
|
|
19
20
|
*/
|
|
20
21
|
public proof: RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>,
|
|
21
22
|
/**
|
|
22
|
-
* The verification key
|
|
23
|
+
* The verification key of the base or merge rollup circuit.
|
|
23
24
|
*/
|
|
24
|
-
public
|
|
25
|
+
public vk: VerificationKeyAsFields,
|
|
26
|
+
/**
|
|
27
|
+
* Sibling path of the rollup circuit's vk in a big tree of rollup circuit vks.
|
|
28
|
+
*/
|
|
29
|
+
public vkWitness: MembershipWitness<typeof VK_TREE_HEIGHT>,
|
|
25
30
|
) {}
|
|
26
31
|
|
|
27
32
|
/**
|
|
@@ -29,7 +34,7 @@ export class PreviousRollupData {
|
|
|
29
34
|
* @returns The buffer of the serialized previous rollup data.
|
|
30
35
|
*/
|
|
31
36
|
public toBuffer(): Buffer {
|
|
32
|
-
return serializeToBuffer(this.baseOrMergeRollupPublicInputs, this.proof, this.
|
|
37
|
+
return serializeToBuffer(this.baseOrMergeRollupPublicInputs, this.proof, this.vk, this.vkWitness);
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
/**
|
|
@@ -42,7 +47,8 @@ export class PreviousRollupData {
|
|
|
42
47
|
return new PreviousRollupData(
|
|
43
48
|
reader.readObject(BaseOrMergeRollupPublicInputs),
|
|
44
49
|
RecursiveProof.fromBuffer(reader, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
45
|
-
reader.readObject(
|
|
50
|
+
reader.readObject(VerificationKeyAsFields),
|
|
51
|
+
MembershipWitness.fromBuffer(reader, VK_TREE_HEIGHT),
|
|
46
52
|
);
|
|
47
53
|
}
|
|
48
54
|
}
|
|
@@ -3,20 +3,20 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
3
3
|
|
|
4
4
|
import { PrivateToRollupKernelCircuitPublicInputs } from '../kernel/private_to_rollup_kernel_circuit_public_inputs.js';
|
|
5
5
|
import { RecursiveProof, makeEmptyRecursiveProof } from '../proofs/recursive_proof.js';
|
|
6
|
-
import {
|
|
6
|
+
import { VkWitnessData } from '../vks/vk_witness_data.js';
|
|
7
7
|
|
|
8
8
|
export class PrivateTubeData {
|
|
9
9
|
constructor(
|
|
10
10
|
public publicInputs: PrivateToRollupKernelCircuitPublicInputs,
|
|
11
11
|
public proof: RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>,
|
|
12
|
-
public vkData:
|
|
12
|
+
public vkData: VkWitnessData,
|
|
13
13
|
) {}
|
|
14
14
|
|
|
15
15
|
static empty() {
|
|
16
16
|
return new PrivateTubeData(
|
|
17
17
|
PrivateToRollupKernelCircuitPublicInputs.empty(),
|
|
18
18
|
makeEmptyRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
19
|
-
|
|
19
|
+
VkWitnessData.empty(),
|
|
20
20
|
);
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -25,7 +25,7 @@ export class PrivateTubeData {
|
|
|
25
25
|
return new PrivateTubeData(
|
|
26
26
|
reader.readObject(PrivateToRollupKernelCircuitPublicInputs),
|
|
27
27
|
RecursiveProof.fromBuffer(reader, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
28
|
-
reader.readObject(
|
|
28
|
+
reader.readObject(VkWitnessData),
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -3,20 +3,20 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
3
3
|
|
|
4
4
|
import { PrivateToPublicKernelCircuitPublicInputs } from '../kernel/private_to_public_kernel_circuit_public_inputs.js';
|
|
5
5
|
import { RecursiveProof, makeEmptyRecursiveProof } from '../proofs/recursive_proof.js';
|
|
6
|
-
import {
|
|
6
|
+
import { VkWitnessData } from '../vks/vk_witness_data.js';
|
|
7
7
|
|
|
8
8
|
export class PublicTubeData {
|
|
9
9
|
constructor(
|
|
10
10
|
public publicInputs: PrivateToPublicKernelCircuitPublicInputs,
|
|
11
11
|
public proof: RecursiveProof<typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>,
|
|
12
|
-
public vkData:
|
|
12
|
+
public vkData: VkWitnessData,
|
|
13
13
|
) {}
|
|
14
14
|
|
|
15
15
|
static empty() {
|
|
16
16
|
return new PublicTubeData(
|
|
17
17
|
PrivateToPublicKernelCircuitPublicInputs.empty(),
|
|
18
18
|
makeEmptyRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
19
|
-
|
|
19
|
+
VkWitnessData.empty(),
|
|
20
20
|
);
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -25,7 +25,7 @@ export class PublicTubeData {
|
|
|
25
25
|
return new PublicTubeData(
|
|
26
26
|
reader.readObject(PrivateToPublicKernelCircuitPublicInputs),
|
|
27
27
|
RecursiveProof.fromBuffer(reader, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
28
|
-
reader.readObject(
|
|
28
|
+
reader.readObject(VkWitnessData),
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -7,6 +7,7 @@ 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 { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
10
11
|
import { FeeRecipient } from './block_root_or_block_merge_public_inputs.js';
|
|
11
12
|
import { PreviousRollupBlockData } from './previous_rollup_block_data.js';
|
|
12
13
|
|
|
@@ -99,10 +100,13 @@ export class RootRollupInputs {
|
|
|
99
100
|
*/
|
|
100
101
|
export class RootRollupPublicInputs {
|
|
101
102
|
constructor(
|
|
102
|
-
/**
|
|
103
|
-
public
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
/** Snapshot of archive tree before/after this rollup been processed */
|
|
104
|
+
public previousArchive: AppendOnlyTreeSnapshot,
|
|
105
|
+
public endArchive: AppendOnlyTreeSnapshot,
|
|
106
|
+
// This is a u64 in nr, but GlobalVariables contains this as a u64 and is mapped to ts as a field, so I'm doing the same here
|
|
107
|
+
public endTimestamp: Fr,
|
|
108
|
+
public endBlockNumber: Fr,
|
|
109
|
+
public outHash: Fr,
|
|
106
110
|
public proposedBlockHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
107
111
|
public fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
108
112
|
public chainId: Fr,
|
|
@@ -115,8 +119,11 @@ export class RootRollupPublicInputs {
|
|
|
115
119
|
|
|
116
120
|
static getFields(fields: FieldsOf<RootRollupPublicInputs>) {
|
|
117
121
|
return [
|
|
118
|
-
fields.
|
|
119
|
-
fields.
|
|
122
|
+
fields.previousArchive,
|
|
123
|
+
fields.endArchive,
|
|
124
|
+
fields.endTimestamp,
|
|
125
|
+
fields.endBlockNumber,
|
|
126
|
+
fields.outHash,
|
|
120
127
|
fields.proposedBlockHeaderHashes,
|
|
121
128
|
fields.fees,
|
|
122
129
|
fields.chainId,
|
|
@@ -148,6 +155,9 @@ export class RootRollupPublicInputs {
|
|
|
148
155
|
public static fromBuffer(buffer: Buffer | BufferReader): RootRollupPublicInputs {
|
|
149
156
|
const reader = BufferReader.asReader(buffer);
|
|
150
157
|
return new RootRollupPublicInputs(
|
|
158
|
+
reader.readObject(AppendOnlyTreeSnapshot),
|
|
159
|
+
reader.readObject(AppendOnlyTreeSnapshot),
|
|
160
|
+
Fr.fromBuffer(reader),
|
|
151
161
|
Fr.fromBuffer(reader),
|
|
152
162
|
Fr.fromBuffer(reader),
|
|
153
163
|
reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
|
|
@@ -182,6 +192,9 @@ export class RootRollupPublicInputs {
|
|
|
182
192
|
/** Creates a random instance. */
|
|
183
193
|
static random() {
|
|
184
194
|
return new RootRollupPublicInputs(
|
|
195
|
+
AppendOnlyTreeSnapshot.random(),
|
|
196
|
+
AppendOnlyTreeSnapshot.random(),
|
|
197
|
+
Fr.random(),
|
|
185
198
|
Fr.random(),
|
|
186
199
|
Fr.random(),
|
|
187
200
|
makeTuple(AZTEC_MAX_EPOCH_DURATION, Fr.random),
|
package/src/tests/factories.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { makeBlockBlobPublicInputs, makeSpongeBlob } from '@aztec/blob-lib/testing';
|
|
2
2
|
import {
|
|
3
3
|
ARCHIVE_HEIGHT,
|
|
4
|
-
|
|
4
|
+
AVM_PROOF_LENGTH_IN_FIELDS,
|
|
5
5
|
AZTEC_MAX_EPOCH_DURATION,
|
|
6
6
|
BLOBS_PER_BLOCK,
|
|
7
7
|
CONTRACT_CLASS_LOG_SIZE_IN_FIELDS,
|
|
@@ -55,7 +55,6 @@ import { ContractStorageRead } from '../avm/contract_storage_read.js';
|
|
|
55
55
|
import { ContractStorageUpdateRequest } from '../avm/contract_storage_update_request.js';
|
|
56
56
|
import {
|
|
57
57
|
AvmAccumulatedData,
|
|
58
|
-
AvmAccumulatedDataArrayLengths,
|
|
59
58
|
AvmAppendLeavesHint,
|
|
60
59
|
AvmBytecodeCommitmentHint,
|
|
61
60
|
AvmCircuitInputs,
|
|
@@ -116,11 +115,7 @@ import { PrivateCallRequest } from '../kernel/private_call_request.js';
|
|
|
116
115
|
import { PrivateCircuitPublicInputs } from '../kernel/private_circuit_public_inputs.js';
|
|
117
116
|
import { PrivateLogData } from '../kernel/private_log_data.js';
|
|
118
117
|
import { PrivateToRollupKernelCircuitPublicInputs } from '../kernel/private_to_rollup_kernel_circuit_public_inputs.js';
|
|
119
|
-
import {
|
|
120
|
-
CountedPublicCallRequest,
|
|
121
|
-
PublicCallRequest,
|
|
122
|
-
PublicCallRequestArrayLengths,
|
|
123
|
-
} from '../kernel/public_call_request.js';
|
|
118
|
+
import { CountedPublicCallRequest, PublicCallRequest } from '../kernel/public_call_request.js';
|
|
124
119
|
import { PublicKeys, computeAddress } from '../keys/index.js';
|
|
125
120
|
import { ContractClassLogFields } from '../logs/index.js';
|
|
126
121
|
import { PrivateLog } from '../logs/private_log.js';
|
|
@@ -173,8 +168,8 @@ import { TxConstantData } from '../tx/tx_constant_data.js';
|
|
|
173
168
|
import { TxContext } from '../tx/tx_context.js';
|
|
174
169
|
import { TxRequest } from '../tx/tx_request.js';
|
|
175
170
|
import { RollupTypes, Vector } from '../types/index.js';
|
|
176
|
-
import { VkData } from '../vks/index.js';
|
|
177
171
|
import { VerificationKey, VerificationKeyAsFields, VerificationKeyData } from '../vks/verification_key.js';
|
|
172
|
+
import { VkWitnessData } from '../vks/vk_witness_data.js';
|
|
178
173
|
import { mockTx } from './mocks.js';
|
|
179
174
|
|
|
180
175
|
/**
|
|
@@ -373,10 +368,6 @@ function makeAvmAccumulatedData(seed = 1) {
|
|
|
373
368
|
);
|
|
374
369
|
}
|
|
375
370
|
|
|
376
|
-
function makeAvmAccumulatedDataArrayLengths(seed = 1) {
|
|
377
|
-
return new AvmAccumulatedDataArrayLengths(seed, seed + 1, seed + 2, seed + 3, seed + 4);
|
|
378
|
-
}
|
|
379
|
-
|
|
380
371
|
export function makeGas(seed = 1) {
|
|
381
372
|
return new Gas(seed, seed + 1);
|
|
382
373
|
}
|
|
@@ -462,7 +453,6 @@ function makeAvmCircuitPublicInputs(seed = 1) {
|
|
|
462
453
|
makeGas(seed + 0x20),
|
|
463
454
|
makeGasSettings(),
|
|
464
455
|
makeAztecAddress(seed + 0x40),
|
|
465
|
-
makePublicCallRequestArrayLengths(seed + 0x40),
|
|
466
456
|
makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x100),
|
|
467
457
|
makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x200),
|
|
468
458
|
makePublicCallRequest(seed + 0x300),
|
|
@@ -472,7 +462,6 @@ function makeAvmCircuitPublicInputs(seed = 1) {
|
|
|
472
462
|
makePrivateToAvmAccumulatedData(seed + 0x600),
|
|
473
463
|
makeTreeSnapshots(seed + 0x700),
|
|
474
464
|
makeGas(seed + 0x750),
|
|
475
|
-
makeAvmAccumulatedDataArrayLengths(seed + 0x800),
|
|
476
465
|
makeAvmAccumulatedData(seed + 0x800),
|
|
477
466
|
fr(seed + 0x900),
|
|
478
467
|
false,
|
|
@@ -544,10 +533,6 @@ export function makePublicCallRequest(seed = 1) {
|
|
|
544
533
|
return new PublicCallRequest(makeAztecAddress(seed), makeAztecAddress(seed + 1), false, fr(seed + 0x3));
|
|
545
534
|
}
|
|
546
535
|
|
|
547
|
-
export function makePublicCallRequestArrayLengths(seed = 1) {
|
|
548
|
-
return new PublicCallRequestArrayLengths(seed, seed + 1, seed % 2 === 0);
|
|
549
|
-
}
|
|
550
|
-
|
|
551
536
|
function makeCountedPublicCallRequest(seed = 1) {
|
|
552
537
|
return new CountedPublicCallRequest(makePublicCallRequest(seed), seed + 0x100);
|
|
553
538
|
}
|
|
@@ -757,7 +742,8 @@ export function makePreviousRollupData(
|
|
|
757
742
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
758
743
|
seed + 0x50,
|
|
759
744
|
),
|
|
760
|
-
|
|
745
|
+
VerificationKeyAsFields.makeFakeHonk(),
|
|
746
|
+
makeMembershipWitness(VK_TREE_HEIGHT, seed + 0x120),
|
|
761
747
|
);
|
|
762
748
|
}
|
|
763
749
|
|
|
@@ -777,7 +763,8 @@ export function makePreviousRollupBlockData(
|
|
|
777
763
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
778
764
|
seed + 0x50,
|
|
779
765
|
),
|
|
780
|
-
|
|
766
|
+
VerificationKeyAsFields.makeFakeHonk(),
|
|
767
|
+
makeMembershipWitness(VK_TREE_HEIGHT, seed + 0x120),
|
|
781
768
|
);
|
|
782
769
|
}
|
|
783
770
|
|
|
@@ -894,10 +881,13 @@ export function makeRootParityInputs(seed = 0): RootParityInputs {
|
|
|
894
881
|
*/
|
|
895
882
|
export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs {
|
|
896
883
|
return new RootRollupPublicInputs(
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
884
|
+
makeAppendOnlyTreeSnapshot(seed + 0x100),
|
|
885
|
+
makeAppendOnlyTreeSnapshot(seed + 0x200),
|
|
886
|
+
fr(seed + 0x300),
|
|
887
|
+
fr(seed + 0x400),
|
|
888
|
+
fr(seed + 0x500),
|
|
889
|
+
makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x650),
|
|
890
|
+
makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x600),
|
|
901
891
|
fr(seed + 0x700),
|
|
902
892
|
fr(seed + 0x701),
|
|
903
893
|
fr(seed + 0x702),
|
|
@@ -1080,15 +1070,15 @@ export function makePrivateBaseStateDiffHints(seed = 1): PrivateBaseStateDiffHin
|
|
|
1080
1070
|
);
|
|
1081
1071
|
}
|
|
1082
1072
|
|
|
1083
|
-
function
|
|
1084
|
-
return new
|
|
1073
|
+
function makeVkWitnessData(seed = 1) {
|
|
1074
|
+
return new VkWitnessData(VerificationKeyData.makeFakeHonk(), seed, makeTuple(VK_TREE_HEIGHT, fr, seed + 0x100));
|
|
1085
1075
|
}
|
|
1086
1076
|
|
|
1087
1077
|
function makePrivateTubeData(seed = 1, kernelPublicInputs?: PrivateToRollupKernelCircuitPublicInputs) {
|
|
1088
1078
|
return new PrivateTubeData(
|
|
1089
1079
|
kernelPublicInputs ?? makePrivateToRollupKernelCircuitPublicInputs(seed, true),
|
|
1090
1080
|
makeRecursiveProof<typeof TUBE_PROOF_LENGTH>(TUBE_PROOF_LENGTH, seed + 0x100),
|
|
1091
|
-
|
|
1081
|
+
makeVkWitnessData(seed + 0x200),
|
|
1092
1082
|
);
|
|
1093
1083
|
}
|
|
1094
1084
|
|
|
@@ -1105,7 +1095,11 @@ function makePrivateBaseRollupHints(seed = 1) {
|
|
|
1105
1095
|
|
|
1106
1096
|
const archiveRootMembershipWitness = makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x9000);
|
|
1107
1097
|
|
|
1108
|
-
const
|
|
1098
|
+
const contractClassLogsPreimages = makeTuple(
|
|
1099
|
+
MAX_CONTRACT_CLASS_LOGS_PER_TX,
|
|
1100
|
+
makeContractClassLogFields,
|
|
1101
|
+
seed + 0x800,
|
|
1102
|
+
);
|
|
1109
1103
|
|
|
1110
1104
|
const constants = makeConstantRollupData(0x100);
|
|
1111
1105
|
|
|
@@ -1117,7 +1111,7 @@ function makePrivateBaseRollupHints(seed = 1) {
|
|
|
1117
1111
|
stateDiffHints,
|
|
1118
1112
|
feePayerFeeJuiceBalanceReadHint,
|
|
1119
1113
|
archiveRootMembershipWitness,
|
|
1120
|
-
|
|
1114
|
+
contractClassLogsPreimages,
|
|
1121
1115
|
constants,
|
|
1122
1116
|
});
|
|
1123
1117
|
}
|
|
@@ -1127,14 +1121,18 @@ function makePublicBaseRollupHints(seed = 1) {
|
|
|
1127
1121
|
|
|
1128
1122
|
const archiveRootMembershipWitness = makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x9000);
|
|
1129
1123
|
|
|
1130
|
-
const
|
|
1124
|
+
const contractClassLogsPreimages = makeTuple(
|
|
1125
|
+
MAX_CONTRACT_CLASS_LOGS_PER_TX,
|
|
1126
|
+
makeContractClassLogFields,
|
|
1127
|
+
seed + 0x800,
|
|
1128
|
+
);
|
|
1131
1129
|
|
|
1132
1130
|
const constants = makeConstantRollupData(0x100);
|
|
1133
1131
|
|
|
1134
1132
|
return PublicBaseRollupHints.from({
|
|
1135
1133
|
startSpongeBlob,
|
|
1136
1134
|
archiveRootMembershipWitness,
|
|
1137
|
-
|
|
1135
|
+
contractClassLogsPreimages,
|
|
1138
1136
|
constants,
|
|
1139
1137
|
});
|
|
1140
1138
|
}
|
|
@@ -1153,15 +1151,15 @@ function makePublicTubeData(seed = 1) {
|
|
|
1153
1151
|
return new PublicTubeData(
|
|
1154
1152
|
makePrivateToPublicKernelCircuitPublicInputs(seed),
|
|
1155
1153
|
makeRecursiveProof<typeof TUBE_PROOF_LENGTH>(TUBE_PROOF_LENGTH, seed + 0x100),
|
|
1156
|
-
|
|
1154
|
+
makeVkWitnessData(seed + 0x200),
|
|
1157
1155
|
);
|
|
1158
1156
|
}
|
|
1159
1157
|
|
|
1160
1158
|
function makeAvmProofData(seed = 1) {
|
|
1161
1159
|
return new AvmProofData(
|
|
1162
1160
|
makeAvmCircuitPublicInputs(seed),
|
|
1163
|
-
makeRecursiveProof<typeof
|
|
1164
|
-
|
|
1161
|
+
makeRecursiveProof<typeof AVM_PROOF_LENGTH_IN_FIELDS>(AVM_PROOF_LENGTH_IN_FIELDS, seed + 0x100),
|
|
1162
|
+
makeVkWitnessData(seed + 0x200),
|
|
1165
1163
|
);
|
|
1166
1164
|
}
|
|
1167
1165
|
|
|
@@ -1488,7 +1486,6 @@ export function makeAvmTxHint(seed = 0): AvmTxHint {
|
|
|
1488
1486
|
return new AvmTxHint(
|
|
1489
1487
|
`txhash-${seed}`,
|
|
1490
1488
|
makeGlobalVariables(seed),
|
|
1491
|
-
makeGasSettings(),
|
|
1492
1489
|
{
|
|
1493
1490
|
noteHashes: makeArray((seed % 20) + 4, i => new Fr(i), seed + 0x1000),
|
|
1494
1491
|
nullifiers: makeArray((seed % 20) + 4, i => new Fr(i), seed + 0x2000),
|
|
@@ -1500,7 +1497,6 @@ export function makeAvmTxHint(seed = 0): AvmTxHint {
|
|
|
1500
1497
|
makeArray((seed % 20) + 4, i => makeAvmEnqueuedCallHint(i), seed + 0x5000), // setupEnqueuedCalls
|
|
1501
1498
|
makeArray((seed % 20) + 4, i => makeAvmEnqueuedCallHint(i), seed + 0x6000), // appLogicEnqueuedCalls
|
|
1502
1499
|
makeAvmEnqueuedCallHint(seed + 0x7000), // teardownEnqueuedCall
|
|
1503
|
-
makeGas(seed + 0x8000), // gasUsedByPrivate
|
|
1504
1500
|
);
|
|
1505
1501
|
}
|
|
1506
1502
|
|
package/src/tests/mocks.ts
CHANGED
|
@@ -6,7 +6,6 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
6
6
|
|
|
7
7
|
import type { ContractArtifact } from '../abi/abi.js';
|
|
8
8
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
9
|
-
import { CommitteeAttestation } from '../block/index.js';
|
|
10
9
|
import { L2Block } from '../block/l2_block.js';
|
|
11
10
|
import type { PublishedL2Block } from '../block/published_l2_block.js';
|
|
12
11
|
import { computeContractAddressFromInstance } from '../contract/contract_address.js';
|
|
@@ -300,7 +299,7 @@ export async function randomPublishedL2Block(
|
|
|
300
299
|
};
|
|
301
300
|
|
|
302
301
|
const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
|
|
303
|
-
const
|
|
302
|
+
const attestations = await Promise.all(
|
|
304
303
|
signers.map(signer =>
|
|
305
304
|
makeBlockAttestation({
|
|
306
305
|
signer,
|
|
@@ -311,8 +310,6 @@ export async function randomPublishedL2Block(
|
|
|
311
310
|
}),
|
|
312
311
|
),
|
|
313
312
|
);
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
);
|
|
317
|
-
return { block, l1, attestations };
|
|
313
|
+
const signatures = attestations.map(attestation => attestation.signature);
|
|
314
|
+
return { block, l1, signatures };
|
|
318
315
|
}
|