@aztec/pxe 0.0.1-commit.d3ec352c → 0.0.1-commit.d58ff9d0
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 +48 -29
- package/dest/bin/index.d.ts +2 -0
- package/dest/bin/index.d.ts.map +1 -0
- package/dest/bin/index.js +1 -0
- package/dest/bin/oracle_version_helpers.d.ts +34 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +46 -0
- package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
- package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
- package/dest/block_synchronizer/block_stream_source.js +37 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts +53 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/block_synchronizer/block_synchronizer.js +209 -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 +14 -5
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +18 -2
- package/dest/config/package_info.js +1 -1
- package/dest/contract/contract_class_service.d.ts +31 -0
- package/dest/contract/contract_class_service.d.ts.map +1 -0
- package/dest/contract/contract_class_service.js +68 -0
- package/dest/contract/contract_sync_service.d.ts +48 -0
- package/dest/contract/contract_sync_service.d.ts.map +1 -0
- package/dest/contract/contract_sync_service.js +116 -0
- package/dest/contract/helpers.d.ts +7 -0
- package/dest/contract/helpers.d.ts.map +1 -0
- package/dest/contract/helpers.js +20 -0
- package/dest/contract/skip_sync_contracts.d.ts +11 -0
- package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
- package/dest/contract/skip_sync_contracts.js +18 -0
- package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
- package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
- package/dest/contract_function_simulator/aztec_node_read_cache.d.ts +39 -0
- package/dest/contract_function_simulator/aztec_node_read_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/aztec_node_read_cache.js +60 -0
- 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 +91 -27
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +302 -91
- package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
- package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
- package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
- package/dest/contract_function_simulator/execution_note_cache.d.ts +19 -16
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +34 -37
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
- 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 +27 -6
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +12 -4
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.js +30 -0
- package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
- package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
- package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
- package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +6 -6
- 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 +13 -11
- package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
- package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +21 -11
- 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 +12 -23
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
- 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 +2 -63
- package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
- package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +5 -7
- 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 +9 -13
- package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
- package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/option.js +67 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +50 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +19 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.js +9 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +7 -18
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -31
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
- package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
- 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 +15 -94
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
- package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
- package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +107 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +5 -14
- 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 -24
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +12 -8
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +15 -11
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +139 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.js +1016 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +274 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1243 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -28
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +8 -43
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +90 -97
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +275 -138
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +236 -65
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +661 -132
- 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 +21 -4
- package/dest/contract_function_simulator/transient_array_service.d.ts +31 -0
- package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
- package/dest/contract_function_simulator/transient_array_service.js +62 -0
- package/dest/contract_logging.d.ts +27 -0
- package/dest/contract_logging.d.ts.map +1 -0
- package/dest/contract_logging.js +38 -0
- package/dest/debug/pxe_debug_utils.d.ts +40 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +42 -0
- package/dest/entrypoints/client/bundle/index.d.ts +4 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +3 -1
- package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +54 -12
- package/dest/entrypoints/client/lazy/index.d.ts +4 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +3 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +55 -13
- package/dest/entrypoints/client/store.d.ts +14 -0
- package/dest/entrypoints/client/store.d.ts.map +1 -0
- package/dest/entrypoints/client/store.js +42 -0
- package/dest/entrypoints/pxe_creation_options.d.ts +22 -4
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/pxe_creation_options.js +3 -1
- package/dest/entrypoints/server/index.d.ts +10 -3
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +8 -2
- package/dest/entrypoints/server/store.d.ts +18 -0
- package/dest/entrypoints/server/store.d.ts.map +1 -0
- package/dest/entrypoints/server/store.js +28 -0
- package/dest/entrypoints/server/utils.d.ts +4 -3
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +62 -19
- package/dest/error_enriching.d.ts +6 -4
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +13 -11
- package/dest/events/event_service.d.ts +24 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +77 -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 +10 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +53 -0
- package/dest/hooks/authorize_utility_call.d.ts +41 -0
- package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
- package/dest/hooks/authorize_utility_call.js +4 -0
- package/dest/hooks/execution_hooks.d.ts +62 -0
- package/dest/hooks/execution_hooks.d.ts.map +1 -0
- package/dest/hooks/execution_hooks.js +9 -0
- package/dest/hooks/index.d.ts +5 -0
- package/dest/hooks/index.d.ts.map +1 -0
- package/dest/hooks/index.js +2 -0
- package/dest/hooks/resolve_custom_request.d.ts +23 -0
- package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
- package/dest/hooks/resolve_custom_request.js +3 -0
- package/dest/hooks/resolve_tagging_secret_strategy.d.ts +50 -0
- package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
- package/dest/hooks/resolve_tagging_secret_strategy.js +3 -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 +31 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +232 -0
- package/dest/messages/tx_resolver_service.d.ts +17 -0
- package/dest/messages/tx_resolver_service.d.ts.map +1 -0
- package/dest/messages/tx_resolver_service.js +60 -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 +70 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +172 -0
- package/dest/notes_filter.d.ts +24 -0
- package/dest/notes_filter.d.ts.map +1 -0
- package/dest/notes_filter.js +4 -0
- package/dest/oracle_version.d.ts +4 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +20 -9
- package/dest/private_kernel/batch_planner.d.ts +47 -0
- package/dest/private_kernel/batch_planner.d.ts.map +1 -0
- package/dest/private_kernel/batch_planner.js +104 -0
- package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
- package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
- package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
- package/dest/private_kernel/hints/index.d.ts +3 -3
- package/dest/private_kernel/hints/index.d.ts.map +1 -1
- package/dest/private_kernel/hints/index.js +2 -2
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -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} +147 -76
- package/dest/private_kernel/hints/test_utils.d.ts +122 -0
- package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
- package/dest/private_kernel/hints/test_utils.js +202 -0
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +7 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +214 -93
- package/dest/private_kernel/private_kernel_oracle.d.ts +32 -29
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +108 -2
- package/dest/pxe.d.ts +260 -134
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +496 -342
- 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/allowed_scopes.d.ts +6 -0
- package/dest/storage/allowed_scopes.d.ts.map +1 -0
- package/dest/storage/allowed_scopes.js +7 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +20 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/anchor_block_store.js +28 -0
- 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/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.js +671 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
- package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
- package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_service.js +47 -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 +261 -0
- package/dest/storage/capsule_store/index.d.ts +3 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +2 -0
- package/dest/storage/contract_store/contract_store.d.ts +96 -0
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/contract_store/contract_store.js +281 -0
- 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/fact_store/fact_service.d.ts +22 -0
- package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_service.js +45 -0
- package/dest/storage/fact_store/fact_store.d.ts +95 -0
- package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store.js +408 -0
- package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
- package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store_keys.js +50 -0
- package/dest/storage/fact_store/index.d.ts +6 -0
- package/dest/storage/fact_store/index.d.ts.map +1 -0
- package/dest/storage/fact_store/index.js +4 -0
- package/dest/storage/fact_store/origin_state.d.ts +59 -0
- package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
- package/dest/storage/fact_store/origin_state.js +60 -0
- package/dest/storage/fact_store/stored_fact.d.ts +32 -0
- package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
- package/dest/storage/fact_store/stored_fact.js +64 -0
- package/dest/storage/index.d.ts +9 -8
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +8 -7
- package/dest/storage/metadata.d.ts +2 -2
- package/dest/storage/metadata.d.ts.map +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 +92 -0
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/note_store/note_store.js +372 -0
- package/dest/storage/note_store/stored_note.d.ts +11 -0
- package/dest/storage/note_store/stored_note.d.ts.map +1 -0
- package/dest/storage/note_store/stored_note.js +27 -0
- package/dest/storage/open_pxe_stores.d.ts +35 -0
- package/dest/storage/open_pxe_stores.d.ts.map +1 -0
- package/dest/storage/open_pxe_stores.js +29 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +88 -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/store_identity.d.ts +35 -0
- package/dest/storage/store_identity.d.ts.map +1 -0
- package/dest/storage/store_identity.js +44 -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_tagging_store.d.ts +94 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +411 -0
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
- package/dest/tagging/constants.d.ts +3 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +28 -2
- package/dest/tagging/get_all_logs_by_tags.d.ts +48 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
- package/dest/tagging/get_all_logs_by_tags.js +59 -0
- package/dest/tagging/index.d.ts +18 -7
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +16 -5
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +74 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +238 -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/reconcile_tagging_index_ranges.d.ts +36 -0
- package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +16 -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 +92 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +17 -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 +60 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +19 -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 +76 -0
- package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
- package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
- package/dest/tagging/testing/tag_query_test_utils.js +10 -0
- package/package.json +31 -19
- package/src/bin/check_oracle_version.ts +56 -34
- package/src/bin/index.ts +1 -0
- package/src/bin/oracle_version_helpers.ts +54 -0
- package/src/block_synchronizer/block_stream_source.ts +42 -0
- package/src/block_synchronizer/block_synchronizer.ts +241 -0
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +25 -4
- package/src/config/package_info.ts +1 -1
- package/src/contract/contract_class_service.ts +83 -0
- package/src/contract/contract_sync_service.ts +176 -0
- package/src/contract/helpers.ts +35 -0
- package/src/contract/skip_sync_contracts.ts +23 -0
- package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
- package/src/contract_function_simulator/aztec_node_read_cache.ts +89 -0
- package/src/contract_function_simulator/benchmarked_node.ts +103 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +513 -124
- package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
- package/src/contract_function_simulator/execution_note_cache.ts +39 -38
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
- package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
- package/src/contract_function_simulator/index.ts +90 -5
- package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
- package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
- package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
- package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +16 -11
- package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
- package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +28 -20
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -64
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +8 -13
- package/src/contract_function_simulator/noir-structs/option.ts +75 -0
- package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
- package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
- package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
- package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
- package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
- package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -37
- package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
- package/src/contract_function_simulator/oracle/index.ts +1 -15
- package/src/contract_function_simulator/oracle/interfaces.ts +11 -166
- package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +28 -14
- package/src/contract_function_simulator/oracle/oracle_registry.ts +710 -0
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1052 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +8 -76
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +355 -189
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +1027 -166
- package/src/contract_function_simulator/pick_notes.ts +23 -4
- package/src/contract_function_simulator/transient_array_service.ts +91 -0
- package/src/contract_logging.ts +52 -0
- package/src/debug/pxe_debug_utils.ts +85 -0
- package/src/entrypoints/client/bundle/index.ts +3 -1
- package/src/entrypoints/client/bundle/utils.ts +52 -21
- package/src/entrypoints/client/lazy/index.ts +3 -1
- package/src/entrypoints/client/lazy/utils.ts +54 -23
- package/src/entrypoints/client/store.ts +54 -0
- package/src/entrypoints/pxe_creation_options.ts +27 -3
- package/src/entrypoints/server/index.ts +10 -2
- package/src/entrypoints/server/store.ts +47 -0
- package/src/entrypoints/server/utils.ts +68 -45
- package/src/error_enriching.ts +20 -12
- package/src/events/event_service.ts +119 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +66 -0
- package/src/hooks/authorize_utility_call.ts +44 -0
- package/src/hooks/execution_hooks.ts +68 -0
- package/src/hooks/index.ts +13 -0
- package/src/hooks/resolve_custom_request.ts +24 -0
- package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +300 -0
- package/src/messages/tx_resolver_service.ts +69 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +230 -0
- package/src/notes_filter.ts +24 -0
- package/src/oracle_version.ts +20 -9
- package/src/private_kernel/batch_planner.ts +168 -0
- package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
- package/src/private_kernel/hints/index.ts +2 -2
- package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +209 -141
- package/src/private_kernel/hints/test_utils.ts +318 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +352 -130
- package/src/private_kernel/private_kernel_oracle.ts +149 -39
- package/src/pxe.ts +846 -457
- 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/allowed_scopes.ts +14 -0
- package/src/storage/anchor_block_store/anchor_block_store.ts +35 -0
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +26 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
- package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +803 -0
- package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
- package/src/storage/capsule_store/capsule_service.ts +85 -0
- package/src/storage/capsule_store/capsule_store.ts +333 -0
- package/src/storage/capsule_store/index.ts +2 -0
- package/src/storage/contract_store/contract_store.ts +401 -0
- 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/fact_store/fact_service.ts +69 -0
- package/src/storage/fact_store/fact_store.ts +487 -0
- package/src/storage/fact_store/fact_store_keys.ts +75 -0
- package/src/storage/fact_store/index.ts +15 -0
- package/src/storage/fact_store/origin_state.ts +84 -0
- package/src/storage/fact_store/stored_fact.ts +80 -0
- package/src/storage/index.ts +8 -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 +454 -0
- package/src/storage/note_store/stored_note.ts +26 -0
- package/src/storage/open_pxe_stores.ts +52 -0
- package/src/storage/private_event_store/private_event_store.ts +382 -0
- package/src/storage/private_event_store/stored_private_event.ts +73 -0
- package/src/storage/store_identity.ts +72 -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_tagging_store.ts +523 -0
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
- package/src/tagging/constants.ts +30 -2
- package/src/tagging/get_all_logs_by_tags.ts +120 -0
- package/src/tagging/index.ts +20 -6
- package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
- package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +358 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +134 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +66 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +88 -0
- package/src/tagging/testing/tag_query_test_utils.ts +11 -0
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -267
- 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/oracle.d.ts +0 -58
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/oracle.js +0 -334
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -62
- 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 -123
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -696
- 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_tx_include_by_timestamp.d.ts +0 -4
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
- 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 +0 -64
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.js +0 -193
- 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 -314
- 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 -11
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
- package/dest/storage/sync_data_provider/sync_data_provider.js +0 -26
- 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 -36
- package/dest/synchronizer/synchronizer.d.ts.map +0 -1
- package/dest/synchronizer/synchronizer.js +0 -102
- 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 -342
- package/src/contract_function_simulator/oracle/oracle.ts +0 -591
- package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -66
- package/src/contract_function_simulator/proxied_node.ts +0 -33
- package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1023
- 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/contract_data_provider.ts +0 -277
- 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 -403
- 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/sync_data_provider/sync_data_provider.ts +0 -35
- 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 -121
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
} from '@aztec/constants';
|
|
10
10
|
import { makeTuple } from '@aztec/foundation/array';
|
|
11
11
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
12
|
-
import type { Fr } from '@aztec/foundation/
|
|
13
|
-
import {
|
|
12
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
13
|
+
import { assertLength } from '@aztec/foundation/serialize';
|
|
14
14
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
15
15
|
import { privateKernelResetDimensionsConfig } from '@aztec/noir-protocol-circuits-types/client';
|
|
16
16
|
import {
|
|
@@ -26,17 +26,16 @@ import {
|
|
|
26
26
|
type PrivateKernelSimulateOutput,
|
|
27
27
|
ReadRequestActionEnum,
|
|
28
28
|
ReadRequestResetActions,
|
|
29
|
-
type
|
|
30
|
-
ScopedNoteHash,
|
|
31
|
-
ScopedNullifier,
|
|
32
|
-
ScopedReadRequest,
|
|
29
|
+
type ScopedKeyValidationRequestAndSeparator,
|
|
33
30
|
TransientDataSquashingHint,
|
|
34
31
|
buildNoteHashReadRequestHintsFromResetActions,
|
|
35
32
|
buildNullifierReadRequestHintsFromResetActions,
|
|
36
33
|
buildTransientDataHints,
|
|
34
|
+
countSquashedLogs,
|
|
37
35
|
findPrivateKernelResetDimensions,
|
|
38
36
|
getNoteHashReadRequestResetActions,
|
|
39
37
|
getNullifierReadRequestResetActions,
|
|
38
|
+
kernelStateIsForPublic,
|
|
40
39
|
privateKernelResetDimensionNames,
|
|
41
40
|
} from '@aztec/stdlib/kernel';
|
|
42
41
|
import { type PrivateCallExecutionResult, collectNested } from '@aztec/stdlib/tx';
|
|
@@ -44,15 +43,6 @@ import { VkData } from '@aztec/stdlib/vks';
|
|
|
44
43
|
|
|
45
44
|
import type { PrivateKernelOracle } from '../private_kernel_oracle.js';
|
|
46
45
|
|
|
47
|
-
function collectNestedReadRequests<N extends number>(
|
|
48
|
-
executionStack: PrivateCallExecutionResult[],
|
|
49
|
-
extractReadRequests: (execution: PrivateCallExecutionResult) => ClaimedLengthArray<ScopedReadRequest, N>,
|
|
50
|
-
): ScopedReadRequest[] {
|
|
51
|
-
return collectNested(executionStack, executionResult => {
|
|
52
|
-
return extractReadRequests(executionResult).getActiveItems();
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
46
|
function getNullifierMembershipWitnessResolver(oracle: PrivateKernelOracle) {
|
|
57
47
|
return async (nullifier: Fr) => {
|
|
58
48
|
const res = await oracle.getNullifierMembershipWitness(nullifier);
|
|
@@ -68,9 +58,9 @@ function getNullifierMembershipWitnessResolver(oracle: PrivateKernelOracle) {
|
|
|
68
58
|
};
|
|
69
59
|
}
|
|
70
60
|
|
|
71
|
-
async function
|
|
61
|
+
async function getMasterSecretKeysAndKeyTypeDomainSeparators(
|
|
72
62
|
keyValidationRequests: ClaimedLengthArray<
|
|
73
|
-
|
|
63
|
+
ScopedKeyValidationRequestAndSeparator,
|
|
74
64
|
typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX
|
|
75
65
|
>,
|
|
76
66
|
numRequestsToVerify: number,
|
|
@@ -79,7 +69,7 @@ async function getMasterSecretKeysAndAppKeyGenerators(
|
|
|
79
69
|
const numRequestsToProcess = Math.min(keyValidationRequests.claimedLength, numRequestsToVerify);
|
|
80
70
|
const keysHints = await Promise.all(
|
|
81
71
|
keyValidationRequests.array.slice(0, numRequestsToProcess).map(async ({ request }) => {
|
|
82
|
-
const secretKeys = await oracle.getMasterSecretKey(request.request.
|
|
72
|
+
const secretKeys = await oracle.getMasterSecretKey(request.request.pkMHash);
|
|
83
73
|
return new KeyValidationHint(secretKeys);
|
|
84
74
|
}),
|
|
85
75
|
);
|
|
@@ -91,11 +81,14 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
91
81
|
// If there's no next iteration, it's the final reset.
|
|
92
82
|
private nextIteration?: PrivateCircuitPublicInputs;
|
|
93
83
|
|
|
94
|
-
private noteHashResetActions
|
|
95
|
-
private nullifierResetActions
|
|
84
|
+
private noteHashResetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
85
|
+
private nullifierResetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
96
86
|
private numTransientData?: number;
|
|
97
|
-
private transientDataSquashingHints
|
|
98
|
-
|
|
87
|
+
private transientDataSquashingHints = makeTuple(
|
|
88
|
+
MAX_NULLIFIERS_PER_TX,
|
|
89
|
+
() => new TransientDataSquashingHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX),
|
|
90
|
+
);
|
|
91
|
+
private requestedDimensions = PrivateKernelResetDimensions.empty();
|
|
99
92
|
|
|
100
93
|
constructor(
|
|
101
94
|
private previousKernelOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>,
|
|
@@ -104,21 +97,18 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
104
97
|
private splitCounter: number,
|
|
105
98
|
) {
|
|
106
99
|
this.previousKernel = previousKernelOutput.publicInputs;
|
|
107
|
-
this.requestedDimensions = PrivateKernelResetDimensions.empty();
|
|
108
|
-
this.noteHashResetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
109
|
-
this.nullifierResetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
110
|
-
this.transientDataSquashingHints = makeTuple(
|
|
111
|
-
MAX_NULLIFIERS_PER_TX,
|
|
112
|
-
() => new TransientDataSquashingHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX),
|
|
113
|
-
);
|
|
114
100
|
this.nextIteration = executionStack[this.executionStack.length - 1]?.publicInputs;
|
|
115
101
|
}
|
|
116
102
|
|
|
103
|
+
getRequestedDimensions(): PrivateKernelResetDimensions {
|
|
104
|
+
return this.requestedDimensions;
|
|
105
|
+
}
|
|
106
|
+
|
|
117
107
|
needsReset(): boolean {
|
|
118
108
|
const fns: (() => boolean)[] = [
|
|
119
109
|
() => this.needsResetNoteHashReadRequests(),
|
|
120
110
|
() => this.needsResetNullifierReadRequests(),
|
|
121
|
-
() => this.
|
|
111
|
+
() => this.needsResetKeyValidationRequests(),
|
|
122
112
|
() => this.needsResetTransientData(),
|
|
123
113
|
];
|
|
124
114
|
|
|
@@ -138,35 +128,33 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
138
128
|
}
|
|
139
129
|
}
|
|
140
130
|
|
|
141
|
-
async build(oracle: PrivateKernelOracle
|
|
131
|
+
async build(oracle: PrivateKernelOracle) {
|
|
142
132
|
if (privateKernelResetDimensionNames.every(name => !this.requestedDimensions[name])) {
|
|
143
133
|
throw new Error('Reset is not required.');
|
|
144
134
|
}
|
|
145
135
|
|
|
146
136
|
const isInner = !!this.nextIteration;
|
|
147
137
|
|
|
148
|
-
// "final" reset must be done
|
|
149
|
-
// Because the code that silo note hashes can't be run repeatedly.
|
|
138
|
+
// "final" reset must be done exactly once, because siloing can't be run repeatedly.
|
|
150
139
|
// The dimensions found must be big enough to reset all values, i.e. empty remainder.
|
|
151
140
|
const allowRemainder = isInner;
|
|
152
141
|
|
|
142
|
+
// Terminal reset picks from the finalTail / finalTailToPublic catalogs; mid-tx resets always
|
|
143
|
+
// use the inner catalog. The public/private decision must match `kernelStateIsForPublic` - the
|
|
144
|
+
// same predicate the circuit inputs and the orchestrator use.
|
|
145
|
+
const mode = isInner
|
|
146
|
+
? ('inner' as const)
|
|
147
|
+
: kernelStateIsForPublic(this.previousKernel)
|
|
148
|
+
? ('finalTailToPublic' as const)
|
|
149
|
+
: ('finalTail' as const);
|
|
150
|
+
|
|
153
151
|
const dimensions = findPrivateKernelResetDimensions(
|
|
154
152
|
this.requestedDimensions,
|
|
155
153
|
privateKernelResetDimensionsConfig,
|
|
156
|
-
|
|
154
|
+
mode,
|
|
157
155
|
allowRemainder,
|
|
158
156
|
);
|
|
159
157
|
|
|
160
|
-
const previousVkMembershipWitness = await oracle.getVkMembershipWitness(
|
|
161
|
-
this.previousKernelOutput.verificationKey.keyAsFields,
|
|
162
|
-
);
|
|
163
|
-
const vkData = new VkData(
|
|
164
|
-
this.previousKernelOutput.verificationKey,
|
|
165
|
-
Number(previousVkMembershipWitness.leafIndex),
|
|
166
|
-
previousVkMembershipWitness.siblingPath,
|
|
167
|
-
);
|
|
168
|
-
const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, vkData);
|
|
169
|
-
|
|
170
158
|
this.reduceReadRequestActions(
|
|
171
159
|
this.noteHashResetActions,
|
|
172
160
|
dimensions.NOTE_HASH_PENDING_READ,
|
|
@@ -178,30 +166,51 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
178
166
|
dimensions.NULLIFIER_SETTLED_READ,
|
|
179
167
|
);
|
|
180
168
|
|
|
181
|
-
//
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
169
|
+
// Execute all the expensive node querying operations in parallel.
|
|
170
|
+
const [previousVkMembershipWitness, noteHashReadRequestHints, nullifierReadRequestHints, keyValidationHints] =
|
|
171
|
+
await Promise.all([
|
|
172
|
+
oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey.keyAsFields),
|
|
173
|
+
buildNoteHashReadRequestHintsFromResetActions<
|
|
174
|
+
typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
175
|
+
typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX
|
|
176
|
+
>(
|
|
189
177
|
oracle,
|
|
190
178
|
this.previousKernel.validationRequests.noteHashReadRequests,
|
|
191
179
|
this.previousKernel.end.noteHashes,
|
|
192
180
|
this.noteHashResetActions,
|
|
193
|
-
noteHashLeafIndexMap,
|
|
194
181
|
),
|
|
195
|
-
|
|
182
|
+
buildNullifierReadRequestHintsFromResetActions<
|
|
183
|
+
typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
184
|
+
typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX
|
|
185
|
+
>(
|
|
196
186
|
{ getNullifierMembershipWitness: getNullifierMembershipWitnessResolver(oracle) },
|
|
197
187
|
this.previousKernel.validationRequests.nullifierReadRequests,
|
|
198
188
|
this.nullifierResetActions,
|
|
199
189
|
),
|
|
200
|
-
|
|
201
|
-
this.previousKernel.validationRequests.
|
|
190
|
+
getMasterSecretKeysAndKeyTypeDomainSeparators(
|
|
191
|
+
this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators,
|
|
202
192
|
dimensions.KEY_VALIDATION,
|
|
203
193
|
oracle,
|
|
204
194
|
),
|
|
195
|
+
]);
|
|
196
|
+
|
|
197
|
+
const vkData = new VkData(
|
|
198
|
+
this.previousKernelOutput.verificationKey,
|
|
199
|
+
Number(previousVkMembershipWitness.leafIndex),
|
|
200
|
+
previousVkMembershipWitness.siblingPath,
|
|
201
|
+
);
|
|
202
|
+
const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, vkData);
|
|
203
|
+
|
|
204
|
+
// TODO: Enable padding when we have a better idea what are the final amounts we should pad to.
|
|
205
|
+
const paddedSideEffects = PaddedSideEffects.empty();
|
|
206
|
+
|
|
207
|
+
return new PrivateKernelResetCircuitPrivateInputs(
|
|
208
|
+
previousKernelData,
|
|
209
|
+
paddedSideEffects,
|
|
210
|
+
new PrivateKernelResetHints(
|
|
211
|
+
noteHashReadRequestHints,
|
|
212
|
+
nullifierReadRequestHints,
|
|
213
|
+
keyValidationHints,
|
|
205
214
|
this.transientDataSquashingHints,
|
|
206
215
|
),
|
|
207
216
|
dimensions,
|
|
@@ -235,24 +244,17 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
235
244
|
resetActions.pendingReadHints = resetActions.pendingReadHints.slice(0, maxPending);
|
|
236
245
|
}
|
|
237
246
|
|
|
238
|
-
private needsResetNoteHashReadRequests(
|
|
247
|
+
private needsResetNoteHashReadRequests(forceReset = false) {
|
|
239
248
|
const numCurr = this.previousKernel.validationRequests.noteHashReadRequests.claimedLength;
|
|
240
249
|
const numNext = this.nextIteration ? this.nextIteration.noteHashReadRequests.claimedLength : 0;
|
|
241
|
-
const maxAmountToKeep = !this.nextIteration ||
|
|
250
|
+
const maxAmountToKeep = !this.nextIteration || forceReset ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
|
|
242
251
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
243
252
|
return false;
|
|
244
253
|
}
|
|
245
254
|
|
|
246
|
-
const futureNoteHashes = collectNested(this.executionStack, executionResult => {
|
|
247
|
-
return executionResult.publicInputs.noteHashes
|
|
248
|
-
.getActiveItems()
|
|
249
|
-
.map(noteHash => new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress));
|
|
250
|
-
});
|
|
251
|
-
|
|
252
255
|
const resetActions = getNoteHashReadRequestResetActions(
|
|
253
256
|
this.previousKernel.validationRequests.noteHashReadRequests,
|
|
254
257
|
this.previousKernel.end.noteHashes,
|
|
255
|
-
futureNoteHashes,
|
|
256
258
|
);
|
|
257
259
|
|
|
258
260
|
const numPendingReads = resetActions.pendingReadHints.length;
|
|
@@ -261,53 +263,72 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
261
263
|
0,
|
|
262
264
|
);
|
|
263
265
|
|
|
266
|
+
const totalReadsToReset = numPendingReads + numSettledReads;
|
|
267
|
+
const minResetNeeded = numCurr + numNext - maxAmountToKeep;
|
|
268
|
+
if (totalReadsToReset < minResetNeeded) {
|
|
269
|
+
if (!this.nextIteration) {
|
|
270
|
+
// In the final reset, all note hashes have been emitted. So if we can't reset all requests, at least one
|
|
271
|
+
// pending read request doesn't match any of them.
|
|
272
|
+
throw new Error('No matching note hash found for note hash read request.');
|
|
273
|
+
} else if (!forceReset) {
|
|
274
|
+
// A pending read request can only be reset if its note hash has already been included (e.g. a parent call might
|
|
275
|
+
// be reading a note hash emitted by a child call. The read request of the parent call is included before the note
|
|
276
|
+
// hash of the child call).
|
|
277
|
+
// If we can't clear enough read requests to make room for the next iteration's reads, we're stuck.
|
|
278
|
+
throw new Error('Number of note hash read requests exceeds the limit.');
|
|
279
|
+
} else if (totalReadsToReset == 0) {
|
|
280
|
+
// It's transient data squashing asking for the read requests to be reset first (forceReset == true), and
|
|
281
|
+
// there's nothing to reset, returns false and let needsResetTransientData throw a more descriptive error.
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
// Otherwise, forceReset is true, we should proceed to reset as many as we can.
|
|
285
|
+
}
|
|
286
|
+
|
|
264
287
|
if (!this.nextIteration) {
|
|
288
|
+
// If there's no next iteration, we need to reset all the read requests.
|
|
265
289
|
this.noteHashResetActions = resetActions;
|
|
266
290
|
this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
|
|
267
291
|
this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
|
|
268
292
|
} else {
|
|
269
|
-
//
|
|
293
|
+
// If there's a next iteration, only one dimension can be reset at a time.
|
|
294
|
+
// So we pick the dimension that has more read requests to reset.
|
|
270
295
|
if (numPendingReads > numSettledReads) {
|
|
271
|
-
|
|
272
|
-
|
|
296
|
+
// Reset the pending read requests.
|
|
297
|
+
const pendingOnlyActions = assertLength(
|
|
273
298
|
resetActions.actions.map(action =>
|
|
274
299
|
action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
|
|
275
300
|
),
|
|
276
301
|
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
277
302
|
);
|
|
278
|
-
this.noteHashResetActions
|
|
303
|
+
this.noteHashResetActions = new ReadRequestResetActions(pendingOnlyActions, resetActions.pendingReadHints);
|
|
304
|
+
this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
|
|
279
305
|
} else {
|
|
280
|
-
|
|
281
|
-
|
|
306
|
+
// Reset the settled read requests.
|
|
307
|
+
const settledOnlyActions = assertLength(
|
|
282
308
|
resetActions.actions.map(action =>
|
|
283
309
|
action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
|
|
284
310
|
),
|
|
285
311
|
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
286
312
|
);
|
|
313
|
+
this.noteHashResetActions = new ReadRequestResetActions(settledOnlyActions, []);
|
|
314
|
+
this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
|
|
287
315
|
}
|
|
288
316
|
}
|
|
289
317
|
|
|
290
318
|
return true;
|
|
291
319
|
}
|
|
292
320
|
|
|
293
|
-
private needsResetNullifierReadRequests(
|
|
321
|
+
private needsResetNullifierReadRequests(forceReset = false) {
|
|
294
322
|
const numCurr = this.previousKernel.validationRequests.nullifierReadRequests.claimedLength;
|
|
295
323
|
const numNext = this.nextIteration ? this.nextIteration.nullifierReadRequests.claimedLength : 0;
|
|
296
|
-
const maxAmountToKeep = !this.nextIteration ||
|
|
324
|
+
const maxAmountToKeep = !this.nextIteration || forceReset ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
|
|
297
325
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
298
326
|
return false;
|
|
299
327
|
}
|
|
300
328
|
|
|
301
|
-
const futureNullifiers = collectNested(this.executionStack, executionResult => {
|
|
302
|
-
return executionResult.publicInputs.nullifiers
|
|
303
|
-
.getActiveItems()
|
|
304
|
-
.map(nullifier => new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress));
|
|
305
|
-
});
|
|
306
|
-
|
|
307
329
|
const resetActions = getNullifierReadRequestResetActions(
|
|
308
330
|
this.previousKernel.validationRequests.nullifierReadRequests,
|
|
309
331
|
this.previousKernel.end.nullifiers,
|
|
310
|
-
futureNullifiers,
|
|
311
332
|
);
|
|
312
333
|
|
|
313
334
|
const numPendingReads = resetActions.pendingReadHints.length;
|
|
@@ -316,38 +337,63 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
316
337
|
0,
|
|
317
338
|
);
|
|
318
339
|
|
|
340
|
+
const totalReadsToReset = numPendingReads + numSettledReads;
|
|
341
|
+
const minResetNeeded = numCurr + numNext - maxAmountToKeep;
|
|
342
|
+
if (totalReadsToReset < minResetNeeded) {
|
|
343
|
+
if (!this.nextIteration) {
|
|
344
|
+
// In the final reset, all nullifiers have been emitted. So if we can't reset all requests, at least one pending
|
|
345
|
+
// read request doesn't match any of them.
|
|
346
|
+
throw new Error('No matching nullifier found for nullifier read request.');
|
|
347
|
+
} else if (!forceReset) {
|
|
348
|
+
// A pending read request can only be reset if its nullifier has already been included (e.g. a parent call might
|
|
349
|
+
// be reading a nullifier emitted by a child call. The read request of the parent call is included before the
|
|
350
|
+
// nullifier of the child call).
|
|
351
|
+
// If we can't clear enough read requests to make room for the next iteration's reads, we're stuck.
|
|
352
|
+
throw new Error('Number of nullifier read requests exceeds the limit.');
|
|
353
|
+
} else if (totalReadsToReset == 0) {
|
|
354
|
+
// It's transient data squashing asking for the read requests to be reset first (forceReset == true), and
|
|
355
|
+
// there's nothing to reset, returns false and let needsResetTransientData throw a more descriptive error.
|
|
356
|
+
return false;
|
|
357
|
+
}
|
|
358
|
+
// Otherwise, forceReset is true, we should proceed to reset as many as we can.
|
|
359
|
+
}
|
|
360
|
+
|
|
319
361
|
if (!this.nextIteration) {
|
|
362
|
+
// If there's no next iteration, we need to reset all the read requests.
|
|
320
363
|
this.nullifierResetActions = resetActions;
|
|
321
364
|
this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
|
|
322
365
|
this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
|
|
323
366
|
} else {
|
|
324
|
-
//
|
|
367
|
+
// If there's a next iteration, we can only reset one dimension at a time.
|
|
325
368
|
if (numPendingReads > numSettledReads) {
|
|
326
|
-
|
|
327
|
-
|
|
369
|
+
// Reset the pending read requests.
|
|
370
|
+
const pendingOnlyActions = assertLength(
|
|
328
371
|
resetActions.actions.map(action =>
|
|
329
372
|
action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
|
|
330
373
|
),
|
|
331
374
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
332
375
|
);
|
|
333
|
-
this.nullifierResetActions
|
|
376
|
+
this.nullifierResetActions = new ReadRequestResetActions(pendingOnlyActions, resetActions.pendingReadHints);
|
|
377
|
+
this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
|
|
334
378
|
} else {
|
|
335
|
-
|
|
336
|
-
|
|
379
|
+
// Reset the settled read requests.
|
|
380
|
+
const settledOnlyActions = assertLength(
|
|
337
381
|
resetActions.actions.map(action =>
|
|
338
382
|
action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
|
|
339
383
|
),
|
|
340
384
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
341
385
|
);
|
|
386
|
+
this.nullifierResetActions = new ReadRequestResetActions(settledOnlyActions, []);
|
|
387
|
+
this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
|
|
342
388
|
}
|
|
343
389
|
}
|
|
344
390
|
|
|
345
391
|
return true;
|
|
346
392
|
}
|
|
347
393
|
|
|
348
|
-
private
|
|
349
|
-
const numCurr = this.previousKernel.validationRequests.
|
|
350
|
-
const numNext = this.nextIteration ? this.nextIteration.
|
|
394
|
+
private needsResetKeyValidationRequests() {
|
|
395
|
+
const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators.claimedLength;
|
|
396
|
+
const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndSeparators.claimedLength : 0;
|
|
351
397
|
const maxAmountToKeep = !this.nextIteration ? 0 : MAX_KEY_VALIDATION_REQUESTS_PER_TX;
|
|
352
398
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
353
399
|
return false;
|
|
@@ -359,9 +405,6 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
359
405
|
}
|
|
360
406
|
|
|
361
407
|
private needsResetTransientData() {
|
|
362
|
-
// Initialize this to 0 so that needsSilo can be run.
|
|
363
|
-
this.numTransientData = 0;
|
|
364
|
-
|
|
365
408
|
const nextAccumNoteHashes =
|
|
366
409
|
this.previousKernel.end.noteHashes.claimedLength + (this.nextIteration?.noteHashes.claimedLength ?? 0);
|
|
367
410
|
const noteHashWillOverflow = nextAccumNoteHashes > MAX_NOTE_HASHES_PER_TX;
|
|
@@ -376,19 +419,19 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
376
419
|
return false;
|
|
377
420
|
}
|
|
378
421
|
|
|
379
|
-
const futureNoteHashReads =
|
|
380
|
-
|
|
381
|
-
executionResult => executionResult.publicInputs.noteHashReadRequests,
|
|
422
|
+
const futureNoteHashReads = collectNested(this.executionStack, executionResult =>
|
|
423
|
+
executionResult.publicInputs.noteHashReadRequests.getActiveItems(),
|
|
382
424
|
);
|
|
383
|
-
const futureNullifierReads =
|
|
384
|
-
|
|
385
|
-
|
|
425
|
+
const futureNullifierReads = collectNested(this.executionStack, executionResult =>
|
|
426
|
+
executionResult.publicInputs.nullifierReadRequests.getActiveItems(),
|
|
427
|
+
);
|
|
428
|
+
const futureLogs = collectNested(this.executionStack, executionResult =>
|
|
429
|
+
executionResult.publicInputs.privateLogs.getActiveItems(),
|
|
386
430
|
);
|
|
387
|
-
// TODO(#15902): Collect future logs and only allow squashing a note hash when all its logs have been emitted
|
|
388
|
-
// (i.e. none of the future logs are linked to the to-be-squashed note hashes).
|
|
389
431
|
if (this.nextIteration) {
|
|
390
|
-
// If it's not the final reset, only one dimension will be reset at a time.
|
|
391
|
-
//
|
|
432
|
+
// If it's not the final reset, only one dimension will be reset at a time. Since we are resetting the transient
|
|
433
|
+
// data, the note hash and nullifier read requests in the previous kernel won't be squashed and need to be
|
|
434
|
+
// included in the future read requests.
|
|
392
435
|
futureNoteHashReads.push(...this.previousKernel.validationRequests.noteHashReadRequests.getActiveItems());
|
|
393
436
|
futureNullifierReads.push(...this.previousKernel.validationRequests.nullifierReadRequests.getActiveItems());
|
|
394
437
|
}
|
|
@@ -398,27 +441,50 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
398
441
|
this.previousKernel.end.nullifiers,
|
|
399
442
|
futureNoteHashReads,
|
|
400
443
|
futureNullifierReads,
|
|
444
|
+
futureLogs,
|
|
401
445
|
this.noteHashNullifierCounterMap,
|
|
402
446
|
this.splitCounter,
|
|
403
447
|
);
|
|
404
448
|
|
|
405
|
-
if (this.nextIteration
|
|
406
|
-
const
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
449
|
+
if (this.nextIteration) {
|
|
450
|
+
const noteHashOverflowBy = noteHashWillOverflow
|
|
451
|
+
? nextAccumNoteHashes - MAX_NOTE_HASHES_PER_TX - numTransientData
|
|
452
|
+
: 0;
|
|
453
|
+
const nullifierOverflowBy = nullifierWillOverflow
|
|
454
|
+
? nextAccumNullifiers - MAX_NULLIFIERS_PER_TX - numTransientData
|
|
455
|
+
: 0;
|
|
456
|
+
const numSquashedLogs = logsWillOverflow
|
|
457
|
+
? countSquashedLogs(
|
|
458
|
+
this.previousKernel.end.noteHashes,
|
|
459
|
+
this.previousKernel.end.privateLogs,
|
|
460
|
+
transientDataSquashingHints.slice(0, numTransientData),
|
|
461
|
+
)
|
|
462
|
+
: 0;
|
|
463
|
+
const logsOverflowBy = logsWillOverflow ? nextAccumLogs - MAX_PRIVATE_LOGS_PER_TX - numSquashedLogs : 0;
|
|
464
|
+
|
|
465
|
+
if (noteHashOverflowBy > 0 || nullifierOverflowBy > 0 || logsOverflowBy > 0) {
|
|
466
|
+
// There's not enough transient data to squash to clear space for the overflow. It may be because some data is
|
|
467
|
+
// still required for read requests. Force a reset of the read requests first, and return to transient data
|
|
468
|
+
// squashing in the next round of reset.
|
|
469
|
+
// Note that clearing the read requests might not be enough to clear more space for the overflow. In this case,
|
|
470
|
+
// running the next reset will fail at the following check.
|
|
471
|
+
// Only one dimension can be reset at a time for an inner reset, so we try the note hash read requests first
|
|
472
|
+
// (which also helps with log overflow), then fall back to nullifier read requests.
|
|
473
|
+
const forceReset = true;
|
|
474
|
+
if ((noteHashOverflowBy > 0 || logsOverflowBy > 0) && this.needsResetNoteHashReadRequests(forceReset)) {
|
|
475
|
+
return true;
|
|
476
|
+
}
|
|
477
|
+
if (nullifierOverflowBy > 0 && this.needsResetNullifierReadRequests(forceReset)) {
|
|
478
|
+
return true;
|
|
479
|
+
}
|
|
480
|
+
if (noteHashWillOverflow) {
|
|
481
|
+
throw new Error('Number of note hashes exceeds the limit.');
|
|
482
|
+
}
|
|
483
|
+
if (nullifierWillOverflow) {
|
|
484
|
+
throw new Error('Number of nullifiers exceeds the limit.');
|
|
485
|
+
}
|
|
486
|
+
throw new Error('Number of private logs exceeds the limit.');
|
|
418
487
|
}
|
|
419
|
-
// Clearing the read requests might not be enough to squash the overflown data.
|
|
420
|
-
// In this case, the next iteration will fail at the above check.
|
|
421
|
-
return true;
|
|
422
488
|
}
|
|
423
489
|
|
|
424
490
|
this.numTransientData = numTransientData;
|
|
@@ -433,10 +499,13 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
433
499
|
throw new Error('`needsResetTransientData` must be run before `needsSiloNoteHashes`.');
|
|
434
500
|
}
|
|
435
501
|
|
|
436
|
-
const
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
502
|
+
const noteHashes = this.previousKernel.end.noteHashes;
|
|
503
|
+
if (noteHashes.claimedLength > 0 && noteHashes.array[0].contractAddress.isZero()) {
|
|
504
|
+
// Already siloed.
|
|
505
|
+
return false;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
const numToSilo = noteHashes.claimedLength - this.numTransientData;
|
|
440
509
|
this.requestedDimensions.NOTE_HASH_SILOING = numToSilo;
|
|
441
510
|
|
|
442
511
|
return numToSilo > 0;
|
|
@@ -447,15 +516,14 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
447
516
|
throw new Error('`needsResetTransientData` must be run before `needsSiloNullifiers`.');
|
|
448
517
|
}
|
|
449
518
|
|
|
450
|
-
const
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
this.requestedDimensions.NULLIFIER_SILOING = cappedSize;
|
|
519
|
+
const nullifiers = this.previousKernel.end.nullifiers;
|
|
520
|
+
if (nullifiers.claimedLength > 0 && nullifiers.array[0].contractAddress.isZero()) {
|
|
521
|
+
// Already siloed.
|
|
522
|
+
return false;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
const numToSilo = nullifiers.claimedLength - this.numTransientData;
|
|
526
|
+
this.requestedDimensions.NULLIFIER_SILOING = numToSilo;
|
|
459
527
|
|
|
460
528
|
return numToSilo > 0;
|
|
461
529
|
}
|
|
@@ -466,17 +534,17 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
466
534
|
}
|
|
467
535
|
|
|
468
536
|
const privateLogs = this.previousKernel.end.privateLogs;
|
|
469
|
-
|
|
537
|
+
if (privateLogs.claimedLength > 0 && privateLogs.array[0].contractAddress.isZero()) {
|
|
538
|
+
// Already siloed.
|
|
539
|
+
return false;
|
|
540
|
+
}
|
|
470
541
|
|
|
471
|
-
const
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
.
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
.filter(l => squashedNoteHashCounters.includes(l.inner.noteHashCounter)).length;
|
|
478
|
-
|
|
479
|
-
const numToSilo = numLogs - numSquashedLogs;
|
|
542
|
+
const numSquashedLogs = countSquashedLogs(
|
|
543
|
+
this.previousKernel.end.noteHashes,
|
|
544
|
+
privateLogs,
|
|
545
|
+
this.transientDataSquashingHints.slice(0, this.numTransientData),
|
|
546
|
+
);
|
|
547
|
+
const numToSilo = privateLogs.claimedLength - numSquashedLogs;
|
|
480
548
|
this.requestedDimensions.PRIVATE_LOG_SILOING = numToSilo;
|
|
481
549
|
|
|
482
550
|
return numToSilo > 0;
|