@aztec/pxe 0.0.1-commit.b655e406 → 0.0.1-commit.b8a057fa
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.d.ts +1 -1
- package/dest/bin/check_oracle_version.js +53 -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 +51 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +254 -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 -13
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +25 -15
- package/dest/config/package_info.d.ts +1 -1
- 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_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/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 +93 -29
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +307 -97
- 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 +22 -17
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +41 -36
- 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 +13 -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 +7 -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 +16 -11
- 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 +43 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +21 -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 +50 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +14 -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 -88
- 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 +74 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -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 +14 -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 +17 -12
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +136 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.js +989 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +222 -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 -27
- 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 +92 -103
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +291 -138
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +228 -62
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +632 -129
- 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 +3 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +2 -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 +49 -13
- package/dest/entrypoints/client/lazy/index.d.ts +3 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +2 -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 +50 -14
- 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 +9 -3
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +7 -2
- 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 +57 -31
- 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 +1 -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 +48 -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 +30 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +223 -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 +55 -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/private_kernel_reset_private_inputs_builder.js +342 -0
- 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/index.d.ts +1 -1
- 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 +218 -96
- 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 +267 -134
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +498 -365
- 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/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/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 +647 -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 +57 -0
- package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
- package/dest/storage/fact_store/origin_state.js +53 -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/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 +78 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +374 -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 +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +7 -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 +69 -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 +203 -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 +72 -0
- package/package.json +33 -20
- package/src/bin/check_oracle_version.ts +62 -33
- package/src/bin/index.ts +5 -0
- package/src/bin/oracle_version_helpers.ts +311 -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 +32 -26
- 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_function_simulator/anchored_contract_data.ts +74 -0
- package/src/contract_function_simulator/benchmarked_node.ts +103 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +526 -132
- package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
- package/src/contract_function_simulator/execution_note_cache.ts +42 -33
- 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 +70 -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 +18 -11
- 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 +58 -0
- package/src/contract_function_simulator/noir-structs/resolved_tx.ts +53 -0
- package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +15 -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 -151
- package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +120 -0
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +31 -15
- package/src/contract_function_simulator/oracle/oracle_registry.ts +689 -0
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +964 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +8 -75
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +363 -189
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +974 -154
- 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 +2 -1
- package/src/entrypoints/client/bundle/utils.ts +41 -22
- package/src/entrypoints/client/lazy/index.ts +2 -1
- package/src/entrypoints/client/lazy/utils.ts +43 -24
- package/src/entrypoints/pxe_creation_options.ts +27 -3
- package/src/entrypoints/server/index.ts +9 -2
- package/src/entrypoints/server/utils.ts +55 -60
- 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 +12 -0
- package/src/hooks/resolve_custom_request.ts +24 -0
- package/src/hooks/resolve_tagging_secret_strategy.ts +57 -0
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +291 -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} +211 -147
- package/src/private_kernel/hints/test_utils.ts +318 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +358 -140
- package/src/private_kernel/private_kernel_oracle.ts +149 -39
- package/src/pxe.ts +849 -491
- 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 +18 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -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 +774 -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 +14 -0
- package/src/storage/fact_store/origin_state.ts +75 -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/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 +476 -0
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
- package/src/tagging/constants.ts +8 -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 +301 -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 +84 -0
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
- 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 -57
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/oracle.js +0 -328
- 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 -122
- 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/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/build_private_kernel_reset_private_inputs.js +0 -271
- 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 -74
- 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 -205
- 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_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 -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 -308
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
- 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 -104
- 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 -10
- 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 -35
- package/dest/synchronizer/synchronizer.d.ts.map +0 -1
- package/dest/synchronizer/synchronizer.js +0 -101
- package/dest/tagging/siloed_tag.d.ts +0 -14
- package/dest/tagging/siloed_tag.d.ts.map +0 -1
- package/dest/tagging/siloed_tag.js +0 -20
- package/dest/tagging/tag.d.ts +0 -12
- package/dest/tagging/tag.d.ts.map +0 -1
- package/dest/tagging/tag.js +0 -17
- package/dest/tagging/utils.d.ts +0 -18
- package/dest/tagging/utils.d.ts.map +0 -1
- package/dest/tagging/utils.js +0 -24
- package/src/contract_function_simulator/execution_data_provider.ts +0 -343
- package/src/contract_function_simulator/oracle/oracle.ts +0 -575
- 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 -1019
- 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 -294
- 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_dao.ts +0 -154
- package/src/storage/note_data_provider/note_data_provider.ts +0 -393
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
- package/src/storage/sync_data_provider/index.ts +0 -1
- package/src/storage/sync_data_provider/sync_data_provider.ts +0 -34
- package/src/storage/tagging_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
- package/src/synchronizer/index.ts +0 -1
- package/src/synchronizer/synchronizer.ts +0 -120
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -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 {
|
|
@@ -24,20 +24,18 @@ import {
|
|
|
24
24
|
PrivateKernelResetDimensions,
|
|
25
25
|
PrivateKernelResetHints,
|
|
26
26
|
type PrivateKernelSimulateOutput,
|
|
27
|
-
type ReadRequest,
|
|
28
27
|
ReadRequestActionEnum,
|
|
29
28
|
ReadRequestResetActions,
|
|
30
|
-
type
|
|
31
|
-
ScopedNoteHash,
|
|
32
|
-
ScopedNullifier,
|
|
33
|
-
ScopedReadRequest,
|
|
29
|
+
type ScopedKeyValidationRequestAndSeparator,
|
|
34
30
|
TransientDataSquashingHint,
|
|
35
31
|
buildNoteHashReadRequestHintsFromResetActions,
|
|
36
32
|
buildNullifierReadRequestHintsFromResetActions,
|
|
37
33
|
buildTransientDataHints,
|
|
34
|
+
countSquashedLogs,
|
|
38
35
|
findPrivateKernelResetDimensions,
|
|
39
36
|
getNoteHashReadRequestResetActions,
|
|
40
37
|
getNullifierReadRequestResetActions,
|
|
38
|
+
kernelStateIsForPublic,
|
|
41
39
|
privateKernelResetDimensionNames,
|
|
42
40
|
} from '@aztec/stdlib/kernel';
|
|
43
41
|
import { type PrivateCallExecutionResult, collectNested } from '@aztec/stdlib/tx';
|
|
@@ -45,17 +43,6 @@ import { VkData } from '@aztec/stdlib/vks';
|
|
|
45
43
|
|
|
46
44
|
import type { PrivateKernelOracle } from '../private_kernel_oracle.js';
|
|
47
45
|
|
|
48
|
-
function collectNestedReadRequests<N extends number>(
|
|
49
|
-
executionStack: PrivateCallExecutionResult[],
|
|
50
|
-
extractReadRequests: (execution: PrivateCallExecutionResult) => ClaimedLengthArray<ReadRequest, N>,
|
|
51
|
-
): ScopedReadRequest[] {
|
|
52
|
-
return collectNested(executionStack, executionResult => {
|
|
53
|
-
return extractReadRequests(executionResult)
|
|
54
|
-
.getActiveItems()
|
|
55
|
-
.map(readRequest => new ScopedReadRequest(readRequest, executionResult.publicInputs.callContext.contractAddress));
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
46
|
function getNullifierMembershipWitnessResolver(oracle: PrivateKernelOracle) {
|
|
60
47
|
return async (nullifier: Fr) => {
|
|
61
48
|
const res = await oracle.getNullifierMembershipWitness(nullifier);
|
|
@@ -71,9 +58,9 @@ function getNullifierMembershipWitnessResolver(oracle: PrivateKernelOracle) {
|
|
|
71
58
|
};
|
|
72
59
|
}
|
|
73
60
|
|
|
74
|
-
async function
|
|
61
|
+
async function getMasterSecretKeysAndKeyTypeDomainSeparators(
|
|
75
62
|
keyValidationRequests: ClaimedLengthArray<
|
|
76
|
-
|
|
63
|
+
ScopedKeyValidationRequestAndSeparator,
|
|
77
64
|
typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX
|
|
78
65
|
>,
|
|
79
66
|
numRequestsToVerify: number,
|
|
@@ -82,7 +69,7 @@ async function getMasterSecretKeysAndAppKeyGenerators(
|
|
|
82
69
|
const numRequestsToProcess = Math.min(keyValidationRequests.claimedLength, numRequestsToVerify);
|
|
83
70
|
const keysHints = await Promise.all(
|
|
84
71
|
keyValidationRequests.array.slice(0, numRequestsToProcess).map(async ({ request }) => {
|
|
85
|
-
const secretKeys = await oracle.getMasterSecretKey(request.request.
|
|
72
|
+
const secretKeys = await oracle.getMasterSecretKey(request.request.pkMHash);
|
|
86
73
|
return new KeyValidationHint(secretKeys);
|
|
87
74
|
}),
|
|
88
75
|
);
|
|
@@ -94,34 +81,34 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
94
81
|
// If there's no next iteration, it's the final reset.
|
|
95
82
|
private nextIteration?: PrivateCircuitPublicInputs;
|
|
96
83
|
|
|
97
|
-
private noteHashResetActions
|
|
98
|
-
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);
|
|
99
86
|
private numTransientData?: number;
|
|
100
|
-
private transientDataSquashingHints
|
|
101
|
-
|
|
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();
|
|
102
92
|
|
|
103
93
|
constructor(
|
|
104
94
|
private previousKernelOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>,
|
|
105
95
|
private executionStack: PrivateCallExecutionResult[],
|
|
106
96
|
private noteHashNullifierCounterMap: Map<number, number>,
|
|
107
|
-
private
|
|
97
|
+
private splitCounter: number,
|
|
108
98
|
) {
|
|
109
99
|
this.previousKernel = previousKernelOutput.publicInputs;
|
|
110
|
-
this.requestedDimensions = PrivateKernelResetDimensions.empty();
|
|
111
|
-
this.noteHashResetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
112
|
-
this.nullifierResetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
113
|
-
this.transientDataSquashingHints = makeTuple(
|
|
114
|
-
MAX_NULLIFIERS_PER_TX,
|
|
115
|
-
() => new TransientDataSquashingHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX),
|
|
116
|
-
);
|
|
117
100
|
this.nextIteration = executionStack[this.executionStack.length - 1]?.publicInputs;
|
|
118
101
|
}
|
|
119
102
|
|
|
103
|
+
getRequestedDimensions(): PrivateKernelResetDimensions {
|
|
104
|
+
return this.requestedDimensions;
|
|
105
|
+
}
|
|
106
|
+
|
|
120
107
|
needsReset(): boolean {
|
|
121
108
|
const fns: (() => boolean)[] = [
|
|
122
109
|
() => this.needsResetNoteHashReadRequests(),
|
|
123
110
|
() => this.needsResetNullifierReadRequests(),
|
|
124
|
-
() => this.
|
|
111
|
+
() => this.needsResetKeyValidationRequests(),
|
|
125
112
|
() => this.needsResetTransientData(),
|
|
126
113
|
];
|
|
127
114
|
|
|
@@ -141,35 +128,33 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
141
128
|
}
|
|
142
129
|
}
|
|
143
130
|
|
|
144
|
-
async build(oracle: PrivateKernelOracle
|
|
131
|
+
async build(oracle: PrivateKernelOracle) {
|
|
145
132
|
if (privateKernelResetDimensionNames.every(name => !this.requestedDimensions[name])) {
|
|
146
133
|
throw new Error('Reset is not required.');
|
|
147
134
|
}
|
|
148
135
|
|
|
149
136
|
const isInner = !!this.nextIteration;
|
|
150
137
|
|
|
151
|
-
// "final" reset must be done
|
|
152
|
-
// 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.
|
|
153
139
|
// The dimensions found must be big enough to reset all values, i.e. empty remainder.
|
|
154
140
|
const allowRemainder = isInner;
|
|
155
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
|
+
|
|
156
151
|
const dimensions = findPrivateKernelResetDimensions(
|
|
157
152
|
this.requestedDimensions,
|
|
158
153
|
privateKernelResetDimensionsConfig,
|
|
159
|
-
|
|
154
|
+
mode,
|
|
160
155
|
allowRemainder,
|
|
161
156
|
);
|
|
162
157
|
|
|
163
|
-
const previousVkMembershipWitness = await oracle.getVkMembershipWitness(
|
|
164
|
-
this.previousKernelOutput.verificationKey.keyAsFields,
|
|
165
|
-
);
|
|
166
|
-
const vkData = new VkData(
|
|
167
|
-
this.previousKernelOutput.verificationKey,
|
|
168
|
-
Number(previousVkMembershipWitness.leafIndex),
|
|
169
|
-
previousVkMembershipWitness.siblingPath,
|
|
170
|
-
);
|
|
171
|
-
const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, vkData);
|
|
172
|
-
|
|
173
158
|
this.reduceReadRequestActions(
|
|
174
159
|
this.noteHashResetActions,
|
|
175
160
|
dimensions.NOTE_HASH_PENDING_READ,
|
|
@@ -181,32 +166,52 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
181
166
|
dimensions.NULLIFIER_SETTLED_READ,
|
|
182
167
|
);
|
|
183
168
|
|
|
184
|
-
//
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
+
>(
|
|
192
177
|
oracle,
|
|
193
178
|
this.previousKernel.validationRequests.noteHashReadRequests,
|
|
194
179
|
this.previousKernel.end.noteHashes,
|
|
195
180
|
this.noteHashResetActions,
|
|
196
|
-
noteHashLeafIndexMap,
|
|
197
181
|
),
|
|
198
|
-
|
|
182
|
+
buildNullifierReadRequestHintsFromResetActions<
|
|
183
|
+
typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
184
|
+
typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX
|
|
185
|
+
>(
|
|
199
186
|
{ getNullifierMembershipWitness: getNullifierMembershipWitnessResolver(oracle) },
|
|
200
187
|
this.previousKernel.validationRequests.nullifierReadRequests,
|
|
201
188
|
this.nullifierResetActions,
|
|
202
189
|
),
|
|
203
|
-
|
|
204
|
-
this.previousKernel.validationRequests.
|
|
190
|
+
getMasterSecretKeysAndKeyTypeDomainSeparators(
|
|
191
|
+
this.previousKernel.validationRequests.scopedKeyValidationRequestsAndSeparators,
|
|
205
192
|
dimensions.KEY_VALIDATION,
|
|
206
193
|
oracle,
|
|
207
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,
|
|
208
214
|
this.transientDataSquashingHints,
|
|
209
|
-
this.validationRequestsSplitCounter,
|
|
210
215
|
),
|
|
211
216
|
dimensions,
|
|
212
217
|
);
|
|
@@ -239,24 +244,17 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
239
244
|
resetActions.pendingReadHints = resetActions.pendingReadHints.slice(0, maxPending);
|
|
240
245
|
}
|
|
241
246
|
|
|
242
|
-
private needsResetNoteHashReadRequests(
|
|
247
|
+
private needsResetNoteHashReadRequests(forceReset = false) {
|
|
243
248
|
const numCurr = this.previousKernel.validationRequests.noteHashReadRequests.claimedLength;
|
|
244
249
|
const numNext = this.nextIteration ? this.nextIteration.noteHashReadRequests.claimedLength : 0;
|
|
245
|
-
const maxAmountToKeep = !this.nextIteration ||
|
|
250
|
+
const maxAmountToKeep = !this.nextIteration || forceReset ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
|
|
246
251
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
247
252
|
return false;
|
|
248
253
|
}
|
|
249
254
|
|
|
250
|
-
const futureNoteHashes = collectNested(this.executionStack, executionResult => {
|
|
251
|
-
return executionResult.publicInputs.noteHashes
|
|
252
|
-
.getActiveItems()
|
|
253
|
-
.map(noteHash => new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress));
|
|
254
|
-
});
|
|
255
|
-
|
|
256
255
|
const resetActions = getNoteHashReadRequestResetActions(
|
|
257
256
|
this.previousKernel.validationRequests.noteHashReadRequests,
|
|
258
257
|
this.previousKernel.end.noteHashes,
|
|
259
|
-
futureNoteHashes,
|
|
260
258
|
);
|
|
261
259
|
|
|
262
260
|
const numPendingReads = resetActions.pendingReadHints.length;
|
|
@@ -265,53 +263,72 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
265
263
|
0,
|
|
266
264
|
);
|
|
267
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
|
+
|
|
268
287
|
if (!this.nextIteration) {
|
|
288
|
+
// If there's no next iteration, we need to reset all the read requests.
|
|
269
289
|
this.noteHashResetActions = resetActions;
|
|
270
290
|
this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
|
|
271
291
|
this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
|
|
272
292
|
} else {
|
|
273
|
-
//
|
|
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.
|
|
274
295
|
if (numPendingReads > numSettledReads) {
|
|
275
|
-
|
|
276
|
-
|
|
296
|
+
// Reset the pending read requests.
|
|
297
|
+
const pendingOnlyActions = assertLength(
|
|
277
298
|
resetActions.actions.map(action =>
|
|
278
299
|
action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
|
|
279
300
|
),
|
|
280
301
|
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
281
302
|
);
|
|
282
|
-
this.noteHashResetActions
|
|
303
|
+
this.noteHashResetActions = new ReadRequestResetActions(pendingOnlyActions, resetActions.pendingReadHints);
|
|
304
|
+
this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
|
|
283
305
|
} else {
|
|
284
|
-
|
|
285
|
-
|
|
306
|
+
// Reset the settled read requests.
|
|
307
|
+
const settledOnlyActions = assertLength(
|
|
286
308
|
resetActions.actions.map(action =>
|
|
287
309
|
action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
|
|
288
310
|
),
|
|
289
311
|
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
290
312
|
);
|
|
313
|
+
this.noteHashResetActions = new ReadRequestResetActions(settledOnlyActions, []);
|
|
314
|
+
this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
|
|
291
315
|
}
|
|
292
316
|
}
|
|
293
317
|
|
|
294
318
|
return true;
|
|
295
319
|
}
|
|
296
320
|
|
|
297
|
-
private needsResetNullifierReadRequests(
|
|
321
|
+
private needsResetNullifierReadRequests(forceReset = false) {
|
|
298
322
|
const numCurr = this.previousKernel.validationRequests.nullifierReadRequests.claimedLength;
|
|
299
323
|
const numNext = this.nextIteration ? this.nextIteration.nullifierReadRequests.claimedLength : 0;
|
|
300
|
-
const maxAmountToKeep = !this.nextIteration ||
|
|
324
|
+
const maxAmountToKeep = !this.nextIteration || forceReset ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
|
|
301
325
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
302
326
|
return false;
|
|
303
327
|
}
|
|
304
328
|
|
|
305
|
-
const futureNullifiers = collectNested(this.executionStack, executionResult => {
|
|
306
|
-
return executionResult.publicInputs.nullifiers
|
|
307
|
-
.getActiveItems()
|
|
308
|
-
.map(nullifier => new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress));
|
|
309
|
-
});
|
|
310
|
-
|
|
311
329
|
const resetActions = getNullifierReadRequestResetActions(
|
|
312
330
|
this.previousKernel.validationRequests.nullifierReadRequests,
|
|
313
331
|
this.previousKernel.end.nullifiers,
|
|
314
|
-
futureNullifiers,
|
|
315
332
|
);
|
|
316
333
|
|
|
317
334
|
const numPendingReads = resetActions.pendingReadHints.length;
|
|
@@ -320,38 +337,63 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
320
337
|
0,
|
|
321
338
|
);
|
|
322
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
|
+
|
|
323
361
|
if (!this.nextIteration) {
|
|
362
|
+
// If there's no next iteration, we need to reset all the read requests.
|
|
324
363
|
this.nullifierResetActions = resetActions;
|
|
325
364
|
this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
|
|
326
365
|
this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
|
|
327
366
|
} else {
|
|
328
|
-
//
|
|
367
|
+
// If there's a next iteration, we can only reset one dimension at a time.
|
|
329
368
|
if (numPendingReads > numSettledReads) {
|
|
330
|
-
|
|
331
|
-
|
|
369
|
+
// Reset the pending read requests.
|
|
370
|
+
const pendingOnlyActions = assertLength(
|
|
332
371
|
resetActions.actions.map(action =>
|
|
333
372
|
action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
|
|
334
373
|
),
|
|
335
374
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
336
375
|
);
|
|
337
|
-
this.nullifierResetActions
|
|
376
|
+
this.nullifierResetActions = new ReadRequestResetActions(pendingOnlyActions, resetActions.pendingReadHints);
|
|
377
|
+
this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
|
|
338
378
|
} else {
|
|
339
|
-
|
|
340
|
-
|
|
379
|
+
// Reset the settled read requests.
|
|
380
|
+
const settledOnlyActions = assertLength(
|
|
341
381
|
resetActions.actions.map(action =>
|
|
342
382
|
action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
|
|
343
383
|
),
|
|
344
384
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
345
385
|
);
|
|
386
|
+
this.nullifierResetActions = new ReadRequestResetActions(settledOnlyActions, []);
|
|
387
|
+
this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
|
|
346
388
|
}
|
|
347
389
|
}
|
|
348
390
|
|
|
349
391
|
return true;
|
|
350
392
|
}
|
|
351
393
|
|
|
352
|
-
private
|
|
353
|
-
const numCurr = this.previousKernel.validationRequests.
|
|
354
|
-
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;
|
|
355
397
|
const maxAmountToKeep = !this.nextIteration ? 0 : MAX_KEY_VALIDATION_REQUESTS_PER_TX;
|
|
356
398
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
357
399
|
return false;
|
|
@@ -363,9 +405,6 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
363
405
|
}
|
|
364
406
|
|
|
365
407
|
private needsResetTransientData() {
|
|
366
|
-
// Initialize this to 0 so that needsSilo can be run.
|
|
367
|
-
this.numTransientData = 0;
|
|
368
|
-
|
|
369
408
|
const nextAccumNoteHashes =
|
|
370
409
|
this.previousKernel.end.noteHashes.claimedLength + (this.nextIteration?.noteHashes.claimedLength ?? 0);
|
|
371
410
|
const noteHashWillOverflow = nextAccumNoteHashes > MAX_NOTE_HASHES_PER_TX;
|
|
@@ -380,19 +419,19 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
380
419
|
return false;
|
|
381
420
|
}
|
|
382
421
|
|
|
383
|
-
const futureNoteHashReads =
|
|
384
|
-
|
|
385
|
-
executionResult => executionResult.publicInputs.noteHashReadRequests,
|
|
422
|
+
const futureNoteHashReads = collectNested(this.executionStack, executionResult =>
|
|
423
|
+
executionResult.publicInputs.noteHashReadRequests.getActiveItems(),
|
|
386
424
|
);
|
|
387
|
-
const futureNullifierReads =
|
|
388
|
-
|
|
389
|
-
|
|
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(),
|
|
390
430
|
);
|
|
391
|
-
// TODO(#15902): Collect future logs and only allow squashing a note hash when all its logs have been emitted
|
|
392
|
-
// (i.e. none of the future logs are linked to the to-be-squashed note hashes).
|
|
393
431
|
if (this.nextIteration) {
|
|
394
|
-
// If it's not the final reset, only one dimension will be reset at a time.
|
|
395
|
-
//
|
|
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.
|
|
396
435
|
futureNoteHashReads.push(...this.previousKernel.validationRequests.noteHashReadRequests.getActiveItems());
|
|
397
436
|
futureNullifierReads.push(...this.previousKernel.validationRequests.nullifierReadRequests.getActiveItems());
|
|
398
437
|
}
|
|
@@ -402,27 +441,50 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
402
441
|
this.previousKernel.end.nullifiers,
|
|
403
442
|
futureNoteHashReads,
|
|
404
443
|
futureNullifierReads,
|
|
444
|
+
futureLogs,
|
|
405
445
|
this.noteHashNullifierCounterMap,
|
|
406
|
-
this.
|
|
446
|
+
this.splitCounter,
|
|
407
447
|
);
|
|
408
448
|
|
|
409
|
-
if (this.nextIteration
|
|
410
|
-
const
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
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.');
|
|
422
487
|
}
|
|
423
|
-
// Clearing the read requests might not be enough to squash the overflown data.
|
|
424
|
-
// In this case, the next iteration will fail at the above check.
|
|
425
|
-
return true;
|
|
426
488
|
}
|
|
427
489
|
|
|
428
490
|
this.numTransientData = numTransientData;
|
|
@@ -437,10 +499,13 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
437
499
|
throw new Error('`needsResetTransientData` must be run before `needsSiloNoteHashes`.');
|
|
438
500
|
}
|
|
439
501
|
|
|
440
|
-
const
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
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;
|
|
444
509
|
this.requestedDimensions.NOTE_HASH_SILOING = numToSilo;
|
|
445
510
|
|
|
446
511
|
return numToSilo > 0;
|
|
@@ -451,15 +516,14 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
451
516
|
throw new Error('`needsResetTransientData` must be run before `needsSiloNullifiers`.');
|
|
452
517
|
}
|
|
453
518
|
|
|
454
|
-
const
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
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;
|
|
463
527
|
|
|
464
528
|
return numToSilo > 0;
|
|
465
529
|
}
|
|
@@ -470,17 +534,17 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
470
534
|
}
|
|
471
535
|
|
|
472
536
|
const privateLogs = this.previousKernel.end.privateLogs;
|
|
473
|
-
|
|
537
|
+
if (privateLogs.claimedLength > 0 && privateLogs.array[0].contractAddress.isZero()) {
|
|
538
|
+
// Already siloed.
|
|
539
|
+
return false;
|
|
540
|
+
}
|
|
474
541
|
|
|
475
|
-
const
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
.
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
.filter(l => squashedNoteHashCounters.includes(l.inner.noteHashCounter)).length;
|
|
482
|
-
|
|
483
|
-
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;
|
|
484
548
|
this.requestedDimensions.PRIVATE_LOG_SILOING = numToSilo;
|
|
485
549
|
|
|
486
550
|
return numToSilo > 0;
|