@aztec/stdlib 0.87.1 → 0.87.2-nightly.20250524
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/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/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_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/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/tx/validator/error_texts.d.ts +1 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +1 -1
- 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/l2_block.ts +2 -1
- package/src/block/l2_block_source.ts +9 -3
- 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_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/tx/tx_effect.ts +23 -5
- package/src/tx/validator/error_texts.ts +1 -1
- 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
package/dest/tests/factories.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { makeBlockBlobPublicInputs, makeSpongeBlob } from '@aztec/blob-lib/testing';
|
|
2
|
-
import { ARCHIVE_HEIGHT,
|
|
2
|
+
import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AZTEC_MAX_EPOCH_DURATION, BLOBS_PER_BLOCK, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FIELDS_PER_BLOB, FIXED_DA_GAS, FIXED_L2_GAS, GeneratorIndex, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_CALL, MAX_ENQUEUED_CALLS_PER_TX, MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, MAX_PRIVATE_LOGS_PER_TX, MAX_PUBLIC_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUM_BASE_PARITY_PER_ROOT_PARITY, NUM_MSGS_PER_BASE_PARITY, PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DATA_TREE_HEIGHT, PUBLIC_LOG_SIZE_IN_FIELDS, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
3
3
|
import { makeHalfFullTuple, makeTuple } from '@aztec/foundation/array';
|
|
4
4
|
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
5
5
|
import { compact } from '@aztec/foundation/collection';
|
|
@@ -10,7 +10,7 @@ import { MembershipWitness } from '@aztec/foundation/trees';
|
|
|
10
10
|
import { FunctionSelector } from '../abi/function_selector.js';
|
|
11
11
|
import { ContractStorageRead } from '../avm/contract_storage_read.js';
|
|
12
12
|
import { ContractStorageUpdateRequest } from '../avm/contract_storage_update_request.js';
|
|
13
|
-
import { AvmAccumulatedData, AvmAppendLeavesHint, AvmBytecodeCommitmentHint, AvmCircuitInputs, AvmCircuitPublicInputs, AvmCommitCheckpointHint, AvmContractClassHint, AvmContractInstanceHint, AvmCreateCheckpointHint, AvmEnqueuedCallHint, AvmExecutionHints, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmRevertCheckpointHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree, AvmTxHint, RevertCode } from '../avm/index.js';
|
|
13
|
+
import { AvmAccumulatedData, AvmAccumulatedDataArrayLengths, AvmAppendLeavesHint, AvmBytecodeCommitmentHint, AvmCircuitInputs, AvmCircuitPublicInputs, AvmCommitCheckpointHint, AvmContractClassHint, AvmContractInstanceHint, AvmCreateCheckpointHint, AvmEnqueuedCallHint, AvmExecutionHints, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmRevertCheckpointHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree, AvmTxHint, RevertCode } from '../avm/index.js';
|
|
14
14
|
import { PublicDataHint } from '../avm/public_data_hint.js';
|
|
15
15
|
import { PublicDataRead } from '../avm/public_data_read.js';
|
|
16
16
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
@@ -29,7 +29,7 @@ import { PrivateCallRequest } from '../kernel/private_call_request.js';
|
|
|
29
29
|
import { PrivateCircuitPublicInputs } from '../kernel/private_circuit_public_inputs.js';
|
|
30
30
|
import { PrivateLogData } from '../kernel/private_log_data.js';
|
|
31
31
|
import { PrivateToRollupKernelCircuitPublicInputs } from '../kernel/private_to_rollup_kernel_circuit_public_inputs.js';
|
|
32
|
-
import { CountedPublicCallRequest, PublicCallRequest } from '../kernel/public_call_request.js';
|
|
32
|
+
import { CountedPublicCallRequest, PublicCallRequest, PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
|
|
33
33
|
import { PublicKeys, computeAddress } from '../keys/index.js';
|
|
34
34
|
import { ContractClassLogFields } from '../logs/index.js';
|
|
35
35
|
import { PrivateLog } from '../logs/private_log.js';
|
|
@@ -77,8 +77,8 @@ import { TxConstantData } from '../tx/tx_constant_data.js';
|
|
|
77
77
|
import { TxContext } from '../tx/tx_context.js';
|
|
78
78
|
import { TxRequest } from '../tx/tx_request.js';
|
|
79
79
|
import { RollupTypes, Vector } from '../types/index.js';
|
|
80
|
+
import { VkData } from '../vks/index.js';
|
|
80
81
|
import { VerificationKey, VerificationKeyAsFields, VerificationKeyData } from '../vks/verification_key.js';
|
|
81
|
-
import { VkWitnessData } from '../vks/vk_witness_data.js';
|
|
82
82
|
import { mockTx } from './mocks.js';
|
|
83
83
|
/**
|
|
84
84
|
* Creates an arbitrary side effect object with the given seed.
|
|
@@ -206,6 +206,9 @@ function makePrivateToAvmAccumulatedDataArrayLengths(seed = 1) {
|
|
|
206
206
|
function makeAvmAccumulatedData(seed = 1) {
|
|
207
207
|
return new AvmAccumulatedData(makeTuple(MAX_NOTE_HASHES_PER_TX, fr, seed), makeTuple(MAX_NULLIFIERS_PER_TX, fr, seed + 0x100), makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, makeScopedL2ToL1Message, seed + 0x200), makeTuple(MAX_PUBLIC_LOGS_PER_TX, makePublicLog, seed + 0x300), makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, makePublicDataWrite, seed + 0x400));
|
|
208
208
|
}
|
|
209
|
+
function makeAvmAccumulatedDataArrayLengths(seed = 1) {
|
|
210
|
+
return new AvmAccumulatedDataArrayLengths(seed, seed + 1, seed + 2, seed + 3, seed + 4);
|
|
211
|
+
}
|
|
209
212
|
export function makeGas(seed = 1) {
|
|
210
213
|
return new Gas(seed, seed + 1);
|
|
211
214
|
}
|
|
@@ -242,7 +245,7 @@ function makePrivateToPublicKernelCircuitPublicInputs(seed = 1) {
|
|
|
242
245
|
return new PrivateToRollupKernelCircuitPublicInputs(makeTxConstantData(seed + 0x100), makeRollupValidationRequests(seed), makePrivateToRollupAccumulatedData(seed, fullAccumulatedData), makeGas(seed + 0x600), makeAztecAddress(seed + 0x700));
|
|
243
246
|
}
|
|
244
247
|
function makeAvmCircuitPublicInputs(seed = 1) {
|
|
245
|
-
return new AvmCircuitPublicInputs(makeGlobalVariables(seed), makeTreeSnapshots(seed + 0x10), makeGas(seed + 0x20), makeGasSettings(), makeAztecAddress(seed + 0x40), makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x100), makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x200), makePublicCallRequest(seed + 0x300), makePrivateToAvmAccumulatedDataArrayLengths(seed + 0x400), makePrivateToAvmAccumulatedDataArrayLengths(seed + 0x410), makePrivateToAvmAccumulatedData(seed + 0x500), makePrivateToAvmAccumulatedData(seed + 0x600), makeTreeSnapshots(seed + 0x700), makeGas(seed + 0x750), makeAvmAccumulatedData(seed + 0x800), fr(seed + 0x900), false);
|
|
248
|
+
return new AvmCircuitPublicInputs(makeGlobalVariables(seed), makeTreeSnapshots(seed + 0x10), makeGas(seed + 0x20), makeGasSettings(), makeAztecAddress(seed + 0x40), makePublicCallRequestArrayLengths(seed + 0x40), makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x100), makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x200), makePublicCallRequest(seed + 0x300), makePrivateToAvmAccumulatedDataArrayLengths(seed + 0x400), makePrivateToAvmAccumulatedDataArrayLengths(seed + 0x410), makePrivateToAvmAccumulatedData(seed + 0x500), makePrivateToAvmAccumulatedData(seed + 0x600), makeTreeSnapshots(seed + 0x700), makeGas(seed + 0x750), makeAvmAccumulatedDataArrayLengths(seed + 0x800), makeAvmAccumulatedData(seed + 0x800), fr(seed + 0x900), false);
|
|
246
249
|
}
|
|
247
250
|
function makeSiblingPath(seed, size) {
|
|
248
251
|
return makeTuple(size, fr, seed);
|
|
@@ -294,6 +297,9 @@ function makePrivateCallRequest(seed = 1) {
|
|
|
294
297
|
export function makePublicCallRequest(seed = 1) {
|
|
295
298
|
return new PublicCallRequest(makeAztecAddress(seed), makeAztecAddress(seed + 1), false, fr(seed + 0x3));
|
|
296
299
|
}
|
|
300
|
+
export function makePublicCallRequestArrayLengths(seed = 1) {
|
|
301
|
+
return new PublicCallRequestArrayLengths(seed, seed + 1, seed % 2 === 0);
|
|
302
|
+
}
|
|
297
303
|
function makeCountedPublicCallRequest(seed = 1) {
|
|
298
304
|
return new CountedPublicCallRequest(makePublicCallRequest(seed), seed + 0x100);
|
|
299
305
|
}
|
|
@@ -434,7 +440,7 @@ export function makeScopedL2ToL1Message(seed = 1) {
|
|
|
434
440
|
* @param globalVariables - The global variables to use when generating the previous rollup data.
|
|
435
441
|
* @returns A previous rollup data.
|
|
436
442
|
*/ export function makePreviousRollupData(seed = 0, globalVariables = undefined) {
|
|
437
|
-
return new PreviousRollupData(makeBaseOrMergeRollupPublicInputs(seed, globalVariables), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, seed + 0x50),
|
|
443
|
+
return new PreviousRollupData(makeBaseOrMergeRollupPublicInputs(seed, globalVariables), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, seed + 0x50), makeVkData(seed + 0x100));
|
|
438
444
|
}
|
|
439
445
|
/**
|
|
440
446
|
* Makes arbitrary previous rollup block data.
|
|
@@ -442,7 +448,7 @@ export function makeScopedL2ToL1Message(seed = 1) {
|
|
|
442
448
|
* @param globalVariables - The global variables to use when generating the previous rollup block data.
|
|
443
449
|
* @returns A previous rollup block data.
|
|
444
450
|
*/ export function makePreviousRollupBlockData(seed = 0, globalVariables = undefined) {
|
|
445
|
-
return new PreviousRollupBlockData(makeBlockRootOrBlockMergeRollupPublicInputs(seed, globalVariables), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, seed + 0x50),
|
|
451
|
+
return new PreviousRollupBlockData(makeBlockRootOrBlockMergeRollupPublicInputs(seed, globalVariables), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, seed + 0x50), makeVkData(seed + 0x100));
|
|
446
452
|
}
|
|
447
453
|
/**
|
|
448
454
|
* Makes root rollup inputs.
|
|
@@ -503,7 +509,7 @@ export function makeRootParityInputs(seed = 0) {
|
|
|
503
509
|
* @param blockNumber - The block number to use in the global variables of a header.
|
|
504
510
|
* @returns A root rollup public inputs.
|
|
505
511
|
*/ export function makeRootRollupPublicInputs(seed = 0) {
|
|
506
|
-
return new RootRollupPublicInputs(
|
|
512
|
+
return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x300), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x500), fr(seed + 0x700), fr(seed + 0x701), fr(seed + 0x702), fr(seed + 0x703), fr(seed + 0x704), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeBlockBlobPublicInputs(seed), 0x800));
|
|
507
513
|
}
|
|
508
514
|
/**
|
|
509
515
|
* Makes content commitment
|
|
@@ -612,11 +618,11 @@ function makeTreeSnapshots(seed = 0) {
|
|
|
612
618
|
const feeWriteSiblingPath = makeTuple(PUBLIC_DATA_TREE_HEIGHT, fr, seed + 0x9000);
|
|
613
619
|
return new PrivateBaseStateDiffHints(nullifierPredecessorPreimages, nullifierPredecessorMembershipWitnesses, sortedNullifiers, sortedNullifierIndexes, noteHashSubtreeSiblingPath, nullifierSubtreeSiblingPath, feeWriteLowLeafPreimage, feeWriteLowLeafMembershipWitness, feeWriteSiblingPath);
|
|
614
620
|
}
|
|
615
|
-
function
|
|
616
|
-
return new
|
|
621
|
+
function makeVkData(seed = 1) {
|
|
622
|
+
return new VkData(VerificationKeyData.makeFakeHonk(), seed, makeTuple(VK_TREE_HEIGHT, fr, seed + 0x100));
|
|
617
623
|
}
|
|
618
624
|
function makePrivateTubeData(seed = 1, kernelPublicInputs) {
|
|
619
|
-
return new PrivateTubeData(kernelPublicInputs ?? makePrivateToRollupKernelCircuitPublicInputs(seed, true), makeRecursiveProof(TUBE_PROOF_LENGTH, seed + 0x100),
|
|
625
|
+
return new PrivateTubeData(kernelPublicInputs ?? makePrivateToRollupKernelCircuitPublicInputs(seed, true), makeRecursiveProof(TUBE_PROOF_LENGTH, seed + 0x100), makeVkData(seed + 0x200));
|
|
620
626
|
}
|
|
621
627
|
function makeContractClassLogFields(seed = 1) {
|
|
622
628
|
return new ContractClassLogFields(makeArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, fr, seed));
|
|
@@ -660,10 +666,10 @@ export function makePrivateBaseRollupInputs(seed = 0) {
|
|
|
660
666
|
});
|
|
661
667
|
}
|
|
662
668
|
function makePublicTubeData(seed = 1) {
|
|
663
|
-
return new PublicTubeData(makePrivateToPublicKernelCircuitPublicInputs(seed), makeRecursiveProof(TUBE_PROOF_LENGTH, seed + 0x100),
|
|
669
|
+
return new PublicTubeData(makePrivateToPublicKernelCircuitPublicInputs(seed), makeRecursiveProof(TUBE_PROOF_LENGTH, seed + 0x100), makeVkData(seed + 0x200));
|
|
664
670
|
}
|
|
665
671
|
function makeAvmProofData(seed = 1) {
|
|
666
|
-
return new AvmProofData(makeAvmCircuitPublicInputs(seed), makeRecursiveProof(
|
|
672
|
+
return new AvmProofData(makeAvmCircuitPublicInputs(seed), makeRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, seed + 0x100), makeVkData(seed + 0x200));
|
|
667
673
|
}
|
|
668
674
|
export function makePublicBaseRollupInputs(seed = 0) {
|
|
669
675
|
const tubeData = makePublicTubeData(seed);
|
|
@@ -863,13 +869,13 @@ export function makeAvmEnqueuedCallHint(seed = 0) {
|
|
|
863
869
|
return new AvmEnqueuedCallHint(new AztecAddress(new Fr(seed)), new AztecAddress(new Fr(seed + 2)), makeArray(seed % 20 + 4, (i)=>new Fr(i), seed + 0x1000), /*isStaticCall=*/ false);
|
|
864
870
|
}
|
|
865
871
|
export function makeAvmTxHint(seed = 0) {
|
|
866
|
-
return new AvmTxHint(`txhash-${seed}`, makeGlobalVariables(seed), {
|
|
872
|
+
return new AvmTxHint(`txhash-${seed}`, makeGlobalVariables(seed), makeGasSettings(), {
|
|
867
873
|
noteHashes: makeArray(seed % 20 + 4, (i)=>new Fr(i), seed + 0x1000),
|
|
868
874
|
nullifiers: makeArray(seed % 20 + 4, (i)=>new Fr(i), seed + 0x2000)
|
|
869
875
|
}, {
|
|
870
876
|
noteHashes: makeArray(seed % 20 + 4, (i)=>new Fr(i), seed + 0x3000),
|
|
871
877
|
nullifiers: makeArray(seed % 20 + 4, (i)=>new Fr(i), seed + 0x4000)
|
|
872
|
-
}, makeArray(seed % 20 + 4, (i)=>makeAvmEnqueuedCallHint(i), seed + 0x5000), makeArray(seed % 20 + 4, (i)=>makeAvmEnqueuedCallHint(i), seed + 0x6000), makeAvmEnqueuedCallHint(seed + 0x7000));
|
|
878
|
+
}, makeArray(seed % 20 + 4, (i)=>makeAvmEnqueuedCallHint(i), seed + 0x5000), makeArray(seed % 20 + 4, (i)=>makeAvmEnqueuedCallHint(i), seed + 0x6000), makeAvmEnqueuedCallHint(seed + 0x7000), makeGas(seed + 0x8000));
|
|
873
879
|
}
|
|
874
880
|
/**
|
|
875
881
|
* Creates arbitrary AvmExecutionHints.
|
package/dest/tx/tx_effect.d.ts
CHANGED
|
@@ -112,7 +112,7 @@ export declare class TxEffect {
|
|
|
112
112
|
* @dev Follows new_sha in variable_merkle_tree.nr
|
|
113
113
|
*/
|
|
114
114
|
txOutHash(): Buffer<ArrayBufferLike>;
|
|
115
|
-
static random(numPublicCallsPerTx?: number, numPublicLogsPerCall?: number): Promise<TxEffect>;
|
|
115
|
+
static random(numPublicCallsPerTx?: number, numPublicLogsPerCall?: number, maxEffects?: number | undefined): Promise<TxEffect>;
|
|
116
116
|
static empty(): TxEffect;
|
|
117
117
|
isEmpty(): boolean;
|
|
118
118
|
/** Returns a hex representation of the TxEffect object. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,yBAAyB,CAAC;AAInF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EAGZ,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD,eAAO,MAAM,4BAA4B,QAA0C,CAAC;AAEpF,eAAO,MAAM,4BAA4B,QAAmC,CAAC;AAE7E,qBAAa,QAAQ;IAEjB;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;;IAxC5C;;OAEG;IACI,UAAU,EAAE,UAAU;IAC7B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,cAAc,EAAE,EAAE;IACzB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;;OAGG;IACI,UAAU,EAAE,EAAE,EAAE;IACvB;;OAEG;IACI,gBAAgB,EAAE,eAAe,EAAE;IAC1C;;OAEG;IACI,WAAW,EAAE,UAAU,EAAE;IAChC;;OAEG;IACI,UAAU,EAAE,SAAS,EAAE;IAC9B;;OAEG;IACI,iBAAiB,EAAE,gBAAgB,EAAE;IAoD9C,QAAQ,IAAI,MAAM;IAelB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAsBhC,yEAAyE;IACzE,SAAS;IAIT;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ;IAiB1D;;;;OAIG;IACH,SAAS;WAuBI,MAAM,
|
|
1
|
+
{"version":3,"file":"tx_effect.d.ts","sourceRoot":"","sources":["../../src/tx/tx_effect.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx_effect.js
CHANGED
|
@@ -160,8 +160,8 @@ export class TxEffect {
|
|
|
160
160
|
}
|
|
161
161
|
return thisLayer[0];
|
|
162
162
|
}
|
|
163
|
-
static async random(numPublicCallsPerTx = 3, numPublicLogsPerCall = 1) {
|
|
164
|
-
return new TxEffect(RevertCode.random(), TxHash.random(), new Fr(Math.floor(Math.random() * 100_000)), makeTuple(MAX_NOTE_HASHES_PER_TX, Fr.random), makeTuple(MAX_NULLIFIERS_PER_TX, Fr.random), makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, Fr.random), makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite.random), makeTuple(MAX_PRIVATE_LOGS_PER_TX, ()=>PrivateLog.random()), await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async ()=>await PublicLog.random()), await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random));
|
|
163
|
+
static async random(numPublicCallsPerTx = 3, numPublicLogsPerCall = 1, maxEffects = undefined) {
|
|
164
|
+
return new TxEffect(RevertCode.random(), TxHash.random(), new Fr(Math.floor(Math.random() * 100_000)), makeTuple(maxEffects === undefined ? MAX_NOTE_HASHES_PER_TX : Math.min(maxEffects, MAX_NOTE_HASHES_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_NULLIFIERS_PER_TX : Math.min(maxEffects, MAX_NULLIFIERS_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_L2_TO_L1_MSGS_PER_TX : Math.min(maxEffects, MAX_L2_TO_L1_MSGS_PER_TX), Fr.random), makeTuple(maxEffects === undefined ? MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX : Math.min(maxEffects, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX), PublicDataWrite.random), makeTuple(MAX_PRIVATE_LOGS_PER_TX, ()=>PrivateLog.random()), await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async ()=>await PublicLog.random()), await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random));
|
|
165
165
|
}
|
|
166
166
|
static empty() {
|
|
167
167
|
return new TxEffect(RevertCode.OK, TxHash.zero(), Fr.ZERO, [], [], [], [], [], [], []);
|
|
@@ -4,7 +4,7 @@ export declare const TX_ERROR_INSUFFICIENT_GAS_LIMIT = "Gas limit is below the m
|
|
|
4
4
|
export declare const TX_ERROR_SETUP_FUNCTION_NOT_ALLOWED = "Setup function not on allow list";
|
|
5
5
|
export declare const TX_ERROR_DUPLICATE_NULLIFIER_IN_TX = "Duplicate nullifier in tx";
|
|
6
6
|
export declare const TX_ERROR_EXISTING_NULLIFIER = "Existing nullifier";
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const TX_ERROR_INVALID_MAX_BLOCK_NUMBER = "Invalid max block number";
|
|
8
8
|
export declare const TX_ERROR_INCORRECT_L1_CHAIN_ID = "Incorrect L1 chain id";
|
|
9
9
|
export declare const TX_ERROR_INCORRECT_ROLLUP_VERSION = "Incorrect rollup version";
|
|
10
10
|
export declare const TX_ERROR_INCORRECT_VK_TREE_ROOT = "Incorrect protocol circuits tree root";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error_texts.d.ts","sourceRoot":"","sources":["../../../src/tx/validator/error_texts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAC5E,eAAO,MAAM,uCAAuC,mCAAmC,CAAC;AACxF,eAAO,MAAM,+BAA+B,8CAA8C,CAAC;AAG3F,eAAO,MAAM,mCAAmC,qCAAqC,CAAC;AAGtF,eAAO,MAAM,kCAAkC,8BAA8B,CAAC;AAC9E,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAGhE,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"error_texts.d.ts","sourceRoot":"","sources":["../../../src/tx/validator/error_texts.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAC5E,eAAO,MAAM,uCAAuC,mCAAmC,CAAC;AACxF,eAAO,MAAM,+BAA+B,8CAA8C,CAAC;AAG3F,eAAO,MAAM,mCAAmC,qCAAqC,CAAC;AAGtF,eAAO,MAAM,kCAAkC,8BAA8B,CAAC;AAC9E,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAGhE,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAC5E,eAAO,MAAM,8BAA8B,0BAA0B,CAAC;AACtE,eAAO,MAAM,iCAAiC,6BAA6B,CAAC;AAC5E,eAAO,MAAM,+BAA+B,0CAA0C,CAAC;AACvF,eAAO,MAAM,8CAA8C,2CAA2C,CAAC;AAGvG,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAGtD,eAAO,MAAM,2BAA2B,uCAAuC,CAAC;AAChF,eAAO,MAAM,gCAAgC,8CAA8C,CAAC;AAC5F,eAAO,MAAM,iCAAiC,uDAAuD,CAAC;AACtG,eAAO,MAAM,iCAAiC,6CAA6C,CAAC;AAC5F,eAAO,MAAM,kCAAkC,yCAAyC,CAAC;AACzF,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAC7E,eAAO,MAAM,mCAAmC,2CAA2C,CAAC;AAG5F,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAG9D,eAAO,MAAM,0BAA0B,uCAAuC,CAAC"}
|
|
@@ -8,7 +8,7 @@ export const TX_ERROR_SETUP_FUNCTION_NOT_ALLOWED = 'Setup function not on allow
|
|
|
8
8
|
export const TX_ERROR_DUPLICATE_NULLIFIER_IN_TX = 'Duplicate nullifier in tx';
|
|
9
9
|
export const TX_ERROR_EXISTING_NULLIFIER = 'Existing nullifier';
|
|
10
10
|
// Metadata
|
|
11
|
-
export const
|
|
11
|
+
export const TX_ERROR_INVALID_MAX_BLOCK_NUMBER = 'Invalid max block number';
|
|
12
12
|
export const TX_ERROR_INCORRECT_L1_CHAIN_ID = 'Incorrect L1 chain id';
|
|
13
13
|
export const TX_ERROR_INCORRECT_ROLLUP_VERSION = 'Incorrect rollup version';
|
|
14
14
|
export const TX_ERROR_INCORRECT_VK_TREE_ROOT = 'Incorrect protocol circuits tree root';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB,EAAE;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
|
package/dest/vks/index.d.ts
CHANGED
package/dest/vks/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
|
package/dest/vks/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './verification_key.js';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './vk_data.js';
|
|
@@ -3,28 +3,28 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
3
3
|
import { BufferReader, type Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import type { UInt32 } from '../types/shared.js';
|
|
5
5
|
import { VerificationKeyData } from './verification_key.js';
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class VkData {
|
|
7
7
|
vk: VerificationKeyData;
|
|
8
8
|
/**
|
|
9
9
|
* Index of the vk in the vk tree.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
leafIndex: UInt32;
|
|
12
12
|
/**
|
|
13
13
|
* Sibling path of the vk in the vk tree.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>;
|
|
16
16
|
constructor(vk: VerificationKeyData,
|
|
17
17
|
/**
|
|
18
18
|
* Index of the vk in the vk tree.
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
leafIndex: UInt32,
|
|
21
21
|
/**
|
|
22
22
|
* Sibling path of the vk in the vk tree.
|
|
23
23
|
*/
|
|
24
|
-
|
|
25
|
-
static empty():
|
|
26
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
24
|
+
siblingPath: Tuple<Fr, typeof VK_TREE_HEIGHT>);
|
|
25
|
+
static empty(): VkData;
|
|
26
|
+
static fromBuffer(buffer: Buffer | BufferReader): VkData;
|
|
27
27
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
28
28
|
toString(): `0x${string}`;
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=vk_data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vk_data.d.ts","sourceRoot":"","sources":["../../src/vks/vk_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,MAAM;IAER,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;gBAR7C,EAAE,EAAE,mBAAmB;IAC9B;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC;IAGtD,MAAM,CAAC,KAAK;IAIZ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAS/C,QAAQ;IAIR,QAAQ;CAGT"}
|
|
@@ -4,28 +4,28 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
4
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
5
|
import { bufferToHex } from '@aztec/foundation/string';
|
|
6
6
|
import { VerificationKeyData } from './verification_key.js';
|
|
7
|
-
export class
|
|
7
|
+
export class VkData {
|
|
8
8
|
vk;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
leafIndex;
|
|
10
|
+
siblingPath;
|
|
11
11
|
constructor(vk, /**
|
|
12
12
|
* Index of the vk in the vk tree.
|
|
13
|
-
*/
|
|
13
|
+
*/ leafIndex, /**
|
|
14
14
|
* Sibling path of the vk in the vk tree.
|
|
15
|
-
*/
|
|
15
|
+
*/ siblingPath){
|
|
16
16
|
this.vk = vk;
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
17
|
+
this.leafIndex = leafIndex;
|
|
18
|
+
this.siblingPath = siblingPath;
|
|
19
19
|
}
|
|
20
20
|
static empty() {
|
|
21
|
-
return new
|
|
21
|
+
return new VkData(VerificationKeyData.empty(), 0, makeTuple(VK_TREE_HEIGHT, Fr.zero));
|
|
22
22
|
}
|
|
23
23
|
static fromBuffer(buffer) {
|
|
24
24
|
const reader = BufferReader.asReader(buffer);
|
|
25
|
-
return new
|
|
25
|
+
return new VkData(reader.readObject(VerificationKeyData), reader.readNumber(), reader.readArray(VK_TREE_HEIGHT, Fr));
|
|
26
26
|
}
|
|
27
27
|
toBuffer() {
|
|
28
|
-
return serializeToBuffer(this.vk, this.
|
|
28
|
+
return serializeToBuffer(this.vk, this.leafIndex, this.siblingPath);
|
|
29
29
|
}
|
|
30
30
|
toString() {
|
|
31
31
|
return bufferToHex(this.toBuffer());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "0.87.
|
|
3
|
+
"version": "0.87.2-nightly.20250524",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -67,12 +67,12 @@
|
|
|
67
67
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/bb.js": "0.87.
|
|
71
|
-
"@aztec/blob-lib": "0.87.
|
|
72
|
-
"@aztec/constants": "0.87.
|
|
73
|
-
"@aztec/ethereum": "0.87.
|
|
74
|
-
"@aztec/foundation": "0.87.
|
|
75
|
-
"@aztec/noir-noirc_abi": "0.87.
|
|
70
|
+
"@aztec/bb.js": "0.87.2-nightly.20250524",
|
|
71
|
+
"@aztec/blob-lib": "0.87.2-nightly.20250524",
|
|
72
|
+
"@aztec/constants": "0.87.2-nightly.20250524",
|
|
73
|
+
"@aztec/ethereum": "0.87.2-nightly.20250524",
|
|
74
|
+
"@aztec/foundation": "0.87.2-nightly.20250524",
|
|
75
|
+
"@aztec/noir-noirc_abi": "0.87.2-nightly.20250524",
|
|
76
76
|
"@google-cloud/storage": "^7.15.0",
|
|
77
77
|
"axios": "^1.9.0",
|
|
78
78
|
"json-stringify-deterministic": "1.0.12",
|
package/src/abi/abi.ts
CHANGED
|
@@ -533,3 +533,40 @@ export function getInitializer(
|
|
|
533
533
|
return initializerNameOrArtifact;
|
|
534
534
|
}
|
|
535
535
|
}
|
|
536
|
+
|
|
537
|
+
export function emptyFunctionAbi(): FunctionAbi {
|
|
538
|
+
return {
|
|
539
|
+
name: '',
|
|
540
|
+
functionType: FunctionType.PRIVATE,
|
|
541
|
+
isInternal: false,
|
|
542
|
+
isStatic: false,
|
|
543
|
+
parameters: [],
|
|
544
|
+
returnTypes: [],
|
|
545
|
+
errorTypes: {},
|
|
546
|
+
isInitializer: false,
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
export function emptyFunctionArtifact(): FunctionArtifact {
|
|
551
|
+
const abi = emptyFunctionAbi();
|
|
552
|
+
return {
|
|
553
|
+
...abi,
|
|
554
|
+
bytecode: Buffer.from([]),
|
|
555
|
+
debugSymbols: '',
|
|
556
|
+
};
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
export function emptyContractArtifact(): ContractArtifact {
|
|
560
|
+
return {
|
|
561
|
+
name: '',
|
|
562
|
+
functions: [emptyFunctionArtifact()],
|
|
563
|
+
nonDispatchPublicFunctions: [emptyFunctionAbi()],
|
|
564
|
+
outputs: {
|
|
565
|
+
structs: {},
|
|
566
|
+
globals: {},
|
|
567
|
+
},
|
|
568
|
+
storageLayout: {},
|
|
569
|
+
fileMap: {},
|
|
570
|
+
notes: {},
|
|
571
|
+
};
|
|
572
|
+
}
|
package/src/avm/avm.ts
CHANGED
|
@@ -5,6 +5,8 @@ import { schemas } from '@aztec/foundation/schemas';
|
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
|
|
7
7
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
8
|
+
import { Gas } from '../gas/gas.js';
|
|
9
|
+
import { GasSettings } from '../gas/gas_settings.js';
|
|
8
10
|
import { PublicKeys } from '../keys/public_keys.js';
|
|
9
11
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
10
12
|
import { MerkleTreeId } from '../trees/merkle_tree_id.js';
|
|
@@ -406,6 +408,7 @@ export class AvmTxHint {
|
|
|
406
408
|
constructor(
|
|
407
409
|
public readonly hash: string,
|
|
408
410
|
public readonly globalVariables: GlobalVariables,
|
|
411
|
+
public readonly gasSettings: GasSettings,
|
|
409
412
|
public readonly nonRevertibleAccumulatedData: {
|
|
410
413
|
noteHashes: Fr[];
|
|
411
414
|
nullifiers: Fr[];
|
|
@@ -421,6 +424,7 @@ export class AvmTxHint {
|
|
|
421
424
|
// We need this to be null and not undefined because that's what
|
|
422
425
|
// MessagePack expects for an std::optional.
|
|
423
426
|
public readonly teardownEnqueuedCall: AvmEnqueuedCallHint | null,
|
|
427
|
+
public readonly gasUsedByPrivate: Gas,
|
|
424
428
|
) {}
|
|
425
429
|
|
|
426
430
|
static async fromTx(tx: Tx): Promise<AvmTxHint> {
|
|
@@ -434,6 +438,7 @@ export class AvmTxHint {
|
|
|
434
438
|
return new AvmTxHint(
|
|
435
439
|
txHash.hash.toString(),
|
|
436
440
|
tx.data.constants.historicalHeader.globalVariables,
|
|
441
|
+
tx.data.constants.txContext.gasSettings,
|
|
437
442
|
{
|
|
438
443
|
noteHashes: tx.data.forPublic!.nonRevertibleAccumulatedData.noteHashes.filter(x => !x.isZero()),
|
|
439
444
|
nullifiers: tx.data.forPublic!.nonRevertibleAccumulatedData.nullifiers.filter(x => !x.isZero()),
|
|
@@ -468,6 +473,7 @@ export class AvmTxHint {
|
|
|
468
473
|
teardownCallRequest.request.isStaticCall,
|
|
469
474
|
)
|
|
470
475
|
: null,
|
|
476
|
+
tx.data.gasUsed,
|
|
471
477
|
);
|
|
472
478
|
}
|
|
473
479
|
|
|
@@ -475,11 +481,13 @@ export class AvmTxHint {
|
|
|
475
481
|
return new AvmTxHint(
|
|
476
482
|
'',
|
|
477
483
|
GlobalVariables.empty(),
|
|
484
|
+
GasSettings.empty(),
|
|
478
485
|
{ noteHashes: [], nullifiers: [] },
|
|
479
486
|
{ noteHashes: [], nullifiers: [] },
|
|
480
487
|
[],
|
|
481
488
|
[],
|
|
482
489
|
null,
|
|
490
|
+
Gas.empty(),
|
|
483
491
|
);
|
|
484
492
|
}
|
|
485
493
|
|
|
@@ -488,6 +496,7 @@ export class AvmTxHint {
|
|
|
488
496
|
.object({
|
|
489
497
|
hash: z.string(),
|
|
490
498
|
globalVariables: GlobalVariables.schema,
|
|
499
|
+
gasSettings: GasSettings.schema,
|
|
491
500
|
nonRevertibleAccumulatedData: z.object({
|
|
492
501
|
noteHashes: schemas.Fr.array(),
|
|
493
502
|
nullifiers: schemas.Fr.array(),
|
|
@@ -499,25 +508,30 @@ export class AvmTxHint {
|
|
|
499
508
|
setupEnqueuedCalls: AvmEnqueuedCallHint.schema.array(),
|
|
500
509
|
appLogicEnqueuedCalls: AvmEnqueuedCallHint.schema.array(),
|
|
501
510
|
teardownEnqueuedCall: AvmEnqueuedCallHint.schema.nullable(),
|
|
511
|
+
gasUsedByPrivate: Gas.schema,
|
|
502
512
|
})
|
|
503
513
|
.transform(
|
|
504
514
|
({
|
|
505
515
|
hash,
|
|
506
516
|
globalVariables,
|
|
517
|
+
gasSettings,
|
|
507
518
|
nonRevertibleAccumulatedData,
|
|
508
519
|
revertibleAccumulatedData,
|
|
509
520
|
setupEnqueuedCalls,
|
|
510
521
|
appLogicEnqueuedCalls,
|
|
511
522
|
teardownEnqueuedCall,
|
|
523
|
+
gasUsedByPrivate,
|
|
512
524
|
}) =>
|
|
513
525
|
new AvmTxHint(
|
|
514
526
|
hash,
|
|
515
527
|
globalVariables,
|
|
528
|
+
gasSettings,
|
|
516
529
|
nonRevertibleAccumulatedData,
|
|
517
530
|
revertibleAccumulatedData,
|
|
518
531
|
setupEnqueuedCalls,
|
|
519
532
|
appLogicEnqueuedCalls,
|
|
520
533
|
teardownEnqueuedCall,
|
|
534
|
+
gasUsedByPrivate,
|
|
521
535
|
),
|
|
522
536
|
);
|
|
523
537
|
}
|
|
@@ -185,3 +185,96 @@ export class AvmAccumulatedData {
|
|
|
185
185
|
}`;
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Represents the lengths of arrays in AVM accumulated data
|
|
191
|
+
*/
|
|
192
|
+
export class AvmAccumulatedDataArrayLengths {
|
|
193
|
+
constructor(
|
|
194
|
+
/**
|
|
195
|
+
* Number of note hashes
|
|
196
|
+
*/
|
|
197
|
+
public noteHashes: number,
|
|
198
|
+
/**
|
|
199
|
+
* Number of nullifiers
|
|
200
|
+
*/
|
|
201
|
+
public nullifiers: number,
|
|
202
|
+
/**
|
|
203
|
+
* Number of L2 to L1 messages
|
|
204
|
+
*/
|
|
205
|
+
public l2ToL1Msgs: number,
|
|
206
|
+
/**
|
|
207
|
+
* Number of public logs
|
|
208
|
+
*/
|
|
209
|
+
public publicLogs: number,
|
|
210
|
+
/**
|
|
211
|
+
* Number of public data writes
|
|
212
|
+
*/
|
|
213
|
+
public publicDataWrites: number,
|
|
214
|
+
) {}
|
|
215
|
+
|
|
216
|
+
static get schema() {
|
|
217
|
+
return z
|
|
218
|
+
.object({
|
|
219
|
+
noteHashes: z.number(),
|
|
220
|
+
nullifiers: z.number(),
|
|
221
|
+
l2ToL1Msgs: z.number(),
|
|
222
|
+
publicLogs: z.number(),
|
|
223
|
+
publicDataWrites: z.number(),
|
|
224
|
+
})
|
|
225
|
+
.transform(
|
|
226
|
+
({ noteHashes, nullifiers, l2ToL1Msgs, publicLogs, publicDataWrites }) =>
|
|
227
|
+
new AvmAccumulatedDataArrayLengths(noteHashes, nullifiers, l2ToL1Msgs, publicLogs, publicDataWrites),
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
232
|
+
const reader = BufferReader.asReader(buffer);
|
|
233
|
+
return new AvmAccumulatedDataArrayLengths(
|
|
234
|
+
reader.readNumber(),
|
|
235
|
+
reader.readNumber(),
|
|
236
|
+
reader.readNumber(),
|
|
237
|
+
reader.readNumber(),
|
|
238
|
+
reader.readNumber(),
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
toBuffer() {
|
|
243
|
+
return serializeToBuffer(this.noteHashes, this.nullifiers, this.l2ToL1Msgs, this.publicLogs, this.publicDataWrites);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
static fromFields(fields: Fr[] | FieldReader) {
|
|
247
|
+
const reader = FieldReader.asReader(fields);
|
|
248
|
+
return new AvmAccumulatedDataArrayLengths(
|
|
249
|
+
Number(reader.readField()),
|
|
250
|
+
Number(reader.readField()),
|
|
251
|
+
Number(reader.readField()),
|
|
252
|
+
Number(reader.readField()),
|
|
253
|
+
Number(reader.readField()),
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
toFields(): Fr[] {
|
|
258
|
+
return [
|
|
259
|
+
new Fr(this.noteHashes),
|
|
260
|
+
new Fr(this.nullifiers),
|
|
261
|
+
new Fr(this.l2ToL1Msgs),
|
|
262
|
+
new Fr(this.publicLogs),
|
|
263
|
+
new Fr(this.publicDataWrites),
|
|
264
|
+
];
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
static empty() {
|
|
268
|
+
return new AvmAccumulatedDataArrayLengths(0, 0, 0, 0, 0);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
[inspect.custom]() {
|
|
272
|
+
return `AvmAccumulatedDataArrayLengths {
|
|
273
|
+
noteHashes: ${this.noteHashes},
|
|
274
|
+
nullifiers: ${this.nullifiers},
|
|
275
|
+
l2ToL1Msgs: ${this.l2ToL1Msgs},
|
|
276
|
+
publicLogs: ${this.publicLogs},
|
|
277
|
+
publicDataWrites: ${this.publicDataWrites},
|
|
278
|
+
}`;
|
|
279
|
+
}
|
|
280
|
+
}
|