@aztec/stdlib 0.87.2 → 0.87.3-nightly.20250528
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 +3 -0
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +38 -0
- package/dest/avm/avm.d.ts +696 -12
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +16 -8
- package/dest/avm/avm_accumulated_data.d.ts +77 -0
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +67 -0
- package/dest/avm/avm_circuit_public_inputs.d.ts +73 -3
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +19 -9
- package/dest/avm/avm_proving_request.d.ts +366 -0
- 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 +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 +1 -1
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +2 -2
- package/dest/block/l2_block_source.d.ts +9 -4
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +1 -0
- package/dest/block/proposal/committee_attestation.d.ts +34 -0
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -0
- package/dest/block/proposal/committee_attestation.js +59 -0
- package/dest/block/proposal/index.d.ts +2 -0
- package/dest/block/proposal/index.d.ts.map +1 -0
- package/dest/block/proposal/index.js +1 -0
- package/dest/block/published_l2_block.d.ts +99 -69
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +38 -12
- 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/prover-agent.d.ts +31 -6
- package/dest/interfaces/prover-agent.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.js +15 -6
- package/dest/interfaces/proving-job.d.ts +370 -4
- 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 +3 -2
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/kernel/index.d.ts +1 -0
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +1 -0
- package/dest/kernel/padded_side_effects.d.ts +26 -0
- package/dest/kernel/padded_side_effects.d.ts.map +1 -0
- package/dest/kernel/padded_side_effects.js +51 -0
- package/dest/kernel/private_kernel_data.d.ts +6 -25
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.js +8 -19
- package/dest/kernel/private_kernel_prover_output.d.ts +3 -0
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +5 -2
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +9 -5
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +8 -3
- package/dest/kernel/public_call_request.d.ts +54 -0
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +58 -0
- package/dest/logs/pending_tagged_log.d.ts +1 -1
- package/dest/logs/pending_tagged_log.js +1 -1
- package/dest/rollup/avm_proof_data.d.ts +7 -5
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +12 -4
- package/dest/rollup/previous_rollup_block_data.d.ts +6 -15
- package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_block_data.js +8 -13
- package/dest/rollup/previous_rollup_data.d.ts +6 -15
- package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_data.js +8 -13
- 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 +9 -10
- package/dest/rollup/root_rollup.d.ts.map +1 -1
- package/dest/rollup/root_rollup.js +9 -20
- package/dest/tests/factories.d.ts +2 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +21 -15
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +4 -3
- package/dest/tx/private_execution_result.d.ts +6 -0
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +41 -0
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +4 -1
- package/dest/tx/proven_tx.d.ts +40 -18
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +2 -2
- 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 +4 -0
- 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_witness_data.d.ts → vk_data.d.ts} +8 -8
- package/dest/vks/vk_data.d.ts.map +1 -0
- package/dest/vks/{vk_witness_data.js → vk_data.js} +10 -10
- package/package.json +7 -7
- package/src/abi/abi.ts +37 -0
- package/src/avm/avm.ts +14 -0
- package/src/avm/avm_accumulated_data.ts +93 -0
- package/src/avm/avm_circuit_public_inputs.ts +22 -2
- package/src/block/body.ts +7 -2
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +2 -1
- package/src/block/l2_block_source.ts +9 -3
- package/src/block/proposal/committee_attestation.ts +70 -0
- package/src/block/proposal/index.ts +1 -0
- package/src/block/published_l2_block.ts +38 -24
- 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/prover-agent.ts +9 -10
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/kernel/index.ts +1 -0
- package/src/kernel/padded_side_effects.ts +73 -0
- package/src/kernel/private_kernel_data.ts +7 -29
- package/src/kernel/private_kernel_prover_output.ts +1 -0
- package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +6 -3
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +10 -2
- package/src/kernel/public_call_request.ts +66 -0
- package/src/logs/pending_tagged_log.ts +1 -1
- package/src/rollup/avm_proof_data.ts +14 -7
- package/src/rollup/previous_rollup_block_data.ts +6 -12
- package/src/rollup/previous_rollup_data.ts +6 -12
- package/src/rollup/private_tube_data.ts +4 -4
- package/src/rollup/public_tube_data.ts +4 -4
- package/src/rollup/root_rollup.ts +6 -19
- package/src/tests/factories.ts +32 -20
- package/src/tests/mocks.ts +6 -3
- package/src/tx/private_execution_result.ts +1 -1
- package/src/tx/profiling.ts +6 -1
- package/src/tx/proven_tx.ts +2 -2
- package/src/tx/tx_effect.ts +23 -5
- package/src/validators/types.ts +2 -0
- package/src/vks/index.ts +1 -1
- package/src/vks/{vk_witness_data.ts → vk_data.ts} +6 -6
- package/dest/vks/vk_witness_data.d.ts.map +0 -1
|
@@ -7,7 +7,6 @@ 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';
|
|
11
10
|
import { FeeRecipient } from './block_root_or_block_merge_public_inputs.js';
|
|
12
11
|
import { PreviousRollupBlockData } from './previous_rollup_block_data.js';
|
|
13
12
|
|
|
@@ -100,13 +99,10 @@ export class RootRollupInputs {
|
|
|
100
99
|
*/
|
|
101
100
|
export class RootRollupPublicInputs {
|
|
102
101
|
constructor(
|
|
103
|
-
/**
|
|
104
|
-
public
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
public endTimestamp: Fr,
|
|
108
|
-
public endBlockNumber: Fr,
|
|
109
|
-
public outHash: Fr,
|
|
102
|
+
/** Root of the archive tree before this rollup is processed */
|
|
103
|
+
public previousArchiveRoot: Fr,
|
|
104
|
+
/** Root of the archive tree after this rollup is processed */
|
|
105
|
+
public endArchiveRoot: Fr,
|
|
110
106
|
public proposedBlockHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
111
107
|
public fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
112
108
|
public chainId: Fr,
|
|
@@ -119,11 +115,8 @@ export class RootRollupPublicInputs {
|
|
|
119
115
|
|
|
120
116
|
static getFields(fields: FieldsOf<RootRollupPublicInputs>) {
|
|
121
117
|
return [
|
|
122
|
-
fields.
|
|
123
|
-
fields.
|
|
124
|
-
fields.endTimestamp,
|
|
125
|
-
fields.endBlockNumber,
|
|
126
|
-
fields.outHash,
|
|
118
|
+
fields.previousArchiveRoot,
|
|
119
|
+
fields.endArchiveRoot,
|
|
127
120
|
fields.proposedBlockHeaderHashes,
|
|
128
121
|
fields.fees,
|
|
129
122
|
fields.chainId,
|
|
@@ -155,9 +148,6 @@ export class RootRollupPublicInputs {
|
|
|
155
148
|
public static fromBuffer(buffer: Buffer | BufferReader): RootRollupPublicInputs {
|
|
156
149
|
const reader = BufferReader.asReader(buffer);
|
|
157
150
|
return new RootRollupPublicInputs(
|
|
158
|
-
reader.readObject(AppendOnlyTreeSnapshot),
|
|
159
|
-
reader.readObject(AppendOnlyTreeSnapshot),
|
|
160
|
-
Fr.fromBuffer(reader),
|
|
161
151
|
Fr.fromBuffer(reader),
|
|
162
152
|
Fr.fromBuffer(reader),
|
|
163
153
|
reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
|
|
@@ -192,9 +182,6 @@ export class RootRollupPublicInputs {
|
|
|
192
182
|
/** Creates a random instance. */
|
|
193
183
|
static random() {
|
|
194
184
|
return new RootRollupPublicInputs(
|
|
195
|
-
AppendOnlyTreeSnapshot.random(),
|
|
196
|
-
AppendOnlyTreeSnapshot.random(),
|
|
197
|
-
Fr.random(),
|
|
198
185
|
Fr.random(),
|
|
199
186
|
Fr.random(),
|
|
200
187
|
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_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
5
5
|
AZTEC_MAX_EPOCH_DURATION,
|
|
6
6
|
BLOBS_PER_BLOCK,
|
|
7
7
|
CONTRACT_CLASS_LOG_SIZE_IN_FIELDS,
|
|
@@ -55,6 +55,7 @@ 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,
|
|
58
59
|
AvmAppendLeavesHint,
|
|
59
60
|
AvmBytecodeCommitmentHint,
|
|
60
61
|
AvmCircuitInputs,
|
|
@@ -115,7 +116,11 @@ import { PrivateCallRequest } from '../kernel/private_call_request.js';
|
|
|
115
116
|
import { PrivateCircuitPublicInputs } from '../kernel/private_circuit_public_inputs.js';
|
|
116
117
|
import { PrivateLogData } from '../kernel/private_log_data.js';
|
|
117
118
|
import { PrivateToRollupKernelCircuitPublicInputs } from '../kernel/private_to_rollup_kernel_circuit_public_inputs.js';
|
|
118
|
-
import {
|
|
119
|
+
import {
|
|
120
|
+
CountedPublicCallRequest,
|
|
121
|
+
PublicCallRequest,
|
|
122
|
+
PublicCallRequestArrayLengths,
|
|
123
|
+
} from '../kernel/public_call_request.js';
|
|
119
124
|
import { PublicKeys, computeAddress } from '../keys/index.js';
|
|
120
125
|
import { ContractClassLogFields } from '../logs/index.js';
|
|
121
126
|
import { PrivateLog } from '../logs/private_log.js';
|
|
@@ -168,8 +173,8 @@ import { TxConstantData } from '../tx/tx_constant_data.js';
|
|
|
168
173
|
import { TxContext } from '../tx/tx_context.js';
|
|
169
174
|
import { TxRequest } from '../tx/tx_request.js';
|
|
170
175
|
import { RollupTypes, Vector } from '../types/index.js';
|
|
176
|
+
import { VkData } from '../vks/index.js';
|
|
171
177
|
import { VerificationKey, VerificationKeyAsFields, VerificationKeyData } from '../vks/verification_key.js';
|
|
172
|
-
import { VkWitnessData } from '../vks/vk_witness_data.js';
|
|
173
178
|
import { mockTx } from './mocks.js';
|
|
174
179
|
|
|
175
180
|
/**
|
|
@@ -368,6 +373,10 @@ function makeAvmAccumulatedData(seed = 1) {
|
|
|
368
373
|
);
|
|
369
374
|
}
|
|
370
375
|
|
|
376
|
+
function makeAvmAccumulatedDataArrayLengths(seed = 1) {
|
|
377
|
+
return new AvmAccumulatedDataArrayLengths(seed, seed + 1, seed + 2, seed + 3, seed + 4);
|
|
378
|
+
}
|
|
379
|
+
|
|
371
380
|
export function makeGas(seed = 1) {
|
|
372
381
|
return new Gas(seed, seed + 1);
|
|
373
382
|
}
|
|
@@ -453,6 +462,7 @@ function makeAvmCircuitPublicInputs(seed = 1) {
|
|
|
453
462
|
makeGas(seed + 0x20),
|
|
454
463
|
makeGasSettings(),
|
|
455
464
|
makeAztecAddress(seed + 0x40),
|
|
465
|
+
makePublicCallRequestArrayLengths(seed + 0x40),
|
|
456
466
|
makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x100),
|
|
457
467
|
makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x200),
|
|
458
468
|
makePublicCallRequest(seed + 0x300),
|
|
@@ -462,6 +472,7 @@ function makeAvmCircuitPublicInputs(seed = 1) {
|
|
|
462
472
|
makePrivateToAvmAccumulatedData(seed + 0x600),
|
|
463
473
|
makeTreeSnapshots(seed + 0x700),
|
|
464
474
|
makeGas(seed + 0x750),
|
|
475
|
+
makeAvmAccumulatedDataArrayLengths(seed + 0x800),
|
|
465
476
|
makeAvmAccumulatedData(seed + 0x800),
|
|
466
477
|
fr(seed + 0x900),
|
|
467
478
|
false,
|
|
@@ -533,6 +544,10 @@ export function makePublicCallRequest(seed = 1) {
|
|
|
533
544
|
return new PublicCallRequest(makeAztecAddress(seed), makeAztecAddress(seed + 1), false, fr(seed + 0x3));
|
|
534
545
|
}
|
|
535
546
|
|
|
547
|
+
export function makePublicCallRequestArrayLengths(seed = 1) {
|
|
548
|
+
return new PublicCallRequestArrayLengths(seed, seed + 1, seed % 2 === 0);
|
|
549
|
+
}
|
|
550
|
+
|
|
536
551
|
function makeCountedPublicCallRequest(seed = 1) {
|
|
537
552
|
return new CountedPublicCallRequest(makePublicCallRequest(seed), seed + 0x100);
|
|
538
553
|
}
|
|
@@ -742,8 +757,7 @@ export function makePreviousRollupData(
|
|
|
742
757
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
743
758
|
seed + 0x50,
|
|
744
759
|
),
|
|
745
|
-
|
|
746
|
-
makeMembershipWitness(VK_TREE_HEIGHT, seed + 0x120),
|
|
760
|
+
makeVkData(seed + 0x100),
|
|
747
761
|
);
|
|
748
762
|
}
|
|
749
763
|
|
|
@@ -763,8 +777,7 @@ export function makePreviousRollupBlockData(
|
|
|
763
777
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
764
778
|
seed + 0x50,
|
|
765
779
|
),
|
|
766
|
-
|
|
767
|
-
makeMembershipWitness(VK_TREE_HEIGHT, seed + 0x120),
|
|
780
|
+
makeVkData(seed + 0x100),
|
|
768
781
|
);
|
|
769
782
|
}
|
|
770
783
|
|
|
@@ -881,13 +894,10 @@ export function makeRootParityInputs(seed = 0): RootParityInputs {
|
|
|
881
894
|
*/
|
|
882
895
|
export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs {
|
|
883
896
|
return new RootRollupPublicInputs(
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
fr(seed
|
|
887
|
-
|
|
888
|
-
fr(seed + 0x500),
|
|
889
|
-
makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x650),
|
|
890
|
-
makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x600),
|
|
897
|
+
fr(seed + 0x100),
|
|
898
|
+
fr(seed + 0x200),
|
|
899
|
+
makeTuple(AZTEC_MAX_EPOCH_DURATION, () => fr(seed), 0x300),
|
|
900
|
+
makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeFeeRecipient(seed), 0x500),
|
|
891
901
|
fr(seed + 0x700),
|
|
892
902
|
fr(seed + 0x701),
|
|
893
903
|
fr(seed + 0x702),
|
|
@@ -1070,15 +1080,15 @@ export function makePrivateBaseStateDiffHints(seed = 1): PrivateBaseStateDiffHin
|
|
|
1070
1080
|
);
|
|
1071
1081
|
}
|
|
1072
1082
|
|
|
1073
|
-
function
|
|
1074
|
-
return new
|
|
1083
|
+
function makeVkData(seed = 1) {
|
|
1084
|
+
return new VkData(VerificationKeyData.makeFakeHonk(), seed, makeTuple(VK_TREE_HEIGHT, fr, seed + 0x100));
|
|
1075
1085
|
}
|
|
1076
1086
|
|
|
1077
1087
|
function makePrivateTubeData(seed = 1, kernelPublicInputs?: PrivateToRollupKernelCircuitPublicInputs) {
|
|
1078
1088
|
return new PrivateTubeData(
|
|
1079
1089
|
kernelPublicInputs ?? makePrivateToRollupKernelCircuitPublicInputs(seed, true),
|
|
1080
1090
|
makeRecursiveProof<typeof TUBE_PROOF_LENGTH>(TUBE_PROOF_LENGTH, seed + 0x100),
|
|
1081
|
-
|
|
1091
|
+
makeVkData(seed + 0x200),
|
|
1082
1092
|
);
|
|
1083
1093
|
}
|
|
1084
1094
|
|
|
@@ -1151,15 +1161,15 @@ function makePublicTubeData(seed = 1) {
|
|
|
1151
1161
|
return new PublicTubeData(
|
|
1152
1162
|
makePrivateToPublicKernelCircuitPublicInputs(seed),
|
|
1153
1163
|
makeRecursiveProof<typeof TUBE_PROOF_LENGTH>(TUBE_PROOF_LENGTH, seed + 0x100),
|
|
1154
|
-
|
|
1164
|
+
makeVkData(seed + 0x200),
|
|
1155
1165
|
);
|
|
1156
1166
|
}
|
|
1157
1167
|
|
|
1158
1168
|
function makeAvmProofData(seed = 1) {
|
|
1159
1169
|
return new AvmProofData(
|
|
1160
1170
|
makeAvmCircuitPublicInputs(seed),
|
|
1161
|
-
makeRecursiveProof<typeof
|
|
1162
|
-
|
|
1171
|
+
makeRecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, seed + 0x100),
|
|
1172
|
+
makeVkData(seed + 0x200),
|
|
1163
1173
|
);
|
|
1164
1174
|
}
|
|
1165
1175
|
|
|
@@ -1486,6 +1496,7 @@ export function makeAvmTxHint(seed = 0): AvmTxHint {
|
|
|
1486
1496
|
return new AvmTxHint(
|
|
1487
1497
|
`txhash-${seed}`,
|
|
1488
1498
|
makeGlobalVariables(seed),
|
|
1499
|
+
makeGasSettings(),
|
|
1489
1500
|
{
|
|
1490
1501
|
noteHashes: makeArray((seed % 20) + 4, i => new Fr(i), seed + 0x1000),
|
|
1491
1502
|
nullifiers: makeArray((seed % 20) + 4, i => new Fr(i), seed + 0x2000),
|
|
@@ -1497,6 +1508,7 @@ export function makeAvmTxHint(seed = 0): AvmTxHint {
|
|
|
1497
1508
|
makeArray((seed % 20) + 4, i => makeAvmEnqueuedCallHint(i), seed + 0x5000), // setupEnqueuedCalls
|
|
1498
1509
|
makeArray((seed % 20) + 4, i => makeAvmEnqueuedCallHint(i), seed + 0x6000), // appLogicEnqueuedCalls
|
|
1499
1510
|
makeAvmEnqueuedCallHint(seed + 0x7000), // teardownEnqueuedCall
|
|
1511
|
+
makeGas(seed + 0x8000), // gasUsedByPrivate
|
|
1500
1512
|
);
|
|
1501
1513
|
}
|
|
1502
1514
|
|
package/src/tests/mocks.ts
CHANGED
|
@@ -6,6 +6,7 @@ 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';
|
|
9
10
|
import { L2Block } from '../block/l2_block.js';
|
|
10
11
|
import type { PublishedL2Block } from '../block/published_l2_block.js';
|
|
11
12
|
import { computeContractAddressFromInstance } from '../contract/contract_address.js';
|
|
@@ -299,7 +300,7 @@ export async function randomPublishedL2Block(
|
|
|
299
300
|
};
|
|
300
301
|
|
|
301
302
|
const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
|
|
302
|
-
const
|
|
303
|
+
const atts = await Promise.all(
|
|
303
304
|
signers.map(signer =>
|
|
304
305
|
makeBlockAttestation({
|
|
305
306
|
signer,
|
|
@@ -310,6 +311,8 @@ export async function randomPublishedL2Block(
|
|
|
310
311
|
}),
|
|
311
312
|
),
|
|
312
313
|
);
|
|
313
|
-
const
|
|
314
|
-
|
|
314
|
+
const attestations = atts.map(
|
|
315
|
+
(attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
|
|
316
|
+
);
|
|
317
|
+
return { block, l1, attestations };
|
|
315
318
|
}
|
package/src/tx/profiling.ts
CHANGED
|
@@ -10,9 +10,14 @@ import { AbiDecodedSchema } from '../schemas/schemas.js';
|
|
|
10
10
|
type FunctionTiming = {
|
|
11
11
|
functionName: string;
|
|
12
12
|
time: number;
|
|
13
|
+
oracles?: Record<string, { times: number[] }>;
|
|
13
14
|
};
|
|
14
15
|
|
|
15
|
-
const FunctionTimingSchema = z.object({
|
|
16
|
+
const FunctionTimingSchema = z.object({
|
|
17
|
+
functionName: z.string(),
|
|
18
|
+
time: z.number(),
|
|
19
|
+
oracles: optional(z.record(z.string(), z.object({ times: z.array(z.number()) }))),
|
|
20
|
+
});
|
|
16
21
|
|
|
17
22
|
export type ProvingTimings = {
|
|
18
23
|
sync?: number;
|
package/src/tx/proven_tx.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { z } from 'zod';
|
|
|
6
6
|
import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
7
7
|
import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
|
|
8
8
|
import { PrivateExecutionResult, collectSortedContractClassLogs } from './private_execution_result.js';
|
|
9
|
-
import { type ProvingTimings,
|
|
9
|
+
import { type ProvingTimings, ProvingTimingsSchema } from './profiling.js';
|
|
10
10
|
import { Tx } from './tx.js';
|
|
11
11
|
|
|
12
12
|
export class TxProvingResult {
|
|
@@ -35,7 +35,7 @@ export class TxProvingResult {
|
|
|
35
35
|
privateExecutionResult: PrivateExecutionResult.schema,
|
|
36
36
|
publicInputs: PrivateKernelTailCircuitPublicInputs.schema,
|
|
37
37
|
clientIvcProof: ClientIvcProof.schema,
|
|
38
|
-
timings: optional(
|
|
38
|
+
timings: optional(ProvingTimingsSchema),
|
|
39
39
|
})
|
|
40
40
|
.transform(TxProvingResult.from);
|
|
41
41
|
}
|
package/src/tx/tx_effect.ts
CHANGED
|
@@ -232,15 +232,33 @@ export class TxEffect {
|
|
|
232
232
|
return thisLayer[0];
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
static async random(
|
|
235
|
+
static async random(
|
|
236
|
+
numPublicCallsPerTx = 3,
|
|
237
|
+
numPublicLogsPerCall = 1,
|
|
238
|
+
maxEffects: number | undefined = undefined,
|
|
239
|
+
): Promise<TxEffect> {
|
|
236
240
|
return new TxEffect(
|
|
237
241
|
RevertCode.random(),
|
|
238
242
|
TxHash.random(),
|
|
239
243
|
new Fr(Math.floor(Math.random() * 100_000)),
|
|
240
|
-
makeTuple(
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
+
makeTuple(
|
|
245
|
+
maxEffects === undefined ? MAX_NOTE_HASHES_PER_TX : Math.min(maxEffects, MAX_NOTE_HASHES_PER_TX),
|
|
246
|
+
Fr.random,
|
|
247
|
+
),
|
|
248
|
+
makeTuple(
|
|
249
|
+
maxEffects === undefined ? MAX_NULLIFIERS_PER_TX : Math.min(maxEffects, MAX_NULLIFIERS_PER_TX),
|
|
250
|
+
Fr.random,
|
|
251
|
+
),
|
|
252
|
+
makeTuple(
|
|
253
|
+
maxEffects === undefined ? MAX_L2_TO_L1_MSGS_PER_TX : Math.min(maxEffects, MAX_L2_TO_L1_MSGS_PER_TX),
|
|
254
|
+
Fr.random,
|
|
255
|
+
),
|
|
256
|
+
makeTuple(
|
|
257
|
+
maxEffects === undefined
|
|
258
|
+
? MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
|
|
259
|
+
: Math.min(maxEffects, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX),
|
|
260
|
+
PublicDataWrite.random,
|
|
261
|
+
),
|
|
244
262
|
makeTuple(MAX_PRIVATE_LOGS_PER_TX, () => PrivateLog.random()),
|
|
245
263
|
await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async () => await PublicLog.random()),
|
|
246
264
|
await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random),
|
package/src/validators/types.ts
CHANGED
package/src/vks/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './verification_key.js';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './vk_data.js';
|
|
@@ -7,26 +7,26 @@ import { bufferToHex } from '@aztec/foundation/string';
|
|
|
7
7
|
import type { UInt32 } from '../types/shared.js';
|
|
8
8
|
import { VerificationKeyData } from './verification_key.js';
|
|
9
9
|
|
|
10
|
-
export class
|
|
10
|
+
export class VkData {
|
|
11
11
|
constructor(
|
|
12
12
|
public vk: VerificationKeyData,
|
|
13
13
|
/**
|
|
14
14
|
* Index of the vk in the vk tree.
|
|
15
15
|
*/
|
|
16
|
-
public
|
|
16
|
+
public leafIndex: UInt32,
|
|
17
17
|
/**
|
|
18
18
|
* Sibling path of the vk in the vk tree.
|
|
19
19
|
*/
|
|
20
|
-
public
|
|
20
|
+
public siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>,
|
|
21
21
|
) {}
|
|
22
22
|
|
|
23
23
|
static empty() {
|
|
24
|
-
return new
|
|
24
|
+
return new VkData(VerificationKeyData.empty(), 0, makeTuple(VK_TREE_HEIGHT, Fr.zero));
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
28
28
|
const reader = BufferReader.asReader(buffer);
|
|
29
|
-
return new
|
|
29
|
+
return new VkData(
|
|
30
30
|
reader.readObject(VerificationKeyData),
|
|
31
31
|
reader.readNumber(),
|
|
32
32
|
reader.readArray(VK_TREE_HEIGHT, Fr),
|
|
@@ -34,7 +34,7 @@ export class VkWitnessData {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
toBuffer() {
|
|
37
|
-
return serializeToBuffer(this.vk, this.
|
|
37
|
+
return serializeToBuffer(this.vk, this.leafIndex, this.siblingPath);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
toString() {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vk_witness_data.d.ts","sourceRoot":"","sources":["../../src/vks/vk_witness_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAG1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,aAAa;IAEf,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,OAAO,EAAE,MAAM;IACtB;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;gBARxC,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,OAAO,EAAE,MAAM;IACtB;;OAEG;IACI,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;IAGjD,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAS/C,QAAQ;IAIR,QAAQ;CAGT"}
|