@aztec/pxe 4.0.0-nightly.20250907 → 4.0.0-nightly.20260108
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/README.md +5 -5
- package/dest/bin/check_oracle_version.d.ts +1 -1
- package/dest/bin/check_oracle_version.js +110 -10
- package/dest/block_synchronizer/block_synchronizer.d.ts +39 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/{synchronizer/synchronizer.js → block_synchronizer/block_synchronizer.js} +23 -23
- 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 +9 -17
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +10 -16
- package/dest/config/package_info.d.ts +1 -1
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +44 -15
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +142 -57
- package/dest/contract_function_simulator/execution_note_cache.d.ts +11 -9
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +28 -17
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
- 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 +4 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +2 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +2 -2
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- 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 +3 -3
- 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 +8 -4
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -3
- 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 +12 -3
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +22 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
- package/dest/contract_function_simulator/oracle/index.d.ts +2 -2
- package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/index.js +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +103 -0
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -4
- 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 +10 -4
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +10 -5
- package/dest/contract_function_simulator/oracle/oracle.d.ts +17 -15
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +101 -81
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +11 -12
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +15 -24
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +51 -25
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +103 -27
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +65 -36
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +171 -69
- 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_function_simulator/proxied_node.d.ts +1 -1
- package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.d.ts +31 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +37 -0
- package/dest/entrypoints/client/bundle/index.d.ts +4 -3
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +2 -2
- package/dest/entrypoints/client/bundle/utils.d.ts +9 -9
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +21 -12
- package/dest/entrypoints/client/lazy/index.d.ts +4 -3
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts +8 -8
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +20 -11
- package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +5 -3
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +3 -2
- package/dest/entrypoints/server/utils.d.ts +5 -24
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +17 -45
- package/dest/error_enriching.d.ts +11 -0
- package/dest/error_enriching.d.ts.map +1 -0
- package/dest/{pxe_service/error_enriching.js → error_enriching.js} +9 -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 +47 -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 +39 -0
- package/dest/logs/log_service.d.ts +26 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +120 -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 +152 -0
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.js +2 -2
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +3 -3
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +7 -7
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +1 -1
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +6 -6
- package/dest/private_kernel/hints/index.d.ts +1 -1
- package/dest/private_kernel/index.d.ts +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +9 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +38 -32
- package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +10 -9
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +7 -7
- package/dest/public_storage/public_storage_service.d.ts +24 -0
- package/dest/public_storage/public_storage_service.d.ts.map +1 -0
- package/dest/public_storage/public_storage_service.js +26 -0
- package/dest/pxe.d.ts +232 -0
- package/dest/pxe.d.ts.map +1 -0
- package/dest/{pxe_service/pxe_service.js → pxe.js} +299 -324
- 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} +1 -4
- 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 +9 -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} +2 -12
- package/dest/storage/anchor_block_store/index.d.ts +2 -0
- 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 +57 -0
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +34 -10
- 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} +10 -18
- 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} +46 -18
- 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 -9
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -8
- package/dest/storage/metadata.d.ts +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 +84 -0
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +144 -82
- package/dest/storage/private_event_store/private_event_store.d.ts +56 -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 +157 -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 +21 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +42 -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 +30 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +67 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +196 -0
- package/dest/tagging/index.d.ts +16 -0
- package/dest/tagging/index.d.ts.map +1 -0
- package/dest/tagging/index.js +23 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -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 +14 -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 +29 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -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 +32 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -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 +55 -0
- package/dest/tree_membership/tree_membership_service.d.ts +52 -0
- package/dest/tree_membership/tree_membership_service.d.ts.map +1 -0
- package/dest/tree_membership/tree_membership_service.js +84 -0
- package/package.json +22 -24
- package/src/bin/check_oracle_version.ts +134 -10
- package/src/{synchronizer/synchronizer.ts → block_synchronizer/block_synchronizer.ts} +22 -23
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +18 -32
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/contract_function_simulator.ts +233 -75
- package/src/contract_function_simulator/execution_note_cache.ts +33 -17
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
- package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
- package/src/contract_function_simulator/index.ts +3 -1
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +10 -5
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +14 -2
- package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
- package/src/contract_function_simulator/oracle/index.ts +1 -1
- package/src/contract_function_simulator/oracle/interfaces.ts +175 -0
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +21 -5
- package/src/contract_function_simulator/oracle/oracle.ts +135 -80
- package/src/contract_function_simulator/oracle/private_execution.ts +22 -28
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +200 -56
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +260 -109
- package/src/contract_function_simulator/pick_notes.ts +1 -1
- package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
- package/src/debug/pxe_debug_utils.ts +48 -0
- package/src/entrypoints/client/bundle/index.ts +3 -2
- package/src/entrypoints/client/bundle/utils.ts +21 -23
- package/src/entrypoints/client/lazy/index.ts +3 -2
- package/src/entrypoints/client/lazy/utils.ts +20 -23
- package/src/entrypoints/pxe_creation_options.ts +4 -1
- package/src/entrypoints/server/index.ts +4 -2
- package/src/entrypoints/server/utils.ts +20 -68
- package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +11 -15
- package/src/events/event_service.ts +77 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +48 -0
- package/src/logs/log_service.ts +202 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +200 -0
- package/src/oracle_version.ts +2 -2
- package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +5 -9
- package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +6 -6
- package/src/private_kernel/private_kernel_execution_prover.ts +51 -43
- package/src/private_kernel/private_kernel_oracle.ts +2 -1
- package/src/private_kernel/private_kernel_oracle_impl.ts +10 -9
- package/src/public_storage/public_storage_service.ts +33 -0
- package/src/{pxe_service/pxe_service.ts → pxe.ts} +349 -410
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -7
- 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} +2 -17
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/{capsule_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +34 -12
- 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 -28
- 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 -8
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +173 -111
- package/src/storage/private_event_store/private_event_store.ts +213 -0
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +53 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +244 -0
- package/src/tagging/index.ts +28 -0
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +129 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +43 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +96 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +44 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +72 -0
- package/src/tree_membership/tree_membership_service.ts +112 -0
- package/dest/bin/index.d.ts +0 -3
- package/dest/bin/index.d.ts.map +0 -1
- package/dest/bin/index.js +0 -48
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -285
- 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/oracle/typed_oracle.d.ts +0 -87
- package/dest/contract_function_simulator/oracle/typed_oracle.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/typed_oracle.js +0 -146
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -158
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
- package/dest/contract_function_simulator/tagging_utils.d.ts +0 -17
- package/dest/contract_function_simulator/tagging_utils.d.ts.map +0 -1
- package/dest/contract_function_simulator/tagging_utils.js +0 -23
- package/dest/pxe_service/error_enriching.d.ts +0 -11
- package/dest/pxe_service/error_enriching.d.ts.map +0 -1
- package/dest/pxe_service/index.d.ts +0 -3
- package/dest/pxe_service/index.d.ts.map +0 -1
- package/dest/pxe_service/index.js +0 -2
- package/dest/pxe_service/pxe_service.d.ts +0 -100
- package/dest/pxe_service/pxe_service.d.ts.map +0 -1
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -13
- 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 -27
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
- 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/data_provider.d.ts +0 -4
- package/dest/storage/data_provider.d.ts.map +0 -1
- package/dest/storage/data_provider.js +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_dao.d.ts +0 -100
- package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
- package/dest/storage/note_data_provider/note_dao.js +0 -102
- package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -20
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
- 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 -96
- package/dest/storage/sync_data_provider/index.d.ts +0 -2
- 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 -12
- 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 -18
- 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 -82
- 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/test/pxe_test_suite.d.ts +0 -3
- package/dest/test/pxe_test_suite.d.ts.map +0 -1
- package/dest/test/pxe_test_suite.js +0 -97
- package/src/bin/index.ts +0 -62
- package/src/contract_function_simulator/execution_data_provider.ts +0 -361
- package/src/contract_function_simulator/oracle/typed_oracle.ts +0 -289
- package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1020
- package/src/contract_function_simulator/tagging_utils.ts +0 -32
- package/src/pxe_service/index.ts +0 -2
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/index.ts +0 -1
- package/src/storage/data_provider.ts +0 -3
- package/src/storage/note_data_provider/index.ts +0 -2
- package/src/storage/note_data_provider/note_dao.ts +0 -154
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -134
- 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 -123
- package/src/synchronizer/index.ts +0 -1
- package/src/test/pxe_test_suite.ts +0 -113
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { vkAsFieldsMegaHonk } from '@aztec/foundation/crypto';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { vkAsFieldsMegaHonk } from '@aztec/foundation/crypto/keys';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { pushTestData } from '@aztec/foundation/testing';
|
|
5
5
|
import { Timer } from '@aztec/foundation/timer';
|
|
6
6
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
7
|
-
import {
|
|
7
|
+
import { ProtocolContractsList } from '@aztec/protocol-contracts';
|
|
8
8
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
-
import { computeContractAddressFromInstance } from '@aztec/stdlib/contract';
|
|
10
9
|
import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
11
10
|
import {
|
|
12
11
|
HidingKernelToPublicPrivateInputs,
|
|
@@ -24,7 +23,7 @@ import {
|
|
|
24
23
|
type PrivateKernelTailCircuitPublicInputs,
|
|
25
24
|
PrivateVerificationKeyHints,
|
|
26
25
|
} from '@aztec/stdlib/kernel';
|
|
27
|
-
import {
|
|
26
|
+
import { ChonkProof, ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
|
|
28
27
|
import {
|
|
29
28
|
type PrivateCallExecutionResult,
|
|
30
29
|
type PrivateExecutionResult,
|
|
@@ -54,7 +53,7 @@ export interface PrivateKernelExecutionProverConfig {
|
|
|
54
53
|
/**
|
|
55
54
|
* The PrivateKernelExecutionProver class is responsible for taking a transaction request and sequencing the
|
|
56
55
|
* the execution of the private functions within, sequenced with private kernel "glue" to check protocol rules.
|
|
57
|
-
* The result can be a
|
|
56
|
+
* The result can be a chonk proof of the private transaction portion, or just a simulation that can e.g.
|
|
58
57
|
* inform state tree updates.
|
|
59
58
|
*/
|
|
60
59
|
export class PrivateKernelExecutionProver {
|
|
@@ -104,9 +103,8 @@ export class PrivateKernelExecutionProver {
|
|
|
104
103
|
|
|
105
104
|
const noteHashLeafIndexMap = collectNoteHashLeafIndexMap(executionResult);
|
|
106
105
|
const noteHashNullifierCounterMap = collectNoteHashNullifierCounterMap(executionResult);
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
: getFinalMinRevertibleSideEffectCounter(executionResult);
|
|
106
|
+
const minRevertibleSideEffectCounter = getFinalMinRevertibleSideEffectCounter(executionResult);
|
|
107
|
+
const splitCounter = isPrivateOnlyTx ? 0 : minRevertibleSideEffectCounter;
|
|
110
108
|
|
|
111
109
|
while (executionStack.length) {
|
|
112
110
|
if (!firstIteration) {
|
|
@@ -114,7 +112,7 @@ export class PrivateKernelExecutionProver {
|
|
|
114
112
|
output,
|
|
115
113
|
executionStack,
|
|
116
114
|
noteHashNullifierCounterMap,
|
|
117
|
-
|
|
115
|
+
splitCounter,
|
|
118
116
|
);
|
|
119
117
|
while (resetBuilder.needsReset()) {
|
|
120
118
|
const witgenTimer = new Timer();
|
|
@@ -135,7 +133,7 @@ export class PrivateKernelExecutionProver {
|
|
|
135
133
|
output,
|
|
136
134
|
executionStack,
|
|
137
135
|
noteHashNullifierCounterMap,
|
|
138
|
-
|
|
136
|
+
splitCounter,
|
|
139
137
|
);
|
|
140
138
|
}
|
|
141
139
|
}
|
|
@@ -168,10 +166,11 @@ export class PrivateKernelExecutionProver {
|
|
|
168
166
|
const proofInput = new PrivateKernelInitCircuitPrivateInputs(
|
|
169
167
|
txRequest,
|
|
170
168
|
getVKTreeRoot(),
|
|
171
|
-
|
|
169
|
+
ProtocolContractsList,
|
|
172
170
|
privateCallData,
|
|
173
171
|
isPrivateOnlyTx,
|
|
174
172
|
executionResult.firstNullifier,
|
|
173
|
+
minRevertibleSideEffectCounter,
|
|
175
174
|
);
|
|
176
175
|
this.log.debug(
|
|
177
176
|
`Calling private kernel init with isPrivateOnly ${isPrivateOnlyTx} and firstNullifierHint ${proofInput.firstNullifierHint}`,
|
|
@@ -221,7 +220,7 @@ export class PrivateKernelExecutionProver {
|
|
|
221
220
|
output,
|
|
222
221
|
[],
|
|
223
222
|
noteHashNullifierCounterMap,
|
|
224
|
-
|
|
223
|
+
splitCounter,
|
|
225
224
|
);
|
|
226
225
|
while (resetBuilder.needsReset()) {
|
|
227
226
|
const witgenTimer = new Timer();
|
|
@@ -240,12 +239,7 @@ export class PrivateKernelExecutionProver {
|
|
|
240
239
|
},
|
|
241
240
|
});
|
|
242
241
|
|
|
243
|
-
resetBuilder = new PrivateKernelResetPrivateInputsBuilder(
|
|
244
|
-
output,
|
|
245
|
-
[],
|
|
246
|
-
noteHashNullifierCounterMap,
|
|
247
|
-
validationRequestsSplitCounter,
|
|
248
|
-
);
|
|
242
|
+
resetBuilder = new PrivateKernelResetPrivateInputsBuilder(output, [], noteHashNullifierCounterMap, splitCounter);
|
|
249
243
|
}
|
|
250
244
|
|
|
251
245
|
if (output.publicInputs.feePayer.isZero() && skipFeeEnforcement) {
|
|
@@ -268,10 +262,10 @@ export class PrivateKernelExecutionProver {
|
|
|
268
262
|
// Use the aggregated includeByTimestamp set throughout the tx execution.
|
|
269
263
|
// TODO: Call `computeTxIncludeByTimestamp` to round the value down and reduce precision, improving privacy.
|
|
270
264
|
const includeByTimestampUpperBound = previousKernelData.publicInputs.includeByTimestamp;
|
|
271
|
-
const
|
|
272
|
-
if (includeByTimestampUpperBound <=
|
|
265
|
+
const anchorBlockTimestamp = previousKernelData.publicInputs.constants.anchorBlockHeader.globalVariables.timestamp;
|
|
266
|
+
if (includeByTimestampUpperBound <= anchorBlockTimestamp) {
|
|
273
267
|
throw new Error(
|
|
274
|
-
`Include-by timestamp must be greater than the
|
|
268
|
+
`Include-by timestamp must be greater than the anchor block timestamp. Anchor block timestamp: ${anchorBlockTimestamp}. Include-by timestamp: ${includeByTimestampUpperBound}.`,
|
|
275
269
|
);
|
|
276
270
|
}
|
|
277
271
|
|
|
@@ -281,8 +275,6 @@ export class PrivateKernelExecutionProver {
|
|
|
281
275
|
includeByTimestampUpperBound,
|
|
282
276
|
);
|
|
283
277
|
|
|
284
|
-
pushTestData('private-kernel-inputs-ordering', privateInputs);
|
|
285
|
-
|
|
286
278
|
const witgenTimer = new Timer();
|
|
287
279
|
const tailOutput = generateWitnesses
|
|
288
280
|
? await this.proofCreator.generateTailOutput(privateInputs)
|
|
@@ -298,8 +290,8 @@ export class PrivateKernelExecutionProver {
|
|
|
298
290
|
},
|
|
299
291
|
});
|
|
300
292
|
|
|
301
|
-
// Hiding
|
|
302
|
-
// For simulation, we can end with the tail, since the
|
|
293
|
+
// Hiding kernel is only executed if we are generating witnesses.
|
|
294
|
+
// For simulation, we can end with the tail, since the Hiding kernel will simply return the same tail output.
|
|
303
295
|
if (generateWitnesses) {
|
|
304
296
|
const previousKernelVkData = await this.getVkData(tailOutput.verificationKey);
|
|
305
297
|
|
|
@@ -350,25 +342,53 @@ export class PrivateKernelExecutionProver {
|
|
|
350
342
|
this.log.info(`Private kernel witness generation took ${timer.ms()}ms`);
|
|
351
343
|
}
|
|
352
344
|
|
|
353
|
-
let
|
|
345
|
+
let chonkProof: ChonkProof;
|
|
354
346
|
// TODO(#7368) how do we 'bincode' encode these inputs?
|
|
355
347
|
let provingTime;
|
|
356
348
|
if (!skipProofGeneration) {
|
|
357
349
|
const provingTimer = new Timer();
|
|
358
|
-
|
|
350
|
+
const proofWithPublicInputs = await this.proofCreator.createChonkProof(executionSteps);
|
|
359
351
|
provingTime = provingTimer.ms();
|
|
352
|
+
this.ensurePublicInputsMatch(proofWithPublicInputs, tailOutput.publicInputs);
|
|
353
|
+
chonkProof = proofWithPublicInputs.removePublicInputs();
|
|
360
354
|
} else {
|
|
361
|
-
|
|
355
|
+
chonkProof = ChonkProof.random();
|
|
362
356
|
}
|
|
363
357
|
|
|
364
358
|
return {
|
|
365
359
|
publicInputs: tailOutput.publicInputs,
|
|
366
360
|
executionSteps,
|
|
367
|
-
|
|
361
|
+
chonkProof,
|
|
368
362
|
timings: provingTime ? { proving: provingTime } : undefined,
|
|
369
363
|
};
|
|
370
364
|
}
|
|
371
365
|
|
|
366
|
+
/**
|
|
367
|
+
* Checks that the public inputs of the chonk proof match the public inputs of the tail circuit.
|
|
368
|
+
* This can only mismatch if there is a circuit / noir / bb bug.
|
|
369
|
+
* @param chonkProof - The chonk proof with public inputs.
|
|
370
|
+
* @param tailPublicInputs - The public inputs resulting from witness generation of the tail circuit.
|
|
371
|
+
*/
|
|
372
|
+
private ensurePublicInputsMatch(
|
|
373
|
+
chonkProof: ChonkProofWithPublicInputs,
|
|
374
|
+
tailPublicInputs: PrivateKernelTailCircuitPublicInputs,
|
|
375
|
+
) {
|
|
376
|
+
const serializedChonkProofPublicInputs = chonkProof.getPublicInputs();
|
|
377
|
+
const serializedTailPublicInputs = tailPublicInputs.publicInputs().toFields();
|
|
378
|
+
if (serializedChonkProofPublicInputs.length !== serializedTailPublicInputs.length) {
|
|
379
|
+
throw new Error(
|
|
380
|
+
`Public inputs length mismatch: ${serializedChonkProofPublicInputs.length} !== ${serializedTailPublicInputs.length}`,
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
if (
|
|
384
|
+
!serializedChonkProofPublicInputs.every((input: Fr, index: number) =>
|
|
385
|
+
input.equals(serializedTailPublicInputs[index]),
|
|
386
|
+
)
|
|
387
|
+
) {
|
|
388
|
+
throw new Error(`Public inputs mismatch between kernel and chonk proof`);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
372
392
|
private async getVkData(verificationKey: VerificationKeyData) {
|
|
373
393
|
const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(verificationKey.keyAsFields);
|
|
374
394
|
return new VkData(
|
|
@@ -394,18 +414,8 @@ export class PrivateKernelExecutionProver {
|
|
|
394
414
|
const { artifactHash: contractClassArtifactHash, publicBytecodeCommitment: contractClassPublicBytecodeCommitment } =
|
|
395
415
|
await this.oracle.getContractClassIdPreimage(currentContractClassId);
|
|
396
416
|
|
|
397
|
-
// This will be the address computed in the kernel by the executed class. We need to provide non membership of it in the protocol contract tree.
|
|
398
|
-
// This would only be equal to contractAddress if the currentClassId is equal to the original class id (no update happened).
|
|
399
|
-
const computedAddress = await computeContractAddressFromInstance({
|
|
400
|
-
originalContractClassId: currentContractClassId,
|
|
401
|
-
saltedInitializationHash,
|
|
402
|
-
publicKeys,
|
|
403
|
-
});
|
|
404
|
-
|
|
405
|
-
const { lowLeaf: protocolContractLeaf, witness: protocolContractMembershipWitness } =
|
|
406
|
-
await getProtocolContractLeafAndMembershipWitness(contractAddress, computedAddress);
|
|
407
|
-
|
|
408
417
|
const updatedClassIdHints = await this.oracle.getUpdatedClassIdHints(contractAddress);
|
|
418
|
+
|
|
409
419
|
return PrivateCallData.from({
|
|
410
420
|
publicInputs,
|
|
411
421
|
vk,
|
|
@@ -415,8 +425,6 @@ export class PrivateKernelExecutionProver {
|
|
|
415
425
|
contractClassPublicBytecodeCommitment,
|
|
416
426
|
saltedInitializationHash,
|
|
417
427
|
functionLeafMembershipWitness,
|
|
418
|
-
protocolContractMembershipWitness,
|
|
419
|
-
protocolContractLeaf,
|
|
420
428
|
updatedClassIdHints,
|
|
421
429
|
}),
|
|
422
430
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FUNCTION_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
-
import type { Fr
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import type { GrumpkinScalar, Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
4
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
4
5
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
5
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NOTE_HASH_TREE_HEIGHT, PUBLIC_DATA_TREE_HEIGHT, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
-
import type { Fr
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import type { GrumpkinScalar, Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
5
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
5
6
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
@@ -8,7 +9,7 @@ import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-type
|
|
|
8
9
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
9
10
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
10
11
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
11
|
-
import type {
|
|
12
|
+
import type { BlockParameter } from '@aztec/stdlib/block';
|
|
12
13
|
import { computeContractClassIdPreimage, computeSaltedInitializationHash } from '@aztec/stdlib/contract';
|
|
13
14
|
import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
|
|
14
15
|
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
@@ -17,7 +18,7 @@ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
|
|
|
17
18
|
import type { NullifierMembershipWitness } from '@aztec/stdlib/trees';
|
|
18
19
|
import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
|
|
19
20
|
|
|
20
|
-
import type {
|
|
21
|
+
import type { ContractStore } from '../storage/contract_store/contract_store.js';
|
|
21
22
|
import type { PrivateKernelOracle } from './private_kernel_oracle.js';
|
|
22
23
|
|
|
23
24
|
// TODO: Block number should not be "latest".
|
|
@@ -28,15 +29,15 @@ import type { PrivateKernelOracle } from './private_kernel_oracle.js';
|
|
|
28
29
|
*/
|
|
29
30
|
export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
30
31
|
constructor(
|
|
31
|
-
private
|
|
32
|
+
private contractStore: ContractStore,
|
|
32
33
|
private keyStore: KeyStore,
|
|
33
34
|
private node: AztecNode,
|
|
34
|
-
private blockNumber:
|
|
35
|
+
private blockNumber: BlockParameter = 'latest',
|
|
35
36
|
private log = createLogger('pxe:kernel_oracle'),
|
|
36
37
|
) {}
|
|
37
38
|
|
|
38
39
|
public async getContractAddressPreimage(address: AztecAddress) {
|
|
39
|
-
const instance = await this.
|
|
40
|
+
const instance = await this.contractStore.getContractInstance(address);
|
|
40
41
|
if (!instance) {
|
|
41
42
|
throw new Error(`Contract instance not found when getting address preimage. Contract address: ${address}.`);
|
|
42
43
|
}
|
|
@@ -47,7 +48,7 @@ export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
public async getContractClassIdPreimage(contractClassId: Fr) {
|
|
50
|
-
const contractClass = await this.
|
|
51
|
+
const contractClass = await this.contractStore.getContractClass(contractClassId);
|
|
51
52
|
if (!contractClass) {
|
|
52
53
|
throw new Error(`Contract class not found when getting class id preimage. Class id: ${contractClassId}.`);
|
|
53
54
|
}
|
|
@@ -55,7 +56,7 @@ export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
public async getFunctionMembershipWitness(contractClassId: Fr, selector: FunctionSelector) {
|
|
58
|
-
const membershipWitness = await this.
|
|
59
|
+
const membershipWitness = await this.contractStore.getFunctionMembershipWitness(contractClassId, selector);
|
|
59
60
|
if (!membershipWitness) {
|
|
60
61
|
throw new Error(
|
|
61
62
|
`Membership witness not found for contract class id ${contractClassId} and selector ${selector}.`,
|
|
@@ -95,7 +96,7 @@ export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
public getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string> {
|
|
98
|
-
return this.
|
|
99
|
+
return this.contractStore.getDebugFunctionName(contractAddress, selector);
|
|
99
100
|
}
|
|
100
101
|
|
|
101
102
|
public async getUpdatedClassIdHints(contractAddress: AztecAddress): Promise<UpdatedClassIdHints> {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
import type { BlockParameter } from '@aztec/stdlib/block';
|
|
4
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/server';
|
|
5
|
+
|
|
6
|
+
import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
|
|
7
|
+
|
|
8
|
+
export class PublicStorageService {
|
|
9
|
+
constructor(
|
|
10
|
+
private readonly anchorBlockStore: AnchorBlockStore,
|
|
11
|
+
private readonly aztecNode: AztecNode,
|
|
12
|
+
) {}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Gets the storage value at the given contract storage slot.
|
|
16
|
+
*
|
|
17
|
+
* @remarks The storage slot here refers to the slot as it is defined in Noir not the index in the merkle tree.
|
|
18
|
+
* Aztec's version of `eth_getStorageAt`.
|
|
19
|
+
*
|
|
20
|
+
* @param blockNumber - The block number at which to get the data.
|
|
21
|
+
* @param contract - Address of the contract to query.
|
|
22
|
+
* @param slot - Slot to query.
|
|
23
|
+
* @returns Storage value at the given contract slot.
|
|
24
|
+
* @throws If the contract is not deployed.
|
|
25
|
+
*/
|
|
26
|
+
public async getPublicStorageAt(blockNumber: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr> {
|
|
27
|
+
const anchorBlockNumber = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
|
|
28
|
+
if (blockNumber !== 'latest' && blockNumber > anchorBlockNumber) {
|
|
29
|
+
throw new Error(`Block number ${blockNumber} is higher than current block ${anchorBlockNumber}`);
|
|
30
|
+
}
|
|
31
|
+
return await this.aztecNode.getPublicStorageAt(blockNumber, contract, slot);
|
|
32
|
+
}
|
|
33
|
+
}
|