@aztec/pxe 0.0.1-commit.993d240 → 0.0.1-commit.9a89641
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 +2 -12
- package/dest/bin/check_oracle_version.d.ts.map +1 -1
- package/dest/bin/check_oracle_version.js +9 -122
- package/dest/bin/index.d.ts +2 -2
- package/dest/bin/index.d.ts.map +1 -1
- package/dest/bin/index.js +1 -1
- package/dest/bin/oracle_version_helpers.d.ts +20 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +25 -0
- package/dest/block_synchronizer/block_stream_source.d.ts +5 -5
- package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -1
- package/dest/block_synchronizer/block_stream_source.js +4 -29
- package/dest/block_synchronizer/block_synchronizer.d.ts +17 -15
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +41 -18
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/package_info.js +1 -1
- package/dest/contract/contract_class_service.d.ts +24 -0
- package/dest/contract/contract_class_service.d.ts.map +1 -0
- package/dest/contract/contract_class_service.js +36 -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_sync → contract}/contract_sync_service.js +26 -45
- 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/contract_function_simulator.d.ts +19 -25
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +63 -49
- package/dest/contract_function_simulator/execution_note_cache.d.ts +4 -10
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +8 -28
- package/dest/contract_function_simulator/index.d.ts +24 -6
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +9 -4
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +8 -27
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/bounded_vec.js +8 -23
- 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 +3 -2
- 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 +2 -2
- 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 +11 -12
- 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 +6 -49
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +10 -8
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -60
- 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 +3 -2
- 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 +3 -3
- package/dest/contract_function_simulator/noir-structs/option.d.ts +9 -11
- package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/option.js +18 -13
- 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 +6 -11
- 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 -20
- 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 -114
- 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 +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/oracle_registry.d.ts +92 -100
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_registry.js +296 -479
- 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 +1253 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +2 -3
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +32 -21
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +152 -49
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +97 -37
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +376 -138
- 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/debug/pxe_debug_utils.d.ts +2 -2
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.d.ts +2 -1
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +1 -0
- package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +17 -6
- package/dest/entrypoints/client/lazy/index.d.ts +2 -1
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +1 -0
- package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +17 -6
- 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 +9 -3
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +6 -3
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +4 -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 +1 -1
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +16 -4
- package/dest/error_enriching.d.ts +5 -3
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +13 -11
- package/dest/events/event_service.d.ts +13 -6
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +13 -13
- package/dest/hooks/execution_hooks.d.ts +31 -11
- package/dest/hooks/execution_hooks.d.ts.map +1 -1
- package/dest/hooks/execution_hooks.js +3 -3
- package/dest/hooks/index.d.ts +4 -3
- package/dest/hooks/index.d.ts.map +1 -1
- 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 +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/logs/log_service.d.ts +18 -8
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +93 -45
- package/dest/messages/tx_resolver_service.d.ts +28 -0
- package/dest/messages/tx_resolver_service.d.ts.map +1 -0
- package/dest/messages/tx_resolver_service.js +61 -0
- package/dest/node/benchmarked_node.d.ts +20 -0
- package/dest/node/benchmarked_node.d.ts.map +1 -0
- package/dest/node/benchmarked_node.js +94 -0
- package/dest/node/caching_aztec_node.d.ts +24 -0
- package/dest/node/caching_aztec_node.d.ts.map +1 -0
- package/dest/node/caching_aztec_node.js +267 -0
- package/dest/notes/note_service.d.ts +13 -7
- package/dest/notes/note_service.d.ts.map +1 -1
- package/dest/notes/note_service.js +10 -10
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.js +8 -8
- package/dest/private_kernel/batch_planner.d.ts +1 -1
- package/dest/private_kernel/batch_planner.d.ts.map +1 -1
- package/dest/private_kernel/batch_planner.js +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +6 -2
- package/dest/private_kernel/hints/test_utils.js +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +61 -40
- package/dest/private_kernel/private_kernel_oracle.d.ts +4 -2
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +17 -5
- package/dest/pxe.d.ts +114 -48
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +251 -148
- 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 +9 -6
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
- package/dest/storage/anchor_block_store/anchor_block_store.js +8 -6
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +1 -1
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -1
- package/dest/storage/backwards_compatibility_tests/schema_tests.js +129 -49
- package/dest/storage/capsule_store/capsule_service.d.ts +1 -1
- package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
- package/dest/storage/capsule_store/capsule_service.js +6 -9
- package/dest/storage/contract_store/contract_store.d.ts +27 -24
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
- package/dest/storage/contract_store/contract_store.js +66 -77
- 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 +3 -2
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +2 -1
- 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/note_store.d.ts +42 -33
- package/dest/storage/note_store/note_store.d.ts.map +1 -1
- package/dest/storage/note_store/note_store.js +197 -168
- package/dest/storage/note_store/stored_note.d.ts +3 -8
- package/dest/storage/note_store/stored_note.d.ts.map +1 -1
- package/dest/storage/note_store/stored_note.js +4 -20
- package/dest/storage/open_pxe_stores.d.ts +5 -3
- package/dest/storage/open_pxe_stores.d.ts.map +1 -1
- package/dest/storage/open_pxe_stores.js +5 -3
- package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
- package/dest/storage/private_event_store/private_event_store.js +40 -43
- 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 +2 -2
- package/dest/storage/tagging_store/index.d.ts.map +1 -1
- package/dest/storage/tagging_store/index.js +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +41 -10
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +81 -29
- 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 +11 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +38 -10
- package/dest/tagging/get_all_logs_by_tags.d.ts +29 -8
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
- package/dest/tagging/get_all_logs_by_tags.js +29 -10
- package/dest/tagging/index.d.ts +3 -3
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +2 -2
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +27 -9
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +104 -33
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +6 -3
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +23 -36
- package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
- package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/classify_pending_txs.js +61 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +15 -5
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +36 -35
- package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
- package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +41 -0
- package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
- package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/test_utils.js +24 -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 +17 -17
- package/src/bin/check_oracle_version.ts +8 -151
- package/src/bin/index.ts +1 -1
- package/src/bin/oracle_version_helpers.ts +30 -0
- package/src/block_synchronizer/block_stream_source.ts +6 -45
- package/src/block_synchronizer/block_synchronizer.ts +54 -30
- package/src/config/index.ts +1 -0
- package/src/config/package_info.ts +1 -1
- package/src/contract/contract_class_service.ts +45 -0
- package/src/{contract_sync → contract}/contract_sync_service.ts +37 -50
- 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/contract_function_simulator.ts +96 -59
- package/src/contract_function_simulator/execution_note_cache.ts +8 -29
- package/src/contract_function_simulator/index.ts +87 -5
- package/src/contract_function_simulator/noir-structs/bounded_vec.ts +12 -24
- 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 +3 -3
- 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 +20 -46
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +13 -60
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +4 -4
- package/src/contract_function_simulator/noir-structs/option.ts +17 -11
- 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 +5 -17
- 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 -189
- 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/oracle_registry.ts +289 -483
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1067 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +2 -3
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +190 -61
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +556 -174
- package/src/contract_function_simulator/transient_array_service.ts +91 -0
- package/src/debug/pxe_debug_utils.ts +1 -1
- package/src/entrypoints/client/bundle/index.ts +1 -0
- package/src/entrypoints/client/bundle/utils.ts +24 -5
- package/src/entrypoints/client/lazy/index.ts +1 -0
- package/src/entrypoints/client/lazy/utils.ts +24 -5
- package/src/entrypoints/client/store.ts +54 -0
- package/src/entrypoints/pxe_creation_options.ts +8 -2
- package/src/entrypoints/server/index.ts +6 -2
- package/src/entrypoints/server/store.ts +47 -0
- package/src/entrypoints/server/utils.ts +31 -9
- package/src/error_enriching.ts +27 -11
- package/src/events/event_service.ts +24 -14
- package/src/hooks/execution_hooks.ts +32 -12
- package/src/hooks/index.ts +8 -2
- package/src/hooks/resolve_custom_request.ts +24 -0
- package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
- package/src/logs/log_service.ts +122 -61
- package/src/messages/tx_resolver_service.ts +80 -0
- package/src/node/benchmarked_node.ts +140 -0
- package/src/node/caching_aztec_node.ts +406 -0
- package/src/notes/note_service.ts +20 -14
- package/src/oracle_version.ts +8 -8
- package/src/private_kernel/batch_planner.ts +0 -1
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +11 -1
- package/src/private_kernel/hints/test_utils.ts +1 -1
- package/src/private_kernel/private_kernel_execution_prover.ts +112 -56
- package/src/private_kernel/private_kernel_oracle.ts +23 -4
- package/src/pxe.ts +357 -172
- package/src/storage/allowed_scopes.ts +14 -0
- package/src/storage/anchor_block_store/anchor_block_store.ts +8 -6
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +6 -6
- package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +1 -1
- package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +12 -12
- package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +9 -15
- package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +24 -4
- package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +11 -3
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +12 -4
- package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +29 -9
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +141 -50
- package/src/storage/capsule_store/capsule_service.ts +8 -13
- package/src/storage/contract_store/contract_store.ts +88 -94
- 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 +2 -1
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/note_store.ts +226 -187
- package/src/storage/note_store/stored_note.ts +5 -27
- package/src/storage/open_pxe_stores.ts +6 -3
- package/src/storage/private_event_store/private_event_store.ts +49 -55
- package/src/storage/store_identity.ts +72 -0
- package/src/storage/tagging_store/index.ts +1 -1
- package/src/storage/tagging_store/sender_tagging_store.ts +113 -41
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
- package/src/tagging/constants.ts +42 -10
- package/src/tagging/get_all_logs_by_tags.ts +47 -11
- package/src/tagging/index.ts +7 -2
- package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +161 -46
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +27 -57
- package/src/tagging/sender_sync/utils/classify_pending_txs.ts +91 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +46 -40
- package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +64 -0
- package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
- package/src/tagging/testing/tag_query_test_utils.ts +11 -0
- package/dest/contract_function_simulator/benchmarked_node.d.ts +0 -9
- package/dest/contract_function_simulator/benchmarked_node.d.ts.map +0 -1
- package/dest/contract_function_simulator/benchmarked_node.js +0 -77
- package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -89
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/oracle.js +0 -552
- 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 -51
- package/dest/contract_sync/contract_sync_service.d.ts +0 -42
- package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
- package/dest/contract_sync/helpers.d.ts +0 -27
- package/dest/contract_sync/helpers.d.ts.map +0 -1
- package/dest/contract_sync/helpers.js +0 -53
- package/dest/messages/message_context_service.d.ts +0 -17
- package/dest/messages/message_context_service.d.ts.map +0 -1
- package/dest/messages/message_context_service.js +0 -38
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
- package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +0 -17
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +0 -1
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +0 -60
- package/src/contract_function_simulator/benchmarked_node.ts +0 -103
- package/src/contract_function_simulator/oracle/oracle.ts +0 -711
- package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -60
- package/src/contract_sync/helpers.ts +0 -86
- package/src/messages/message_context_service.ts +0 -45
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +0 -16
- package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +0 -66
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CircuitKind } from '@aztec/bb.js';
|
|
2
|
+
import { AVM_EMITNOTEHASH_BASE_L2_GAS, AVM_EMITNULLIFIER_BASE_L2_GAS, AVM_SENDL2TOL1MSG_BASE_L2_GAS, DA_GAS_PER_FIELD, FIXED_AVM_STARTUP_L2_GAS, L2_GAS_PER_CONTRACT_CLASS_LOG, L2_GAS_PER_L2_TO_L1_MSG, L2_GAS_PER_NOTE_HASH, L2_GAS_PER_NULLIFIER, L2_GAS_PER_PRIVATE_LOG, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_TX_LIFETIME, PRIVATE_TX_L2_GAS_OVERHEAD, PUBLIC_DATA_WRITE_LENGTH, PUBLIC_TX_L2_GAS_OVERHEAD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
|
|
2
3
|
import { arrayNonEmptyLength, padArrayEnd } from '@aztec/foundation/collection';
|
|
3
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -17,18 +18,23 @@ import { ChonkProof } from '@aztec/stdlib/proofs';
|
|
|
17
18
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
18
19
|
import { CallContext, HashedValues, PrivateExecutionResult, TxConstantData, collectNested, collectNoteHashNullifierCounterMap, getFinalMinRevertibleSideEffectCounter } from '@aztec/stdlib/tx';
|
|
19
20
|
import { CapsuleService } from '../storage/capsule_store/capsule_service.js';
|
|
21
|
+
import { FactService } from '../storage/fact_store/index.js';
|
|
22
|
+
import { AnchoredContractData } from './anchored_contract_data.js';
|
|
20
23
|
import { ExecutionNoteCache } from './execution_note_cache.js';
|
|
21
24
|
import { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
|
|
22
25
|
import { HashedValuesCache } from './hashed_values_cache.js';
|
|
23
|
-
import {
|
|
26
|
+
import { buildACIRCallback } from './oracle/acir_callback.js';
|
|
24
27
|
import { executePrivateFunction } from './oracle/private_execution.js';
|
|
25
28
|
import { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
|
|
26
29
|
import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
30
|
+
import { TransientArrayService } from './transient_array_service.js';
|
|
27
31
|
/**
|
|
28
32
|
* The contract function simulator.
|
|
29
33
|
*/ export class ContractFunctionSimulator {
|
|
30
34
|
log;
|
|
31
35
|
contractStore;
|
|
36
|
+
contractClassService;
|
|
37
|
+
overrides;
|
|
32
38
|
noteStore;
|
|
33
39
|
keyStore;
|
|
34
40
|
addressStore;
|
|
@@ -36,15 +42,18 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
36
42
|
l2TipsStore;
|
|
37
43
|
senderTaggingStore;
|
|
38
44
|
recipientTaggingStore;
|
|
39
|
-
|
|
45
|
+
taggingSecretSourcesStore;
|
|
40
46
|
capsuleStore;
|
|
47
|
+
factStore;
|
|
41
48
|
privateEventStore;
|
|
42
49
|
simulator;
|
|
43
50
|
contractSyncService;
|
|
44
|
-
|
|
51
|
+
txResolver;
|
|
45
52
|
hooks;
|
|
46
53
|
constructor(args){
|
|
47
54
|
this.contractStore = args.contractStore;
|
|
55
|
+
this.contractClassService = args.contractClassService;
|
|
56
|
+
this.overrides = args.overrides;
|
|
48
57
|
this.noteStore = args.noteStore;
|
|
49
58
|
this.keyStore = args.keyStore;
|
|
50
59
|
this.addressStore = args.addressStore;
|
|
@@ -52,36 +61,44 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
52
61
|
this.l2TipsStore = args.l2TipsStore;
|
|
53
62
|
this.senderTaggingStore = args.senderTaggingStore;
|
|
54
63
|
this.recipientTaggingStore = args.recipientTaggingStore;
|
|
55
|
-
this.
|
|
64
|
+
this.taggingSecretSourcesStore = args.taggingSecretSourcesStore;
|
|
56
65
|
this.capsuleStore = args.capsuleStore;
|
|
66
|
+
this.factStore = args.factStore;
|
|
57
67
|
this.privateEventStore = args.privateEventStore;
|
|
58
68
|
this.simulator = args.simulator;
|
|
59
69
|
this.contractSyncService = args.contractSyncService;
|
|
60
|
-
this.
|
|
70
|
+
this.txResolver = args.txResolver;
|
|
61
71
|
this.hooks = args.hooks;
|
|
62
72
|
this.log = createLogger('simulator');
|
|
63
73
|
}
|
|
64
74
|
/**
|
|
65
75
|
* Runs a private function.
|
|
66
76
|
* @param request - The transaction request.
|
|
67
|
-
*/ async run(request, {
|
|
77
|
+
*/ async run(request, { msgSender = AztecAddress.NULL_MSG_SENDER, anchorBlockHeader, senderForTags, scopes, jobId }) {
|
|
68
78
|
const simulatorSetupTimer = new Timer();
|
|
69
|
-
const
|
|
79
|
+
const contractAddress = request.origin;
|
|
80
|
+
const anchoredContractData = new AnchoredContractData(this.contractStore, this.contractClassService, anchorBlockHeader, this.overrides);
|
|
81
|
+
const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(contractAddress, request.functionSelector);
|
|
82
|
+
if (!entryPointArtifact) {
|
|
83
|
+
throw new Error(`Cannot run function ${request.functionSelector} on ${contractAddress}: the contract is not registered. ` + `Register it via wallet.registerContract(...).`);
|
|
84
|
+
}
|
|
70
85
|
if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
|
|
71
86
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
|
|
72
87
|
}
|
|
73
|
-
if (request.origin !== contractAddress) {
|
|
74
|
-
throw new Error(`Request origin does not match contract address in simulation. Request origin: ${request.origin}, contract address: ${contractAddress}`);
|
|
75
|
-
}
|
|
76
88
|
// reserve the first side effect for the tx hash (inserted by the private kernel)
|
|
77
89
|
const startSideEffectCounter = 2;
|
|
78
90
|
const callContext = new CallContext(msgSender, contractAddress, await FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), entryPointArtifact.isStatic);
|
|
79
91
|
const protocolNullifier = await computeProtocolNullifier(await request.toTxRequest().hash());
|
|
80
92
|
const noteCache = new ExecutionNoteCache(protocolNullifier);
|
|
81
93
|
const taggingIndexCache = new ExecutionTaggingIndexCache();
|
|
94
|
+
// One shared transient store for the whole execution tree rooted at this transaction. Threaded into every child
|
|
95
|
+
// private oracle and inherited by nested utility frames, so that frames of the same contract see each other's
|
|
96
|
+
// transient arrays, then discarded when run() returns.
|
|
97
|
+
const transientArrayService = new TransientArrayService();
|
|
82
98
|
const privateExecutionOracle = new PrivateExecutionOracle({
|
|
83
99
|
argsHash: request.firstCallArgsHash,
|
|
84
100
|
txContext: request.txContext,
|
|
101
|
+
txRequestSalt: request.salt,
|
|
85
102
|
callContext,
|
|
86
103
|
anchorBlockHeader,
|
|
87
104
|
utilityExecutor: async (call, execScopes)=>{
|
|
@@ -92,17 +109,18 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
92
109
|
executionCache: HashedValuesCache.create(request.argsOfCalls),
|
|
93
110
|
noteCache,
|
|
94
111
|
taggingIndexCache,
|
|
95
|
-
|
|
112
|
+
anchoredContractData,
|
|
96
113
|
noteStore: this.noteStore,
|
|
97
114
|
keyStore: this.keyStore,
|
|
98
115
|
addressStore: this.addressStore,
|
|
99
116
|
aztecNode: this.aztecNode,
|
|
100
117
|
senderTaggingStore: this.senderTaggingStore,
|
|
101
118
|
recipientTaggingStore: this.recipientTaggingStore,
|
|
102
|
-
|
|
119
|
+
taggingSecretSourcesStore: this.taggingSecretSourcesStore,
|
|
103
120
|
capsuleService: new CapsuleService(this.capsuleStore, scopes),
|
|
121
|
+
factService: new FactService(this.factStore, scopes),
|
|
104
122
|
privateEventStore: this.privateEventStore,
|
|
105
|
-
|
|
123
|
+
txResolver: this.txResolver,
|
|
106
124
|
contractSyncService: this.contractSyncService,
|
|
107
125
|
jobId,
|
|
108
126
|
totalPublicCalldataCount: 0,
|
|
@@ -111,7 +129,8 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
111
129
|
senderForTags,
|
|
112
130
|
simulator: this.simulator,
|
|
113
131
|
l2TipsStore: this.l2TipsStore,
|
|
114
|
-
hooks: this.hooks
|
|
132
|
+
hooks: this.hooks,
|
|
133
|
+
transientArrayService
|
|
115
134
|
});
|
|
116
135
|
const setupTime = simulatorSetupTimer.ms();
|
|
117
136
|
try {
|
|
@@ -121,7 +140,6 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
121
140
|
// within executionResult.nestedExecutionResults).
|
|
122
141
|
const executionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, entryPointArtifact, contractAddress, request.functionSelector);
|
|
123
142
|
const simulatorTeardownTimer = new Timer();
|
|
124
|
-
noteCache.finish();
|
|
125
143
|
const firstNullifierHint = noteCache.getNonceGenerator();
|
|
126
144
|
const publicCallRequests = collectNested([
|
|
127
145
|
executionResult
|
|
@@ -148,13 +166,13 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
148
166
|
/**
|
|
149
167
|
* Runs a utility function.
|
|
150
168
|
* @param call - The function call to execute.
|
|
151
|
-
* @param authwits - Authentication witnesses required for the function call.
|
|
152
|
-
* @param anchorBlockHeader - The block header to use as base state for this run.
|
|
153
|
-
* @param scopes - Optional array of account addresses whose notes can be accessed in this call. Defaults to all
|
|
154
|
-
* accounts if not specified.
|
|
155
169
|
* @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
|
|
156
170
|
*/ async runUtility(call, authwits, anchorBlockHeader, scopes, jobId) {
|
|
157
|
-
const
|
|
171
|
+
const anchoredContractData = new AnchoredContractData(this.contractStore, this.contractClassService, anchorBlockHeader, this.overrides);
|
|
172
|
+
const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
|
|
173
|
+
if (!entryPointArtifact) {
|
|
174
|
+
throw new Error(`Cannot run function ${call.selector} on ${call.to}: the contract is not registered. ` + `Register it via wallet.registerContract(...).`);
|
|
175
|
+
}
|
|
158
176
|
if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
|
|
159
177
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
|
|
160
178
|
}
|
|
@@ -162,27 +180,35 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
162
180
|
await this.runUtility(syncCall, [], anchorBlockHeader, execScopes, jobId);
|
|
163
181
|
};
|
|
164
182
|
const oracle = new UtilityExecutionOracle({
|
|
165
|
-
|
|
183
|
+
callContext: CallContext.from({
|
|
184
|
+
msgSender: AztecAddress.NULL_MSG_SENDER,
|
|
185
|
+
contractAddress: call.to,
|
|
186
|
+
functionSelector: call.selector,
|
|
187
|
+
isStaticCall: true
|
|
188
|
+
}),
|
|
166
189
|
authWitnesses: authwits,
|
|
167
190
|
capsules: [],
|
|
168
191
|
anchorBlockHeader,
|
|
169
|
-
|
|
192
|
+
anchoredContractData,
|
|
170
193
|
noteStore: this.noteStore,
|
|
171
194
|
keyStore: this.keyStore,
|
|
172
195
|
addressStore: this.addressStore,
|
|
173
196
|
aztecNode: this.aztecNode,
|
|
174
197
|
recipientTaggingStore: this.recipientTaggingStore,
|
|
175
|
-
|
|
198
|
+
taggingSecretSourcesStore: this.taggingSecretSourcesStore,
|
|
176
199
|
capsuleService: new CapsuleService(this.capsuleStore, scopes),
|
|
200
|
+
factService: new FactService(this.factStore, scopes),
|
|
177
201
|
privateEventStore: this.privateEventStore,
|
|
178
|
-
|
|
202
|
+
txResolver: this.txResolver,
|
|
179
203
|
contractSyncService: this.contractSyncService,
|
|
180
204
|
l2TipsStore: this.l2TipsStore,
|
|
181
205
|
jobId,
|
|
182
206
|
scopes,
|
|
183
207
|
simulator: this.simulator,
|
|
184
208
|
hooks: this.hooks,
|
|
185
|
-
utilityExecutor
|
|
209
|
+
utilityExecutor,
|
|
210
|
+
// Execution-tree root (top-level utility run or contract sync): own store; nested frames inherit it.
|
|
211
|
+
transientArrayService: new TransientArrayService()
|
|
186
212
|
});
|
|
187
213
|
try {
|
|
188
214
|
this.log.verbose(`Executing utility function ${entryPointArtifact.name}`, {
|
|
@@ -190,7 +216,7 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
190
216
|
selector: call.selector
|
|
191
217
|
});
|
|
192
218
|
const initialWitness = toACVMWitness(0, call.args);
|
|
193
|
-
const acirExecutionResult = await this.simulator.executeUserCircuit(initialWitness, entryPointArtifact,
|
|
219
|
+
const acirExecutionResult = await this.simulator.executeUserCircuit(initialWitness, entryPointArtifact, buildACIRCallback(oracle)).catch((err)=>{
|
|
194
220
|
err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
|
|
195
221
|
throw new ExecutionError(err.message, {
|
|
196
222
|
contractAddress: call.to,
|
|
@@ -208,23 +234,6 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
208
234
|
throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
|
|
209
235
|
}
|
|
210
236
|
}
|
|
211
|
-
/**
|
|
212
|
-
* Returns the execution statistics collected during the simulator run.
|
|
213
|
-
* @returns The execution statistics.
|
|
214
|
-
*/ getStats() {
|
|
215
|
-
const nodeRPCCalls = typeof this.aztecNode.getStats === 'function' ? this.aztecNode.getStats() : {
|
|
216
|
-
perMethod: {},
|
|
217
|
-
roundTrips: {
|
|
218
|
-
roundTrips: 0,
|
|
219
|
-
totalBlockingTime: 0,
|
|
220
|
-
roundTripDurations: [],
|
|
221
|
-
roundTripMethods: []
|
|
222
|
-
}
|
|
223
|
-
};
|
|
224
|
-
return {
|
|
225
|
-
nodeRPCCalls
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
237
|
}
|
|
229
238
|
class OrderedSideEffect {
|
|
230
239
|
sideEffect;
|
|
@@ -302,6 +311,7 @@ class OrderedSideEffect {
|
|
|
302
311
|
witgen: 0,
|
|
303
312
|
oracles: {}
|
|
304
313
|
},
|
|
314
|
+
kind: CircuitKind.App,
|
|
305
315
|
bytecode: execution.acir,
|
|
306
316
|
vk: execution.vk,
|
|
307
317
|
witness: execution.partialWitness
|
|
@@ -324,12 +334,12 @@ class OrderedSideEffect {
|
|
|
324
334
|
const getEffect = (orderedSideEffect)=>orderedSideEffect.sideEffect;
|
|
325
335
|
const isPrivateOnlyTx = privateExecutionResult.publicFunctionCalldata.length === 0;
|
|
326
336
|
const [nonRevertibleNullifiers, revertibleNullifiers] = splitOrderedSideEffects(siloedNullifiers, minRevertibleSideEffectCounter);
|
|
337
|
+
// The protocol nullifier is the nonce generator and the tx's first nullifier. It is injected by the
|
|
338
|
+
// init kernel (at counter 1, index 0) rather than emitted by any private call, so it is absent from
|
|
339
|
+
// the executed nullifiers above. Mirror the kernel here by prepending it as the first non-revertible
|
|
340
|
+
// nullifier.
|
|
327
341
|
const nonceGenerator = privateExecutionResult.firstNullifier;
|
|
328
|
-
|
|
329
|
-
nonRevertibleNullifiers.push(nonceGenerator);
|
|
330
|
-
} else if (!nonRevertibleNullifiers[0].equals(nonceGenerator)) {
|
|
331
|
-
throw new Error('The first non revertible nullifier should be equal to the nonce generator. This is a bug!');
|
|
332
|
-
}
|
|
342
|
+
nonRevertibleNullifiers.unshift(nonceGenerator);
|
|
333
343
|
if (isPrivateOnlyTx) {
|
|
334
344
|
// We must make the note hashes unique by using the
|
|
335
345
|
// nonce generator and their index in the tx.
|
|
@@ -467,6 +477,10 @@ function meterGasUsed(data, isPrivateOnlyTx) {
|
|
|
467
477
|
// Every contract class log emits its contract address as an additional field
|
|
468
478
|
meteredDAFields += data.contractClassLogsHashes.reduce((acc, log)=>!log.isEmpty() ? acc + log.logHash.length + 1 : acc, 0);
|
|
469
479
|
meteredL2Gas += numContractClassLogs * L2_GAS_PER_CONTRACT_CLASS_LOG;
|
|
480
|
+
if (isPrivateOnlyTx) {
|
|
481
|
+
// The public data write that the private tx base rollup always performs to update the fee payer's balance.
|
|
482
|
+
meteredDAFields += PUBLIC_DATA_WRITE_LENGTH;
|
|
483
|
+
}
|
|
470
484
|
const meteredDAGas = meteredDAFields * DA_GAS_PER_FIELD;
|
|
471
485
|
if (data.publicCallRequests) {
|
|
472
486
|
const dataForPublic = data;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
-
import type { NoteData } from './
|
|
3
|
+
import type { NoteData } from './noir-structs/note_data.js';
|
|
4
4
|
interface PendingNote {
|
|
5
5
|
note: NoteData;
|
|
6
6
|
counter: number;
|
|
@@ -36,11 +36,6 @@ export declare class ExecutionNoteCache {
|
|
|
36
36
|
*/
|
|
37
37
|
private minRevertibleSideEffectCounter;
|
|
38
38
|
private inRevertiblePhase;
|
|
39
|
-
/**
|
|
40
|
-
* Whether the protocol nullifier was used for nonce generation.
|
|
41
|
-
* We don't need to use the protocol nullifier if a non-revertible nullifier is emitted.
|
|
42
|
-
*/
|
|
43
|
-
private usedProtocolNullifierForNonces;
|
|
44
39
|
constructor(protocolNullifier: Fr);
|
|
45
40
|
/**
|
|
46
41
|
* Enters the revertible phase of the transaction.
|
|
@@ -48,7 +43,6 @@ export declare class ExecutionNoteCache {
|
|
|
48
43
|
*/
|
|
49
44
|
setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
|
|
50
45
|
isSideEffectCounterRevertible(sideEffectCounter: number): boolean;
|
|
51
|
-
finish(): void;
|
|
52
46
|
/**
|
|
53
47
|
* Add a new note to cache.
|
|
54
48
|
* @param note - New note created during execution.
|
|
@@ -94,11 +88,11 @@ export declare class ExecutionNoteCache {
|
|
|
94
88
|
*/
|
|
95
89
|
getEmittedNullifiers(): Fr[];
|
|
96
90
|
/**
|
|
97
|
-
* @returns All nullifiers
|
|
98
|
-
*
|
|
91
|
+
* @returns All nullifiers of the transaction: the protocol nullifier (the kernel-injected first nullifier),
|
|
92
|
+
* followed by those emitted by private calls.
|
|
99
93
|
*/
|
|
100
94
|
getAllNullifiers(): Fr[];
|
|
101
95
|
getNonceGenerator(): Fr;
|
|
102
96
|
}
|
|
103
97
|
export {};
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX25vdGVfY2FjaGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3IvZXhlY3V0aW9uX25vdGVfY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2hFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTVELFVBQVUsV0FBVztJQUNuQixJQUFJLEVBQUUsUUFBUSxDQUFDO0lBQ2YsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixzQkFBc0IsRUFBRSxFQUFFLENBQUM7Q0FDNUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGtCQUFrQjs7SUE4QmpCLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCO0lBN0I5Qzs7O09BR0c7SUFDSCxPQUFPLENBQUMsS0FBSyxDQUFxQjtJQUNsQzs7T0FFRztJQUNILE9BQU8sQ0FBQyxPQUFPLENBQXlDO0lBRXhEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsWUFBWSxDQUF1QztJQUUzRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxpQkFBaUIsQ0FBMEI7SUFFbkQ7O09BRUc7SUFDSCxPQUFPLENBQUMsOEJBQThCLENBQUs7SUFFM0MsT0FBTyxDQUFDLGlCQUFpQixDQUFTO0lBRWxDLFlBQTZCLGlCQUFpQixFQUFFLEVBQUUsRUFBSTtJQUV0RDs7O09BR0c7SUFDVSxpQ0FBaUMsQ0FBQyw4QkFBOEIsRUFBRSxNQUFNLGlCQW1DcEY7SUFFTSw2QkFBNkIsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUt2RTtJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBU2hEO0lBRUQ7Ozs7OztPQU1HO0lBQ1UsV0FBVyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSwrQkF5QnZGO0lBRUQ7Ozs7T0FJRztJQUNVLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLEVBQUUsaUJBRzlFO0lBRUQ7Ozs7OztRQU1JO0lBQ0csUUFBUSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsY0FNOUY7SUFFRDs7Ozs7UUFLSTtJQUNHLGVBQWUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLFdBR2pFO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxDQUFDLGVBQWUsRUFBRSxZQUFZLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUUvRDtJQVVELFdBQVcsSUFBSSxXQUFXLEVBQUUsQ0FFM0I7SUFFRDs7T0FFRztJQUNILG9CQUFvQixJQUFJLEVBQUUsRUFBRSxDQUUzQjtJQUVEOzs7T0FHRztJQUNILGdCQUFnQixJQUFJLEVBQUUsRUFBRSxDQUV2QjtJQUVELGlCQUFpQixJQUFJLEVBQUUsQ0FFdEI7Q0FhRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution_note_cache.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/execution_note_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"execution_note_cache.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/execution_note_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,UAAU,WAAW;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,kBAAkB;;IA8BjB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IA7B9C;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAqB;IAClC;;OAEG;IACH,OAAO,CAAC,OAAO,CAAyC;IAExD;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAuC;IAE3D;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAA0B;IAEnD;;OAEG;IACH,OAAO,CAAC,8BAA8B,CAAK;IAE3C,OAAO,CAAC,iBAAiB,CAAS;IAElC,YAA6B,iBAAiB,EAAE,EAAE,EAAI;IAEtD;;;OAGG;IACU,iCAAiC,CAAC,8BAA8B,EAAE,MAAM,iBAmCpF;IAEM,6BAA6B,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAKvE;IAED;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,QAShD;IAED;;;;;;OAMG;IACU,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,+BAyBvF;IAED;;;;OAIG;IACU,gBAAgB,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,iBAG9E;IAED;;;;;;QAMI;IACG,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,WAAW,EAAE,EAAE,cAM9F;IAED;;;;;QAKI;IACG,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,WAGjE;IAED;;;OAGG;IACI,aAAa,CAAC,eAAe,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAE/D;IAUD,WAAW,IAAI,WAAW,EAAE,CAE3B;IAED;;OAEG;IACH,oBAAoB,IAAI,EAAE,EAAE,CAE3B;IAED;;;OAGG;IACH,gBAAgB,IAAI,EAAE,EAAE,CAEvB;IAED,iBAAiB,IAAI,EAAE,CAEtB;CAaF"}
|
|
@@ -23,10 +23,6 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
|
|
|
23
23
|
* The counter that separates non-revertible side effects (which persist even if the tx reverts) from revertible ones.
|
|
24
24
|
*/ minRevertibleSideEffectCounter;
|
|
25
25
|
inRevertiblePhase;
|
|
26
|
-
/**
|
|
27
|
-
* Whether the protocol nullifier was used for nonce generation.
|
|
28
|
-
* We don't need to use the protocol nullifier if a non-revertible nullifier is emitted.
|
|
29
|
-
*/ usedProtocolNullifierForNonces;
|
|
30
26
|
constructor(protocolNullifier){
|
|
31
27
|
this.protocolNullifier = protocolNullifier;
|
|
32
28
|
this.notes = [];
|
|
@@ -45,12 +41,9 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
|
|
|
45
41
|
}
|
|
46
42
|
this.inRevertiblePhase = true;
|
|
47
43
|
this.minRevertibleSideEffectCounter = minRevertibleSideEffectCounter;
|
|
48
|
-
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
// we don't want to use them as the nonce generator.
|
|
52
|
-
this.usedProtocolNullifierForNonces = nullifiers.length === 0;
|
|
53
|
-
const nonceGenerator = this.usedProtocolNullifierForNonces ? this.protocolNullifier : new Fr(nullifiers[0]);
|
|
44
|
+
// The protocol nullifier is always the tx's first nullifier (injected by the kernel init), so it is the
|
|
45
|
+
// nonce generator for every note hash.
|
|
46
|
+
const nonceGenerator = this.protocolNullifier;
|
|
54
47
|
// The existing pending notes are all non-revertible.
|
|
55
48
|
// They cannot be squashed by nullifiers emitted after minRevertibleSideEffectCounter is set.
|
|
56
49
|
// Their indexes in the tx are known at this point and won't change. So we can assign a nonce to each one of them.
|
|
@@ -78,13 +71,6 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
|
|
|
78
71
|
}
|
|
79
72
|
return sideEffectCounter >= this.minRevertibleSideEffectCounter;
|
|
80
73
|
}
|
|
81
|
-
finish() {
|
|
82
|
-
// If we never entered the revertible phase, and there are no nullifiers emitted, we need to use the protocol
|
|
83
|
-
// nullifier as the nonce generator.
|
|
84
|
-
if (!this.inRevertiblePhase) {
|
|
85
|
-
this.usedProtocolNullifierForNonces = this.getEmittedNullifiers().length === 0;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
74
|
/**
|
|
89
75
|
* Add a new note to cache.
|
|
90
76
|
* @param note - New note created during execution.
|
|
@@ -179,22 +165,16 @@ import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifie
|
|
|
179
165
|
].map((n)=>new Fr(n));
|
|
180
166
|
}
|
|
181
167
|
/**
|
|
182
|
-
* @returns All nullifiers
|
|
183
|
-
*
|
|
168
|
+
* @returns All nullifiers of the transaction: the protocol nullifier (the kernel-injected first nullifier),
|
|
169
|
+
* followed by those emitted by private calls.
|
|
184
170
|
*/ getAllNullifiers() {
|
|
185
|
-
if (this.usedProtocolNullifierForNonces === undefined) {
|
|
186
|
-
throw new Error('usedProtocolNullifierForNonces is not set yet. Call finish() to complete the transaction.');
|
|
187
|
-
}
|
|
188
|
-
const allNullifiers = this.getEmittedNullifiers();
|
|
189
171
|
return [
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
] : [],
|
|
193
|
-
...allNullifiers
|
|
172
|
+
this.protocolNullifier,
|
|
173
|
+
...this.getEmittedNullifiers()
|
|
194
174
|
];
|
|
195
175
|
}
|
|
196
176
|
getNonceGenerator() {
|
|
197
|
-
return this.
|
|
177
|
+
return this.protocolNullifier;
|
|
198
178
|
}
|
|
199
179
|
#recordNullifier(contractAddress, siloedNullifier) {
|
|
200
180
|
const nullifiers = this.getNullifiers(contractAddress);
|
|
@@ -1,17 +1,35 @@
|
|
|
1
|
+
export { ORACLE_REGISTRY, makeEntry, type NamedValue, type OracleRegistryEntry, type ParamTypes, } from './oracle/oracle_registry.js';
|
|
2
|
+
export { ALIAS, ARRAY, AZTEC_ADDRESS, BIGINT, BLOCK_HASH, BLOCK_NUMBER, BOOL, BOUNDED_VEC, U8, CONTRACT_INSTANCE, DELIVERY_MODE, EPHEMERAL_ARRAY, ETH_ADDRESS, EVENT_VALIDATION_REQUEST, FIELD, FIXED_ARRAY, FUNCTION_SELECTOR, LEAF, LEAF_INDEX, LOG_RETRIEVAL_REQUEST, LOG_RETRIEVAL_RESPONSE, MEMBERSHIP_WITNESS, NOTE_SELECTOR, NOTE_VALIDATION_REQUEST, OPTION, PENDING_TAGGED_LOG, POINT, PROVIDED_SECRET, SCALAR, SLOT_NUMBER, STR, STRUCT, U32, U64, U128, tryFieldWidth, isArrayMapping, isBoundedVecMapping, isEphemeralArrayMapping, isFixedArrayMapping, isFixedBoundedVecMapping, isOptionMapping, isStructMapping, type ArrayMapping, type BoundedVecMapping, type CompositeMapping, type EphemeralArrayMapping, type FixedArrayMapping, type FixedBoundedVecMapping, type InputSlot, type MaybePromise, type OptionMapping, type OutputSlot, type SlotShape, type StructField, type StructMapping, type TypeMapping, } from './oracle/oracle_type_mappings.js';
|
|
1
3
|
export { ExecutionNoteCache } from './execution_note_cache.js';
|
|
2
4
|
export { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
|
|
3
5
|
export { HashedValuesCache } from './hashed_values_cache.js';
|
|
4
6
|
export { pickNotes } from './pick_notes.js';
|
|
5
|
-
export type {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
7
|
+
export type { IMiscOracle, IUtilityExecutionOracle, IPrivateExecutionOracle } from './oracle/interfaces.js';
|
|
8
|
+
export type { FactCollection } from './noir-structs/fact_collection.js';
|
|
9
|
+
export type { NoteData } from './noir-structs/note_data.js';
|
|
10
|
+
export type { ResolvedTaggingStrategy } from './noir-structs/resolved_tagging_strategy.js';
|
|
11
|
+
export type { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
|
|
12
|
+
export { TxResolverService } from '../messages/tx_resolver_service.js';
|
|
8
13
|
export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
9
14
|
export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
|
|
10
|
-
export {
|
|
15
|
+
export { buildACIRCallback, UnavailableOracleError } from './oracle/acir_callback.js';
|
|
16
|
+
export { LEGACY_ORACLE_REGISTRY } from './oracle/legacy_oracle_registry.js';
|
|
11
17
|
export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
|
|
12
18
|
export { generateSimulatedProvingResult } from './contract_function_simulator.js';
|
|
13
19
|
export { packAsHintedNote } from './oracle/note_packing_utils.js';
|
|
14
20
|
export { BoundedVec } from './noir-structs/bounded_vec.js';
|
|
21
|
+
export type { ContractClassLogData } from './noir-structs/contract_class_log_data.js';
|
|
22
|
+
export type { EmbeddedCurvePoint } from './noir-structs/embedded_curve_point.js';
|
|
23
|
+
export { EphemeralArray } from './noir-structs/ephemeral_array.js';
|
|
15
24
|
export { Option } from './noir-structs/option.js';
|
|
16
|
-
export { UtilityContext } from './noir-structs/utility_context.js';
|
|
17
|
-
|
|
25
|
+
export type { UtilityContext } from './noir-structs/utility_context.js';
|
|
26
|
+
export { EventValidationRequest } from './noir-structs/event_validation_request.js';
|
|
27
|
+
export type { LogRetrievalRequest } from './noir-structs/log_retrieval_request.js';
|
|
28
|
+
export type { LogRetrievalResponse } from './noir-structs/log_retrieval_response.js';
|
|
29
|
+
export { NoteValidationRequest } from './noir-structs/note_validation_request.js';
|
|
30
|
+
export type { PendingTaggedLog } from './noir-structs/pending_tagged_log.js';
|
|
31
|
+
export type { TxEffectData } from './noir-structs/tx_effect_data.js';
|
|
32
|
+
export type { ProvidedSecret } from './noir-structs/provided_secret.js';
|
|
33
|
+
export type { ResolvedTx } from './noir-structs/resolved_tx.js';
|
|
34
|
+
export { TransientArrayService } from './transient_array_service.js';
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxVQUFVLEVBQ2YsS0FBSyxtQkFBbUIsRUFDeEIsS0FBSyxVQUFVLEdBQ2hCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsYUFBYSxFQUNiLE1BQU0sRUFDTixVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksRUFDSixXQUFXLEVBQ1gsRUFBRSxFQUNGLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsZUFBZSxFQUNmLFdBQVcsRUFDWCx3QkFBd0IsRUFDeEIsS0FBSyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsSUFBSSxFQUNKLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sV0FBVyxFQUNYLEdBQUcsRUFDSCxNQUFNLEVBQ04sR0FBRyxFQUNILEdBQUcsRUFDSCxJQUFJLEVBQ0osYUFBYSxFQUNiLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLGVBQWUsRUFDZixLQUFLLFlBQVksRUFDakIsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyxTQUFTLEVBQ2QsS0FBSyxZQUFZLEVBQ2pCLEtBQUssYUFBYSxFQUNsQixLQUFLLFVBQVUsRUFDZixLQUFLLFNBQVMsRUFDZCxLQUFLLFdBQVcsRUFDaEIsS0FBSyxhQUFhLEVBQ2xCLEtBQUssV0FBVyxHQUNqQixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxZQUFZLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUcsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMzRixZQUFZLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbkYsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
+
export { ORACLE_REGISTRY, makeEntry } from './oracle/oracle_registry.js';
|
|
2
|
+
export { ALIAS, ARRAY, AZTEC_ADDRESS, BIGINT, BLOCK_HASH, BLOCK_NUMBER, BOOL, BOUNDED_VEC, U8, CONTRACT_INSTANCE, DELIVERY_MODE, EPHEMERAL_ARRAY, ETH_ADDRESS, EVENT_VALIDATION_REQUEST, FIELD, FIXED_ARRAY, FUNCTION_SELECTOR, LEAF, LEAF_INDEX, LOG_RETRIEVAL_REQUEST, LOG_RETRIEVAL_RESPONSE, MEMBERSHIP_WITNESS, NOTE_SELECTOR, NOTE_VALIDATION_REQUEST, OPTION, PENDING_TAGGED_LOG, POINT, PROVIDED_SECRET, SCALAR, SLOT_NUMBER, STR, STRUCT, U32, U64, U128, tryFieldWidth, isArrayMapping, isBoundedVecMapping, isEphemeralArrayMapping, isFixedArrayMapping, isFixedBoundedVecMapping, isOptionMapping, isStructMapping } from './oracle/oracle_type_mappings.js';
|
|
1
3
|
export { ExecutionNoteCache } from './execution_note_cache.js';
|
|
2
4
|
export { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
|
|
3
5
|
export { HashedValuesCache } from './hashed_values_cache.js';
|
|
4
6
|
export { pickNotes } from './pick_notes.js';
|
|
5
|
-
export {
|
|
6
|
-
export { MessageContextService } from '../messages/message_context_service.js';
|
|
7
|
+
export { TxResolverService } from '../messages/tx_resolver_service.js';
|
|
7
8
|
export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
8
9
|
export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
|
|
9
|
-
export {
|
|
10
|
+
export { buildACIRCallback, UnavailableOracleError } from './oracle/acir_callback.js';
|
|
11
|
+
export { LEGACY_ORACLE_REGISTRY } from './oracle/legacy_oracle_registry.js';
|
|
10
12
|
export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
|
|
11
13
|
export { generateSimulatedProvingResult } from './contract_function_simulator.js';
|
|
12
14
|
export { packAsHintedNote } from './oracle/note_packing_utils.js';
|
|
13
15
|
export { BoundedVec } from './noir-structs/bounded_vec.js';
|
|
16
|
+
export { EphemeralArray } from './noir-structs/ephemeral_array.js';
|
|
14
17
|
export { Option } from './noir-structs/option.js';
|
|
15
|
-
export {
|
|
18
|
+
export { EventValidationRequest } from './noir-structs/event_validation_request.js';
|
|
19
|
+
export { NoteValidationRequest } from './noir-structs/note_validation_request.js';
|
|
20
|
+
export { TransientArrayService } from './transient_array_service.js';
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`.
|
|
3
|
-
*
|
|
4
|
-
* Carries the actual `data` plus wire-format metadata (`maxLength`, `elementSize`) so the ACVM
|
|
5
|
-
* serializer can pad the storage slot to exactly `maxLength * elementSize` fields.
|
|
6
|
-
*/
|
|
1
|
+
/** TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`. */
|
|
7
2
|
export declare class BoundedVec<T> {
|
|
8
3
|
readonly data: T[];
|
|
9
4
|
readonly maxLength: number;
|
|
@@ -13,16 +8,11 @@ export declare class BoundedVec<T> {
|
|
|
13
8
|
* Construct a BoundedVec with data.
|
|
14
9
|
*
|
|
15
10
|
* @param data - Actual elements. Length must be `<= maxLength`.
|
|
16
|
-
* @param maxLength - Maximum capacity declared at the Noir call site.
|
|
17
|
-
*
|
|
18
|
-
* @param elementSize - Number of Fr fields each element contributes when serialized.
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* @example A bounded vec of bytes (elementSize defaults to 1):
|
|
23
|
-
* ```ts
|
|
24
|
-
* BoundedVec.from({ data: plaintext, maxLength: ciphertext.maxLength })
|
|
25
|
-
* ```
|
|
11
|
+
* @param maxLength - Maximum capacity declared at the Noir call site. The storage slot is padded to this many
|
|
12
|
+
* elements.
|
|
13
|
+
* @param elementSize - Number of Fr fields each element contributes when serialized. Only consulted for
|
|
14
|
+
* variable-width elements whose width isn't statically known from their shape (e.g. a packed note spanning
|
|
15
|
+
* `packedHintedNoteLength` fields); fixed-width elements derive it from the shape, so it can be omitted.
|
|
26
16
|
*
|
|
27
17
|
* @example A bounded vec of packed notes, each spanning `packedHintedNoteLength` fields:
|
|
28
18
|
* ```ts
|
|
@@ -34,15 +24,6 @@ export declare class BoundedVec<T> {
|
|
|
34
24
|
maxLength: number;
|
|
35
25
|
elementSize?: number;
|
|
36
26
|
}): BoundedVec<T>;
|
|
37
|
-
|
|
38
|
-
* Construct an empty BoundedVec, typically used as a shape template for `Option.empty(...)`.
|
|
39
|
-
*
|
|
40
|
-
* @param maxLength - Maximum capacity declared at the Noir call site.
|
|
41
|
-
* @param elementSize - Number of Fr fields each element contributes when serialized (default 1).
|
|
42
|
-
*/
|
|
43
|
-
static empty<T>({ maxLength, elementSize }: {
|
|
44
|
-
maxLength: number;
|
|
45
|
-
elementSize?: number;
|
|
46
|
-
}): BoundedVec<T>;
|
|
27
|
+
equals(other: BoundedVec<T>, innerEquals: (a: T, b: T) => boolean): boolean;
|
|
47
28
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRlZF92ZWMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivbm9pci1zdHJ1Y3RzL2JvdW5kZWRfdmVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUNoRSxxQkFBYSxVQUFVLENBQUMsQ0FBQzthQUVMLElBQUksRUFBRSxDQUFDLEVBQUU7YUFDVCxTQUFTLEVBQUUsTUFBTTthQUNqQixXQUFXLEVBQUUsTUFBTTtJQUhyQyxPQUFPLGVBSUg7SUFFSjs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ2IsSUFBSSxFQUNKLFNBQVMsRUFDVCxXQUFlLEVBQ2hCLEVBQUU7UUFDRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsTUFBTSxDQUFDO1FBQ2xCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztLQUN0QixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FFaEI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxHQUFHLE9BQU8sQ0FNMUU7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounded_vec.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/bounded_vec.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bounded_vec.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/bounded_vec.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qBAAa,UAAU,CAAC,CAAC;aAEL,IAAI,EAAE,CAAC,EAAE;aACT,SAAS,EAAE,MAAM;aACjB,WAAW,EAAE,MAAM;IAHrC,OAAO,eAIH;IAEJ;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EACb,IAAI,EACJ,SAAS,EACT,WAAe,EAChB,EAAE;QACD,IAAI,EAAE,CAAC,EAAE,CAAC;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,UAAU,CAAC,CAAC,CAAC,CAEhB;IAED,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAM1E;CACF"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`.
|
|
3
|
-
*
|
|
4
|
-
* Carries the actual `data` plus wire-format metadata (`maxLength`, `elementSize`) so the ACVM
|
|
5
|
-
* serializer can pad the storage slot to exactly `maxLength * elementSize` fields.
|
|
6
|
-
*/ export class BoundedVec {
|
|
1
|
+
/** TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`. */ export class BoundedVec {
|
|
7
2
|
data;
|
|
8
3
|
maxLength;
|
|
9
4
|
elementSize;
|
|
@@ -16,16 +11,11 @@
|
|
|
16
11
|
* Construct a BoundedVec with data.
|
|
17
12
|
*
|
|
18
13
|
* @param data - Actual elements. Length must be `<= maxLength`.
|
|
19
|
-
* @param maxLength - Maximum capacity declared at the Noir call site.
|
|
20
|
-
*
|
|
21
|
-
* @param elementSize - Number of Fr fields each element contributes when serialized.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* @example A bounded vec of bytes (elementSize defaults to 1):
|
|
26
|
-
* ```ts
|
|
27
|
-
* BoundedVec.from({ data: plaintext, maxLength: ciphertext.maxLength })
|
|
28
|
-
* ```
|
|
14
|
+
* @param maxLength - Maximum capacity declared at the Noir call site. The storage slot is padded to this many
|
|
15
|
+
* elements.
|
|
16
|
+
* @param elementSize - Number of Fr fields each element contributes when serialized. Only consulted for
|
|
17
|
+
* variable-width elements whose width isn't statically known from their shape (e.g. a packed note spanning
|
|
18
|
+
* `packedHintedNoteLength` fields); fixed-width elements derive it from the shape, so it can be omitted.
|
|
29
19
|
*
|
|
30
20
|
* @example A bounded vec of packed notes, each spanning `packedHintedNoteLength` fields:
|
|
31
21
|
* ```ts
|
|
@@ -34,12 +24,7 @@
|
|
|
34
24
|
*/ static from({ data, maxLength, elementSize = 1 }) {
|
|
35
25
|
return new BoundedVec(data, maxLength, elementSize);
|
|
36
26
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
*
|
|
40
|
-
* @param maxLength - Maximum capacity declared at the Noir call site.
|
|
41
|
-
* @param elementSize - Number of Fr fields each element contributes when serialized (default 1).
|
|
42
|
-
*/ static empty({ maxLength, elementSize = 1 }) {
|
|
43
|
-
return new BoundedVec([], maxLength, elementSize);
|
|
27
|
+
equals(other, innerEquals) {
|
|
28
|
+
return this.maxLength === other.maxLength && this.data.length === other.data.length && this.data.every((value, i)=>innerEquals(value, other.data[i]));
|
|
44
29
|
}
|
|
45
30
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
/** Wire form of a contract class log. */
|
|
4
|
+
export type ContractClassLogData = {
|
|
5
|
+
contractAddress: AztecAddress;
|
|
6
|
+
fields: Fr[];
|
|
7
|
+
emittedLength: number;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3NfbG9nX2RhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivbm9pci1zdHJ1Y3RzL2NvbnRyYWN0X2NsYXNzX2xvZ19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLHlDQUF5QztBQUN6QyxNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsZUFBZSxFQUFFLFlBQVksQ0FBQztJQUM5QixNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDYixhQUFhLEVBQUUsTUFBTSxDQUFDO0NBQ3ZCLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract_class_log_data.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/contract_class_log_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,EAAE,YAAY,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/** Wire form of a contract class log. */ export { };
|