@aztec/stdlib 0.0.1-commit.c7c42ec → 0.0.1-commit.c80b6263
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/contract_artifact.d.ts +2 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +1 -1
- package/dest/abi/function_call.d.ts +9 -1
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/selector.js +3 -1
- package/dest/abi/utils.d.ts +7 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +7 -0
- package/dest/auth_witness/auth_witness.d.ts +2 -1
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/avm/avm.d.ts +62 -62
- package/dest/avm/avm_accumulated_data.d.ts +30 -3
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +5 -2
- package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
- package/dest/avm/avm_circuit_public_inputs.js +3 -1
- package/dest/avm/avm_proving_request.d.ts +299 -299
- package/dest/avm/contract_storage_read.d.ts +13 -1
- package/dest/avm/contract_storage_read.d.ts.map +1 -1
- package/dest/avm/contract_storage_update_request.d.ts +13 -1
- package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
- package/dest/avm/public_data_read.d.ts +10 -1
- package/dest/avm/public_data_read.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.d.ts +10 -1
- package/dest/avm/public_data_update_request.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.js +3 -1
- package/dest/avm/public_data_write.d.ts +7 -1
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.d.ts +4 -1
- package/dest/avm/public_inner_call_request.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.js +3 -1
- package/dest/avm/revert_code.d.ts +4 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +3 -1
- package/dest/aztec-address/index.js +4 -2
- package/dest/block/attestation_info.d.ts +5 -5
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +4 -4
- package/dest/block/block_hash.d.ts +16 -9
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +23 -8
- package/dest/block/block_parameter.d.ts +4 -3
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -0
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +5 -2
- package/dest/block/checkpointed_l2_block.d.ts +20 -137
- package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
- package/dest/block/checkpointed_l2_block.js +7 -45
- package/dest/block/in_block.d.ts +8 -8
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/in_block.js +4 -4
- package/dest/block/index.d.ts +1 -3
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +0 -2
- package/dest/block/l2_block.d.ts +56 -57
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +64 -107
- package/dest/block/l2_block_source.d.ts +296 -67
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +25 -6
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +8 -3
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +106 -31
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +478 -38
- package/dest/block/validate_block_result.d.ts +24 -24
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -17
- package/dest/checkpoint/checkpoint.d.ts +30 -20
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +19 -6
- package/dest/checkpoint/checkpoint_info.d.ts +32 -3
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_info.js +34 -1
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/published_checkpoint.d.ts +17 -15
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +4 -3
- package/dest/config/node-rpc-config.js +1 -1
- package/dest/contract/complete_address.d.ts +4 -1
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/contract_deployment_data.d.ts +5 -5
- package/dest/contract/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/contract/interfaces/contract_instance.d.ts +16 -16
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +1 -2
- package/dest/database-version/version_manager.d.ts +4 -2
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +3 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
- package/dest/deserialization/index.d.ts +11 -0
- package/dest/deserialization/index.d.ts.map +1 -0
- package/dest/deserialization/index.js +10 -0
- package/dest/epoch-helpers/index.d.ts +3 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +5 -1
- package/dest/errors/proving_error.d.ts +2 -2
- package/dest/errors/proving_error.d.ts.map +1 -1
- package/dest/gas/gas.js +3 -1
- package/dest/gas/gas_fees.js +3 -1
- package/dest/interfaces/api_limit.d.ts +3 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +2 -0
- package/dest/interfaces/archiver.d.ts +6 -6
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +20 -16
- package/dest/interfaces/aztec-node-admin.d.ts +67 -31
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +2 -2
- package/dest/interfaces/aztec-node.d.ts +70 -51
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +12 -9
- package/dest/interfaces/block-builder.d.ts +17 -14
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +12 -7
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +2 -1
- package/dest/interfaces/get_logs_response.d.ts +3 -3
- package/dest/interfaces/l2_logs_source.d.ts +14 -5
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +7 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +3 -4
- package/dest/interfaces/prover-client.d.ts +10 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +7 -1
- package/dest/interfaces/proving-job.d.ts +184 -184
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -7
- package/dest/interfaces/server_circuit_prover.d.ts +4 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/tx_provider.d.ts +3 -3
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +108 -18
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +5 -3
- package/dest/kernel/claimed_length_array.js +3 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +19 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
- package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +2 -1
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request.d.ts +7 -1
- package/dest/kernel/hints/read_request.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.d.ts +7 -1
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
- package/dest/kernel/log_hash.js +3 -1
- package/dest/kernel/private_accumulated_data.d.ts +23 -1
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.d.ts +25 -1
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_request.d.ts +16 -1
- package/dest/kernel/private_call_request.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.d.ts +7 -1
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- 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_public_inputs.d.ts +23 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_log_data.js +5 -2
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
- package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
- package/dest/kernel/private_to_public_accumulated_data.js +3 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.d.ts +10 -1
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +3 -1
- package/dest/kernel/public_call_request.d.ts +22 -1
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +5 -2
- package/dest/kernel/utils/optional_number.d.ts +7 -1
- package/dest/kernel/utils/optional_number.d.ts.map +1 -1
- package/dest/keys/public_keys.d.ts +5 -1
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +3 -1
- package/dest/logs/extended_contract_class_log.d.ts +3 -1
- package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
- package/dest/logs/extended_public_log.d.ts +7 -5
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/log_id.d.ts +10 -6
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +5 -5
- package/dest/logs/private_log.js +3 -1
- package/dest/logs/public_log.js +3 -1
- package/dest/messaging/in_hash.d.ts +4 -2
- package/dest/messaging/in_hash.d.ts.map +1 -1
- package/dest/messaging/in_hash.js +3 -1
- package/dest/messaging/inbox_leaf.d.ts +3 -1
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/l1_actor.d.ts +7 -1
- package/dest/messaging/l1_actor.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.d.ts +6 -1
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l2_actor.d.ts +7 -1
- package/dest/messaging/l2_actor.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +160 -42
- package/dest/messaging/out_hash.d.ts +41 -3
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +54 -19
- package/dest/note/note_dao.d.ts +36 -5
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +15 -12
- package/dest/p2p/attestation_utils.d.ts +3 -3
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +1 -1
- package/dest/p2p/block_proposal.d.ts +102 -23
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +140 -39
- package/dest/p2p/checkpoint_attestation.d.ts +81 -0
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
- package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
- package/dest/p2p/checkpoint_proposal.d.ts +167 -0
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
- package/dest/p2p/checkpoint_proposal.js +229 -0
- package/dest/p2p/consensus_payload.d.ts +9 -9
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +3 -5
- package/dest/p2p/constants.d.ts +3 -0
- package/dest/p2p/constants.d.ts.map +1 -0
- package/dest/p2p/constants.js +2 -0
- package/dest/p2p/gossipable.d.ts +4 -3
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +16 -5
- package/dest/p2p/index.d.ts +5 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +4 -1
- package/dest/p2p/message_validator.d.ts +18 -3
- package/dest/p2p/message_validator.d.ts.map +1 -1
- package/dest/p2p/message_validator.js +2 -1
- package/dest/p2p/signature_utils.d.ts +5 -3
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +3 -1
- package/dest/p2p/signed_txs.d.ts +42 -0
- package/dest/p2p/signed_txs.d.ts.map +1 -0
- package/dest/p2p/signed_txs.js +75 -0
- package/dest/p2p/topic_type.d.ts +3 -2
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +10 -3
- package/dest/parity/parity_base_private_inputs.d.ts +3 -1
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.d.ts +4 -1
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_root_private_inputs.d.ts +2 -1
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +1 -1
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +9 -4
- package/dest/proofs/proof.d.ts +4 -1
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/recursive_proof.d.ts +10 -1
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +34 -1
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.d.ts +12 -1
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +8 -12
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.js +3 -1
- package/dest/rollup/checkpoint_header.d.ts +42 -12
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +49 -19
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
- package/dest/rollup/epoch_constant_data.d.ts +16 -1
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +18 -3
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +9 -3
- package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +1 -1
- package/dest/tests/factories.d.ts +16 -10
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +60 -25
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +74 -19
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +123 -57
- package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +3 -1
- package/dest/trees/nullifier_leaf.d.ts +13 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +10 -1
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.d.ts +16 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +11 -1
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +14 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +8 -2
- package/dest/tx/call_context.d.ts +13 -1
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/call_context.js +3 -1
- package/dest/tx/capsule.d.ts +4 -1
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/execution_payload.d.ts +9 -1
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -2
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +2 -2
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +9 -1
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +3 -1
- package/dest/tx/hashed_values.d.ts +7 -1
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +3 -3
- package/dest/tx/index.d.ts +1 -2
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- package/dest/tx/indexed_tx_effect.d.ts +4 -4
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +2 -2
- package/dest/tx/partial_state_reference.d.ts +4 -1
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/private_execution_result.d.ts +23 -6
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +4 -21
- package/dest/tx/private_tx_constant_data.d.ts +16 -1
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +149 -26
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +44 -7
- package/dest/tx/protocol_contracts.d.ts +1 -1
- package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.js +3 -1
- package/dest/tx/state_reference.d.ts +3 -1
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +3 -1
- package/dest/tx/tree_snapshots.js +3 -1
- package/dest/tx/tx.d.ts +24 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +9 -4
- package/dest/tx/tx_context.d.ts +2 -1
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_effect.d.ts +32 -6
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +3 -8
- package/dest/tx/tx_execution_request.d.ts +30 -1
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_execution_request.js +6 -2
- package/dest/tx/tx_hash.d.ts +2 -1
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts +47 -13
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +46 -15
- package/dest/tx/tx_request.d.ts +6 -1
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +2 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +2 -0
- package/dest/types/shared.d.ts +4 -1
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/validators/schemas.d.ts +8 -8
- package/dest/vks/verification_key.d.ts +22 -1
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/vk_data.d.ts +7 -1
- package/dest/vks/vk_data.d.ts.map +1 -1
- package/dest/zkpassport/index.d.ts +3 -4
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +9 -9
- package/package.json +12 -10
- package/src/abi/contract_artifact.ts +10 -10
- package/src/abi/utils.ts +17 -0
- package/src/block/attestation_info.ts +9 -6
- package/src/block/block_hash.ts +36 -10
- package/src/block/block_parameter.ts +4 -2
- package/src/block/body.ts +2 -1
- package/src/block/checkpointed_l2_block.ts +8 -58
- package/src/block/in_block.ts +5 -5
- package/src/block/index.ts +0 -2
- package/src/block/l2_block.ts +101 -148
- package/src/block/l2_block_source.ts +121 -43
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +15 -4
- package/src/block/l2_block_stream/l2_block_stream.ts +130 -39
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
- package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
- package/src/block/test/l2_tips_store_test_suite.ts +480 -36
- package/src/block/validate_block_result.ts +40 -35
- package/src/checkpoint/checkpoint.ts +34 -11
- package/src/checkpoint/checkpoint_info.ts +45 -2
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/published_checkpoint.ts +4 -3
- package/src/config/node-rpc-config.ts +1 -1
- package/src/contract/index.ts +0 -2
- package/src/contract/private_function.ts +1 -2
- package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
- package/src/deserialization/index.ts +21 -0
- package/src/epoch-helpers/index.ts +10 -1
- package/src/interfaces/api_limit.ts +2 -0
- package/src/interfaces/archiver.ts +24 -23
- package/src/interfaces/aztec-node-admin.ts +5 -2
- package/src/interfaces/aztec-node.ts +100 -68
- package/src/interfaces/block-builder.ts +33 -24
- package/src/interfaces/configs.ts +3 -0
- package/src/interfaces/l2_logs_source.ts +17 -4
- package/src/interfaces/p2p.ts +8 -12
- package/src/interfaces/prover-client.ts +15 -0
- package/src/interfaces/proving-job.ts +2 -11
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +62 -14
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
- package/src/logs/log_id.ts +6 -6
- package/src/messaging/in_hash.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +178 -52
- package/src/messaging/out_hash.ts +62 -21
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +3 -3
- package/src/p2p/block_proposal.ts +213 -46
- package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
- package/src/p2p/checkpoint_proposal.ts +355 -0
- package/src/p2p/consensus_payload.ts +5 -7
- package/src/p2p/constants.ts +3 -0
- package/src/p2p/gossipable.ts +14 -4
- package/src/p2p/index.ts +4 -1
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/signature_utils.ts +3 -1
- package/src/p2p/signed_txs.ts +88 -0
- package/src/p2p/topic_type.ts +4 -3
- package/src/proofs/chonk_proof.ts +9 -5
- package/src/rollup/block_headers_hash.ts +1 -1
- package/src/rollup/block_rollup_public_inputs.ts +5 -11
- package/src/rollup/checkpoint_header.ts +63 -20
- package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -0
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +9 -0
- package/src/tests/factories.ts +56 -40
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +213 -91
- package/src/tx/block_header.ts +11 -3
- package/src/tx/global_variable_builder.ts +1 -1
- package/src/tx/index.ts +0 -1
- package/src/tx/indexed_tx_effect.ts +2 -2
- package/src/tx/private_execution_result.ts +1 -16
- package/src/tx/profiling.ts +46 -4
- package/src/tx/tx.ts +10 -9
- package/src/tx/tx_effect.ts +0 -9
- package/src/tx/tx_execution_request.ts +2 -0
- package/src/tx/tx_receipt.ts +75 -18
- package/src/tx/validator/error_texts.ts +3 -0
- package/src/zkpassport/index.ts +11 -12
- package/dest/block/l2_block_code_to_purge.d.ts +0 -12
- package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
- package/dest/block/l2_block_code_to_purge.js +0 -61
- package/dest/block/l2_block_header.d.ts +0 -98
- package/dest/block/l2_block_header.d.ts.map +0 -1
- package/dest/block/l2_block_header.js +0 -153
- package/dest/block/l2_block_new.d.ts +0 -135
- package/dest/block/l2_block_new.d.ts.map +0 -1
- package/dest/block/l2_block_new.js +0 -152
- package/dest/contract/contract_class_metadata.d.ts +0 -8
- package/dest/contract/contract_class_metadata.d.ts.map +0 -1
- package/dest/contract/contract_class_metadata.js +0 -1
- package/dest/contract/contract_metadata.d.ts +0 -7
- package/dest/contract/contract_metadata.d.ts.map +0 -1
- package/dest/contract/contract_metadata.js +0 -1
- package/dest/p2p/block_attestation.d.ts +0 -80
- package/dest/p2p/block_attestation.d.ts.map +0 -1
- package/dest/tx/content_commitment.d.ts +0 -49
- package/dest/tx/content_commitment.d.ts.map +0 -1
- package/dest/tx/content_commitment.js +0 -90
- package/src/block/l2_block_code_to_purge.ts +0 -88
- package/src/block/l2_block_header.ts +0 -246
- package/src/block/l2_block_new.ts +0 -207
- package/src/contract/contract_class_metadata.ts +0 -8
- package/src/contract/contract_metadata.ts +0 -7
- package/src/tx/content_commitment.ts +0 -113
package/src/tests/mocks.ts
CHANGED
|
@@ -6,22 +6,23 @@ import {
|
|
|
6
6
|
MAX_NULLIFIERS_PER_TX,
|
|
7
7
|
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
8
8
|
} from '@aztec/constants';
|
|
9
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
10
|
-
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
9
|
+
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
10
|
+
import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
|
|
11
11
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
12
12
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
13
13
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
14
14
|
import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
15
15
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
16
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
16
17
|
|
|
17
18
|
import type { ContractArtifact } from '../abi/abi.js';
|
|
18
19
|
import { PublicTxEffect } from '../avm/avm.js';
|
|
20
|
+
import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
|
|
19
21
|
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
20
22
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
21
23
|
import { RevertCode } from '../avm/revert_code.js';
|
|
22
24
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
23
|
-
import {
|
|
24
|
-
import { L2Block } from '../block/l2_block.js';
|
|
25
|
+
import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
|
|
25
26
|
import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
|
|
26
27
|
import { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
27
28
|
import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
|
|
@@ -45,12 +46,14 @@ import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulate
|
|
|
45
46
|
import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
|
|
46
47
|
import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
|
|
47
48
|
import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
|
|
48
|
-
import { BlockAttestation } from '../p2p/block_attestation.js';
|
|
49
49
|
import { BlockProposal } from '../p2p/block_proposal.js';
|
|
50
|
+
import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
|
|
51
|
+
import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
|
|
50
52
|
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
51
53
|
import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
|
|
52
54
|
import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
53
55
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
56
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
54
57
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
55
58
|
import {
|
|
56
59
|
BlockHeader,
|
|
@@ -72,9 +75,9 @@ import {
|
|
|
72
75
|
makeAvmCircuitInputs,
|
|
73
76
|
makeAztecAddress,
|
|
74
77
|
makeBlockHeader,
|
|
78
|
+
makeCheckpointHeader,
|
|
75
79
|
makeGas,
|
|
76
80
|
makeGlobalVariables,
|
|
77
|
-
makeL2BlockHeader,
|
|
78
81
|
makePrivateToPublicAccumulatedData,
|
|
79
82
|
makePrivateToRollupAccumulatedData,
|
|
80
83
|
makeProtocolContracts,
|
|
@@ -94,12 +97,14 @@ export const mockTx = async (
|
|
|
94
97
|
publicCalldataSize = 2,
|
|
95
98
|
feePayer,
|
|
96
99
|
chonkProof = ChonkProof.random(),
|
|
100
|
+
maxFeesPerGas = new GasFees(10, 10),
|
|
97
101
|
maxPriorityFeesPerGas,
|
|
98
102
|
gasUsed = Gas.empty(),
|
|
99
103
|
chainId = Fr.ZERO,
|
|
100
104
|
version = Fr.ZERO,
|
|
101
105
|
vkTreeRoot = Fr.ZERO,
|
|
102
106
|
protocolContractsHash = Fr.ZERO,
|
|
107
|
+
anchorBlockHeader = BlockHeader.empty(),
|
|
103
108
|
}: {
|
|
104
109
|
numberOfNonRevertiblePublicCallRequests?: number;
|
|
105
110
|
numberOfRevertiblePublicCallRequests?: number;
|
|
@@ -108,12 +113,14 @@ export const mockTx = async (
|
|
|
108
113
|
publicCalldataSize?: number;
|
|
109
114
|
feePayer?: AztecAddress;
|
|
110
115
|
chonkProof?: ChonkProof;
|
|
116
|
+
maxFeesPerGas?: GasFees;
|
|
111
117
|
maxPriorityFeesPerGas?: GasFees;
|
|
112
118
|
gasUsed?: Gas;
|
|
113
119
|
chainId?: Fr;
|
|
114
120
|
version?: Fr;
|
|
115
121
|
vkTreeRoot?: Fr;
|
|
116
122
|
protocolContractsHash?: Fr;
|
|
123
|
+
anchorBlockHeader?: BlockHeader;
|
|
117
124
|
} = {},
|
|
118
125
|
) => {
|
|
119
126
|
const totalPublicCallRequests =
|
|
@@ -123,10 +130,8 @@ export const mockTx = async (
|
|
|
123
130
|
const isForPublic = totalPublicCallRequests > 0;
|
|
124
131
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
125
132
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
126
|
-
data.constants.
|
|
127
|
-
|
|
128
|
-
maxPriorityFeesPerGas,
|
|
129
|
-
});
|
|
133
|
+
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
134
|
+
data.constants.txContext.gasSettings = GasSettings.default({ maxFeesPerGas, maxPriorityFeesPerGas });
|
|
130
135
|
data.feePayer = feePayer ?? (await AztecAddress.random());
|
|
131
136
|
data.gasUsed = gasUsed;
|
|
132
137
|
data.constants.txContext.chainId = chainId;
|
|
@@ -202,6 +207,7 @@ export async function mockProcessedTx({
|
|
|
202
207
|
// The default gasUsed is the tx overhead.
|
|
203
208
|
gasUsed = Gas.from({ daGas: FIXED_DA_GAS, l2Gas: FIXED_L2_GAS }),
|
|
204
209
|
privateOnly = false,
|
|
210
|
+
avmAccumulatedData,
|
|
205
211
|
...mockTxOpts
|
|
206
212
|
}: {
|
|
207
213
|
seed?: number;
|
|
@@ -213,6 +219,7 @@ export async function mockProcessedTx({
|
|
|
213
219
|
protocolContracts?: ProtocolContracts;
|
|
214
220
|
feePaymentPublicDataWrite?: PublicDataWrite;
|
|
215
221
|
privateOnly?: boolean;
|
|
222
|
+
avmAccumulatedData?: Partial<FieldsOf<AvmAccumulatedData>>;
|
|
216
223
|
} & Parameters<typeof mockTx>[1] = {}) {
|
|
217
224
|
seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
|
|
218
225
|
anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
|
|
@@ -292,19 +299,22 @@ export async function mockProcessedTx({
|
|
|
292
299
|
avmOutput.previousRevertibleAccumulatedDataArrayLengths =
|
|
293
300
|
avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
|
|
294
301
|
// Assign final data emitted from avm.
|
|
295
|
-
avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
|
|
296
|
-
avmOutput.accumulatedData.nullifiers =
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
302
|
+
avmOutput.accumulatedData.noteHashes = avmAccumulatedData?.noteHashes ?? revertibleData.noteHashes;
|
|
303
|
+
avmOutput.accumulatedData.nullifiers =
|
|
304
|
+
avmAccumulatedData?.nullifiers ??
|
|
305
|
+
padArrayEnd(
|
|
306
|
+
nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
|
|
307
|
+
Fr.ZERO,
|
|
308
|
+
MAX_NULLIFIERS_PER_TX,
|
|
309
|
+
);
|
|
310
|
+
avmOutput.accumulatedData.l2ToL1Msgs = avmAccumulatedData?.l2ToL1Msgs ?? revertibleData.l2ToL1Msgs;
|
|
311
|
+
avmOutput.accumulatedData.publicDataWrites =
|
|
312
|
+
avmAccumulatedData?.publicDataWrites ??
|
|
313
|
+
makeTuple(
|
|
314
|
+
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
315
|
+
i => (i === 0 ? feePaymentPublicDataWrite : new PublicDataWrite(new Fr(i), new Fr(i + 10))),
|
|
316
|
+
seed + 0x2000,
|
|
317
|
+
);
|
|
308
318
|
avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
|
|
309
319
|
avmOutput.gasSettings = gasSettings;
|
|
310
320
|
// Note: The fee is computed from the tx's gas used, which only includes the gas used in private. But this shouldn't
|
|
@@ -353,7 +363,6 @@ const emptyPrivateCallExecutionResult = () =>
|
|
|
353
363
|
Buffer.from(''),
|
|
354
364
|
new Map(),
|
|
355
365
|
PrivateCircuitPublicInputs.empty(),
|
|
356
|
-
new Map(),
|
|
357
366
|
[],
|
|
358
367
|
new Map(),
|
|
359
368
|
[],
|
|
@@ -392,38 +401,47 @@ export async function mockCheckpointAndMessages(
|
|
|
392
401
|
{
|
|
393
402
|
startBlockNumber = BlockNumber(1),
|
|
394
403
|
numBlocks = 1,
|
|
404
|
+
blocks,
|
|
395
405
|
numTxsPerBlock = 1,
|
|
396
406
|
numL1ToL2Messages = 1,
|
|
397
407
|
makeBlockOptions = () => ({}),
|
|
398
408
|
previousArchive,
|
|
409
|
+
maxEffects,
|
|
399
410
|
...options
|
|
400
411
|
}: {
|
|
401
412
|
startBlockNumber?: BlockNumber;
|
|
402
413
|
numBlocks?: number;
|
|
403
414
|
numTxsPerBlock?: number;
|
|
404
415
|
numL1ToL2Messages?: number;
|
|
405
|
-
makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof
|
|
416
|
+
makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
|
|
406
417
|
previousArchive?: AppendOnlyTreeSnapshot;
|
|
418
|
+
blocks?: L2Block[];
|
|
419
|
+
maxEffects?: number;
|
|
407
420
|
} & Partial<Parameters<typeof Checkpoint.random>[1]> &
|
|
408
|
-
Partial<Parameters<typeof
|
|
421
|
+
Partial<Parameters<typeof L2Block.random>[1]> = {},
|
|
409
422
|
) {
|
|
410
|
-
const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
|
|
423
|
+
const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
|
|
411
424
|
const blocksAndMessages = [];
|
|
412
425
|
// Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
|
|
413
426
|
// The current block's header.lastArchive must equal the previous block's archive.
|
|
414
427
|
let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
|
|
415
|
-
|
|
428
|
+
// Pass maxEffects via txOptions so it reaches TxEffect.random
|
|
429
|
+
const txOptions = maxEffects !== undefined ? { maxEffects } : {};
|
|
430
|
+
for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
|
|
416
431
|
const blockNumber = BlockNumber(startBlockNumber + i);
|
|
417
432
|
const { block, messages } = {
|
|
418
|
-
block:
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
433
|
+
block:
|
|
434
|
+
blocks?.[i] ??
|
|
435
|
+
(await L2Block.random(blockNumber, {
|
|
436
|
+
checkpointNumber,
|
|
437
|
+
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
438
|
+
txsPerBlock: numTxsPerBlock,
|
|
439
|
+
txOptions,
|
|
440
|
+
slotNumber,
|
|
441
|
+
...options,
|
|
442
|
+
...makeBlockOptions(blockNumber),
|
|
443
|
+
...(lastArchive ? { lastArchive } : {}),
|
|
444
|
+
})),
|
|
427
445
|
messages: mockL1ToL2Messages(numL1ToL2Messages),
|
|
428
446
|
};
|
|
429
447
|
// Update lastArchive for the next block
|
|
@@ -481,28 +499,52 @@ export interface MakeConsensusPayloadOptions {
|
|
|
481
499
|
signer?: Secp256k1Signer;
|
|
482
500
|
attesterSigner?: Secp256k1Signer;
|
|
483
501
|
proposerSigner?: Secp256k1Signer;
|
|
484
|
-
header?:
|
|
502
|
+
header?: CheckpointHeader;
|
|
485
503
|
archive?: Fr;
|
|
486
504
|
txHashes?: TxHash[];
|
|
487
505
|
txs?: Tx[];
|
|
488
506
|
}
|
|
489
507
|
|
|
508
|
+
export interface MakeBlockProposalOptions {
|
|
509
|
+
signer?: Secp256k1Signer;
|
|
510
|
+
blockHeader?: BlockHeader;
|
|
511
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
512
|
+
inHash?: Fr;
|
|
513
|
+
archiveRoot?: Fr;
|
|
514
|
+
txHashes?: TxHash[];
|
|
515
|
+
txs?: Tx[];
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
export interface MakeCheckpointProposalOptions {
|
|
519
|
+
signer?: Secp256k1Signer;
|
|
520
|
+
checkpointHeader?: CheckpointHeader;
|
|
521
|
+
archiveRoot?: Fr;
|
|
522
|
+
/** Options for the lastBlock - if undefined, no lastBlock is included */
|
|
523
|
+
lastBlock?: {
|
|
524
|
+
blockHeader?: BlockHeader;
|
|
525
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
526
|
+
txHashes?: TxHash[];
|
|
527
|
+
txs?: Tx[];
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
490
532
|
const makeAndSignConsensusPayload = (
|
|
491
533
|
domainSeparator: SignatureDomainSeparator,
|
|
492
534
|
options?: MakeConsensusPayloadOptions,
|
|
493
535
|
) => {
|
|
494
|
-
const header = options?.header ??
|
|
536
|
+
const header = options?.header ?? makeCheckpointHeader(1);
|
|
495
537
|
const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
|
|
496
538
|
|
|
497
539
|
const payload = ConsensusPayload.fromFields({
|
|
498
|
-
header
|
|
540
|
+
header,
|
|
499
541
|
archive,
|
|
500
542
|
});
|
|
501
543
|
|
|
502
544
|
const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
|
|
503
545
|
const signature = signer.sign(hash);
|
|
504
546
|
|
|
505
|
-
return { blockNumber: header.
|
|
547
|
+
return { blockNumber: header.slotNumber, payload, signature };
|
|
506
548
|
};
|
|
507
549
|
|
|
508
550
|
export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
@@ -516,79 +558,149 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
|
516
558
|
return signer.sign(hash);
|
|
517
559
|
};
|
|
518
560
|
|
|
519
|
-
export const makeBlockProposal = (options?:
|
|
520
|
-
const
|
|
561
|
+
export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
|
|
562
|
+
const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
|
|
563
|
+
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
|
|
564
|
+
const inHash = options?.inHash ?? Fr.random();
|
|
565
|
+
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
521
566
|
const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
522
|
-
|
|
567
|
+
const txs = options?.txs;
|
|
568
|
+
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
569
|
+
|
|
570
|
+
return BlockProposal.createProposalFromSigner(
|
|
571
|
+
blockHeader,
|
|
572
|
+
indexWithinCheckpoint,
|
|
573
|
+
inHash,
|
|
574
|
+
archiveRoot,
|
|
575
|
+
txHashes,
|
|
576
|
+
txs,
|
|
577
|
+
(_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
|
|
578
|
+
);
|
|
579
|
+
};
|
|
580
|
+
|
|
581
|
+
export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
|
|
582
|
+
const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
|
|
583
|
+
const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
|
|
584
|
+
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
585
|
+
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
586
|
+
|
|
587
|
+
// Build lastBlock info if provided
|
|
588
|
+
const lastBlockInfo = options?.lastBlock
|
|
589
|
+
? {
|
|
590
|
+
blockHeader,
|
|
591
|
+
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
|
|
592
|
+
txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
|
|
593
|
+
txs: options.lastBlock.txs,
|
|
594
|
+
}
|
|
595
|
+
: undefined;
|
|
596
|
+
|
|
597
|
+
return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, payload =>
|
|
598
|
+
Promise.resolve(signer.signMessage(payload)),
|
|
599
|
+
);
|
|
523
600
|
};
|
|
524
601
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
602
|
+
/**
|
|
603
|
+
* Options for creating a checkpoint attestation
|
|
604
|
+
*/
|
|
605
|
+
export type MakeCheckpointAttestationOptions = {
|
|
606
|
+
header?: CheckpointHeader;
|
|
607
|
+
archive?: Fr;
|
|
608
|
+
attesterSigner?: Secp256k1Signer;
|
|
609
|
+
proposerSigner?: Secp256k1Signer;
|
|
610
|
+
signer?: Secp256k1Signer;
|
|
611
|
+
};
|
|
529
612
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
613
|
+
/**
|
|
614
|
+
* Create a checkpoint attestation for testing
|
|
615
|
+
*/
|
|
616
|
+
export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
|
|
617
|
+
const header = options.header ?? makeCheckpointHeader(1);
|
|
618
|
+
const archive = options.archive ?? Fr.random();
|
|
619
|
+
const { signer, attesterSigner = signer, proposerSigner = signer } = options;
|
|
620
|
+
|
|
621
|
+
const payload = new ConsensusPayload(header, archive);
|
|
622
|
+
|
|
623
|
+
// Sign as attester
|
|
624
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
625
|
+
payload,
|
|
626
|
+
SignatureDomainSeparator.checkpointAttestation,
|
|
627
|
+
);
|
|
628
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
629
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
630
|
+
|
|
631
|
+
// Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
|
|
632
|
+
// This is different from ConsensusPayload's format (ABI encoding)
|
|
633
|
+
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
634
|
+
const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
|
|
635
|
+
const proposalHash = getHashedSignaturePayloadEthSignedMessage(
|
|
636
|
+
tempProposal,
|
|
637
|
+
SignatureDomainSeparator.checkpointProposal,
|
|
638
|
+
);
|
|
639
|
+
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
534
640
|
|
|
535
|
-
return
|
|
641
|
+
return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
|
|
536
642
|
};
|
|
537
643
|
|
|
538
|
-
|
|
539
|
-
|
|
644
|
+
/**
|
|
645
|
+
* Create a checkpoint attestation from a checkpoint proposal
|
|
646
|
+
*/
|
|
647
|
+
export const makeCheckpointAttestationFromProposal = (
|
|
648
|
+
proposal: CheckpointProposal,
|
|
540
649
|
attesterSigner?: Secp256k1Signer,
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
const header = checkpoint.header;
|
|
544
|
-
const archive = checkpoint.archive.root;
|
|
650
|
+
): CheckpointAttestation => {
|
|
651
|
+
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
|
|
545
652
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
653
|
+
// Sign as attester
|
|
654
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
655
|
+
payload,
|
|
656
|
+
SignatureDomainSeparator.checkpointAttestation,
|
|
657
|
+
);
|
|
658
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
659
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
550
660
|
|
|
551
|
-
|
|
661
|
+
// Use the proposal's signature as the proposer signature
|
|
662
|
+
return new CheckpointAttestation(payload, attestationSignature, proposal.signature);
|
|
552
663
|
};
|
|
553
664
|
|
|
554
|
-
|
|
555
|
-
|
|
665
|
+
/**
|
|
666
|
+
* Create a checkpoint attestation from a checkpoint
|
|
667
|
+
*/
|
|
668
|
+
export const makeCheckpointAttestationFromCheckpoint = (
|
|
669
|
+
checkpoint: Checkpoint,
|
|
556
670
|
attesterSigner?: Secp256k1Signer,
|
|
557
671
|
proposerSigner?: Secp256k1Signer,
|
|
558
|
-
):
|
|
559
|
-
const header =
|
|
560
|
-
const archive =
|
|
561
|
-
|
|
562
|
-
const payload = ConsensusPayload.fromFields({
|
|
563
|
-
header: header.toCheckpointHeader(),
|
|
564
|
-
archive,
|
|
565
|
-
});
|
|
672
|
+
): CheckpointAttestation => {
|
|
673
|
+
const header = checkpoint.header;
|
|
674
|
+
const archive = checkpoint.archive.root;
|
|
566
675
|
|
|
567
|
-
return
|
|
676
|
+
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
568
677
|
};
|
|
569
678
|
|
|
570
|
-
|
|
571
|
-
|
|
679
|
+
/**
|
|
680
|
+
* Create a checkpoint attestation from an L2Block
|
|
681
|
+
* Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
|
|
682
|
+
*/
|
|
683
|
+
export const makeCheckpointAttestationFromBlock = (
|
|
684
|
+
block: L2Block,
|
|
572
685
|
attesterSigner?: Secp256k1Signer,
|
|
573
686
|
proposerSigner?: Secp256k1Signer,
|
|
574
|
-
):
|
|
575
|
-
//
|
|
576
|
-
const
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
const
|
|
583
|
-
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
687
|
+
): CheckpointAttestation => {
|
|
688
|
+
// For L2Block, we create a minimal checkpoint header for testing purposes
|
|
689
|
+
const header = CheckpointHeader.empty({
|
|
690
|
+
lastArchiveRoot: block.header.lastArchive.root,
|
|
691
|
+
slotNumber: block.slot,
|
|
692
|
+
timestamp: block.timestamp,
|
|
693
|
+
blockHeadersHash: Fr.ZERO, // Would need to compute from block header hash
|
|
694
|
+
});
|
|
695
|
+
const archive = block.archive.root;
|
|
584
696
|
|
|
585
|
-
return
|
|
697
|
+
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
586
698
|
};
|
|
587
699
|
|
|
588
700
|
export async function randomPublishedL2Block(
|
|
589
701
|
l2BlockNumber: number,
|
|
590
702
|
opts: { signers?: Secp256k1Signer[] } = {},
|
|
591
|
-
): Promise<
|
|
703
|
+
): Promise<CheckpointedL2Block> {
|
|
592
704
|
const block = await L2Block.random(BlockNumber(l2BlockNumber));
|
|
593
705
|
const l1 = L1PublishedData.fromFields({
|
|
594
706
|
blockNumber: BigInt(block.number),
|
|
@@ -597,9 +709,19 @@ export async function randomPublishedL2Block(
|
|
|
597
709
|
});
|
|
598
710
|
|
|
599
711
|
const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
|
|
600
|
-
const
|
|
712
|
+
const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
|
|
713
|
+
numBlocks: 0,
|
|
714
|
+
});
|
|
715
|
+
checkpoint.blocks = [block];
|
|
716
|
+
const atts = signers.map(signer =>
|
|
717
|
+
makeCheckpointAttestation({
|
|
718
|
+
signer,
|
|
719
|
+
archive: block.archive.root,
|
|
720
|
+
header: checkpoint.header,
|
|
721
|
+
}),
|
|
722
|
+
);
|
|
601
723
|
const attestations = atts.map(
|
|
602
724
|
(attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
|
|
603
725
|
);
|
|
604
|
-
return new
|
|
726
|
+
return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
|
|
605
727
|
}
|
package/src/tx/block_header.ts
CHANGED
|
@@ -11,13 +11,14 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
11
11
|
import { inspect } from 'util';
|
|
12
12
|
import { z } from 'zod';
|
|
13
13
|
|
|
14
|
+
import { BlockHash } from '../block/block_hash.js';
|
|
14
15
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
15
16
|
import { GlobalVariables } from './global_variables.js';
|
|
16
17
|
import { StateReference } from './state_reference.js';
|
|
17
18
|
|
|
18
19
|
/** A header of an L2 block. */
|
|
19
20
|
export class BlockHeader {
|
|
20
|
-
private _cachedHash?: Promise<
|
|
21
|
+
private _cachedHash?: Promise<BlockHash>;
|
|
21
22
|
|
|
22
23
|
constructor(
|
|
23
24
|
/** Snapshot of archive before the block is applied. */
|
|
@@ -161,13 +162,20 @@ export class BlockHeader {
|
|
|
161
162
|
return BlockHeader.fromBuffer(hexToBuffer(str));
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
hash(): Promise<
|
|
165
|
+
hash(): Promise<BlockHash> {
|
|
165
166
|
if (!this._cachedHash) {
|
|
166
|
-
this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH)
|
|
167
|
+
this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH).then(fr =>
|
|
168
|
+
BlockHash.fromField(fr),
|
|
169
|
+
);
|
|
167
170
|
}
|
|
168
171
|
return this._cachedHash;
|
|
169
172
|
}
|
|
170
173
|
|
|
174
|
+
/** Manually set the hash for this block header if already computed */
|
|
175
|
+
setHash(hashed: Fr) {
|
|
176
|
+
this._cachedHash = Promise.resolve(BlockHash.fromField(hashed));
|
|
177
|
+
}
|
|
178
|
+
|
|
171
179
|
static random(overrides: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>> = {}): BlockHeader {
|
|
172
180
|
return BlockHeader.from({
|
|
173
181
|
lastArchive: AppendOnlyTreeSnapshot.random(),
|
|
@@ -10,7 +10,7 @@ import type { CheckpointGlobalVariables, GlobalVariables } from './global_variab
|
|
|
10
10
|
* Interface for building global variables for Aztec blocks.
|
|
11
11
|
*/
|
|
12
12
|
export interface GlobalVariableBuilder {
|
|
13
|
-
|
|
13
|
+
getCurrentMinFees(): Promise<GasFees>;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Builds global variables for a given block.
|
package/src/tx/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './block_header.js';
|
|
2
2
|
export * from './call_context.js';
|
|
3
3
|
export * from './global_variables.js';
|
|
4
|
-
export * from './content_commitment.js';
|
|
5
4
|
export * from './state_reference.js';
|
|
6
5
|
export * from './partial_state_reference.js';
|
|
7
6
|
export * from './function_data.js';
|
|
@@ -2,7 +2,7 @@ import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
|
2
2
|
import { schemas } from '@aztec/foundation/schemas';
|
|
3
3
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { BlockHash } from '../block/block_hash.js';
|
|
6
6
|
import { type DataInBlock, dataInBlockSchemaFor, randomDataInBlock } from '../block/in_block.js';
|
|
7
7
|
import { TxEffect } from './tx_effect.js';
|
|
8
8
|
|
|
@@ -26,7 +26,7 @@ export function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer {
|
|
|
26
26
|
export function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect {
|
|
27
27
|
const reader = BufferReader.asReader(buffer);
|
|
28
28
|
|
|
29
|
-
const l2BlockHash = reader.readObject(
|
|
29
|
+
const l2BlockHash = reader.readObject(BlockHash);
|
|
30
30
|
const l2BlockNumber = BlockNumber(reader.readNumber());
|
|
31
31
|
const txIndexInBlock = reader.readNumber();
|
|
32
32
|
const data = reader.readObject(TxEffect);
|
|
@@ -79,7 +79,7 @@ export class CountedContractClassLog implements IsEmpty {
|
|
|
79
79
|
export class PrivateExecutionResult {
|
|
80
80
|
constructor(
|
|
81
81
|
public entrypoint: PrivateCallExecutionResult,
|
|
82
|
-
/** The first non
|
|
82
|
+
/** The first non-revertible nullifier emitted by any private call, or the protocol nullifier if there was none. */
|
|
83
83
|
public firstNullifier: Fr,
|
|
84
84
|
/** An array of calldata for the enqueued public function calls and the teardown function call. */
|
|
85
85
|
public publicFunctionCalldata: HashedValues[],
|
|
@@ -129,8 +129,6 @@ export class PrivateCallExecutionResult {
|
|
|
129
129
|
// Needed for the verifier (kernel)
|
|
130
130
|
/** The call stack item. */
|
|
131
131
|
public publicInputs: PrivateCircuitPublicInputs,
|
|
132
|
-
/** Mapping of note hash to its index in the note hash tree. Used for building hints for note hash read requests. */
|
|
133
|
-
public noteHashLeafIndexMap: Map<bigint, bigint>,
|
|
134
132
|
/** The notes created in the executed function. */
|
|
135
133
|
public newNotes: NoteAndSlot[],
|
|
136
134
|
/** Mapping of note hash counter to the counter of its nullifier. */
|
|
@@ -159,7 +157,6 @@ export class PrivateCallExecutionResult {
|
|
|
159
157
|
vk: schemas.Buffer,
|
|
160
158
|
partialWitness: mapSchema(z.coerce.number(), z.string()),
|
|
161
159
|
publicInputs: PrivateCircuitPublicInputs.schema,
|
|
162
|
-
noteHashLeafIndexMap: mapSchema(schemas.BigInt, schemas.BigInt),
|
|
163
160
|
newNotes: z.array(NoteAndSlot.schema),
|
|
164
161
|
noteHashNullifierCounterMap: mapSchema(z.coerce.number(), z.number()),
|
|
165
162
|
returnValues: z.array(schemas.Fr),
|
|
@@ -177,7 +174,6 @@ export class PrivateCallExecutionResult {
|
|
|
177
174
|
fields.vk,
|
|
178
175
|
fields.partialWitness,
|
|
179
176
|
fields.publicInputs,
|
|
180
|
-
fields.noteHashLeafIndexMap,
|
|
181
177
|
fields.newNotes,
|
|
182
178
|
fields.noteHashNullifierCounterMap,
|
|
183
179
|
fields.returnValues,
|
|
@@ -194,7 +190,6 @@ export class PrivateCallExecutionResult {
|
|
|
194
190
|
randomBytes(4),
|
|
195
191
|
new Map([[1, 'one']]),
|
|
196
192
|
PrivateCircuitPublicInputs.empty(),
|
|
197
|
-
new Map([[1n, 1n]]),
|
|
198
193
|
[NoteAndSlot.random()],
|
|
199
194
|
new Map([[0, 0]]),
|
|
200
195
|
[Fr.random()],
|
|
@@ -210,16 +205,6 @@ export class PrivateCallExecutionResult {
|
|
|
210
205
|
}
|
|
211
206
|
}
|
|
212
207
|
|
|
213
|
-
export function collectNoteHashLeafIndexMap(execResult: PrivateExecutionResult) {
|
|
214
|
-
const accum: Map<bigint, bigint> = new Map();
|
|
215
|
-
const collectNoteHashLeafIndexMapRecursive = (callResult: PrivateCallExecutionResult, accum: Map<bigint, bigint>) => {
|
|
216
|
-
callResult.noteHashLeafIndexMap.forEach((value, key) => accum.set(key, value));
|
|
217
|
-
callResult.nestedExecutionResults.forEach(nested => collectNoteHashLeafIndexMapRecursive(nested, accum));
|
|
218
|
-
};
|
|
219
|
-
collectNoteHashLeafIndexMapRecursive(execResult.entrypoint, accum);
|
|
220
|
-
return accum;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
208
|
export function collectNoteHashNullifierCounterMap(execResult: PrivateExecutionResult) {
|
|
224
209
|
const accum: Map<number, number> = new Map();
|
|
225
210
|
const collectNoteHashNullifierCounterMapRecursive = (
|