@aztec/pxe 0.0.1-commit.3100065 → 0.0.1-commit.330febf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bin/check_oracle_version.js +5 -46
- 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 +8 -39
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -1
- package/dest/bin/oracle_version_helpers.js +10 -239
- package/dest/block_synchronizer/block_synchronizer.d.ts +3 -5
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +5 -18
- package/dest/config/package_info.js +1 -1
- package/dest/contract/contract_class_service.d.ts +1 -8
- package/dest/contract/contract_class_service.d.ts.map +1 -1
- package/dest/contract/contract_class_service.js +8 -40
- package/dest/contract/helpers.d.ts +1 -1
- package/dest/contract/helpers.d.ts.map +1 -1
- package/dest/contract/helpers.js +3 -3
- 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/contract_function_simulator.d.ts +1 -8
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +5 -20
- package/dest/contract_function_simulator/index.d.ts +3 -3
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +1 -2
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +7 -9
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/resolved_tx.js +3 -44
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +5 -4
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +2 -2
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +4 -3
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_registry.js +15 -6
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +87 -35
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +297 -287
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +11 -8
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +15 -4
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +168 -53
- 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 +10 -4
- 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 +10 -4
- 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/server/index.d.ts +2 -1
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +1 -0
- 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 +8 -2
- 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/logs/log_service.d.ts +15 -6
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +25 -32
- package/dest/messages/tx_resolver_service.d.ts +18 -7
- package/dest/messages/tx_resolver_service.d.ts.map +1 -1
- package/dest/messages/tx_resolver_service.js +13 -7
- 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 +2 -2
- package/dest/oracle_version.js +5 -5
- 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/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 +45 -5
- package/dest/pxe.d.ts +1 -1
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +39 -19
- package/dest/storage/contract_store/contract_store.d.ts +1 -1
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
- package/dest/storage/contract_store/contract_store.js +2 -2
- package/dest/storage/fact_store/fact_store.d.ts +1 -1
- package/dest/storage/fact_store/fact_store.js +1 -1
- package/dest/storage/fact_store/index.d.ts +2 -2
- package/dest/storage/fact_store/index.d.ts.map +1 -1
- package/dest/storage/fact_store/index.js +1 -1
- package/dest/storage/fact_store/origin_state.d.ts +4 -2
- package/dest/storage/fact_store/origin_state.d.ts.map +1 -1
- package/dest/storage/fact_store/origin_state.js +8 -1
- 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/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/tagging/constants.d.ts +10 -1
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +19 -0
- 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 +10 -5
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +69 -38
- 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 -38
- 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 +5 -56
- package/src/bin/index.ts +1 -5
- package/src/bin/oracle_version_helpers.ts +11 -292
- package/src/block_synchronizer/block_synchronizer.ts +6 -23
- package/src/config/package_info.ts +1 -1
- package/src/contract/contract_class_service.ts +8 -46
- package/src/contract/helpers.ts +3 -3
- package/src/contract/skip_sync_contracts.ts +23 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +5 -20
- package/src/contract_function_simulator/index.ts +23 -3
- package/src/contract_function_simulator/noir-structs/resolved_tx.ts +11 -45
- package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +4 -3
- package/src/contract_function_simulator/oracle/oracle_registry.ts +12 -8
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +301 -198
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +19 -9
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +184 -56
- package/src/entrypoints/client/bundle/index.ts +1 -0
- package/src/entrypoints/client/bundle/utils.ts +15 -3
- package/src/entrypoints/client/lazy/index.ts +1 -0
- package/src/entrypoints/client/lazy/utils.ts +15 -3
- package/src/entrypoints/client/store.ts +54 -0
- package/src/entrypoints/server/index.ts +1 -0
- package/src/entrypoints/server/store.ts +47 -0
- package/src/entrypoints/server/utils.ts +21 -7
- package/src/events/event_service.ts +24 -14
- package/src/logs/log_service.ts +41 -39
- package/src/messages/tx_resolver_service.ts +26 -15
- 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 +5 -5
- package/src/private_kernel/batch_planner.ts +0 -1
- package/src/private_kernel/private_kernel_execution_prover.ts +90 -4
- package/src/pxe.ts +40 -21
- package/src/storage/contract_store/contract_store.ts +2 -1
- package/src/storage/fact_store/fact_store.ts +1 -1
- package/src/storage/fact_store/index.ts +1 -0
- package/src/storage/fact_store/origin_state.ts +10 -1
- package/src/storage/store_identity.ts +72 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +113 -41
- package/src/tagging/constants.ts +22 -0
- 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 +116 -62
- 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/aztec_node_read_cache.d.ts +0 -39
- package/dest/contract_function_simulator/aztec_node_read_cache.d.ts.map +0 -1
- package/dest/contract_function_simulator/aztec_node_read_cache.js +0 -60
- 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/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/aztec_node_read_cache.ts +0 -89
- package/src/contract_function_simulator/benchmarked_node.ts +0 -103
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +0 -66
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
import { type InBlock } from '@aztec/stdlib/block';
|
|
3
4
|
import { type AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
4
5
|
import { Note, NoteStatus } from '@aztec/stdlib/note';
|
|
5
|
-
import type { BlockHeader
|
|
6
|
+
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
6
7
|
import type { NoteValidationRequest } from '../contract_function_simulator/noir-structs/note_validation_request.js';
|
|
7
8
|
import type { NoteStore } from '../storage/note_store/note_store.js';
|
|
8
9
|
export declare class NoteService {
|
|
@@ -19,7 +20,7 @@ export declare class NoteService {
|
|
|
19
20
|
*
|
|
20
21
|
* @param owner - The owner of the notes. If undefined, returns notes for all known owners.
|
|
21
22
|
* @param status - The status of notes to fetch.
|
|
22
|
-
* @param scopes - The accounts whose notes we can access in this call.
|
|
23
|
+
* @param scopes - The accounts whose notes we can access in this call. An empty list matches no notes.
|
|
23
24
|
*/
|
|
24
25
|
getNotes(contractAddress: AztecAddress, owner: AztecAddress | undefined, storageSlot: Fr, status: NoteStatus, scopes: AztecAddress[]): Promise<{
|
|
25
26
|
contractAddress: AztecAddress;
|
|
@@ -46,7 +47,7 @@ export declare class NoteService {
|
|
|
46
47
|
*/
|
|
47
48
|
syncNoteNullifiers(contractAddress: AztecAddress, scopes: AztecAddress[]): Promise<void>;
|
|
48
49
|
/**
|
|
49
|
-
* Validates and stores a batch of notes against pre-fetched
|
|
50
|
+
* Validates and stores a batch of notes against the pre-fetched onchain context of their txs.
|
|
50
51
|
*
|
|
51
52
|
* For each request we must verify that:
|
|
52
53
|
* - the note actually exists in the corresponding tx effect (and thus in the note hash tree), and
|
|
@@ -62,9 +63,14 @@ export declare class NoteService {
|
|
|
62
63
|
*
|
|
63
64
|
* @param requests - The notes to validate and store.
|
|
64
65
|
* @param scope - The scope under which the notes are being stored.
|
|
65
|
-
* @param
|
|
66
|
-
*
|
|
66
|
+
* @param validationTxData - The onchain context of each request's tx, keyed by `TxHash.toString()`. Must contain
|
|
67
|
+
* entries for every request's txHash; missing entries are treated as a node bug and cause an error.
|
|
67
68
|
*/
|
|
68
|
-
validateAndStoreNotes(requests: NoteValidationRequest[], scope: AztecAddress,
|
|
69
|
+
validateAndStoreNotes(requests: NoteValidationRequest[], scope: AztecAddress, validationTxData: ReadonlyMap<string, NoteValidationTxData>): Promise<void>;
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
+
/** The onchain context of the tx a note validation request points at: where it was mined and its note hashes. */
|
|
72
|
+
export type NoteValidationTxData = InBlock & {
|
|
73
|
+
noteHashes: Fr[];
|
|
74
|
+
txIndexInBlock: number;
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9zZXJ2aWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90ZXMvbm90ZV9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQStCLEtBQUssT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEYsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFlLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBVyxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3BILE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXJFLHFCQUFhLFdBQVc7O0lBRXBCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7SUFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBSnhCLFlBQ21CLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGlCQUFpQixFQUFFLFdBQVcsRUFDOUIsS0FBSyxFQUFFLE1BQU0sRUFDNUI7SUFFSjs7Ozs7Ozs7T0FRRztJQUNVLFFBQVEsQ0FDbkIsZUFBZSxFQUFFLFlBQVksRUFDN0IsS0FBSyxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQy9CLFdBQVcsRUFBRSxFQUFFLEVBQ2YsTUFBTSxFQUFFLFVBQVUsRUFDbEIsTUFBTSxFQUFFLFlBQVksRUFBRTs7Ozs7Ozs7OztTQXlCdkI7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNVLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FxQnBHO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDVSxxQkFBcUIsQ0FDaEMsUUFBUSxFQUFFLHFCQUFxQixFQUFFLEVBQ2pDLEtBQUssRUFBRSxZQUFZLEVBQ25CLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsR0FDMUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWtHZjtDQVVGO0FBRUQsaUhBQWlIO0FBQ2pILE1BQU0sTUFBTSxvQkFBb0IsR0FBRyxPQUFPLEdBQUc7SUFDM0MsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxNQUFNLENBQUM7Q0FDeEIsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_service.d.ts","sourceRoot":"","sources":["../../src/notes/note_service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"note_service.d.ts","sourceRoot":"","sources":["../../src/notes/note_service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEhF,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wEAAwE,CAAC;AACpH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAErE,qBAAa,WAAW;;IAEpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,YACmB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,WAAW,EAC9B,KAAK,EAAE,MAAM,EAC5B;IAEJ;;;;;;;;OAQG;IACU,QAAQ,CACnB,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,YAAY,EAAE;;;;;;;;;;SAyBvB;IAED;;;;;;;;;;;OAWG;IACU,kBAAkB,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBpG;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACU,qBAAqB,CAChC,QAAQ,EAAE,qBAAqB,EAAE,EACjC,KAAK,EAAE,YAAY,EACnB,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAC1D,OAAO,CAAC,IAAI,CAAC,CAkGf;CAUF;AAED,iHAAiH;AACjH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG;IAC3C,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
|
|
@@ -21,7 +21,7 @@ export class NoteService {
|
|
|
21
21
|
*
|
|
22
22
|
* @param owner - The owner of the notes. If undefined, returns notes for all known owners.
|
|
23
23
|
* @param status - The status of notes to fetch.
|
|
24
|
-
* @param scopes - The accounts whose notes we can access in this call.
|
|
24
|
+
* @param scopes - The accounts whose notes we can access in this call. An empty list matches no notes.
|
|
25
25
|
*/ async getNotes(contractAddress, owner, storageSlot, status, scopes) {
|
|
26
26
|
const noteDaos = await this.noteStore.getNotes({
|
|
27
27
|
contractAddress,
|
|
@@ -77,7 +77,7 @@ export class NoteService {
|
|
|
77
77
|
await this.noteStore.applyNullifiers(foundNullifiers, this.jobId);
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
|
-
* Validates and stores a batch of notes against pre-fetched
|
|
80
|
+
* Validates and stores a batch of notes against the pre-fetched onchain context of their txs.
|
|
81
81
|
*
|
|
82
82
|
* For each request we must verify that:
|
|
83
83
|
* - the note actually exists in the corresponding tx effect (and thus in the note hash tree), and
|
|
@@ -93,9 +93,9 @@ export class NoteService {
|
|
|
93
93
|
*
|
|
94
94
|
* @param requests - The notes to validate and store.
|
|
95
95
|
* @param scope - The scope under which the notes are being stored.
|
|
96
|
-
* @param
|
|
97
|
-
*
|
|
98
|
-
*/ async validateAndStoreNotes(requests, scope,
|
|
96
|
+
* @param validationTxData - The onchain context of each request's tx, keyed by `TxHash.toString()`. Must contain
|
|
97
|
+
* entries for every request's txHash; missing entries are treated as a node bug and cause an error.
|
|
98
|
+
*/ async validateAndStoreNotes(requests, scope, validationTxData) {
|
|
99
99
|
if (requests.length === 0) {
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
@@ -127,15 +127,15 @@ export class NoteService {
|
|
|
127
127
|
const { contractAddress, owner, storageSlot, randomness, noteNonce, content, noteHash, txHash } = requests[i];
|
|
128
128
|
const { uniqueNoteHash, siloedNullifier } = computed[i];
|
|
129
129
|
const nullifierIndex = nullifierIndexes[i];
|
|
130
|
-
const
|
|
131
|
-
if (!
|
|
130
|
+
const txData = validationTxData.get(txHash.toString());
|
|
131
|
+
if (!txData) {
|
|
132
132
|
// We error out instead of just logging a warning and skipping the note because this would indicate a bug. This
|
|
133
133
|
// is because the node has already served info about this tx either when obtaining the log (LogResult carries
|
|
134
134
|
// the tx info) or when getting metadata for the offchain message (before the message got passed to
|
|
135
135
|
// `process_log`).
|
|
136
136
|
throw new Error(`Could not find tx effect for tx hash ${txHash} when processing a note.`);
|
|
137
137
|
}
|
|
138
|
-
if (
|
|
138
|
+
if (txData.l2BlockNumber > anchorBlockNumber) {
|
|
139
139
|
// If the message was delivered onchain, this would indicate a bug: log sync should never load logs from blocks
|
|
140
140
|
// newer than the anchor block. If the note came via an offchain message, it would likely also be a bug, since
|
|
141
141
|
// we sync a new anchor block before calling `process_message`. For this not to be a bug, the message would
|
|
@@ -145,12 +145,12 @@ export class NoteService {
|
|
|
145
145
|
throw new Error(`Obtained a newer tx effect for ${txHash} for a note validation request than the anchor block ${anchorBlockNumber}. This is a bug as we should not ever be processing a note from a newer block than the anchor block.`);
|
|
146
146
|
}
|
|
147
147
|
// Find the index of the note hash in the noteHashes array to determine note ordering within the tx
|
|
148
|
-
const noteIndexInTx =
|
|
148
|
+
const noteIndexInTx = txData.noteHashes.findIndex((nh)=>nh.equals(uniqueNoteHash));
|
|
149
149
|
if (noteIndexInTx === -1) {
|
|
150
150
|
// Similar to the comment above - we error out as this would indicate a bug in nonce discovery.
|
|
151
151
|
throw new Error(`Note hash ${noteHash} (uniqued as ${uniqueNoteHash}) is not present in tx ${txHash}`);
|
|
152
152
|
}
|
|
153
|
-
noteDaos.push(new NoteDao(new Note(content), contractAddress, owner, storageSlot, randomness, noteNonce, noteHash, siloedNullifier, txHash,
|
|
153
|
+
noteDaos.push(new NoteDao(new Note(content), contractAddress, owner, storageSlot, randomness, noteNonce, noteHash, siloedNullifier, txHash, txData.l2BlockNumber, txData.l2BlockHash.toString(), txData.txIndexInBlock, noteIndexInTx));
|
|
154
154
|
if (nullifierIndex !== undefined) {
|
|
155
155
|
// We found a nullifier index which implies that the note has already been nullified.
|
|
156
156
|
const { data: _, ...blockHashAndNum } = nullifierIndex;
|
package/dest/oracle_version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const ORACLE_VERSION_MAJOR = 30;
|
|
2
|
-
export declare const ORACLE_VERSION_MINOR =
|
|
3
|
-
export declare const ORACLE_INTERFACE_HASH = "
|
|
2
|
+
export declare const ORACLE_VERSION_MINOR = 8;
|
|
3
|
+
export declare const ORACLE_INTERFACE_HASH = "fec4d3a95fc57a62a20bfeb659bb3bfd91b31cd93e07f8cf97b368f9f55cc67b";
|
|
4
4
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JhY2xlX3ZlcnNpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcmFjbGVfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxlQUFPLE1BQU0sb0JBQW9CLEtBQUssQ0FBQztBQUN2QyxlQUFPLE1BQU0sb0JBQW9CLElBQUksQ0FBQztBQVF0QyxlQUFPLE1BQU0scUJBQXFCLHFFQUFxRSxDQUFDIn0=
|
package/dest/oracle_version.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/// - `major` = backward-breaking changes (must match exactly between PXE and Aztec.nr)
|
|
4
4
|
/// - `minor` = oracle additions (non-breaking; PXE minor >= contract minor)
|
|
5
5
|
///
|
|
6
|
-
/// The Noir counterparts are in `noir-projects/aztec-nr/aztec/src/oracle/version.nr`.
|
|
6
|
+
/// The Noir counterparts are in `noir-projects/labs/aztec-nr/aztec/src/oracle/version.nr`.
|
|
7
7
|
///
|
|
8
8
|
/// @dev Whenever a contract function or Noir test is run, the `aztec_misc_assertCompatibleOracleVersion` oracle is called.
|
|
9
9
|
/// If the major version is incompatible, an error is thrown immediately. The minor version is recorded by the PXE and
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
/// if AZTEC_NR_MINOR > PXE_MINOR because if a contract is updated to use a newer Aztec.nr dependency without actually
|
|
12
12
|
/// using any of the new oracles then there is no reason to throw.
|
|
13
13
|
export const ORACLE_VERSION_MAJOR = 30;
|
|
14
|
-
export const ORACLE_VERSION_MINOR =
|
|
15
|
-
/// This hash is computed from
|
|
14
|
+
export const ORACLE_VERSION_MINOR = 8;
|
|
15
|
+
/// This hash is computed from `ORACLE_REGISTRY` (each oracle's name, ordered parameter names and
|
|
16
16
|
/// types, and return type) and is used to detect when the oracle interface changes. When it does, you need to either:
|
|
17
17
|
/// - increment `ORACLE_VERSION_MAJOR` and reset `ORACLE_VERSION_MINOR` to zero if the change is breaking, or
|
|
18
18
|
/// - increment only `ORACLE_VERSION_MINOR` if the change is additive (a new oracle was added).
|
|
19
19
|
///
|
|
20
|
-
/// These constants must be kept in sync between this file and `noir-projects/aztec-nr/aztec/src/oracle/version.nr`.
|
|
21
|
-
export const ORACLE_INTERFACE_HASH = '
|
|
20
|
+
/// These constants must be kept in sync between this file and `noir-projects/labs/aztec-nr/aztec/src/oracle/version.nr`.
|
|
21
|
+
export const ORACLE_INTERFACE_HASH = 'fec4d3a95fc57a62a20bfeb659bb3bfd91b31cd93e07f8cf97b368f9f55cc67b';
|
|
@@ -44,4 +44,4 @@ export declare class BatchPlanner {
|
|
|
44
44
|
* `needsReset()` and are carried over unchanged from `acc`.
|
|
45
45
|
*/
|
|
46
46
|
export declare function appendApp(acc: PrivateKernelCircuitPublicInputs, app: PrivateCallExecutionResult): PrivateKernelCircuitPublicInputs;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfcGxhbm5lci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL2JhdGNoX3BsYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLGdDQUFnQyxFQUlqQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sS0FBSyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLbkU7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsWUFBWTtJQUVyQixPQUFPLENBQUMsMkJBQTJCO0lBQ25DLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxZQUFZO0lBSHRCLFlBQ1UsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFDaEQsWUFBWSxFQUFFLE1BQU0sRUFDcEIsWUFBWSxFQUFFLE1BQU0sRUFDMUI7SUFFSjs7Ozs7Ozs7T0FRRztJQUNILGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxnQ0FBZ0MsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxNQUFNLENBNEJqSDtDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCx3QkFBZ0IsU0FBUyxDQUN2QixHQUFHLEVBQUUsZ0NBQWdDLEVBQ3JDLEdBQUcsRUFBRSwwQkFBMEIsR0FDOUIsZ0NBQWdDLENBK0RsQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch_planner.d.ts","sourceRoot":"","sources":["../../src/private_kernel/batch_planner.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,gCAAgC,EAIjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAKnE;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAHtB,YACU,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAC1B;IAEJ;;;;;;;;OAQG;IACH,eAAe,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,KAAK,EAAE,0BAA0B,EAAE,GAAG,MAAM,CA4BjH;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,gCAAgC,EACrC,GAAG,EAAE,0BAA0B,GAC9B,gCAAgC,
|
|
1
|
+
{"version":3,"file":"batch_planner.d.ts","sourceRoot":"","sources":["../../src/private_kernel/batch_planner.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,gCAAgC,EAIjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAKnE;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAHtB,YACU,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EAC1B;IAEJ;;;;;;;;OAQG;IACH,eAAe,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,KAAK,EAAE,0BAA0B,EAAE,GAAG,MAAM,CA4BjH;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,gCAAgC,EACrC,GAAG,EAAE,0BAA0B,GAC9B,gCAAgC,CA+DlC"}
|
|
@@ -89,7 +89,7 @@ import { PrivateKernelResetPrivateInputsBuilder } from './hints/private_kernel_r
|
|
|
89
89
|
pushAll(newPrivateLogs, appPi.privateLogs.getActiveItems().map((pl)=>new ScopedPrivateLogData(pl, ca)));
|
|
90
90
|
const validationRequests = new PrivateValidationRequests(newNoteHashReadRequests, newNullifierReadRequests, newScopedKvrs);
|
|
91
91
|
const end = new PrivateAccumulatedData(newNoteHashes, newNullifiers, acc.end.l2ToL1Msgs, newPrivateLogs, acc.end.contractClassLogsHashes, acc.end.publicCallRequests, acc.end.privateCallStack);
|
|
92
|
-
return new PrivateKernelCircuitPublicInputs(acc.constants, acc.minRevertibleSideEffectCounter, validationRequests, end, acc.publicTeardownCallRequest, acc.feePayer, acc.expirationTimestamp, acc.isPrivateOnly, acc.
|
|
92
|
+
return new PrivateKernelCircuitPublicInputs(acc.constants, acc.minRevertibleSideEffectCounter, validationRequests, end, acc.publicTeardownCallRequest, acc.feePayer, acc.expirationTimestamp, acc.isPrivateOnly, acc.claimedRevertibleCounter);
|
|
93
93
|
}
|
|
94
94
|
function cloneClaimedLengthArray(src) {
|
|
95
95
|
return new ClaimedLengthArray([
|
|
@@ -46,4 +46,4 @@ export declare class PrivateKernelExecutionProver {
|
|
|
46
46
|
private createPrivateCallData;
|
|
47
47
|
private runBatchedKernel;
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfZXhlY3V0aW9uX3Byb3Zlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL3ByaXZhdGVfa2VybmVsX2V4ZWN1dGlvbl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBTXZGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQVFMLEtBQUssaUNBQWlDLEVBYXRDLEtBQUssb0NBQW9DLEVBRzFDLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUVMLEtBQUssc0JBQXNCLEVBQzNCLFNBQVMsRUFJVixNQUFNLGtCQUFrQixDQUFDO0FBTTFCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFTdEUsTUFBTSxXQUFXLGtDQUFrQztJQUNqRCxRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQztJQUM1QixXQUFXLEVBQUUsT0FBTyxHQUFHLGlCQUFpQixHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDNUQ7QUFFRDs7Ozs7R0FLRztBQUNILHFCQUFhLDRCQUE0QjtJQUlyQyxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxVQUFVO0lBRWxCLE9BQU8sQ0FBQyxZQUFZO0lBUHRCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLFlBQVksRUFBRSxtQkFBbUIsRUFDakMsVUFBVSxVQUFRLEVBQzFCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFDakIsWUFBWSxHQUFFLE1BQTRCLEVBR25EO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNHLGdCQUFnQixDQUNwQixTQUFTLEVBQUUsU0FBUyxFQUNwQixlQUFlLEVBQUUsc0JBQXNCLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxHQUFFLGtDQUk5QyxHQUNBLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBd05sRjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLHVCQUF1QjtZQW9CakIsU0FBUztZQWNULGNBQWM7WUE2QmQsMkJBQTJCO1lBaUIzQixxQkFBcUI7WUF1Q3JCLGdCQUFnQjtDQThNL0IifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_kernel_execution_prover.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_execution_prover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"private_kernel_execution_prover.d.ts","sourceRoot":"","sources":["../../src/private_kernel/private_kernel_execution_prover.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAMvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAQL,KAAK,iCAAiC,EAatC,KAAK,oCAAoC,EAG1C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,SAAS,EAIV,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5D;AAED;;;;;GAKG;AACH,qBAAa,4BAA4B;IAIrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,YAAY;IAPtB,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,mBAAmB,EACjC,UAAU,UAAQ,EAC1B,QAAQ,CAAC,EAAE,cAAc,EACjB,YAAY,GAAE,MAA4B,EAGnD;IAED;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,sBAAsB,EACvC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAE,kCAI9C,GACA,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CAwNlF;IAED;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;YAoBjB,SAAS;YAcT,cAAc;YA6Bd,2BAA2B;YAiB3B,qBAAqB;YAuCrB,gBAAgB;CA8M/B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { CircuitKind } from '@aztec/bb.js';
|
|
1
2
|
import { MAX_APPS_PER_KERNEL } from '@aztec/constants';
|
|
2
3
|
import { uniqueBy } from '@aztec/foundation/collection';
|
|
3
|
-
import {
|
|
4
|
+
import { vkAsFields } from '@aztec/foundation/crypto/keys';
|
|
4
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
6
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
7
|
import { pushTestData } from '@aztec/foundation/testing';
|
|
@@ -8,7 +9,7 @@ import { Timer } from '@aztec/foundation/timer';
|
|
|
8
9
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
9
10
|
import { ProtocolContractsList } from '@aztec/protocol-contracts';
|
|
10
11
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
11
|
-
import { HidingKernelToPublicPrivateInputs, HidingKernelToRollupPrivateInputs, PaddedSideEffectAmounts, PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInit2CircuitPrivateInputs, PrivateKernelInit3CircuitPrivateInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInner2CircuitPrivateInputs, PrivateKernelInner3CircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelResetTailCircuitPrivateInputs, PrivateVerificationKeyHints } from '@aztec/stdlib/kernel';
|
|
12
|
+
import { HidingKernelToPublicPrivateInputs, HidingKernelToRollupPrivateInputs, PaddedSideEffectAmounts, PrivateCallData, PrivateKernelCircuitPublicInputs, PrivateKernelData, PrivateKernelInit2CircuitPrivateInputs, PrivateKernelInit3CircuitPrivateInputs, PrivateKernelInit4CircuitPrivateInputs, PrivateKernelInit5CircuitPrivateInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInner2CircuitPrivateInputs, PrivateKernelInner3CircuitPrivateInputs, PrivateKernelInner4CircuitPrivateInputs, PrivateKernelInner5CircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelResetTailCircuitPrivateInputs, PrivateVerificationKeyHints } from '@aztec/stdlib/kernel';
|
|
12
13
|
import { ChonkProof } from '@aztec/stdlib/proofs';
|
|
13
14
|
import { collectNested, collectNoteHashNullifierCounterMap, getFinalMinRevertibleSideEffectCounter } from '@aztec/stdlib/tx';
|
|
14
15
|
import { VerificationKeyAsFields, VerificationKeyData, VkData } from '@aztec/stdlib/vks';
|
|
@@ -87,6 +88,7 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
87
88
|
bytecode: output.bytecode,
|
|
88
89
|
witness: output.outputWitness,
|
|
89
90
|
vk: output.verificationKey.keyAsBytes,
|
|
91
|
+
kind: CircuitKind.Kernel,
|
|
90
92
|
timings: {
|
|
91
93
|
witgen: witgenTimer.ms()
|
|
92
94
|
}
|
|
@@ -140,6 +142,7 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
140
142
|
bytecode: tailOutput.bytecode,
|
|
141
143
|
witness: tailOutput.outputWitness,
|
|
142
144
|
vk: tailOutput.verificationKey.keyAsBytes,
|
|
145
|
+
kind: CircuitKind.Kernel,
|
|
143
146
|
timings: {
|
|
144
147
|
witgen: witgenTimer.ms()
|
|
145
148
|
}
|
|
@@ -162,6 +165,7 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
162
165
|
bytecode: hidingOutput.bytecode,
|
|
163
166
|
witness: hidingOutput.outputWitness,
|
|
164
167
|
vk: hidingOutput.verificationKey.keyAsBytes,
|
|
168
|
+
kind: CircuitKind.HidingKernel,
|
|
165
169
|
timings: {
|
|
166
170
|
witgen: witgenTimer.ms()
|
|
167
171
|
}
|
|
@@ -170,7 +174,7 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
170
174
|
if (profileMode == 'gates' || profileMode == 'full') {
|
|
171
175
|
for (const entry of executionSteps){
|
|
172
176
|
const gateCountTimer = new Timer();
|
|
173
|
-
const gateCount = await this.proofCreator.computeGateCountForCircuit(entry.bytecode, entry.functionName);
|
|
177
|
+
const gateCount = await this.proofCreator.computeGateCountForCircuit(entry.bytecode, entry.functionName, entry.kind);
|
|
174
178
|
entry.gateCount = gateCount;
|
|
175
179
|
entry.timings.gateCount = gateCountTimer.ms();
|
|
176
180
|
}
|
|
@@ -240,6 +244,7 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
240
244
|
bytecode: next.acir,
|
|
241
245
|
witness: next.partialWitness,
|
|
242
246
|
vk: next.vk,
|
|
247
|
+
kind: CircuitKind.App,
|
|
243
248
|
timings: {
|
|
244
249
|
witgen: next.profileResult?.timings.witgen ?? 0,
|
|
245
250
|
oracles: next.profileResult?.timings.oracles
|
|
@@ -261,8 +266,8 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
261
266
|
}
|
|
262
267
|
async createPrivateCallData({ publicInputs, vk: vkAsBuffer }, updatedClassIdHintsMap) {
|
|
263
268
|
const { contractAddress, functionSelector } = publicInputs.callContext;
|
|
264
|
-
const
|
|
265
|
-
const vk = await VerificationKeyAsFields.fromKey(
|
|
269
|
+
const vkFields = await vkAsFields(vkAsBuffer, CircuitKind.App);
|
|
270
|
+
const vk = await VerificationKeyAsFields.fromKey(vkFields);
|
|
266
271
|
const { currentContractClassId, publicKeys, saltedInitializationHash } = await this.oracle.getContractAddressPreimage(contractAddress);
|
|
267
272
|
const functionLeafMembershipWitness = await this.oracle.getFunctionMembershipWitness(currentContractClassId, functionSelector);
|
|
268
273
|
const { artifactHash: contractClassArtifactHash, publicBytecodeCommitment: contractClassPublicBytecodeCommitment } = await this.oracle.getContractClassIdPreimage(currentContractClassId);
|
|
@@ -318,6 +323,24 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
318
323
|
functionName = 'private_kernel_init_3';
|
|
319
324
|
break;
|
|
320
325
|
}
|
|
326
|
+
case 4:
|
|
327
|
+
{
|
|
328
|
+
const proofInput = new PrivateKernelInit4CircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], apps[1], apps[2], apps[3], isPrivateOnlyTx, minRevertibleSideEffectCounter);
|
|
329
|
+
this.log.debug(`Calling private kernel init_4 with isPrivateOnly ${isPrivateOnlyTx}`);
|
|
330
|
+
pushTestData('private-kernel-inputs-init-4', proofInput);
|
|
331
|
+
output = generateWitnesses ? await this.proofCreator.generateInit4Output(proofInput) : await this.proofCreator.simulateInit4(proofInput);
|
|
332
|
+
functionName = 'private_kernel_init_4';
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
case 5:
|
|
336
|
+
{
|
|
337
|
+
const proofInput = new PrivateKernelInit5CircuitPrivateInputs(txRequest, vkTreeRoot, ProtocolContractsList, apps[0], apps[1], apps[2], apps[3], apps[4], isPrivateOnlyTx, minRevertibleSideEffectCounter);
|
|
338
|
+
this.log.debug(`Calling private kernel init_5 with isPrivateOnly ${isPrivateOnlyTx}`);
|
|
339
|
+
pushTestData('private-kernel-inputs-init-5', proofInput);
|
|
340
|
+
output = generateWitnesses ? await this.proofCreator.generateInit5Output(proofInput) : await this.proofCreator.simulateInit5(proofInput);
|
|
341
|
+
functionName = 'private_kernel_init_5';
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
321
344
|
default:
|
|
322
345
|
throw new Error(`Unsupported init kernel batch size: ${apps.length}`);
|
|
323
346
|
}
|
|
@@ -349,6 +372,22 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
349
372
|
functionName = 'private_kernel_inner_3';
|
|
350
373
|
break;
|
|
351
374
|
}
|
|
375
|
+
case 4:
|
|
376
|
+
{
|
|
377
|
+
const proofInput = new PrivateKernelInner4CircuitPrivateInputs(previousKernelData, apps[0], apps[1], apps[2], apps[3]);
|
|
378
|
+
pushTestData('private-kernel-inputs-inner-4', proofInput);
|
|
379
|
+
output = generateWitnesses ? await this.proofCreator.generateInner4Output(proofInput) : await this.proofCreator.simulateInner4(proofInput);
|
|
380
|
+
functionName = 'private_kernel_inner_4';
|
|
381
|
+
break;
|
|
382
|
+
}
|
|
383
|
+
case 5:
|
|
384
|
+
{
|
|
385
|
+
const proofInput = new PrivateKernelInner5CircuitPrivateInputs(previousKernelData, apps[0], apps[1], apps[2], apps[3], apps[4]);
|
|
386
|
+
pushTestData('private-kernel-inputs-inner-5', proofInput);
|
|
387
|
+
output = generateWitnesses ? await this.proofCreator.generateInner5Output(proofInput) : await this.proofCreator.simulateInner5(proofInput);
|
|
388
|
+
functionName = 'private_kernel_inner_5';
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
352
391
|
default:
|
|
353
392
|
throw new Error(`Unsupported inner kernel batch size: ${apps.length}`);
|
|
354
393
|
}
|
|
@@ -358,6 +397,7 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
358
397
|
bytecode: output.bytecode,
|
|
359
398
|
witness: output.outputWitness,
|
|
360
399
|
vk: output.verificationKey.keyAsBytes,
|
|
400
|
+
kind: CircuitKind.Kernel,
|
|
361
401
|
timings: {
|
|
362
402
|
witgen: witgenTimer.ms()
|
|
363
403
|
}
|
package/dest/pxe.d.ts
CHANGED
|
@@ -363,4 +363,4 @@ export declare class PXE {
|
|
|
363
363
|
*/
|
|
364
364
|
stop(): Promise<void>;
|
|
365
365
|
}
|
|
366
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQXFDLE1BQU0sdUJBQXVCLENBQUM7QUFJdkYsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUF5QixNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLGFBQWEsRUFDYixZQUFZLEVBSWIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLEtBQUssd0JBQXdCLEVBQzdCLEtBQUssbUNBQW1DLEVBQ3hDLEtBQUssMkJBQTJCLEVBQ2hDLEtBQUssY0FBYyxFQUVwQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVF0RyxPQUFPLEVBQ0wsV0FBVyxFQUVYLEtBQUssSUFBSSxFQUtULG1CQUFtQixFQUduQixr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
|
package/dest/pxe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAqC,MAAM,uBAAuB,CAAC;AAIvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,KAAK,yBAAyB,EAAyB,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,aAAa,EACb,YAAY,EAIb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EACL,eAAe,EACf,KAAK,wBAAwB,EAC7B,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtG,OAAO,EACL,WAAW,EAEX,KAAK,IAAI,EAKT,mBAAmB,EAGnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"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"}
|
package/dest/pxe.js
CHANGED
|
@@ -9,13 +9,12 @@ import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/stdlib/block';
|
|
|
9
9
|
import { computeContractAddressFromInstance } from '@aztec/stdlib/contract';
|
|
10
10
|
import { SimulationError } from '@aztec/stdlib/errors';
|
|
11
11
|
import { computeAddressSecret } from '@aztec/stdlib/keys';
|
|
12
|
-
import { deriveEcdhSharedSecretPoint } from '@aztec/stdlib/logs';
|
|
12
|
+
import { deriveEcdhSharedSecretPoint, protectFromForgery } from '@aztec/stdlib/logs';
|
|
13
13
|
import { PrivateSimulationResult, TxProfileResult, TxProvingResult, TxSimulationResult } from '@aztec/stdlib/tx';
|
|
14
14
|
import { inspect } from 'util';
|
|
15
15
|
import { BlockSynchronizer } from './block_synchronizer/index.js';
|
|
16
16
|
import { ContractClassService } from './contract/contract_class_service.js';
|
|
17
17
|
import { ContractSyncService } from './contract/contract_sync_service.js';
|
|
18
|
-
import { BenchmarkedNodeFactory } from './contract_function_simulator/benchmarked_node.js';
|
|
19
18
|
import { ContractFunctionSimulator, generateSimulatedProvingResult } from './contract_function_simulator/contract_function_simulator.js';
|
|
20
19
|
import { displayDebugLogs } from './contract_logging.js';
|
|
21
20
|
import { PXEDebugUtils } from './debug/pxe_debug_utils.js';
|
|
@@ -23,6 +22,7 @@ import { enrichPublicSimulationError, enrichSimulationError } from './error_enri
|
|
|
23
22
|
import { PrivateEventFilterValidator } from './events/private_event_filter_validator.js';
|
|
24
23
|
import { JobCoordinator } from './job_coordinator/job_coordinator.js';
|
|
25
24
|
import { TxResolverService } from './messages/tx_resolver_service.js';
|
|
25
|
+
import { withCache } from './node/caching_aztec_node.js';
|
|
26
26
|
import { PrivateKernelExecutionProver } from './private_kernel/private_kernel_execution_prover.js';
|
|
27
27
|
import { PrivateKernelOracle } from './private_kernel/private_kernel_oracle.js';
|
|
28
28
|
import { openPxeStores } from './storage/open_pxe_stores.js';
|
|
@@ -113,10 +113,14 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
113
113
|
const initialBlockHash = (await node.getBlock(BlockNumber.ZERO))?.hash ?? GENESIS_BLOCK_HEADER_HASH;
|
|
114
114
|
const proverEnabled = config.proverEnabled !== undefined ? config.proverEnabled : info.realProofs;
|
|
115
115
|
const { addressStore, privateEventStore, contractStore, noteStore, anchorBlockStore, senderTaggingStore, taggingSecretSourcesStore, recipientTaggingStore, capsuleStore, keyStore, l2TipsStore, factStore } = openPxeStores(store, initialBlockHash);
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
116
|
+
// Every PXE consumer reads through this one wrapper, so a read cached by one is served to the rest. Only
|
|
117
|
+
// immutable, hash-pinned reads are cached (the rule lives on `withCache`), which makes it safe regardless of
|
|
118
|
+
// the consumer's anchor block; the block synchronizer wipes it on anchor updates to bound memory.
|
|
119
|
+
const readCachedNode = withCache(node);
|
|
120
|
+
const contractClassService = new ContractClassService(readCachedNode, contractStore);
|
|
121
|
+
const contractSyncService = new ContractSyncService(readCachedNode, contractStore, contractClassService, noteStore, createLogger('pxe:contract_sync', bindings));
|
|
122
|
+
const txResolver = new TxResolverService(readCachedNode);
|
|
123
|
+
const synchronizer = new BlockSynchronizer(readCachedNode, store, anchorBlockStore, noteStore, privateEventStore, factStore, l2TipsStore, contractSyncService, config, bindings);
|
|
120
124
|
const jobCoordinator = new JobCoordinator(store, bindings);
|
|
121
125
|
jobCoordinator.registerStores([
|
|
122
126
|
capsuleStore,
|
|
@@ -129,7 +133,7 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
129
133
|
]);
|
|
130
134
|
const debugUtils = new PXEDebugUtils(contractSyncService, noteStore, synchronizer, anchorBlockStore);
|
|
131
135
|
const jobQueue = new SerialQueue();
|
|
132
|
-
const pxe = new PXE(
|
|
136
|
+
const pxe = new PXE(readCachedNode, nodeDebug, store, synchronizer, keyStore, contractStore, noteStore, capsuleStore, factStore, anchorBlockStore, senderTaggingStore, taggingSecretSourcesStore, recipientTaggingStore, addressStore, privateEventStore, contractSyncService, contractClassService, txResolver, l2TipsStore, simulator, proverEnabled, config.autoSync, proofCreator, protocolContractsProvider, preloadedContractsProvider, log, jobQueue, jobCoordinator, debugUtils, hooks);
|
|
133
137
|
debugUtils.setPXEHelpers(pxe.#putInJobQueue.bind(pxe), pxe.#getSimulatorForTx.bind(pxe), pxe.#executeUtility.bind(pxe));
|
|
134
138
|
pxe.jobQueue.start();
|
|
135
139
|
await Promise.all([
|
|
@@ -148,7 +152,7 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
148
152
|
noteStore: this.noteStore,
|
|
149
153
|
keyStore: this.keyStore,
|
|
150
154
|
addressStore: this.addressStore,
|
|
151
|
-
aztecNode:
|
|
155
|
+
aztecNode: this.node,
|
|
152
156
|
l2TipsStore: this.l2TipsStore,
|
|
153
157
|
senderTaggingStore: this.senderTaggingStore,
|
|
154
158
|
recipientTaggingStore: this.recipientTaggingStore,
|
|
@@ -498,9 +502,11 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
498
502
|
return wasAdded;
|
|
499
503
|
}
|
|
500
504
|
/**
|
|
501
|
-
* Derives the shared secret of a handshake from its ephemeral public key:
|
|
502
|
-
*
|
|
503
|
-
*
|
|
505
|
+
* Derives the shared secret of a handshake from its ephemeral public key: the raw ECDH secret
|
|
506
|
+
* `S = addressSecret(recipient) * ephPk` with the forgery protection applied,
|
|
507
|
+
* matching the protected secret the registry stores and the derivation the recipient-side scan uses for
|
|
508
|
+
* handshakes discovered onchain. The ephemeral key is reconstructed from its x-coordinate with a positive y,
|
|
509
|
+
* matching how the protocol generates it.
|
|
504
510
|
*
|
|
505
511
|
* @throws If `ephPk` is not the x-coordinate of a Grumpkin curve point, or if `recipient` is not an account of
|
|
506
512
|
* this PXE, since the derivation needs its keys.
|
|
@@ -517,7 +523,8 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
517
523
|
}
|
|
518
524
|
const ivskM = await this.keyStore.getMasterIncomingViewingSecretKey(recipient);
|
|
519
525
|
const addressSecret = await computeAddressSecret(await completeAddress.getPreaddress(), ivskM);
|
|
520
|
-
|
|
526
|
+
const rawSecret = await deriveEcdhSharedSecretPoint(addressSecret, ephPkPoint);
|
|
527
|
+
return protectFromForgery(rawSecret, ephPkPoint, await recipient.toAddressPoint());
|
|
521
528
|
}
|
|
522
529
|
/** Registers a resolved shared secret scoped to a recipient. Returns whether it was newly added. */ async #registerSharedSecret(recipient, kind, secret) {
|
|
523
530
|
if (!await recipient.isValid()) {
|
|
@@ -597,6 +604,7 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
597
604
|
// computationally demanding that it'd be rare for someone to try to do it concurrently regardless.
|
|
598
605
|
return this.#putInJobQueue(async (jobId)=>{
|
|
599
606
|
const totalTimer = new Timer();
|
|
607
|
+
const recording = this.node.startRecording();
|
|
600
608
|
try {
|
|
601
609
|
const syncTimer = new Timer();
|
|
602
610
|
await this.#maybeSync();
|
|
@@ -634,7 +642,7 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
634
642
|
});
|
|
635
643
|
const txProvingResult = new TxProvingResult(privateExecutionResult, publicInputs, chonkProof, {
|
|
636
644
|
timings,
|
|
637
|
-
nodeRPCCalls:
|
|
645
|
+
nodeRPCCalls: recording.stop()
|
|
638
646
|
});
|
|
639
647
|
// We keep track of which tagging indices we've used in this tx so that we don't repeat them in future txs
|
|
640
648
|
// (which would link them) without having to rely on this tx being mined (and us seeing the indices being used
|
|
@@ -646,6 +654,9 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
646
654
|
return txProvingResult;
|
|
647
655
|
} catch (err) {
|
|
648
656
|
throw this.#contextualizeError(err, inspect(txRequest), inspect(privateExecutionResult));
|
|
657
|
+
} finally{
|
|
658
|
+
// Idempotent cleanup for the error and early-exit paths. The success path already stopped the recording.
|
|
659
|
+
recording.stop();
|
|
649
660
|
}
|
|
650
661
|
});
|
|
651
662
|
}
|
|
@@ -658,6 +669,7 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
658
669
|
// We disable concurrent profiles for consistency with simulateTx.
|
|
659
670
|
return this.#putInJobQueue(async (jobId)=>{
|
|
660
671
|
const totalTimer = new Timer();
|
|
672
|
+
const recording = this.node.startRecording();
|
|
661
673
|
try {
|
|
662
674
|
const txInfo = {
|
|
663
675
|
origin: txRequest.origin,
|
|
@@ -704,13 +716,15 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
704
716
|
perFunction,
|
|
705
717
|
unaccounted: total - ((syncTime ?? 0) + (proving ?? 0) + perFunction.reduce((acc, { time })=>acc + time, 0))
|
|
706
718
|
};
|
|
707
|
-
const simulatorStats = contractFunctionSimulator.getStats();
|
|
708
719
|
return new TxProfileResult(executionSteps, {
|
|
709
720
|
timings,
|
|
710
|
-
nodeRPCCalls:
|
|
721
|
+
nodeRPCCalls: recording.stop()
|
|
711
722
|
});
|
|
712
723
|
} catch (err) {
|
|
713
724
|
throw this.#contextualizeError(err, inspect(txRequest), `profileMode=${profileMode}`);
|
|
725
|
+
} finally{
|
|
726
|
+
// Idempotent cleanup for the error and early-exit paths. The success path already stopped the recording.
|
|
727
|
+
recording.stop();
|
|
714
728
|
}
|
|
715
729
|
});
|
|
716
730
|
}
|
|
@@ -736,6 +750,7 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
736
750
|
// to the capsules), and we need to prevent concurrent runs from interfering with one another (e.g. attempting to
|
|
737
751
|
// delete the same read value, or reading values that another simulation is currently modifying).
|
|
738
752
|
return this.#putInJobQueue(async (jobId)=>{
|
|
753
|
+
const recording = this.node.startRecording();
|
|
739
754
|
try {
|
|
740
755
|
const totalTimer = new Timer();
|
|
741
756
|
const txInfo = {
|
|
@@ -825,13 +840,15 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
825
840
|
revertReason: publicOutput.revertReason
|
|
826
841
|
} : {}
|
|
827
842
|
});
|
|
828
|
-
const simulatorStats = contractFunctionSimulator.getStats();
|
|
829
843
|
return TxSimulationResult.fromPrivateSimulationResultAndPublicOutput(privateSimulationResult, publicOutput, {
|
|
830
844
|
timings,
|
|
831
|
-
nodeRPCCalls:
|
|
845
|
+
nodeRPCCalls: recording.stop()
|
|
832
846
|
});
|
|
833
847
|
} catch (err) {
|
|
834
848
|
throw this.#contextualizeError(err, inspect(txRequest), `simulatePublic=${simulatePublic}`, `skipTxValidation=${skipTxValidation}`, `scopes=${scopes.map((s)=>s.toString()).join(', ')}`);
|
|
849
|
+
} finally{
|
|
850
|
+
// Idempotent cleanup for the error and early-exit paths. The success path already stopped the recording.
|
|
851
|
+
recording.stop();
|
|
835
852
|
}
|
|
836
853
|
});
|
|
837
854
|
}
|
|
@@ -845,6 +862,7 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
845
862
|
// to the capsules), and we need to prevent concurrent runs from interfering with one another (e.g. attempting to
|
|
846
863
|
// delete the same read value, or reading values that another execution is currently modifying).
|
|
847
864
|
return this.#putInJobQueue(async (jobId)=>{
|
|
865
|
+
const recording = this.node.startRecording();
|
|
848
866
|
try {
|
|
849
867
|
const totalTimer = new Timer();
|
|
850
868
|
const syncTimer = new Timer();
|
|
@@ -869,20 +887,22 @@ import { persistSenderTaggingIndexRangesForTx } from './tagging/index.js';
|
|
|
869
887
|
perFunction,
|
|
870
888
|
unaccounted: totalTime - (syncTime + perFunction.reduce((acc, { time })=>acc + time, 0))
|
|
871
889
|
};
|
|
872
|
-
const simulationStats = contractFunctionSimulator.getStats();
|
|
873
890
|
return {
|
|
874
891
|
result: executionResult,
|
|
875
892
|
offchainEffects,
|
|
876
893
|
anchorBlockTimestamp: anchorBlockHeader.globalVariables.timestamp,
|
|
877
894
|
stats: {
|
|
878
895
|
timings,
|
|
879
|
-
nodeRPCCalls:
|
|
896
|
+
nodeRPCCalls: recording.stop()
|
|
880
897
|
}
|
|
881
898
|
};
|
|
882
899
|
} catch (err) {
|
|
883
900
|
const { to, name, args } = call;
|
|
884
901
|
const stringifiedArgs = args.map((arg)=>arg.toString()).join(', ');
|
|
885
902
|
throw this.#contextualizeError(err, `executeUtility ${to}:${name}(${stringifiedArgs})`, `scopes=${scopes.map((s)=>s.toString()).join(', ')}`);
|
|
903
|
+
} finally{
|
|
904
|
+
// Idempotent cleanup for the error and early-exit paths. The success path already stopped the recording.
|
|
905
|
+
recording.stop();
|
|
886
906
|
}
|
|
887
907
|
});
|
|
888
908
|
}
|