@aztec/stdlib 0.0.1-commit.fffb133c → 0.0.1-dev
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 +64 -85
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +59 -6
- package/dest/abi/buffer.d.ts +14 -4
- package/dest/abi/buffer.d.ts.map +1 -1
- package/dest/abi/buffer.js +25 -4
- package/dest/abi/contract_artifact.d.ts +1 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +14 -7
- package/dest/abi/decoder.d.ts +6 -45
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +17 -70
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +64 -7
- package/dest/abi/event_metadata_definition.d.ts +3 -1
- package/dest/abi/event_metadata_definition.d.ts.map +1 -1
- package/dest/abi/event_metadata_definition.js +1 -1
- package/dest/abi/function_call.d.ts +39 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/abi/function_selector.js +1 -1
- package/dest/abi/function_signature_decoder.d.ts +43 -0
- package/dest/abi/function_signature_decoder.d.ts.map +1 -0
- package/dest/abi/function_signature_decoder.js +66 -0
- package/dest/abi/index.d.ts +2 -1
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +1 -0
- package/dest/abi/selector.d.ts +2 -2
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/selector.js +1 -1
- package/dest/abi/utils.d.ts +14 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +15 -0
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/avm/avm.d.ts +300 -300
- package/dest/avm/avm_accumulated_data.js +2 -2
- package/dest/avm/avm_circuit_public_inputs.js +2 -2
- package/dest/avm/avm_proving_request.d.ts +166 -166
- package/dest/avm/revert_code.d.ts +9 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +16 -21
- package/dest/aztec-address/index.d.ts +3 -1
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +2 -0
- package/dest/block/block_data.d.ts +52 -0
- package/dest/block/block_data.d.ts.map +1 -0
- package/dest/block/block_data.js +12 -0
- package/dest/block/block_hash.d.ts +16 -19
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +21 -34
- package/dest/block/block_parameter.d.ts +4 -4
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -2
- package/dest/block/in_block.d.ts +9 -9
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/in_block.js +5 -5
- package/dest/block/index.d.ts +2 -1
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block.d.ts +11 -2
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +14 -5
- package/dest/block/l2_block_source.d.ts +39 -11
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +16 -3
- package/dest/block/test/l2_tips_store_test_suite.js +1 -1
- package/dest/checkpoint/checkpoint.d.ts +22 -7
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +32 -16
- package/dest/checkpoint/checkpoint_data.d.ts +120 -0
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_data.js +26 -0
- package/dest/checkpoint/index.d.ts +3 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +2 -0
- package/dest/checkpoint/published_checkpoint.d.ts +17 -2
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +1 -2
- package/dest/checkpoint/validate.d.ts +36 -0
- package/dest/checkpoint/validate.d.ts.map +1 -0
- package/dest/checkpoint/validate.js +120 -0
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/sequencer-config.d.ts +10 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +23 -0
- package/dest/contract/contract_address.js +4 -4
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class_id.d.ts +2 -2
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +6 -5
- package/dest/contract/interfaces/node-info.d.ts +3 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +2 -1
- package/dest/contract/private_function.js +2 -2
- package/dest/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.js +1 -1
- package/dest/database-version/database_version.d.ts +58 -0
- package/dest/database-version/database_version.d.ts.map +1 -0
- package/dest/database-version/database_version.js +69 -0
- package/dest/database-version/version_manager.d.ts +2 -50
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -66
- package/dest/epoch-helpers/index.d.ts +15 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +19 -2
- package/dest/file-store/local.d.ts +3 -3
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/file-store/local.js +13 -4
- package/dest/file-store/s3.d.ts +1 -1
- package/dest/file-store/s3.d.ts.map +1 -1
- package/dest/file-store/s3.js +11 -3
- package/dest/gas/gas_fees.d.ts +1 -1
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +4 -1
- package/dest/gas/gas_settings.d.ts +40 -3
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +50 -6
- package/dest/hash/hash.d.ts +29 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +60 -11
- package/dest/hash/map_slot.d.ts +1 -1
- package/dest/hash/map_slot.d.ts.map +1 -1
- package/dest/hash/map_slot.js +4 -3
- package/dest/interfaces/allowed_element.d.ts +26 -20
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/allowed_element.js +8 -8
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +12 -5
- package/dest/interfaces/aztec-node-admin.d.ts +109 -29
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +12 -4
- package/dest/interfaces/aztec-node-debug.d.ts +21 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +18 -0
- package/dest/interfaces/aztec-node.d.ts +45 -60
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +11 -12
- package/dest/interfaces/block-builder.d.ts +44 -11
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +16 -2
- package/dest/interfaces/client.d.ts +2 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +1 -0
- package/dest/interfaces/configs.d.ts +77 -32
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +10 -3
- package/dest/interfaces/get_logs_response.d.ts +15 -8
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +10 -20
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +4 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.d.ts +16 -1
- package/dest/interfaces/prover-broker.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.js +4 -1
- package/dest/interfaces/prover-client.d.ts +11 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +12 -1
- package/dest/interfaces/proving-job.d.ts +202 -202
- package/dest/interfaces/slasher.d.ts +9 -1
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +2 -0
- package/dest/interfaces/validator.d.ts +116 -31
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +9 -2
- package/dest/interfaces/world_state.d.ts +5 -4
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/claimed_length_array.js +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
- 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 +13 -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 +13 -10
- package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -3
- package/dest/kernel/hints/index.d.ts +2 -2
- package/dest/kernel/hints/index.js +2 -2
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
- package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
- package/dest/kernel/padded_side_effects.js +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +16 -16
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
- package/dest/kernel/private_to_avm_accumulated_data.js +2 -2
- package/dest/kernel/private_to_public_accumulated_data.js +2 -2
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_to_rollup_accumulated_data.js +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_validation_requests.d.ts +3 -3
- package/dest/kernel/private_validation_requests.js +9 -9
- package/dest/keys/derivation.d.ts +3 -3
- package/dest/keys/derivation.js +15 -15
- package/dest/keys/key_types.d.ts +3 -3
- package/dest/keys/key_types.d.ts.map +1 -1
- package/dest/keys/public_keys.js +2 -2
- package/dest/keys/utils.d.ts +1 -1
- package/dest/keys/utils.d.ts.map +1 -1
- package/dest/keys/utils.js +8 -4
- package/dest/l1-contracts/slash_factory.d.ts +1 -1
- package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
- package/dest/l1-contracts/slash_factory.js +1 -0
- package/dest/logs/debug_log_store.d.ts +30 -0
- package/dest/logs/debug_log_store.d.ts.map +1 -0
- package/dest/logs/debug_log_store.js +30 -0
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
- package/dest/logs/extended_public_log.d.ts +13 -7
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +4 -2
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +3 -1
- package/dest/logs/log_filter.d.ts +4 -1
- package/dest/logs/log_filter.d.ts.map +1 -1
- package/dest/logs/log_filter.js +2 -1
- package/dest/logs/log_id.d.ts +17 -14
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +20 -17
- package/dest/logs/message_context.d.ts +4 -7
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +23 -9
- package/dest/logs/pending_tagged_log.d.ts +2 -3
- package/dest/logs/pending_tagged_log.d.ts.map +1 -1
- package/dest/logs/pending_tagged_log.js +2 -2
- package/dest/logs/pre_tag.d.ts +16 -11
- package/dest/logs/pre_tag.d.ts.map +1 -1
- package/dest/logs/pre_tag.js +2 -2
- package/dest/logs/private_log.d.ts +2 -2
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +1 -1
- package/dest/logs/public_log.d.ts +4 -3
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +9 -2
- package/dest/logs/shared_secret_derivation.d.ts +11 -10
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +15 -9
- package/dest/logs/siloed_tag.d.ts +8 -3
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +12 -6
- package/dest/logs/tag.d.ts +3 -2
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +5 -1
- package/dest/logs/tagging_index_range.d.ts +40 -0
- package/dest/logs/tagging_index_range.d.ts.map +1 -0
- package/dest/logs/tagging_index_range.js +8 -0
- package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +7 -0
- package/dest/messaging/l1_to_l2_message.d.ts +3 -2
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.js +11 -13
- package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +72 -29
- package/dest/noir/index.d.ts +5 -3
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/index.d.ts +1 -2
- package/dest/note/index.d.ts.map +1 -1
- package/dest/note/index.js +0 -1
- package/dest/note/note_dao.d.ts +1 -1
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +1 -4
- package/dest/p2p/attestation_utils.d.ts +11 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +45 -0
- package/dest/p2p/block_proposal.d.ts +10 -3
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +1 -3
- package/dest/p2p/checkpoint_attestation.d.ts +2 -1
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +1 -1
- package/dest/p2p/checkpoint_proposal.d.ts +26 -12
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +29 -37
- package/dest/p2p/client_type.d.ts +2 -5
- package/dest/p2p/client_type.d.ts.map +1 -1
- package/dest/p2p/client_type.js +0 -7
- package/dest/p2p/consensus_payload.d.ts +12 -3
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -15
- package/dest/p2p/constants.d.ts +3 -1
- package/dest/p2p/constants.d.ts.map +1 -1
- package/dest/p2p/constants.js +1 -0
- package/dest/p2p/index.d.ts +1 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +0 -1
- package/dest/p2p/peer_error.d.ts +3 -1
- package/dest/p2p/peer_error.d.ts.map +1 -1
- package/dest/p2p/peer_error.js +5 -0
- package/dest/p2p/topic_type.d.ts +3 -4
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +7 -24
- package/dest/parity/parity_base_private_inputs.js +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 +7 -1
- package/dest/rollup/base_rollup_hints.js +2 -2
- package/dest/rollup/block_root_rollup_private_inputs.js +5 -5
- package/dest/rollup/checkpoint_header.d.ts +2 -2
- package/dest/rollup/checkpoint_header.js +2 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +3 -3
- package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +3 -3
- package/dest/rollup/tree_snapshot_diff_hints.js +2 -2
- package/dest/slashing/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +2 -0
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +6 -0
- package/dest/slashing/tally.d.ts +8 -2
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +35 -3
- package/dest/slashing/types.d.ts +7 -3
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +13 -1
- package/dest/stats/stats.d.ts +1 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +3 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +22 -14
- package/dest/tests/mocks.d.ts +12 -3
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +48 -40
- package/dest/timetable/index.d.ts +37 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +39 -0
- package/dest/trees/public_data_leaf.d.ts +2 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +7 -6
- package/dest/tx/block_header.d.ts +5 -3
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +8 -4
- package/dest/tx/capsule.d.ts +6 -2
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/capsule.js +9 -3
- package/dest/tx/global_variables.d.ts +4 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +3 -3
- package/dest/tx/indexed_tx_effect.d.ts +5 -5
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +3 -2
- package/dest/tx/private_execution_result.d.ts +6 -6
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +6 -6
- package/dest/tx/profiling.d.ts +17 -5
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +15 -5
- package/dest/tx/protocol_contracts.d.ts +1 -1
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +4 -4
- package/dest/tx/proven_tx.d.ts +3 -1
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +6 -0
- package/dest/tx/public_simulation_output.d.ts +4 -2
- package/dest/tx/public_simulation_output.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.js +7 -3
- package/dest/tx/simulated_tx.d.ts +71 -77
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +7 -4
- package/dest/tx/tx.d.ts +6 -5
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +18 -6
- package/dest/tx/tx_receipt.d.ts +33 -10
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +25 -21
- package/dest/tx/tx_request.js +2 -2
- package/dest/tx/validator/empty_validator.d.ts +2 -2
- package/dest/tx/validator/empty_validator.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +10 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +11 -1
- package/dest/tx/validator/tx_validator.d.ts +2 -2
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/update-checker/dev_version.d.ts +3 -0
- package/dest/update-checker/dev_version.d.ts.map +1 -0
- package/dest/update-checker/dev_version.js +1 -0
- package/dest/update-checker/index.d.ts +4 -2
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +3 -1
- package/dest/update-checker/package_version.d.ts +6 -0
- package/dest/update-checker/package_version.d.ts.map +1 -0
- package/dest/update-checker/package_version.js +13 -0
- package/dest/update-checker/version_checker.d.ts +25 -0
- package/dest/update-checker/version_checker.d.ts.map +1 -0
- package/dest/update-checker/version_checker.js +50 -0
- package/dest/validators/errors.d.ts +6 -1
- package/dest/validators/errors.d.ts.map +1 -1
- package/dest/validators/errors.js +7 -0
- package/dest/validators/schemas.d.ts +30 -30
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +4 -3
- package/dest/validators/types.d.ts +3 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.d.ts +4 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +4 -1
- package/dest/vks/vk_data.js +1 -1
- package/package.json +27 -14
- package/src/abi/abi.ts +87 -2
- package/src/abi/buffer.ts +25 -4
- package/src/abi/contract_artifact.ts +11 -6
- package/src/abi/decoder.ts +36 -82
- package/src/abi/encoder.ts +85 -6
- package/src/abi/event_metadata_definition.ts +2 -0
- package/src/abi/function_call.ts +25 -3
- package/src/abi/function_selector.ts +1 -1
- package/src/abi/function_signature_decoder.ts +77 -0
- package/src/abi/index.ts +1 -0
- package/src/abi/selector.ts +1 -1
- package/src/abi/utils.ts +25 -0
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/avm/avm_accumulated_data.ts +6 -6
- package/src/avm/avm_circuit_public_inputs.ts +4 -4
- package/src/avm/revert_code.ts +26 -25
- package/src/aztec-address/index.ts +4 -0
- package/src/block/block_data.ts +26 -0
- package/src/block/block_hash.ts +25 -50
- package/src/block/block_parameter.ts +3 -3
- package/src/block/in_block.ts +6 -6
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +16 -4
- package/src/block/l2_block_source.ts +42 -10
- package/src/block/l2_block_stream/interfaces.ts +6 -2
- package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
- package/src/block/l2_block_stream/l2_tips_store_base.ts +17 -3
- package/src/block/test/l2_tips_store_test_suite.ts +1 -1
- package/src/checkpoint/checkpoint.ts +43 -16
- package/src/checkpoint/checkpoint_data.ts +51 -0
- package/src/checkpoint/index.ts +2 -0
- package/src/checkpoint/published_checkpoint.ts +3 -1
- package/src/checkpoint/validate.ts +230 -0
- package/src/config/index.ts +1 -0
- package/src/config/sequencer-config.ts +34 -0
- package/src/contract/contract_address.ts +4 -4
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +6 -5
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +2 -2
- package/src/contract/private_function_membership_proof.ts +1 -1
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/epoch-helpers/index.ts +34 -0
- package/src/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/gas/README.md +123 -0
- package/src/gas/gas_fees.ts +7 -1
- package/src/gas/gas_settings.ts +65 -12
- package/src/hash/hash.ts +61 -11
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/allowed_element.ts +29 -9
- package/src/interfaces/archiver.ts +12 -5
- package/src/interfaces/aztec-node-admin.ts +26 -2
- package/src/interfaces/aztec-node-debug.ts +40 -0
- package/src/interfaces/aztec-node.ts +67 -99
- package/src/interfaces/block-builder.ts +68 -11
- package/src/interfaces/client.ts +1 -0
- package/src/interfaces/configs.ts +36 -8
- package/src/interfaces/merkle_tree_operations.ts +9 -19
- package/src/interfaces/p2p.ts +3 -14
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +15 -0
- package/src/interfaces/slasher.ts +4 -0
- package/src/interfaces/validator.ts +31 -9
- package/src/interfaces/world_state.ts +4 -3
- package/src/kernel/claimed_length_array.ts +2 -2
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
- package/src/kernel/hints/build_transient_data_hints.ts +17 -2
- package/src/kernel/hints/index.ts +2 -2
- package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
- package/src/kernel/hints/private_kernel_reset_hints.ts +5 -2
- package/src/kernel/hints/read_request_hints.ts +3 -3
- package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
- package/src/kernel/padded_side_effects.ts +3 -3
- package/src/kernel/private_circuit_public_inputs.ts +14 -14
- package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
- package/src/kernel/private_to_avm_accumulated_data.ts +4 -4
- package/src/kernel/private_to_public_accumulated_data.ts +10 -10
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_rollup_accumulated_data.ts +5 -5
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_validation_requests.ts +8 -8
- package/src/keys/derivation.ts +15 -15
- package/src/keys/key_types.ts +6 -2
- package/src/keys/public_keys.ts +2 -2
- package/src/keys/utils.ts +8 -4
- package/src/l1-contracts/slash_factory.ts +1 -0
- package/src/logs/debug_log_store.ts +54 -0
- package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
- package/src/logs/index.ts +3 -1
- package/src/logs/log_filter.ts +5 -0
- package/src/logs/log_id.ts +22 -18
- package/src/logs/message_context.ts +17 -7
- package/src/logs/pending_tagged_log.ts +1 -3
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/private_log.ts +1 -1
- package/src/logs/public_log.ts +15 -3
- package/src/logs/shared_secret_derivation.ts +21 -10
- package/src/logs/siloed_tag.ts +15 -4
- package/src/logs/tag.ts +6 -2
- package/src/logs/tagging_index_range.ts +24 -0
- package/src/logs/tx_scoped_l2_log.ts +16 -0
- package/src/messaging/l1_to_l2_message.ts +12 -9
- package/src/messaging/l2_to_l1_membership.ts +101 -36
- package/src/noir/index.ts +4 -2
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +1 -4
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +9 -4
- package/src/p2p/checkpoint_attestation.ts +6 -1
- package/src/p2p/checkpoint_proposal.ts +60 -51
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/consensus_payload.ts +25 -12
- package/src/p2p/constants.ts +3 -0
- package/src/p2p/index.ts +0 -1
- package/src/p2p/peer_error.ts +7 -0
- package/src/p2p/topic_type.ts +8 -15
- package/src/parity/parity_base_private_inputs.ts +1 -1
- package/src/proofs/chonk_proof.ts +9 -1
- package/src/rollup/base_rollup_hints.ts +2 -2
- package/src/rollup/block_root_rollup_private_inputs.ts +8 -8
- package/src/rollup/checkpoint_header.ts +2 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +4 -4
- package/src/rollup/root_rollup_public_inputs.ts +7 -7
- package/src/rollup/tree_snapshot_diff_hints.ts +5 -5
- package/src/slashing/empire.ts +3 -1
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/tally.ts +41 -2
- package/src/slashing/types.ts +14 -0
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +27 -18
- package/src/tests/mocks.ts +65 -33
- package/src/timetable/index.ts +66 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +13 -7
- package/src/tx/capsule.ts +10 -2
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/private_execution_result.ts +5 -5
- package/src/tx/profiling.ts +14 -5
- package/src/tx/protocol_contracts.ts +4 -4
- package/src/tx/proven_tx.ts +6 -0
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/simulated_tx.ts +14 -3
- package/src/tx/tx.ts +20 -11
- package/src/tx/tx_receipt.ts +32 -20
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +13 -1
- package/src/tx/validator/tx_validator.ts +1 -1
- package/src/update-checker/dev_version.ts +2 -0
- package/src/update-checker/index.ts +3 -1
- package/src/update-checker/package_version.ts +17 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/errors.ts +9 -0
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- package/src/versioning/versioning.ts +4 -1
- package/src/vks/vk_data.ts +1 -1
- package/dest/database-version/index.d.ts +0 -2
- package/dest/database-version/index.d.ts.map +0 -1
- package/dest/database-version/index.js +0 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
- package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
- package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
- package/dest/note/notes_filter.d.ts +0 -27
- package/dest/note/notes_filter.d.ts.map +0 -1
- package/dest/note/notes_filter.js +0 -11
- package/dest/update-checker/update-checker.d.ts +0 -49
- package/dest/update-checker/update-checker.d.ts.map +0 -1
- package/dest/update-checker/update-checker.js +0 -130
- package/src/database-version/index.ts +0 -1
- package/src/note/notes_filter.ts +0 -38
- package/src/update-checker/update-checker.ts +0 -166
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { ZodFor } from '@aztec/foundation/schemas';
|
|
3
3
|
import type { AztecAddress } from '../aztec-address/index.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { PreTag } from './pre_tag.js';
|
|
5
|
+
import { Tag } from './tag.js';
|
|
5
6
|
/** Branding to ensure fields are not interchangeable types. */
|
|
6
7
|
export interface SiloedTag {
|
|
7
8
|
/** Brand. */
|
|
@@ -14,10 +15,14 @@ export interface SiloedTag {
|
|
|
14
15
|
export declare class SiloedTag {
|
|
15
16
|
readonly value: Fr;
|
|
16
17
|
constructor(value: Fr);
|
|
17
|
-
static compute(
|
|
18
|
+
static compute(preTag: PreTag): Promise<SiloedTag>;
|
|
19
|
+
/**
|
|
20
|
+
* Unlike `compute`, this expects a tag whose value is already domain-separated.
|
|
21
|
+
*/
|
|
22
|
+
static computeFromTagAndApp(tag: Tag, app: AztecAddress): Promise<SiloedTag>;
|
|
18
23
|
toString(): string;
|
|
19
24
|
toJSON(): string;
|
|
20
25
|
equals(other: SiloedTag): boolean;
|
|
21
26
|
static get schema(): ZodFor<SiloedTag>;
|
|
22
27
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lsb2VkX3RhZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3Mvc2lsb2VkX3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUkvQiwrREFBK0Q7QUFDL0QsTUFBTSxXQUFXLFNBQVM7SUFDeEIsYUFBYTtJQUNiLFNBQVMsRUFBRSxXQUFXLENBQUM7Q0FDeEI7QUFFRDs7O0dBR0c7QUFDSCxxQkFBYSxTQUFTO2FBQ1EsS0FBSyxFQUFFLEVBQUU7SUFBckMsWUFBNEIsS0FBSyxFQUFFLEVBQUUsRUFBSTtJQUV6QyxPQUFhLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FJdkQ7SUFFRDs7T0FFRztJQUNILE9BQWEsb0JBQW9CLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FHakY7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sSUFBSSxNQUFNLENBRWY7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBRWhDO0lBRUQsTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBRXJDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siloed_tag.d.ts","sourceRoot":"","sources":["../../src/logs/siloed_tag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"siloed_tag.d.ts","sourceRoot":"","sources":["../../src/logs/siloed_tag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,SAAS,EAAE,WAAW,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,SAAS;aACQ,KAAK,EAAE,EAAE;IAArC,YAA4B,KAAK,EAAE,EAAE,EAAI;IAEzC,OAAa,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAIvD;IAED;;OAEG;IACH,OAAa,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAGjF;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAErC;CACF"}
|
package/dest/logs/siloed_tag.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
|
+
import { computeLogTag, computeSiloedPrivateLogFirstField } from '../hash/hash.js';
|
|
2
3
|
import { schemas } from '../schemas/schemas.js';
|
|
4
|
+
import { Tag } from './tag.js';
|
|
3
5
|
/**
|
|
4
6
|
* Represents a tag used in private log as it "appears on the chain" - that is the tag is siloed with a contract
|
|
5
7
|
* address that emitted the log.
|
|
@@ -8,11 +10,15 @@ import { schemas } from '../schemas/schemas.js';
|
|
|
8
10
|
constructor(value){
|
|
9
11
|
this.value = value;
|
|
10
12
|
}
|
|
11
|
-
static async compute(
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
static async compute(preTag) {
|
|
14
|
+
const tag = await Tag.compute(preTag);
|
|
15
|
+
const logTag = await computeLogTag(tag.value, DomainSeparator.UNCONSTRAINED_MSG_LOG_TAG);
|
|
16
|
+
return SiloedTag.computeFromTagAndApp(new Tag(logTag), preTag.extendedSecret.app);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Unlike `compute`, this expects a tag whose value is already domain-separated.
|
|
20
|
+
*/ static async computeFromTagAndApp(tag, app) {
|
|
21
|
+
const siloedTag = await computeSiloedPrivateLogFirstField(app, tag.value);
|
|
16
22
|
return new SiloedTag(siloedTag);
|
|
17
23
|
}
|
|
18
24
|
toString() {
|
package/dest/logs/tag.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { ZodFor } from '@aztec/foundation/schemas';
|
|
3
3
|
import type { PreTag } from './pre_tag.js';
|
|
4
4
|
export interface Tag {
|
|
@@ -16,6 +16,7 @@ export declare class Tag {
|
|
|
16
16
|
toString(): string;
|
|
17
17
|
toJSON(): string;
|
|
18
18
|
equals(other: Tag): boolean;
|
|
19
|
+
static random(): Tag;
|
|
19
20
|
static get schema(): ZodFor<Tag>;
|
|
20
21
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9ncy90YWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3hELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUkzQyxNQUFNLFdBQVcsR0FBRztJQUNsQixhQUFhO0lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQztDQUNsQjtBQUVEOzs7R0FHRztBQUNILHFCQUFhLEdBQUc7YUFDYyxLQUFLLEVBQUUsRUFBRTtJQUFyQyxZQUE0QixLQUFLLEVBQUUsRUFBRSxFQUFJO0lBRXpDLE9BQWEsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUdqRDtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxJQUFJLE1BQU0sQ0FFZjtJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FFMUI7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FFbkI7SUFFRCxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FFL0I7Q0FDRiJ9
|
package/dest/logs/tag.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/logs/tag.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/logs/tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,WAAW,GAAG;IAClB,aAAa;IACb,SAAS,EAAE,KAAK,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,GAAG;aACc,KAAK,EAAE,EAAE;IAArC,YAA4B,KAAK,EAAE,EAAE,EAAI;IAEzC,OAAa,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAGjD;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE1B;IAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAEnB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAE/B;CACF"}
|
package/dest/logs/tag.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import { schemas } from '../schemas/schemas.js';
|
|
3
4
|
/**
|
|
4
5
|
* Represents a tag of a private log. This is not the tag that "appears" on the chain as this tag is first siloed
|
|
@@ -10,7 +11,7 @@ import { schemas } from '../schemas/schemas.js';
|
|
|
10
11
|
}
|
|
11
12
|
static async compute(preTag) {
|
|
12
13
|
const tag = await poseidon2Hash([
|
|
13
|
-
preTag.secret
|
|
14
|
+
preTag.extendedSecret.secret,
|
|
14
15
|
preTag.index
|
|
15
16
|
]);
|
|
16
17
|
return new Tag(tag);
|
|
@@ -24,6 +25,9 @@ import { schemas } from '../schemas/schemas.js';
|
|
|
24
25
|
equals(other) {
|
|
25
26
|
return this.value.equals(other.value);
|
|
26
27
|
}
|
|
28
|
+
static random() {
|
|
29
|
+
return new Tag(Fr.random());
|
|
30
|
+
}
|
|
27
31
|
static get schema() {
|
|
28
32
|
return schemas.Fr.transform((fr)=>new Tag(fr));
|
|
29
33
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type ExtendedDirectionalAppTaggingSecret } from './extended_directional_app_tagging_secret.js';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a range of tagging indexes for a given extended directional app tagging secret. Used to track the lowest
|
|
5
|
+
* and highest indexes used in a transaction for a given (sender, recipient, app/contract) tuple.
|
|
6
|
+
*/
|
|
7
|
+
export type TaggingIndexRange = {
|
|
8
|
+
extendedSecret: ExtendedDirectionalAppTaggingSecret;
|
|
9
|
+
lowestIndex: number;
|
|
10
|
+
highestIndex: number;
|
|
11
|
+
};
|
|
12
|
+
export declare const TaggingIndexRangeSchema: z.ZodObject<{
|
|
13
|
+
extendedSecret: z.ZodObject<{
|
|
14
|
+
secret: z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>;
|
|
15
|
+
app: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
secret: import("@aztec/foundation/schemas").Fr;
|
|
18
|
+
app: import("../aztec-address/index.js").AztecAddress;
|
|
19
|
+
}, {
|
|
20
|
+
secret: string;
|
|
21
|
+
app?: any;
|
|
22
|
+
}>;
|
|
23
|
+
lowestIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
|
|
24
|
+
highestIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
extendedSecret: {
|
|
27
|
+
secret: import("@aztec/foundation/schemas").Fr;
|
|
28
|
+
app: import("../aztec-address/index.js").AztecAddress;
|
|
29
|
+
};
|
|
30
|
+
lowestIndex: number;
|
|
31
|
+
highestIndex: number;
|
|
32
|
+
}, {
|
|
33
|
+
extendedSecret: {
|
|
34
|
+
secret: string;
|
|
35
|
+
app?: any;
|
|
36
|
+
};
|
|
37
|
+
lowestIndex: string | number | bigint;
|
|
38
|
+
highestIndex: string | number | bigint;
|
|
39
|
+
}>;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnZ2luZ19pbmRleF9yYW5nZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvdGFnZ2luZ19pbmRleF9yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFDTCxLQUFLLG1DQUFtQyxFQUV6QyxNQUFNLDhDQUE4QyxDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sTUFBTSxpQkFBaUIsR0FBRztJQUM5QixjQUFjLEVBQUUsbUNBQW1DLENBQUM7SUFDcEQsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixZQUFZLEVBQUUsTUFBTSxDQUFDO0NBQ3RCLENBQUM7QUFFRixlQUFPLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFJbEMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tagging_index_range.d.ts","sourceRoot":"","sources":["../../src/logs/tagging_index_range.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,mCAAmC,EAEzC,MAAM,8CAA8C,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,mCAAmC,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { schemas } from '@aztec/foundation/schemas';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { ExtendedDirectionalAppTaggingSecretSchema } from './extended_directional_app_tagging_secret.js';
|
|
4
|
+
export const TaggingIndexRangeSchema = z.object({
|
|
5
|
+
extendedSecret: ExtendedDirectionalAppTaggingSecretSchema,
|
|
6
|
+
lowestIndex: schemas.Integer,
|
|
7
|
+
highestIndex: schemas.Integer
|
|
8
|
+
});
|
|
@@ -44,6 +44,8 @@ export declare class TxScopedL2Log {
|
|
|
44
44
|
}>;
|
|
45
45
|
toBuffer(): Buffer<ArrayBuffer>;
|
|
46
46
|
static fromBuffer(buffer: Buffer): TxScopedL2Log;
|
|
47
|
+
static getBlockNumberFromBuffer(buffer: Buffer): BlockNumber;
|
|
48
|
+
static random(): TxScopedL2Log;
|
|
47
49
|
equals(other: TxScopedL2Log): boolean;
|
|
48
50
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfc2NvcGVkX2wyX2xvZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ3MvdHhfc2NvcGVkX2wyX2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLGlDQUFpQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVNwRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBR3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxxQkFBYSxhQUFhO0lBS2YsTUFBTSxFQUFFLE1BQU07SUFJZCxXQUFXLEVBQUUsV0FBVztJQUl4QixjQUFjLEVBQUUsTUFBTTtJQUl0QixPQUFPLEVBQUUsRUFBRSxFQUFFO0lBSWIsVUFBVSxFQUFFLEVBQUUsRUFBRTtJQU1oQixjQUFjLEVBQUUsRUFBRTtJQTFCM0IsWUFJUyxNQUFNLEVBQUUsTUFBTSxFQUlkLFdBQVcsRUFBRSxXQUFXLEVBSXhCLGNBQWMsRUFBRSxNQUFNLEVBSXRCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFJYixVQUFVLEVBQUUsRUFBRSxFQUFFLEVBTWhCLGNBQWMsRUFBRSxFQUFFLEVBQ3ZCO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWNoQjtJQUVELFFBQVEsd0JBU1A7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLGlCQVUvQjtJQUVELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxlQUU3QztJQUVELE1BQU0sQ0FBQyxNQUFNLGtCQVNaO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxhQUFhLFdBVzFCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_scoped_l2_log.d.ts","sourceRoot":"","sources":["../../src/logs/tx_scoped_l2_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"tx_scoped_l2_log.d.ts","sourceRoot":"","sources":["../../src/logs/tx_scoped_l2_log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AASpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,aAAa;IAKf,MAAM,EAAE,MAAM;IAId,WAAW,EAAE,WAAW;IAIxB,cAAc,EAAE,MAAM;IAItB,OAAO,EAAE,EAAE,EAAE;IAIb,UAAU,EAAE,EAAE,EAAE;IAMhB,cAAc,EAAE,EAAE;IA1B3B,YAIS,MAAM,EAAE,MAAM,EAId,WAAW,EAAE,WAAW,EAIxB,cAAc,EAAE,MAAM,EAItB,OAAO,EAAE,EAAE,EAAE,EAIb,UAAU,EAAE,EAAE,EAAE,EAMhB,cAAc,EAAE,EAAE,EACvB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAchB;IAED,QAAQ,wBASP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,iBAU/B;IAED,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,eAE7C;IAED,MAAM,CAAC,MAAM,kBASZ;IAED,MAAM,CAAC,KAAK,EAAE,aAAa,WAW1B;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { times } from '@aztec/foundation/collection';
|
|
2
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { schemas as foundationSchemas } from '@aztec/foundation/schemas';
|
|
4
5
|
import { BufferReader, bigintToUInt64BE, numToUInt32BE, serializeArrayOfBufferableToVector } from '@aztec/foundation/serialize';
|
|
@@ -64,6 +65,12 @@ export class TxScopedL2Log {
|
|
|
64
65
|
const firstNullifier = reader.readObject(Fr);
|
|
65
66
|
return new TxScopedL2Log(txHash, blockNumber, blockTimestamp, logData, noteHashes, firstNullifier);
|
|
66
67
|
}
|
|
68
|
+
static getBlockNumberFromBuffer(buffer) {
|
|
69
|
+
return BlockNumber(buffer.readUint32BE(Fr.SIZE_IN_BYTES));
|
|
70
|
+
}
|
|
71
|
+
static random() {
|
|
72
|
+
return new TxScopedL2Log(TxHash.fromField(Fr.random()), BlockNumber(Math.floor(Math.random() * 100000) + 1), BigInt(Math.floor(Date.now() / 1000)), times(3, Fr.random), times(3, Fr.random), Fr.random());
|
|
73
|
+
}
|
|
67
74
|
equals(other) {
|
|
68
75
|
return this.txHash.equals(other.txHash) && this.blockNumber === other.blockNumber && this.blockTimestamp === other.blockTimestamp && this.logData.length === other.logData.length && this.logData.every((f, i)=>f.equals(other.logData[i])) && this.noteHashes.length === other.noteHashes.length && this.noteHashes.every((h, i)=>h.equals(other.noteHashes[i])) && this.firstNullifier.equals(other.firstNullifier);
|
|
69
76
|
}
|
|
@@ -3,6 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import { SiblingPath } from '@aztec/foundation/trees';
|
|
5
5
|
import type { AztecAddress } from '../aztec-address/index.js';
|
|
6
|
+
import type { BlockParameter } from '../block/block_parameter.js';
|
|
6
7
|
import type { AztecNode } from '../interfaces/aztec-node.js';
|
|
7
8
|
import { L1Actor } from './l1_actor.js';
|
|
8
9
|
import { L2Actor } from './l2_actor.js';
|
|
@@ -44,5 +45,5 @@ export declare class L1ToL2Message {
|
|
|
44
45
|
static empty(): L1ToL2Message;
|
|
45
46
|
static random(): Promise<L1ToL2Message>;
|
|
46
47
|
}
|
|
47
|
-
export declare function getNonNullifiedL1ToL2MessageWitness(node: AztecNode, contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]>;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
export declare function getNonNullifiedL1ToL2MessageWitness(node: AztecNode, contractAddress: AztecAddress, messageHash: Fr, secret: Fr, referenceBlock?: BlockParameter): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]>;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdG9fbDJfbWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMV90b19sMl9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4Qzs7R0FFRztBQUNILHFCQUFhLGFBQWE7SUFFdEIsdUNBQXVDO2FBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQzthQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7YUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7YUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO2FBQ2hDLEtBQUssRUFBRSxFQUFFO0lBVjNCO0lBQ0UsdUNBQXVDO0lBQ3ZCLE1BQU0sRUFBRSxPQUFPO0lBQy9CLDBDQUEwQztJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQywyQkFBMkI7SUFDWCxPQUFPLEVBQUUsRUFBRTtJQUMzQix1Q0FBdUM7SUFDdkIsVUFBVSxFQUFFLEVBQUU7SUFDOUIsZ0RBQWdEO0lBQ2hDLEtBQUssRUFBRSxFQUFFLEVBQ3ZCO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUVmO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxJQUFJLElBQUksRUFBRSxDQUVUO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxhQUFhLENBUTlEO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUc3QztJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUU1QjtJQUVELE9BQWEsTUFBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FFNUM7Q0FDRjtBQUdELHdCQUFzQixtQ0FBbUMsQ0FDdkQsSUFBSSxFQUFFLFNBQVMsRUFDZixlQUFlLEVBQUUsWUFBWSxFQUM3QixXQUFXLEVBQUUsRUFBRSxFQUNmLE1BQU0sRUFBRSxFQUFFLEVBQ1YsY0FBYyxHQUFFLGNBQXlCLEdBQ3hDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FpQmpFIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_to_l2_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l1_to_l2_message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"l1_to_l2_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l1_to_l2_message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;IAEtB,uCAAuC;aACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;aAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;aACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;aACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;aAChC,KAAK,EAAE,EAAE;IAV3B;IACE,uCAAuC;IACvB,MAAM,EAAE,OAAO;IAC/B,0CAA0C;IAC1B,SAAS,EAAE,OAAO;IAClC,2BAA2B;IACX,OAAO,EAAE,EAAE;IAC3B,uCAAuC;IACvB,UAAU,EAAE,EAAE;IAC9B,gDAAgD;IAChC,KAAK,EAAE,EAAE,EACvB;IAEJ;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,EAAE,CAET;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAQ9D;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAG7C;IAED,MAAM,CAAC,KAAK,IAAI,aAAa,CAE5B;IAED,OAAa,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAE5C;CACF;AAGD,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,EACV,cAAc,GAAE,cAAyB,GACxC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAiBjE"}
|
|
@@ -63,21 +63,19 @@ import { L2Actor } from './l2_actor.js';
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
// This functionality is not on the node because we do not want to pass the node the secret, and give the node the ability to derive a valid nullifer for an L1 to L2 message.
|
|
66
|
-
export async function getNonNullifiedL1ToL2MessageWitness(node, contractAddress, messageHash, secret) {
|
|
67
|
-
const response = await node.getL1ToL2MessageMembershipWitness('latest', messageHash);
|
|
68
|
-
if (!response) {
|
|
69
|
-
throw new Error(`No L1 to L2 message found for message hash ${messageHash.toString()}`);
|
|
70
|
-
}
|
|
71
|
-
const [messageIndex, siblingPath] = response;
|
|
66
|
+
export async function getNonNullifiedL1ToL2MessageWitness(node, contractAddress, messageHash, secret, referenceBlock = 'latest') {
|
|
72
67
|
const messageNullifier = await computeL1ToL2MessageNullifier(contractAddress, messageHash, secret);
|
|
73
|
-
const [
|
|
74
|
-
|
|
68
|
+
const [l1ToL2Response, nullifierResponse] = await Promise.all([
|
|
69
|
+
node.getL1ToL2MessageMembershipWitness(referenceBlock, messageHash),
|
|
70
|
+
node.findLeavesIndexes(referenceBlock, MerkleTreeId.NULLIFIER_TREE, [
|
|
71
|
+
messageNullifier
|
|
72
|
+
])
|
|
75
73
|
]);
|
|
76
|
-
if (
|
|
74
|
+
if (!l1ToL2Response) {
|
|
75
|
+
throw new Error(`No L1 to L2 message found for message hash ${messageHash.toString()}`);
|
|
76
|
+
}
|
|
77
|
+
if (nullifierResponse[0] !== undefined) {
|
|
77
78
|
throw new Error(`No non-nullified L1 to L2 message found for message hash ${messageHash.toString()}`);
|
|
78
79
|
}
|
|
79
|
-
return
|
|
80
|
-
messageIndex,
|
|
81
|
-
siblingPath
|
|
82
|
-
];
|
|
80
|
+
return l1ToL2Response;
|
|
83
81
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { EpochNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { SiblingPath } from '@aztec/foundation/trees';
|
|
4
|
+
import type { AztecNode } from '../interfaces/aztec-node.js';
|
|
5
|
+
import { TxHash } from '../tx/tx_hash.js';
|
|
4
6
|
/**
|
|
5
7
|
* # L2-to-L1 Message Tree Structure and Leaf IDs
|
|
6
8
|
*
|
|
@@ -30,10 +32,10 @@ import { SiblingPath } from '@aztec/foundation/trees';
|
|
|
30
32
|
* - Compression: If a block has no messages (out hash = 0), that branch is ignored
|
|
31
33
|
*
|
|
32
34
|
* 4. **Epoch Tree**
|
|
33
|
-
* - Leaves: Checkpoint out hashes from all checkpoints in an epoch (padded to
|
|
35
|
+
* - Leaves: Checkpoint out hashes from all checkpoints in an epoch (padded to OUT_HASH_TREE_LEAF_COUNT)
|
|
34
36
|
* - Root: Epoch out hash (set in the root rollup's public inputs and inserted into the Outbox on L1 when the epoch is proven)
|
|
35
37
|
* - Type: Unbalanced, non-compressed
|
|
36
|
-
* - **Important**: Padded with zeros up to
|
|
38
|
+
* - **Important**: Padded with zeros up to OUT_HASH_TREE_LEAF_COUNT to allow for proofs of partial epochs
|
|
37
39
|
*
|
|
38
40
|
* ## Combined Membership Proof
|
|
39
41
|
* To prove a message exists in an epoch, we combine the sibling paths from all 4 trees:
|
|
@@ -84,14 +86,38 @@ import { SiblingPath } from '@aztec/foundation/trees';
|
|
|
84
86
|
* @returns The unique leaf ID used for tracking message consumption on L1
|
|
85
87
|
*/
|
|
86
88
|
export declare function getL2ToL1MessageLeafId(membershipWitness: Pick<L2ToL1MembershipWitness, 'leafIndex' | 'siblingPath'>): bigint;
|
|
87
|
-
export interface MessageRetrieval {
|
|
88
|
-
getL2ToL1Messages(epoch: EpochNumber): Promise<Fr[][][][]>;
|
|
89
|
-
}
|
|
90
89
|
export type L2ToL1MembershipWitness = {
|
|
91
90
|
root: Fr;
|
|
92
91
|
leafIndex: bigint;
|
|
93
92
|
siblingPath: SiblingPath<number>;
|
|
93
|
+
epochNumber: EpochNumber;
|
|
94
94
|
};
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
/**
|
|
96
|
+
* Computes the L2 to L1 membership witness for a given message in a transaction.
|
|
97
|
+
*
|
|
98
|
+
* @param node - The Aztec node to query for block/tx/epoch data.
|
|
99
|
+
* @param message - The L2 to L1 message hash to prove membership of.
|
|
100
|
+
* @param txHash - The hash of the transaction that emitted the message.
|
|
101
|
+
* @param messageIndexInTx - Optional index of the message within the transaction's L2-to-L1 messages.
|
|
102
|
+
* If not provided, the message is found by scanning the tx's messages (throws if duplicates exist).
|
|
103
|
+
* @returns The membership witness and epoch number, or undefined if the tx is not yet in a block/epoch.
|
|
104
|
+
*/
|
|
105
|
+
export declare function computeL2ToL1MembershipWitness(node: Pick<AztecNode, 'getL2ToL1Messages' | 'getTxReceipt' | 'getTxEffect' | 'getBlock' | 'getCheckpointsDataForEpoch'>, message: Fr, txHash: TxHash, messageIndexInTx?: number): Promise<L2ToL1MembershipWitness | undefined>;
|
|
106
|
+
/**
|
|
107
|
+
* Computes a membership witness for a message in the epoch's L2-to-L1 message tree, given explicit position indices.
|
|
108
|
+
*
|
|
109
|
+
* @param messagesInEpoch - All L2-to-L1 messages in the epoch, organized as checkpoints → blocks → txs → messages.
|
|
110
|
+
* @param message - The message hash to prove membership of.
|
|
111
|
+
* @param checkpointIndex - Index of the checkpoint within the epoch's message array.
|
|
112
|
+
* @param blockIndex - Index of the block within the checkpoint.
|
|
113
|
+
* @param txIndex - Index of the transaction within the block.
|
|
114
|
+
* @param messageIndexInTx - Optional index of the message within the transaction's messages.
|
|
115
|
+
* If not provided, the message is found by scanning (throws if duplicates exist within the tx).
|
|
116
|
+
*/
|
|
117
|
+
/** @internal Exported for testing only. */
|
|
118
|
+
export declare function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch: Fr[][][][], message: Fr, checkpointIndex: number, blockIndex: number, txIndex: number, messageIndexInTx?: number): {
|
|
119
|
+
root: Fr;
|
|
120
|
+
leafIndex: bigint;
|
|
121
|
+
siblingPath: SiblingPath<number>;
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdG9fbDFfbWVtYmVyc2hpcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2luZy9sMl90b19sMV9tZW1iZXJzaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUE0RCxNQUFNLHlCQUF5QixDQUFDO0FBRWhILE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0VHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0Isc0JBQXNCLENBQ3BDLGlCQUFpQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLEdBQUcsYUFBYSxDQUFDLEdBQzVFLE1BQU0sQ0FFUjtBQUVELE1BQU0sTUFBTSx1QkFBdUIsR0FBRztJQUNwQyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLFdBQVcsRUFBRSxXQUFXLENBQUM7Q0FDMUIsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FDbEQsSUFBSSxFQUFFLElBQUksQ0FDUixTQUFTLEVBQ1QsbUJBQW1CLEdBQUcsY0FBYyxHQUFHLGFBQWEsR0FBRyxVQUFVLEdBQUcsNEJBQTRCLENBQ2pHLEVBQ0QsT0FBTyxFQUFFLEVBQUUsRUFDWCxNQUFNLEVBQUUsTUFBTSxFQUNkLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUN4QixPQUFPLENBQUMsdUJBQXVCLEdBQUcsU0FBUyxDQUFDLENBa0M5QztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCwyQ0FBMkM7QUFDM0Msd0JBQWdCLGlEQUFpRCxDQUMvRCxlQUFlLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzNCLE9BQU8sRUFBRSxFQUFFLEVBQ1gsZUFBZSxFQUFFLE1BQU0sRUFDdkIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsT0FBTyxFQUFFLE1BQU0sRUFDZixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sR0FDeEI7SUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7Q0FBRSxDQW9FbkUifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAA4D,MAAM,yBAAyB,CAAC;AAEhH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"l2_to_l1_membership.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_membership.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAA4D,MAAM,yBAAyB,CAAC;AAEhH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,aAAa,CAAC,GAC5E,MAAM,CAER;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,EAAE,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,IAAI,CACR,SAAS,EACT,mBAAmB,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,4BAA4B,CACjG,EACD,OAAO,EAAE,EAAE,EACX,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAkC9C;AAED;;;;;;;;;;GAUG;AACH,2CAA2C;AAC3C,wBAAgB,iDAAiD,CAC/D,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC3B,OAAO,EAAE,EAAE,EACX,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GACxB;IAAE,IAAI,EAAE,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,CAoEnE"}
|
|
@@ -30,10 +30,10 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
|
|
|
30
30
|
* - Compression: If a block has no messages (out hash = 0), that branch is ignored
|
|
31
31
|
*
|
|
32
32
|
* 4. **Epoch Tree**
|
|
33
|
-
* - Leaves: Checkpoint out hashes from all checkpoints in an epoch (padded to
|
|
33
|
+
* - Leaves: Checkpoint out hashes from all checkpoints in an epoch (padded to OUT_HASH_TREE_LEAF_COUNT)
|
|
34
34
|
* - Root: Epoch out hash (set in the root rollup's public inputs and inserted into the Outbox on L1 when the epoch is proven)
|
|
35
35
|
* - Type: Unbalanced, non-compressed
|
|
36
|
-
* - **Important**: Padded with zeros up to
|
|
36
|
+
* - **Important**: Padded with zeros up to OUT_HASH_TREE_LEAF_COUNT to allow for proofs of partial epochs
|
|
37
37
|
*
|
|
38
38
|
* ## Combined Membership Proof
|
|
39
39
|
* To prove a message exists in an epoch, we combine the sibling paths from all 4 trees:
|
|
@@ -84,38 +84,60 @@ import { SiblingPath, UnbalancedMerkleTreeCalculator, computeUnbalancedShaRoot }
|
|
|
84
84
|
*/ export function getL2ToL1MessageLeafId(membershipWitness) {
|
|
85
85
|
return 2n ** BigInt(membershipWitness.siblingPath.pathSize) + membershipWitness.leafIndex;
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Computes the L2 to L1 membership witness for a given message in a transaction.
|
|
89
|
+
*
|
|
90
|
+
* @param node - The Aztec node to query for block/tx/epoch data.
|
|
91
|
+
* @param message - The L2 to L1 message hash to prove membership of.
|
|
92
|
+
* @param txHash - The hash of the transaction that emitted the message.
|
|
93
|
+
* @param messageIndexInTx - Optional index of the message within the transaction's L2-to-L1 messages.
|
|
94
|
+
* If not provided, the message is found by scanning the tx's messages (throws if duplicates exist).
|
|
95
|
+
* @returns The membership witness and epoch number, or undefined if the tx is not yet in a block/epoch.
|
|
96
|
+
*/ export async function computeL2ToL1MembershipWitness(node, message, txHash, messageIndexInTx) {
|
|
97
|
+
const { epochNumber, blockNumber } = await node.getTxReceipt(txHash);
|
|
98
|
+
if (epochNumber === undefined || blockNumber === undefined) {
|
|
90
99
|
return undefined;
|
|
91
100
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const checkpointIndex =
|
|
102
|
-
blockIndex = messagesInCheckpoint.findIndex((messagesInBlock)=>{
|
|
103
|
-
txIndex = messagesInBlock.findIndex((messagesInTx)=>{
|
|
104
|
-
messageIndexInTx = messagesInTx.findIndex((msg)=>msg.equals(message));
|
|
105
|
-
return messageIndexInTx !== -1;
|
|
106
|
-
});
|
|
107
|
-
return txIndex !== -1;
|
|
108
|
-
});
|
|
109
|
-
return blockIndex !== -1;
|
|
110
|
-
});
|
|
101
|
+
const [messagesInEpoch, block, txEffect, checkpointsData] = await Promise.all([
|
|
102
|
+
node.getL2ToL1Messages(epochNumber),
|
|
103
|
+
node.getBlock(blockNumber),
|
|
104
|
+
node.getTxEffect(txHash),
|
|
105
|
+
node.getCheckpointsDataForEpoch(epochNumber)
|
|
106
|
+
]);
|
|
107
|
+
if (messagesInEpoch.length === 0 || !block || !txEffect) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
const checkpointIndex = checkpointsData.findIndex((c)=>c.checkpointNumber === block.checkpointNumber);
|
|
111
111
|
if (checkpointIndex === -1) {
|
|
112
|
-
|
|
112
|
+
return undefined;
|
|
113
113
|
}
|
|
114
|
-
|
|
114
|
+
const blockIndex = block.indexWithinCheckpoint;
|
|
115
|
+
const txIndex = txEffect.txIndexInBlock;
|
|
116
|
+
const { root, leafIndex, siblingPath } = computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, message, checkpointIndex, blockIndex, txIndex, messageIndexInTx);
|
|
117
|
+
return {
|
|
118
|
+
epochNumber,
|
|
119
|
+
root,
|
|
120
|
+
leafIndex,
|
|
121
|
+
siblingPath
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Computes a membership witness for a message in the epoch's L2-to-L1 message tree, given explicit position indices.
|
|
126
|
+
*
|
|
127
|
+
* @param messagesInEpoch - All L2-to-L1 messages in the epoch, organized as checkpoints → blocks → txs → messages.
|
|
128
|
+
* @param message - The message hash to prove membership of.
|
|
129
|
+
* @param checkpointIndex - Index of the checkpoint within the epoch's message array.
|
|
130
|
+
* @param blockIndex - Index of the block within the checkpoint.
|
|
131
|
+
* @param txIndex - Index of the transaction within the block.
|
|
132
|
+
* @param messageIndexInTx - Optional index of the message within the transaction's messages.
|
|
133
|
+
* If not provided, the message is found by scanning (throws if duplicates exist within the tx).
|
|
134
|
+
*/ /** @internal Exported for testing only. */ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, message, checkpointIndex, blockIndex, txIndex, messageIndexInTx) {
|
|
115
135
|
const messagesInTx = messagesInEpoch[checkpointIndex][blockIndex][txIndex];
|
|
136
|
+
const resolvedMessageIndex = resolveMessageIndex(messagesInTx, message, messageIndexInTx);
|
|
137
|
+
// Build the tx tree.
|
|
116
138
|
const txTree = UnbalancedMerkleTreeCalculator.create(messagesInTx.map((msg)=>msg.toBuffer()));
|
|
117
139
|
// Get the sibling path of the target message in the tx tree.
|
|
118
|
-
const pathToMessageInTxSubtree = txTree.getSiblingPathByLeafIndex(
|
|
140
|
+
const pathToMessageInTxSubtree = txTree.getSiblingPathByLeafIndex(resolvedMessageIndex);
|
|
119
141
|
// Build the tree of the block containing the target message.
|
|
120
142
|
const blockTree = buildBlockTree(messagesInEpoch[checkpointIndex][blockIndex]);
|
|
121
143
|
// Get the sibling path of the tx out hash in the block tree.
|
|
@@ -131,7 +153,7 @@ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoc
|
|
|
131
153
|
}
|
|
132
154
|
return buildCheckpointTree(messagesInCheckpoint).getRoot();
|
|
133
155
|
});
|
|
134
|
-
// Pad to
|
|
156
|
+
// Pad to OUT_HASH_TREE_LEAF_COUNT with zeros.
|
|
135
157
|
checkpointOutHashes = checkpointOutHashes.concat(Array.from({
|
|
136
158
|
length: OUT_HASH_TREE_LEAF_COUNT - messagesInEpoch.length
|
|
137
159
|
}, ()=>Buffer.alloc(32)));
|
|
@@ -149,7 +171,7 @@ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoc
|
|
|
149
171
|
// Compute the combined index.
|
|
150
172
|
// It is the index of the message in the balanced tree (by filling up the wonky tree with empty nodes) at its current
|
|
151
173
|
// height. It's used to validate the membership proof.
|
|
152
|
-
const messageLeafPosition = txTree.getLeafLocation(
|
|
174
|
+
const messageLeafPosition = txTree.getLeafLocation(resolvedMessageIndex);
|
|
153
175
|
const txLeafPosition = blockTree.getLeafLocation(txIndex);
|
|
154
176
|
const blockLeafPosition = checkpointTree.getLeafLocation(blockIndex);
|
|
155
177
|
const checkpointLeafPosition = epochTree.getLeafLocation(checkpointIndex);
|
|
@@ -165,6 +187,27 @@ export function computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoc
|
|
|
165
187
|
siblingPath: new SiblingPath(combinedPath.length, combinedPath)
|
|
166
188
|
};
|
|
167
189
|
}
|
|
190
|
+
function resolveMessageIndex(messagesInTx, message, messageIndexInTx) {
|
|
191
|
+
if (messageIndexInTx !== undefined) {
|
|
192
|
+
if (!messagesInTx[messageIndexInTx]?.equals(message)) {
|
|
193
|
+
throw new Error(`Message at index ${messageIndexInTx} in tx does not match the expected message ${message}`);
|
|
194
|
+
}
|
|
195
|
+
return messageIndexInTx;
|
|
196
|
+
}
|
|
197
|
+
const indices = messagesInTx.reduce((acc, msg, i)=>{
|
|
198
|
+
if (msg.equals(message)) {
|
|
199
|
+
acc.push(i);
|
|
200
|
+
}
|
|
201
|
+
return acc;
|
|
202
|
+
}, []);
|
|
203
|
+
if (indices.length === 0) {
|
|
204
|
+
throw new Error('The L2ToL1Message you are trying to prove inclusion of does not exist');
|
|
205
|
+
}
|
|
206
|
+
if (indices.length > 1) {
|
|
207
|
+
throw new Error(`Multiple messages with the same value ${message} found in tx (indices: ${indices.join(', ')}). ` + `Provide messageIndexInTx to disambiguate.`);
|
|
208
|
+
}
|
|
209
|
+
return indices[0];
|
|
210
|
+
}
|
|
168
211
|
function buildCheckpointTree(messagesInCheckpoint) {
|
|
169
212
|
const blockOutHashes = messagesInCheckpoint.map((messagesInBlock)=>buildBlockTree(messagesInBlock).getRoot());
|
|
170
213
|
return buildCompressedTree(blockOutHashes);
|
package/dest/noir/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare const AZTEC_VIEW_ATTRIBUTE = "abi_view";
|
|
|
9
9
|
export interface NoirFunctionAbi {
|
|
10
10
|
/** The parameters of the function. */
|
|
11
11
|
parameters: ABIParameter[];
|
|
12
|
-
/** The return type of the function. */
|
|
12
|
+
/** The return type of the function, or null for void functions. */
|
|
13
13
|
return_type: {
|
|
14
14
|
/**
|
|
15
15
|
* The type of the return value.
|
|
@@ -19,7 +19,7 @@ export interface NoirFunctionAbi {
|
|
|
19
19
|
* The visibility of the return value.
|
|
20
20
|
*/
|
|
21
21
|
visibility: ABIParameterVisibility;
|
|
22
|
-
};
|
|
22
|
+
} | null;
|
|
23
23
|
/** Mapping of error selector => error type */
|
|
24
24
|
error_types: Partial<Record<string, AbiErrorType>>;
|
|
25
25
|
}
|
|
@@ -52,6 +52,8 @@ interface NoirFunctionEntry {
|
|
|
52
52
|
export interface NoirCompiledContract {
|
|
53
53
|
/** The name of the contract. */
|
|
54
54
|
name: string;
|
|
55
|
+
/** The version of the Aztec stack that compiled this contract. */
|
|
56
|
+
aztec_version: string;
|
|
55
57
|
/** Is the contract's public bytecode transpiled? */
|
|
56
58
|
transpiled?: boolean;
|
|
57
59
|
/** The functions of the contract. */
|
|
@@ -142,4 +144,4 @@ export declare function isNoirContractCompilationArtifacts(artifact: NoirCompila
|
|
|
142
144
|
*/
|
|
143
145
|
export declare function isNoirProgramCompilationArtifacts(artifact: NoirCompilationResult): artifact is NoirProgramCompilationArtifacts;
|
|
144
146
|
export {};
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2lyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUNWLFlBQVksRUFDWixzQkFBc0IsRUFDdEIsWUFBWSxFQUNaLE9BQU8sRUFDUCxRQUFRLEVBQ1IsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixlQUFPLE1BQU0sdUJBQXVCLGdCQUFnQixDQUFDO0FBQ3JELGVBQU8sTUFBTSxzQkFBc0IsZUFBZSxDQUFDO0FBQ25ELGVBQU8sTUFBTSx1QkFBdUIsZ0JBQWdCLENBQUM7QUFDckQsZUFBTyxNQUFNLHlCQUF5QixrQkFBa0IsQ0FBQztBQUN6RCxlQUFPLE1BQU0sMkJBQTJCLG9CQUFvQixDQUFDO0FBQzdELGVBQU8sTUFBTSxvQkFBb0IsYUFBYSxDQUFDO0FBRS9DLHVDQUF1QztBQUN2QyxNQUFNLFdBQVcsZUFBZTtJQUM5QixzQ0FBc0M7SUFDdEMsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQzNCLG1FQUFtRTtJQUNuRSxXQUFXLEVBQUU7UUFDWDs7V0FFRztRQUNILFFBQVEsRUFBRSxPQUFPLENBQUM7UUFDbEI7O1dBRUc7UUFDSCxVQUFVLEVBQUUsc0JBQXNCLENBQUM7S0FDcEMsR0FBRyxJQUFJLENBQUM7SUFDVCw4Q0FBOEM7SUFDOUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7Q0FDcEQ7QUFFRDs7R0FFRztBQUNILFVBQVUsaUJBQWlCO0lBQ3pCLGdDQUFnQztJQUNoQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsNkNBQTZDO0lBQzdDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztJQUMxQiw2Q0FBNkM7SUFDN0MsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDNUIsK0JBQStCO0lBQy9CLEdBQUcsRUFBRSxlQUFlLENB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
|
package/dest/noir/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/noir/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AACrD,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AACrD,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AACzD,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAC7D,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/noir/index.ts"],"names":[],"mappings":"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"}
|
package/dest/note/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from './comparator.js';
|
|
2
2
|
export * from './note_dao.js';
|
|
3
|
-
export * from './notes_filter.js';
|
|
4
3
|
export * from './note_status.js';
|
|
5
4
|
export * from './note.js';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFdBQVcsQ0FBQyJ9
|
package/dest/note/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/note/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/note/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC"}
|
package/dest/note/index.js
CHANGED
package/dest/note/note_dao.d.ts
CHANGED
|
@@ -107,4 +107,4 @@ export declare class NoteDao {
|
|
|
107
107
|
getSize(): number;
|
|
108
108
|
static random({ note, contractAddress, owner, storageSlot, randomness, noteNonce, noteHash, siloedNullifier, txHash, l2BlockNumber, l2BlockHash, txIndexInBlock, noteIndexInTx }?: Partial<NoteDao>): Promise<NoteDao>;
|
|
109
109
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9kYW8uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RlL25vdGVfZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQzs7O0dBR0c7QUFDSCxxQkFBYSxPQUFPO0lBSWhCLGtGQUFrRjtJQUMzRSxJQUFJLEVBQUUsSUFBSTtJQUNqQiw4R0FBOEc7SUFDdkcsZUFBZSxFQUFFLFlBQVk7SUFDcEMsNkVBQTZFO0lBQ3RFLEtBQUssRUFBRSxZQUFZO0lBQzFCOzs7T0FHRztJQUNJLFdBQVcsRUFBRSxFQUFFO0lBQ3RCOztPQUVHO0lBQ0ksVUFBVSxFQUFFLEVBQUU7SUFDckIsZ0dBQWdHO0lBQ3pGLFNBQVMsRUFBRSxFQUFFO0lBR3BCOzs7T0FHRztJQUNJLFFBQVEsRUFBRSxFQUFFO0lBQ25COzs7T0FHRztJQUNJLGVBQWUsRUFBRSxFQUFFO0lBRzFCOztPQUVHO0lBQ0ksTUFBTSxFQUFFLE1BQU07SUFDckI7Z0JBQ1k7SUFDTCxhQUFhLEVBQUUsV0FBVztJQUNqQztnQkFDWTtJQUNMLFdBQVcsRUFBRSxNQUFNO0lBQzFCLHFFQUFxRTtJQUM5RCxjQUFjLEVBQUUsTUFBTTtJQUM3QixrR0FBa0c7SUFDM0YsYUFBYSxFQUFFLE1BQU07SUEvQzlCO0lBR0Usa0ZBQWtGO0lBQzNFLElBQUksRUFBRSxJQUFJO0lBQ2pCLDhHQUE4RztJQUN2RyxlQUFlLEVBQUUsWUFBWTtJQUNwQyw2RUFBNkU7SUFDdEUsS0FBSyxFQUFFLFlBQVk7SUFDMUI7OztPQUdHO0lBQ0ksV0FBVyxFQUFFLEVBQUU7SUFDdEI7O09BRUc7SUFDSSxVQUFVLEVBQUUsRUFBRTtJQUNyQixnR0FBZ0c7SUFDekYsU0FBUyxFQUFFLEVBQUU7SUFHcEI7OztPQUdHO0lBQ0ksUUFBUSxFQUFFLEVBQUU7SUFDbkI7OztPQUdHO0lBQ0ksZUFBZSxFQUFFLEVBQUU7SUFHMUI7O09BRUc7SUFDSSxNQUFNLEVBQUUsTUFBTTtJQUNyQjtnQkFDWTtJQUNMLGFBQWEsRUFBRSxXQUFXO0lBQ2pDO2dCQUNZO0lBQ0wsV0FBVyxFQUFFLE1BQU07SUFDMUIscUVBQXFFO0lBQzlELGNBQWMsRUFBRSxNQUFNO0lBQzdCLGtHQUFrRztJQUMzRixhQUFhLEVBQUUsTUFBTSxFQUMxQjtJQUVKLFFBQVEsSUFBSSxNQUFNLENBZ0JqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLFdBZ0M5QztJQUVELFFBQVEsV0FFUDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sV0FHNUI7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FnQjlCO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTyxXQUViO0lBRUQsT0FBYSxNQUFNLENBQUMsRUFDbEIsSUFBb0IsRUFDcEIsZUFBMkIsRUFDM0IsS0FBaUIsRUFDakIsV0FBeUIsRUFDekIsVUFBd0IsRUFDeEIsU0FBdUIsRUFDdkIsUUFBc0IsRUFDdEIsZUFBNkIsRUFDN0IsTUFBd0IsRUFDeEIsYUFBNkQsRUFDN0QsV0FBb0MsRUFDcEMsY0FBZ0QsRUFDaEQsYUFBK0MsRUFDaEQsR0FBRSxPQUFPLENBQUMsT0FBTyxDQUFNLG9CQWdCdkI7Q0FDRiJ9
|