@aztec/pxe 0.0.1-commit.5daedc8 → 0.0.1-commit.6230a0c
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/bin/check_oracle_version.js +105 -15
- package/dest/block_synchronizer/block_synchronizer.d.ts +43 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/block_synchronizer/block_synchronizer.js +147 -0
- package/dest/block_synchronizer/index.d.ts +2 -0
- package/dest/block_synchronizer/index.d.ts.map +1 -0
- package/dest/block_synchronizer/index.js +1 -0
- package/dest/config/index.d.ts +6 -4
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +17 -0
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
- package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
- package/dest/contract_function_simulator/benchmarked_node.js +77 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +40 -14
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +72 -33
- package/dest/contract_function_simulator/execution_note_cache.d.ts +21 -11
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +49 -31
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +1 -1
- package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
- package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.d.ts +2 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -4
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +6 -3
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -5
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +7 -4
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +26 -19
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +4 -2
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +11 -7
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +14 -10
- package/dest/contract_function_simulator/oracle/oracle.d.ts +12 -10
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +83 -48
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +34 -26
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +46 -48
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +84 -29
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +170 -68
- package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
- package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
- package/dest/contract_function_simulator/pick_notes.js +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
- package/dest/contract_sync/index.d.ts +24 -0
- package/dest/contract_sync/index.d.ts.map +1 -0
- package/dest/contract_sync/index.js +61 -0
- package/dest/debug/pxe_debug_utils.d.ts +41 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +47 -0
- package/dest/entrypoints/client/bundle/index.d.ts +1 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +0 -1
- package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +23 -8
- package/dest/entrypoints/client/lazy/index.d.ts +1 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +0 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +24 -9
- package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +4 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +3 -1
- package/dest/entrypoints/server/utils.d.ts +1 -1
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +30 -15
- package/dest/error_enriching.d.ts +4 -4
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +6 -6
- package/dest/events/event_service.d.ts +15 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +44 -0
- package/dest/events/index.d.ts +2 -0
- package/dest/events/index.d.ts.map +1 -0
- package/dest/events/index.js +1 -0
- package/dest/events/private_event_filter_validator.d.ts +9 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +38 -0
- package/dest/job_coordinator/job_coordinator.d.ts +75 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +94 -0
- package/dest/logs/log_service.d.ts +28 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +123 -0
- package/dest/notes/index.d.ts +2 -0
- package/dest/notes/index.d.ts.map +1 -0
- package/dest/notes/index.js +1 -0
- package/dest/notes/note_service.d.ts +48 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +147 -0
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +4 -3
- package/dest/private_kernel/hints/index.d.ts +2 -2
- package/dest/private_kernel/hints/index.d.ts.map +1 -1
- package/dest/private_kernel/hints/index.js +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
- package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +13 -7
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +11 -15
- package/dest/private_kernel/private_kernel_oracle.d.ts +26 -29
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +90 -2
- package/dest/pxe.d.ts +45 -81
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +188 -217
- package/dest/storage/address_store/address_store.d.ts +11 -0
- package/dest/storage/address_store/address_store.d.ts.map +1 -0
- package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
- package/dest/storage/address_store/index.d.ts +2 -0
- package/dest/storage/address_store/index.d.ts.map +1 -0
- package/dest/storage/address_store/index.js +1 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
- package/dest/storage/{sync_data_provider → anchor_block_store}/index.d.ts +2 -2
- package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/index.js +1 -0
- package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_store.js +253 -0
- package/dest/storage/capsule_store/index.d.ts +2 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +7 -5
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +56 -16
- package/dest/storage/contract_store/index.d.ts +2 -0
- package/dest/storage/contract_store/index.d.ts.map +1 -0
- package/dest/storage/contract_store/index.js +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
- package/dest/storage/index.d.ts +8 -8
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -7
- package/dest/storage/metadata.d.ts +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/note_store/index.d.ts +3 -0
- package/dest/storage/note_store/index.d.ts.map +1 -0
- package/dest/storage/note_store/index.js +2 -0
- package/dest/storage/note_store/note_store.d.ts +83 -0
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/note_store/note_store.js +341 -0
- package/dest/storage/note_store/stored_note.d.ts +16 -0
- package/dest/storage/note_store/stored_note.d.ts.map +1 -0
- package/dest/storage/note_store/stored_note.js +43 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
- package/dest/storage/private_event_store/private_event_store.js +273 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
- package/dest/storage/private_event_store/stored_private_event.js +56 -0
- package/dest/storage/tagging_store/index.d.ts +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +10 -2
- package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
- package/dest/tagging/get_all_logs_by_tags.js +46 -0
- package/dest/tagging/index.d.ts +16 -6
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +15 -5
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +15 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +15 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +32 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +21 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +21 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +60 -0
- package/package.json +19 -19
- package/src/bin/check_oracle_version.ts +131 -20
- package/src/block_synchronizer/block_synchronizer.ts +172 -0
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +17 -3
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/benchmarked_node.ts +103 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +114 -34
- package/src/contract_function_simulator/execution_note_cache.ts +51 -28
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
- package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
- package/src/contract_function_simulator/index.ts +1 -1
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +6 -2
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -3
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
- package/src/contract_function_simulator/oracle/interfaces.ts +31 -16
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +27 -13
- package/src/contract_function_simulator/oracle/oracle.ts +98 -44
- package/src/contract_function_simulator/oracle/private_execution.ts +2 -68
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +127 -59
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +261 -75
- package/src/contract_function_simulator/pick_notes.ts +1 -1
- package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
- package/src/contract_sync/index.ts +119 -0
- package/src/debug/pxe_debug_utils.ts +63 -0
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +15 -16
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +16 -17
- package/src/entrypoints/pxe_creation_options.ts +6 -2
- package/src/entrypoints/server/index.ts +3 -1
- package/src/entrypoints/server/utils.ts +26 -34
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +71 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +46 -0
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +220 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +195 -0
- package/src/oracle_version.ts +4 -3
- package/src/private_kernel/hints/index.ts +1 -1
- package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +34 -23
- package/src/private_kernel/private_kernel_execution_prover.ts +13 -16
- package/src/private_kernel/private_kernel_oracle.ts +118 -37
- package/src/pxe.ts +273 -282
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -11
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/capsule_store/capsule_store.ts +315 -0
- package/src/storage/capsule_store/index.ts +1 -0
- package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +67 -14
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
- package/src/storage/index.ts +7 -7
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/note_store/note_store.ts +411 -0
- package/src/storage/note_store/stored_note.ts +48 -0
- package/src/storage/private_event_store/private_event_store.ts +384 -0
- package/src/storage/private_event_store/stored_private_event.ts +73 -0
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
- package/src/tagging/constants.ts +10 -2
- package/src/tagging/get_all_logs_by_tags.ts +68 -0
- package/src/tagging/index.ts +18 -5
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +143 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +49 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +99 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -265
- package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
- package/dest/contract_function_simulator/execution_data_provider.js +0 -14
- package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
- package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
- package/dest/contract_function_simulator/proxied_node.js +0 -27
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -694
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
- package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.d.ts +0 -3
- package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.d.ts.map +0 -1
- package/dest/private_kernel/hints/compute_side_effect_uniqueness_hints.js +0 -48
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.d.ts +0 -2
- package/dest/storage/address_data_provider/index.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.js +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
- package/dest/storage/capsule_data_provider/index.d.ts +0 -2
- package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.d.ts +0 -2
- package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.d.ts +0 -3
- package/dest/storage/note_data_provider/index.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.js +0 -2
- package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
- package/dest/storage/note_data_provider/note_data_provider.js +0 -311
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -37
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
- package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -105
- package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
- package/dest/storage/sync_data_provider/index.js +0 -1
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.d.ts +0 -2
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
- package/dest/synchronizer/index.d.ts +0 -2
- package/dest/synchronizer/index.d.ts.map +0 -1
- package/dest/synchronizer/index.js +0 -1
- package/dest/synchronizer/synchronizer.d.ts +0 -35
- package/dest/synchronizer/synchronizer.d.ts.map +0 -1
- package/dest/synchronizer/synchronizer.js +0 -101
- package/dest/tagging/siloed_tag.d.ts +0 -14
- package/dest/tagging/siloed_tag.d.ts.map +0 -1
- package/dest/tagging/siloed_tag.js +0 -20
- package/dest/tagging/tag.d.ts +0 -12
- package/dest/tagging/tag.d.ts.map +0 -1
- package/dest/tagging/tag.js +0 -17
- package/dest/tagging/utils.d.ts +0 -18
- package/dest/tagging/utils.d.ts.map +0 -1
- package/dest/tagging/utils.js +0 -24
- package/src/contract_function_simulator/execution_data_provider.ts +0 -333
- package/src/contract_function_simulator/proxied_node.ts +0 -33
- package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1008
- package/src/private_kernel/hints/compute_side_effect_uniqueness_hints.ts +0 -173
- package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/index.ts +0 -1
- package/src/storage/note_data_provider/index.ts +0 -2
- package/src/storage/note_data_provider/note_data_provider.ts +0 -399
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -143
- package/src/storage/sync_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
- package/src/synchronizer/index.ts +0 -1
- package/src/synchronizer/synchronizer.ts +0 -120
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET,
|
|
3
|
-
GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET,
|
|
4
|
-
GLOBAL_INDEX_NOTE_HASH_OFFSET,
|
|
5
|
-
GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET,
|
|
6
|
-
GLOBAL_INDEX_NULLIFIER_OFFSET,
|
|
7
|
-
GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET,
|
|
8
|
-
GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET,
|
|
9
|
-
GLOBAL_INDEX_PRIVATE_LOG_OFFSET,
|
|
10
|
-
GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET,
|
|
11
|
-
MAX_CONTRACT_CLASS_LOGS_PER_CALL,
|
|
12
|
-
MAX_ENQUEUED_CALLS_PER_CALL,
|
|
13
|
-
MAX_L2_TO_L1_MSGS_PER_CALL,
|
|
14
|
-
MAX_NOTE_HASHES_PER_CALL,
|
|
15
|
-
MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,
|
|
16
|
-
MAX_NULLIFIERS_PER_CALL,
|
|
17
|
-
MAX_NULLIFIER_READ_REQUESTS_PER_CALL,
|
|
18
|
-
MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,
|
|
19
|
-
MAX_PRIVATE_LOGS_PER_CALL,
|
|
20
|
-
TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL,
|
|
21
|
-
} from '@aztec/constants';
|
|
22
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
23
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
24
|
-
import type { Serializable } from '@aztec/foundation/serialize';
|
|
25
|
-
import {
|
|
26
|
-
ClaimedLengthArray,
|
|
27
|
-
PrivateCallRequest,
|
|
28
|
-
type PrivateCircuitPublicInputs,
|
|
29
|
-
SideEffectCounterRange,
|
|
30
|
-
SideEffectUniquenessHints,
|
|
31
|
-
} from '@aztec/stdlib/kernel';
|
|
32
|
-
|
|
33
|
-
export function computeSideEffectUniquenessHints(publicInputs: PrivateCircuitPublicInputs): SideEffectUniquenessHints {
|
|
34
|
-
let sideEffectRanges: SideEffectCounterRange[] = [];
|
|
35
|
-
|
|
36
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
37
|
-
createRangesFromClaimedLengthArray(
|
|
38
|
-
publicInputs.noteHashReadRequests,
|
|
39
|
-
GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET,
|
|
40
|
-
createRangeFromCountedItem,
|
|
41
|
-
),
|
|
42
|
-
);
|
|
43
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
44
|
-
createRangesFromClaimedLengthArray(
|
|
45
|
-
publicInputs.nullifierReadRequests,
|
|
46
|
-
GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET,
|
|
47
|
-
createRangeFromCountedItem,
|
|
48
|
-
),
|
|
49
|
-
);
|
|
50
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
51
|
-
createRangesFromClaimedLengthArray(
|
|
52
|
-
publicInputs.noteHashes,
|
|
53
|
-
GLOBAL_INDEX_NOTE_HASH_OFFSET,
|
|
54
|
-
createRangeFromCountedItem,
|
|
55
|
-
),
|
|
56
|
-
);
|
|
57
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
58
|
-
createRangesFromClaimedLengthArray(
|
|
59
|
-
publicInputs.nullifiers,
|
|
60
|
-
GLOBAL_INDEX_NULLIFIER_OFFSET,
|
|
61
|
-
createRangeFromCountedItem,
|
|
62
|
-
),
|
|
63
|
-
);
|
|
64
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
65
|
-
createRangesFromClaimedLengthArray(
|
|
66
|
-
publicInputs.privateCallRequests,
|
|
67
|
-
GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET,
|
|
68
|
-
createRangeFromPrivateCallRequest,
|
|
69
|
-
),
|
|
70
|
-
);
|
|
71
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
72
|
-
createRangesFromClaimedLengthArray(
|
|
73
|
-
publicInputs.publicCallRequests,
|
|
74
|
-
GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET,
|
|
75
|
-
createRangeFromCountedItem,
|
|
76
|
-
),
|
|
77
|
-
);
|
|
78
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
79
|
-
createRangesFromClaimedLengthArray(
|
|
80
|
-
publicInputs.l2ToL1Msgs,
|
|
81
|
-
GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET,
|
|
82
|
-
createRangeFromCountedItem,
|
|
83
|
-
),
|
|
84
|
-
);
|
|
85
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
86
|
-
createRangesFromClaimedLengthArray(
|
|
87
|
-
publicInputs.privateLogs,
|
|
88
|
-
GLOBAL_INDEX_PRIVATE_LOG_OFFSET,
|
|
89
|
-
createRangeFromCountedItem,
|
|
90
|
-
),
|
|
91
|
-
);
|
|
92
|
-
sideEffectRanges = sideEffectRanges.concat(
|
|
93
|
-
createRangesFromClaimedLengthArray(
|
|
94
|
-
publicInputs.contractClassLogsHashes,
|
|
95
|
-
GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET,
|
|
96
|
-
createRangeFromCountedItem,
|
|
97
|
-
),
|
|
98
|
-
);
|
|
99
|
-
|
|
100
|
-
sideEffectRanges.sort((a, b) => a.start - b.start);
|
|
101
|
-
|
|
102
|
-
const sideEffectRangeIndices = makeTuple(TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL, () => 0);
|
|
103
|
-
for (let i = 0; i < sideEffectRanges.length; i++) {
|
|
104
|
-
const range = sideEffectRanges[i];
|
|
105
|
-
sideEffectRangeIndices[range.sideEffectGlobalIndex] = i;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const hints = SideEffectUniquenessHints.from({
|
|
109
|
-
sideEffectRanges: padArrayEnd(
|
|
110
|
-
sideEffectRanges,
|
|
111
|
-
SideEffectCounterRange.empty(),
|
|
112
|
-
TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL,
|
|
113
|
-
),
|
|
114
|
-
noteHashReadRequestIndices: makeTuple(
|
|
115
|
-
MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,
|
|
116
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_NOTE_HASH_READ_REQUEST_OFFSET],
|
|
117
|
-
),
|
|
118
|
-
nullifierReadRequestIndices: makeTuple(
|
|
119
|
-
MAX_NULLIFIER_READ_REQUESTS_PER_CALL,
|
|
120
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_NULLIFIER_READ_REQUEST_OFFSET],
|
|
121
|
-
),
|
|
122
|
-
noteHashesIndices: makeTuple(
|
|
123
|
-
MAX_NOTE_HASHES_PER_CALL,
|
|
124
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_NOTE_HASH_OFFSET],
|
|
125
|
-
),
|
|
126
|
-
nullifiersIndices: makeTuple(
|
|
127
|
-
MAX_NULLIFIERS_PER_CALL,
|
|
128
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_NULLIFIER_OFFSET],
|
|
129
|
-
),
|
|
130
|
-
privateCallRequestsIndices: makeTuple(
|
|
131
|
-
MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,
|
|
132
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_PRIVATE_CALL_REQUEST_OFFSET],
|
|
133
|
-
),
|
|
134
|
-
publicCallRequestsIndices: makeTuple(
|
|
135
|
-
MAX_ENQUEUED_CALLS_PER_CALL,
|
|
136
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_PUBLIC_CALL_REQUEST_OFFSET],
|
|
137
|
-
),
|
|
138
|
-
l2ToL1MsgsIndices: makeTuple(
|
|
139
|
-
MAX_L2_TO_L1_MSGS_PER_CALL,
|
|
140
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_L2_TO_L1_MSG_OFFSET],
|
|
141
|
-
),
|
|
142
|
-
privateLogsIndices: makeTuple(
|
|
143
|
-
MAX_PRIVATE_LOGS_PER_CALL,
|
|
144
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_PRIVATE_LOG_OFFSET],
|
|
145
|
-
),
|
|
146
|
-
contractClassLogsHashesIndices: makeTuple(
|
|
147
|
-
MAX_CONTRACT_CLASS_LOGS_PER_CALL,
|
|
148
|
-
i => sideEffectRangeIndices[i + GLOBAL_INDEX_CONTRACT_CLASS_LOG_HASH_OFFSET],
|
|
149
|
-
),
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
return hints;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function createRangesFromClaimedLengthArray<T extends Serializable, N extends number>(
|
|
156
|
-
array: ClaimedLengthArray<T, N>,
|
|
157
|
-
globalIndexOffset: number,
|
|
158
|
-
rangeConstructor: (item: T, globalIndex: number) => SideEffectCounterRange,
|
|
159
|
-
): SideEffectCounterRange[] {
|
|
160
|
-
const ranges = [];
|
|
161
|
-
for (let i = 0; i < array.claimedLength; i++) {
|
|
162
|
-
ranges.push(rangeConstructor(array.array[i], globalIndexOffset + i));
|
|
163
|
-
}
|
|
164
|
-
return ranges;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
function createRangeFromCountedItem(item: { counter: number }, globalIndex: number): SideEffectCounterRange {
|
|
168
|
-
return new SideEffectCounterRange(item.counter, item.counter, globalIndex);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
function createRangeFromPrivateCallRequest(item: PrivateCallRequest, globalIndex: number): SideEffectCounterRange {
|
|
172
|
-
return new SideEffectCounterRange(item.startSideEffectCounter, item.endSideEffectCounter, globalIndex);
|
|
173
|
-
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { NOTE_HASH_TREE_HEIGHT, PUBLIC_DATA_TREE_HEIGHT, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
-
import type { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
|
|
3
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
-
import type { Tuple } from '@aztec/foundation/serialize';
|
|
5
|
-
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
6
|
-
import type { KeyStore } from '@aztec/key-store';
|
|
7
|
-
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
8
|
-
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
9
|
-
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
10
|
-
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
11
|
-
import type { L2BlockNumber } from '@aztec/stdlib/block';
|
|
12
|
-
import { computeContractClassIdPreimage, computeSaltedInitializationHash } from '@aztec/stdlib/contract';
|
|
13
|
-
import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
|
|
14
|
-
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
15
|
-
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
16
|
-
import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
|
|
17
|
-
import type { NullifierMembershipWitness } from '@aztec/stdlib/trees';
|
|
18
|
-
import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
|
|
19
|
-
|
|
20
|
-
import type { ContractDataProvider } from '../storage/index.js';
|
|
21
|
-
import type { PrivateKernelOracle } from './private_kernel_oracle.js';
|
|
22
|
-
|
|
23
|
-
// TODO: Block number should not be "latest".
|
|
24
|
-
// It should be fixed at the time the proof is being simulated. I.e., it should be the same as the value defined in the constant data.
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* A data oracle that provides information needed for simulating a transaction.
|
|
28
|
-
*/
|
|
29
|
-
export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
30
|
-
constructor(
|
|
31
|
-
private contractDataProvider: ContractDataProvider,
|
|
32
|
-
private keyStore: KeyStore,
|
|
33
|
-
private node: AztecNode,
|
|
34
|
-
private blockNumber: L2BlockNumber = 'latest',
|
|
35
|
-
private log = createLogger('pxe:kernel_oracle'),
|
|
36
|
-
) {}
|
|
37
|
-
|
|
38
|
-
public async getContractAddressPreimage(address: AztecAddress) {
|
|
39
|
-
const instance = await this.contractDataProvider.getContractInstance(address);
|
|
40
|
-
if (!instance) {
|
|
41
|
-
throw new Error(`Contract instance not found when getting address preimage. Contract address: ${address}.`);
|
|
42
|
-
}
|
|
43
|
-
return {
|
|
44
|
-
saltedInitializationHash: await computeSaltedInitializationHash(instance),
|
|
45
|
-
...instance,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public async getContractClassIdPreimage(contractClassId: Fr) {
|
|
50
|
-
const contractClass = await this.contractDataProvider.getContractClass(contractClassId);
|
|
51
|
-
if (!contractClass) {
|
|
52
|
-
throw new Error(`Contract class not found when getting class id preimage. Class id: ${contractClassId}.`);
|
|
53
|
-
}
|
|
54
|
-
return computeContractClassIdPreimage(contractClass);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
public async getFunctionMembershipWitness(contractClassId: Fr, selector: FunctionSelector) {
|
|
58
|
-
const membershipWitness = await this.contractDataProvider.getFunctionMembershipWitness(contractClassId, selector);
|
|
59
|
-
if (!membershipWitness) {
|
|
60
|
-
throw new Error(
|
|
61
|
-
`Membership witness not found for contract class id ${contractClassId} and selector ${selector}.`,
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
return membershipWitness;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
public getVkMembershipWitness(vk: VerificationKeyAsFields) {
|
|
68
|
-
const leafIndex = getVKIndex(vk);
|
|
69
|
-
return Promise.resolve(new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
async getNoteHashMembershipWitness(leafIndex: bigint): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>> {
|
|
73
|
-
const path = await this.node.getNoteHashSiblingPath(this.blockNumber, leafIndex);
|
|
74
|
-
return new MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>(
|
|
75
|
-
path.pathSize,
|
|
76
|
-
leafIndex,
|
|
77
|
-
path.toFields() as Tuple<Fr, typeof NOTE_HASH_TREE_HEIGHT>,
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitness | undefined> {
|
|
82
|
-
return this.node.getNullifierMembershipWitness(this.blockNumber, nullifier);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
async getNoteHashTreeRoot(): Promise<Fr> {
|
|
86
|
-
const header = await this.node.getBlockHeader(this.blockNumber);
|
|
87
|
-
if (!header) {
|
|
88
|
-
throw new Error(`No block header found for block number ${this.blockNumber}`);
|
|
89
|
-
}
|
|
90
|
-
return header.state.partial.noteHashTree.root;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
public getMasterSecretKey(masterPublicKey: Point): Promise<GrumpkinScalar> {
|
|
94
|
-
return this.keyStore.getMasterSecretKey(masterPublicKey);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
public getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string> {
|
|
98
|
-
return this.contractDataProvider.getDebugFunctionName(contractAddress, selector);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
public async getUpdatedClassIdHints(contractAddress: AztecAddress): Promise<UpdatedClassIdHints> {
|
|
102
|
-
const { delayedPublicMutableSlot, delayedPublicMutableHashSlot } =
|
|
103
|
-
await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
104
|
-
|
|
105
|
-
const hashLeafSlot = await computePublicDataTreeLeafSlot(
|
|
106
|
-
ProtocolContractAddress.ContractInstanceRegistry,
|
|
107
|
-
delayedPublicMutableHashSlot,
|
|
108
|
-
);
|
|
109
|
-
const updatedClassIdWitness = await this.node.getPublicDataWitness(this.blockNumber, hashLeafSlot);
|
|
110
|
-
|
|
111
|
-
if (!updatedClassIdWitness) {
|
|
112
|
-
throw new Error(`No public data tree witness found for ${hashLeafSlot}`);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const readStorage = (storageSlot: Fr) =>
|
|
116
|
-
this.node.getPublicStorageAt(this.blockNumber, ProtocolContractAddress.ContractInstanceRegistry, storageSlot);
|
|
117
|
-
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(
|
|
118
|
-
delayedPublicMutableSlot,
|
|
119
|
-
readStorage,
|
|
120
|
-
);
|
|
121
|
-
|
|
122
|
-
return new UpdatedClassIdHints(
|
|
123
|
-
new MembershipWitness(
|
|
124
|
-
PUBLIC_DATA_TREE_HEIGHT,
|
|
125
|
-
updatedClassIdWitness.index,
|
|
126
|
-
updatedClassIdWitness.siblingPath.toTuple(),
|
|
127
|
-
),
|
|
128
|
-
updatedClassIdWitness.leafPreimage,
|
|
129
|
-
delayedPublicMutableValues,
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { AddressDataProvider } from './address_data_provider.js';
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import type { AztecAsyncKVStore, AztecAsyncMap } from '@aztec/kv-store';
|
|
4
|
-
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
-
|
|
6
|
-
export class CapsuleDataProvider {
|
|
7
|
-
#store: AztecAsyncKVStore;
|
|
8
|
-
|
|
9
|
-
// Arbitrary data stored by contracts. Key is computed as `${contractAddress}:${key}`
|
|
10
|
-
#capsules: AztecAsyncMap<string, Buffer>;
|
|
11
|
-
|
|
12
|
-
logger: Logger;
|
|
13
|
-
|
|
14
|
-
constructor(store: AztecAsyncKVStore) {
|
|
15
|
-
this.#store = store;
|
|
16
|
-
|
|
17
|
-
this.#capsules = this.#store.openMap('capsules');
|
|
18
|
-
|
|
19
|
-
this.logger = createLogger('pxe:capsule-data-provider');
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
async storeCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void> {
|
|
23
|
-
await this.#capsules.set(dbSlotToKey(contractAddress, slot), Buffer.concat(capsule.map(value => value.toBuffer())));
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
async loadCapsule(contractAddress: AztecAddress, slot: Fr): Promise<Fr[] | null> {
|
|
27
|
-
const dataBuffer = await this.#capsules.getAsync(dbSlotToKey(contractAddress, slot));
|
|
28
|
-
if (!dataBuffer) {
|
|
29
|
-
this.logger.trace(`Data not found for contract ${contractAddress.toString()} and slot ${slot.toString()}`);
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
const capsule: Fr[] = [];
|
|
33
|
-
for (let i = 0; i < dataBuffer.length; i += Fr.SIZE_IN_BYTES) {
|
|
34
|
-
capsule.push(Fr.fromBuffer(dataBuffer.subarray(i, i + Fr.SIZE_IN_BYTES)));
|
|
35
|
-
}
|
|
36
|
-
return capsule;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
async deleteCapsule(contractAddress: AztecAddress, slot: Fr): Promise<void> {
|
|
40
|
-
await this.#capsules.delete(dbSlotToKey(contractAddress, slot));
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void> {
|
|
44
|
-
return this.#store.transactionAsync(async () => {
|
|
45
|
-
// In order to support overlapping source and destination regions, we need to check the relative positions of source
|
|
46
|
-
// and destination. If destination is ahead of source, then by the time we overwrite source elements using forward
|
|
47
|
-
// indexes we'll have already read those. On the contrary, if source is ahead of destination we need to use backward
|
|
48
|
-
// indexes to avoid reading elements that've been overwritten.
|
|
49
|
-
|
|
50
|
-
const indexes = Array.from(Array(numEntries).keys());
|
|
51
|
-
if (srcSlot.lt(dstSlot)) {
|
|
52
|
-
indexes.reverse();
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
for (const i of indexes) {
|
|
56
|
-
const currentSrcSlot = dbSlotToKey(contractAddress, srcSlot.add(new Fr(i)));
|
|
57
|
-
const currentDstSlot = dbSlotToKey(contractAddress, dstSlot.add(new Fr(i)));
|
|
58
|
-
|
|
59
|
-
const toCopy = await this.#capsules.getAsync(currentSrcSlot);
|
|
60
|
-
if (!toCopy) {
|
|
61
|
-
throw new Error(`Attempted to copy empty slot ${currentSrcSlot} for contract ${contractAddress.toString()}`);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
await this.#capsules.set(currentDstSlot, toCopy);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Appends multiple capsules to a capsule array stored at the base slot.
|
|
71
|
-
* The array length is stored at the base slot, and elements are stored in consecutive slots after it.
|
|
72
|
-
* All operations are performed in a single transaction.
|
|
73
|
-
* @param contractAddress - The contract address that owns the capsule array
|
|
74
|
-
* @param baseSlot - The slot where the array length is stored
|
|
75
|
-
* @param content - Array of capsule data to append
|
|
76
|
-
*/
|
|
77
|
-
appendToCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][]): Promise<void> {
|
|
78
|
-
return this.#store.transactionAsync(async () => {
|
|
79
|
-
// Load current length, defaulting to 0 if not found
|
|
80
|
-
const lengthData = await this.loadCapsule(contractAddress, baseSlot);
|
|
81
|
-
const currentLength = lengthData ? lengthData[0].toNumber() : 0;
|
|
82
|
-
|
|
83
|
-
// Store each capsule at consecutive slots after baseSlot + 1 + currentLength
|
|
84
|
-
for (let i = 0; i < content.length; i++) {
|
|
85
|
-
const nextSlot = arraySlot(baseSlot, currentLength + i);
|
|
86
|
-
await this.storeCapsule(contractAddress, nextSlot, content[i]);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Update length to include all new capsules
|
|
90
|
-
const newLength = currentLength + content.length;
|
|
91
|
-
await this.storeCapsule(contractAddress, baseSlot, [new Fr(newLength)]);
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
readCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr): Promise<Fr[][]> {
|
|
96
|
-
return this.#store.transactionAsync(async () => {
|
|
97
|
-
// Load length, defaulting to 0 if not found
|
|
98
|
-
const maybeLength = await this.loadCapsule(contractAddress, baseSlot);
|
|
99
|
-
const length = maybeLength ? maybeLength[0].toBigInt() : 0n;
|
|
100
|
-
|
|
101
|
-
const values: Fr[][] = [];
|
|
102
|
-
|
|
103
|
-
// Read each capsule at consecutive slots after baseSlot
|
|
104
|
-
for (let i = 0; i < length; i++) {
|
|
105
|
-
const currentValue = await this.loadCapsule(contractAddress, arraySlot(baseSlot, i));
|
|
106
|
-
if (currentValue == undefined) {
|
|
107
|
-
throw new Error(
|
|
108
|
-
`Expected non-empty value at capsule array in base slot ${baseSlot} at index ${i} for contract ${contractAddress}`,
|
|
109
|
-
);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
values.push(currentValue);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return values;
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
setCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][]) {
|
|
120
|
-
return this.#store.transactionAsync(async () => {
|
|
121
|
-
// Load current length, defaulting to 0 if not found
|
|
122
|
-
const maybeLength = await this.loadCapsule(contractAddress, baseSlot);
|
|
123
|
-
const originalLength = maybeLength ? maybeLength[0].toNumber() : 0;
|
|
124
|
-
|
|
125
|
-
// Set the new length
|
|
126
|
-
await this.storeCapsule(contractAddress, baseSlot, [new Fr(content.length)]);
|
|
127
|
-
|
|
128
|
-
// Store the new content, possibly overwriting existing values
|
|
129
|
-
for (let i = 0; i < content.length; i++) {
|
|
130
|
-
await this.storeCapsule(contractAddress, arraySlot(baseSlot, i), content[i]);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Clear any stragglers
|
|
134
|
-
for (let i = content.length; i < originalLength; i++) {
|
|
135
|
-
await this.deleteCapsule(contractAddress, arraySlot(baseSlot, i));
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function dbSlotToKey(contractAddress: AztecAddress, slot: Fr): string {
|
|
142
|
-
return `${contractAddress.toString()}:${slot.toString()}`;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function arraySlot(baseSlot: Fr, index: number) {
|
|
146
|
-
return baseSlot.add(new Fr(1)).add(new Fr(index));
|
|
147
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { CapsuleDataProvider } from './capsule_data_provider.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { ContractDataProvider } from './contract_data_provider.js';
|