@aztec/pxe 0.0.1-commit.2ed92850 → 0.0.1-commit.3d8f95d
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/block_synchronizer/block_synchronizer.d.ts +5 -3
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +11 -5
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +50 -28
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +70 -36
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +10 -10
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.d.ts +5 -5
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +38 -26
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +35 -36
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +66 -21
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +52 -29
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +80 -61
- package/dest/contract_sync/contract_sync_service.d.ts +41 -0
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
- package/dest/contract_sync/contract_sync_service.js +82 -0
- package/dest/contract_sync/helpers.d.ts +28 -0
- package/dest/contract_sync/helpers.d.ts.map +1 -0
- package/dest/contract_sync/{index.js → helpers.js} +13 -12
- package/dest/debug/pxe_debug_utils.d.ts +22 -9
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +28 -18
- 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 +21 -7
- package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +22 -8
- package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +2 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +1 -1
- 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 +28 -9
- package/dest/events/event_service.d.ts +4 -5
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +5 -6
- package/dest/job_coordinator/job_coordinator.d.ts +3 -2
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -1
- package/dest/job_coordinator/job_coordinator.js +3 -2
- package/dest/logs/log_service.d.ts +6 -5
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +10 -15
- package/dest/notes/note_service.d.ts +4 -5
- package/dest/notes/note_service.d.ts.map +1 -1
- package/dest/notes/note_service.js +6 -7
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +2 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +2 -2
- package/dest/private_kernel/private_kernel_oracle.d.ts +3 -3
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/pxe.d.ts +64 -22
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +66 -39
- package/dest/storage/address_store/address_store.d.ts +1 -1
- package/dest/storage/address_store/address_store.d.ts.map +1 -1
- package/dest/storage/address_store/address_store.js +12 -11
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
- 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 -1
- package/dest/storage/capsule_store/capsule_store.js +6 -8
- 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 +27 -18
- package/dest/storage/metadata.d.ts +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/note_store/note_store.d.ts +11 -1
- package/dest/storage/note_store/note_store.d.ts.map +1 -1
- package/dest/storage/note_store/note_store.js +146 -105
- package/dest/storage/private_event_store/private_event_store.d.ts +1 -1
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
- package/dest/storage/private_event_store/private_event_store.js +84 -61
- package/dest/storage/private_event_store/stored_private_event.d.ts +4 -4
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -1
- package/dest/storage/private_event_store/stored_private_event.js +2 -2
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +1 -1
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/recipient_tagging_store.js +31 -19
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +183 -113
- package/dest/tagging/get_all_logs_by_tags.d.ts +4 -4
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -3
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +3 -3
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +3 -3
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +3 -3
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
- package/package.json +25 -16
- package/src/block_synchronizer/block_synchronizer.ts +23 -19
- package/src/contract_function_simulator/contract_function_simulator.ts +115 -77
- package/src/contract_function_simulator/oracle/interfaces.ts +12 -12
- package/src/contract_function_simulator/oracle/oracle.ts +41 -24
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +86 -101
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +131 -69
- package/src/contract_sync/contract_sync_service.ts +129 -0
- package/src/contract_sync/{index.ts → helpers.ts} +15 -20
- package/src/debug/pxe_debug_utils.ts +60 -18
- package/src/entrypoints/client/bundle/utils.ts +16 -15
- package/src/entrypoints/client/lazy/utils.ts +17 -15
- package/src/entrypoints/pxe_creation_options.ts +2 -1
- package/src/entrypoints/server/index.ts +1 -1
- package/src/entrypoints/server/utils.ts +22 -26
- package/src/events/event_service.ts +4 -6
- package/src/job_coordinator/job_coordinator.ts +4 -3
- package/src/logs/log_service.ts +14 -14
- package/src/notes/note_service.ts +5 -7
- package/src/oracle_version.ts +2 -2
- package/src/private_kernel/private_kernel_execution_prover.ts +6 -3
- package/src/private_kernel/private_kernel_oracle.ts +2 -2
- package/src/pxe.ts +140 -74
- package/src/storage/address_store/address_store.ts +15 -15
- package/src/storage/anchor_block_store/anchor_block_store.ts +8 -0
- package/src/storage/capsule_store/capsule_store.ts +8 -8
- package/src/storage/contract_store/contract_store.ts +26 -15
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/note_store.ts +163 -129
- package/src/storage/private_event_store/private_event_store.ts +102 -81
- package/src/storage/private_event_store/stored_private_event.ts +3 -3
- package/src/storage/tagging_store/recipient_tagging_store.ts +31 -21
- package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
- package/src/storage/tagging_store/sender_tagging_store.ts +210 -126
- package/src/tagging/get_all_logs_by_tags.ts +3 -3
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +2 -2
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +2 -2
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +2 -2
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +3 -3
- package/dest/contract_sync/index.d.ts +0 -23
- package/dest/contract_sync/index.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
-
import type {
|
|
3
|
+
import type { BlockHash } from '@aztec/stdlib/block';
|
|
4
4
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
5
5
|
import type { DirectionalAppTaggingSecret, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
6
6
|
/**
|
|
@@ -8,8 +8,8 @@ import type { DirectionalAppTaggingSecret, TxScopedL2Log } from '@aztec/stdlib/l
|
|
|
8
8
|
* `secret`. At most load logs from blocks up to and including `anchorBlockNumber`. `start` is inclusive and `end` is
|
|
9
9
|
* exclusive.
|
|
10
10
|
*/
|
|
11
|
-
export declare function loadLogsForRange(secret: DirectionalAppTaggingSecret, app: AztecAddress, aztecNode: AztecNode, start: number, end: number, anchorBlockNumber: BlockNumber, anchorBlockHash:
|
|
11
|
+
export declare function loadLogsForRange(secret: DirectionalAppTaggingSecret, app: AztecAddress, aztecNode: AztecNode, start: number, end: number, anchorBlockNumber: BlockNumber, anchorBlockHash: BlockHash): Promise<Array<{
|
|
12
12
|
log: TxScopedL2Log;
|
|
13
13
|
taggingIndex: number;
|
|
14
14
|
}>>;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9sb2dzX2Zvcl9yYW5nZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhZ2dpbmcvcmVjaXBpZW50X3N5bmMvdXRpbHMvbG9hZF9sb2dzX2Zvcl9yYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBVSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUs3Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsMkJBQTJCLEVBQ25DLEdBQUcsRUFBRSxZQUFZLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLEtBQUssRUFBRSxNQUFNLEVBQ2IsR0FBRyxFQUFFLE1BQU0sRUFDWCxpQkFBaUIsRUFBRSxXQUFXLEVBQzlCLGVBQWUsRUFBRSxTQUFTLEdBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDO0lBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUMsQ0FBQyxDQTBCOUQifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load_logs_for_range.d.ts","sourceRoot":"","sources":["../../../../src/tagging/recipient_sync/utils/load_logs_for_range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"load_logs_for_range.d.ts","sourceRoot":"","sources":["../../../../src/tagging/recipient_sync/utils/load_logs_for_range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAU,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAK7F;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,WAAW,EAC9B,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,aAAa,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA0B9D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
2
|
-
import type {
|
|
2
|
+
import type { BlockHash } from '@aztec/stdlib/block';
|
|
3
3
|
import type { AztecNode } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import type { DirectionalAppTaggingSecret } from '@aztec/stdlib/logs';
|
|
5
5
|
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
@@ -17,5 +17,5 @@ import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagg
|
|
|
17
17
|
* @dev This function looks for new indexes, adds them to pending, then it checks status of each pending index and
|
|
18
18
|
* updates its status accordingly.
|
|
19
19
|
*/
|
|
20
|
-
export declare function syncSenderTaggingIndexes(secret: DirectionalAppTaggingSecret, app: AztecAddress, aztecNode: AztecNode, taggingStore: SenderTaggingStore, anchorBlockHash:
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
export declare function syncSenderTaggingIndexes(secret: DirectionalAppTaggingSecret, app: AztecAddress, aztecNode: AztecNode, taggingStore: SenderTaggingStore, anchorBlockHash: BlockHash, jobId: string): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY19zZW5kZXJfdGFnZ2luZ19pbmRleGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFnZ2luZy9zZW5kZXJfc3luYy9zeW5jX3NlbmRlcl90YWdnaW5nX2luZGV4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBSzlGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCx3QkFBc0Isd0JBQXdCLENBQzVDLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsR0FBRyxFQUFFLFlBQVksRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLGtCQUFrQixFQUNoQyxlQUFlLEVBQUUsU0FBUyxFQUMxQixLQUFLLEVBQUUsTUFBTSxHQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FtRWYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync_sender_tagging_indexes.d.ts","sourceRoot":"","sources":["../../../src/tagging/sender_sync/sync_sender_tagging_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sync_sender_tagging_indexes.d.ts","sourceRoot":"","sources":["../../../src/tagging/sender_sync/sync_sender_tagging_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AAK9F;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,SAAS,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
2
|
-
import type {
|
|
2
|
+
import type { BlockHash } from '@aztec/stdlib/block';
|
|
3
3
|
import type { AztecNode } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import type { DirectionalAppTaggingSecret } from '@aztec/stdlib/logs';
|
|
5
5
|
import type { SenderTaggingStore } from '../../../storage/tagging_store/sender_tagging_store.js';
|
|
@@ -17,5 +17,5 @@ import type { SenderTaggingStore } from '../../../storage/tagging_store/sender_t
|
|
|
17
17
|
* @param jobId - Job identifier, used to keep writes in-memory until they can be persisted in a data integrity
|
|
18
18
|
* preserving way.
|
|
19
19
|
*/
|
|
20
|
-
export declare function loadAndStoreNewTaggingIndexes(secret: DirectionalAppTaggingSecret, app: AztecAddress, start: number, end: number, aztecNode: AztecNode, taggingStore: SenderTaggingStore, anchorBlockHash:
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
export declare function loadAndStoreNewTaggingIndexes(secret: DirectionalAppTaggingSecret, app: AztecAddress, start: number, end: number, aztecNode: AztecNode, taggingStore: SenderTaggingStore, anchorBlockHash: BlockHash, jobId: string): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9hbmRfc3RvcmVfbmV3X3RhZ2dpbmdfaW5kZXhlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhZ2dpbmcvc2VuZGVyX3N5bmMvdXRpbHMvbG9hZF9hbmRfc3RvcmVfbmV3X3RhZ2dpbmdfaW5kZXhlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBVSxNQUFNLG9CQUFvQixDQUFDO0FBSTlFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHakc7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILHdCQUFzQiw2QkFBNkIsQ0FDakQsTUFBTSxFQUFFLDJCQUEyQixFQUNuQyxHQUFHLEVBQUUsWUFBWSxFQUNqQixLQUFLLEVBQUUsTUFBTSxFQUNiLEdBQUcsRUFBRSxNQUFNLEVBQ1gsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLGtCQUFrQixFQUNoQyxlQUFlLEVBQUUsU0FBUyxFQUMxQixLQUFLLEVBQUUsTUFBTSxpQkFrQmQifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load_and_store_new_tagging_indexes.d.ts","sourceRoot":"","sources":["../../../../src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"load_and_store_new_tagging_indexes.d.ts","sourceRoot":"","sources":["../../../../src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAU,MAAM,oBAAoB,CAAC;AAI9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAGjG;;;;;;;;;;;;;GAaG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,2BAA2B,EACnC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,SAAS,EAC1B,KAAK,EAAE,MAAM,iBAkBd"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/pxe",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.3d8f95d",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"typedocOptions": {
|
|
6
|
+
"entryPoints": [
|
|
7
|
+
"./src/entrypoints/server/index.ts",
|
|
8
|
+
"./src/entrypoints/client/lazy/index.ts",
|
|
9
|
+
"./src/config/index.ts"
|
|
10
|
+
],
|
|
11
|
+
"name": "PXE",
|
|
12
|
+
"tsconfig": "./tsconfig.json"
|
|
13
|
+
},
|
|
5
14
|
"exports": {
|
|
6
15
|
"./server": "./dest/entrypoints/server/index.js",
|
|
7
16
|
"./client/lazy": "./dest/entrypoints/client/lazy/index.js",
|
|
@@ -61,19 +70,19 @@
|
|
|
61
70
|
]
|
|
62
71
|
},
|
|
63
72
|
"dependencies": {
|
|
64
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
65
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
66
|
-
"@aztec/builder": "0.0.1-commit.
|
|
67
|
-
"@aztec/constants": "0.0.1-commit.
|
|
68
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
69
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
70
|
-
"@aztec/key-store": "0.0.1-commit.
|
|
71
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
72
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
73
|
-
"@aztec/noir-types": "0.0.1-commit.
|
|
74
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
75
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
76
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
73
|
+
"@aztec/bb-prover": "0.0.1-commit.3d8f95d",
|
|
74
|
+
"@aztec/bb.js": "0.0.1-commit.3d8f95d",
|
|
75
|
+
"@aztec/builder": "0.0.1-commit.3d8f95d",
|
|
76
|
+
"@aztec/constants": "0.0.1-commit.3d8f95d",
|
|
77
|
+
"@aztec/ethereum": "0.0.1-commit.3d8f95d",
|
|
78
|
+
"@aztec/foundation": "0.0.1-commit.3d8f95d",
|
|
79
|
+
"@aztec/key-store": "0.0.1-commit.3d8f95d",
|
|
80
|
+
"@aztec/kv-store": "0.0.1-commit.3d8f95d",
|
|
81
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.3d8f95d",
|
|
82
|
+
"@aztec/noir-types": "0.0.1-commit.3d8f95d",
|
|
83
|
+
"@aztec/protocol-contracts": "0.0.1-commit.3d8f95d",
|
|
84
|
+
"@aztec/simulator": "0.0.1-commit.3d8f95d",
|
|
85
|
+
"@aztec/stdlib": "0.0.1-commit.3d8f95d",
|
|
77
86
|
"koa": "^2.16.1",
|
|
78
87
|
"koa-router": "^13.1.1",
|
|
79
88
|
"lodash.omit": "^4.5.0",
|
|
@@ -82,8 +91,8 @@
|
|
|
82
91
|
"viem": "npm:@aztec/viem@2.38.2"
|
|
83
92
|
},
|
|
84
93
|
"devDependencies": {
|
|
85
|
-
"@aztec/merkle-tree": "0.0.1-commit.
|
|
86
|
-
"@aztec/noir-test-contracts.js": "0.0.1-commit.
|
|
94
|
+
"@aztec/merkle-tree": "0.0.1-commit.3d8f95d",
|
|
95
|
+
"@aztec/noir-test-contracts.js": "0.0.1-commit.3d8f95d",
|
|
87
96
|
"@jest/globals": "^30.0.0",
|
|
88
97
|
"@types/jest": "^30.0.0",
|
|
89
98
|
"@types/lodash.omit": "^4.5.7",
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
4
4
|
import type { L2TipsKVStore } from '@aztec/kv-store/stores';
|
|
5
|
-
import {
|
|
6
|
-
L2BlockHash,
|
|
7
|
-
L2BlockStream,
|
|
8
|
-
type L2BlockStreamEvent,
|
|
9
|
-
type L2BlockStreamEventHandler,
|
|
10
|
-
} from '@aztec/stdlib/block';
|
|
5
|
+
import { BlockHash, L2BlockStream, type L2BlockStreamEvent, type L2BlockStreamEventHandler } from '@aztec/stdlib/block';
|
|
11
6
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
12
7
|
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
13
8
|
|
|
14
9
|
import type { BlockSynchronizerConfig } from '../config/index.js';
|
|
10
|
+
import type { ContractSyncService } from '../contract_sync/contract_sync_service.js';
|
|
15
11
|
import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
|
|
16
12
|
import type { NoteStore } from '../storage/note_store/note_store.js';
|
|
17
13
|
import type { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
|
|
@@ -33,23 +29,27 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
|
|
|
33
29
|
private noteStore: NoteStore,
|
|
34
30
|
private privateEventStore: PrivateEventStore,
|
|
35
31
|
private l2TipsStore: L2TipsKVStore,
|
|
32
|
+
private contractSyncService: ContractSyncService,
|
|
36
33
|
private config: Partial<BlockSynchronizerConfig> = {},
|
|
37
|
-
|
|
34
|
+
bindings?: LoggerBindings,
|
|
38
35
|
) {
|
|
39
|
-
this.log =
|
|
40
|
-
!loggerOrSuffix || typeof loggerOrSuffix === 'string'
|
|
41
|
-
? createLogger(loggerOrSuffix ? `pxe:block_synchronizer:${loggerOrSuffix}` : `pxe:block_synchronizer`)
|
|
42
|
-
: loggerOrSuffix;
|
|
36
|
+
this.log = createLogger('pxe:block_synchronizer', bindings);
|
|
43
37
|
this.blockStream = this.createBlockStream(config);
|
|
44
38
|
}
|
|
45
39
|
|
|
46
40
|
protected createBlockStream(config: Partial<BlockSynchronizerConfig>): L2BlockStream {
|
|
47
|
-
return new L2BlockStream(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
41
|
+
return new L2BlockStream(
|
|
42
|
+
this.node,
|
|
43
|
+
this.l2TipsStore,
|
|
44
|
+
this,
|
|
45
|
+
createLogger('pxe:block_stream', this.log.getBindings()),
|
|
46
|
+
{
|
|
47
|
+
batchSize: config.l2BlockBatchSize,
|
|
48
|
+
// Skipping finalized blocks makes us sync much faster - we only need to download blocks other than the latest one
|
|
49
|
+
// in order to detect reorgs, and there can be no reorgs on finalized block, making this safe.
|
|
50
|
+
skipFinalized: true,
|
|
51
|
+
},
|
|
52
|
+
);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/** Handle events emitted by the block stream. */
|
|
@@ -106,7 +106,7 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
|
|
|
106
106
|
// Note that the following is not necessarily the anchor block that will be used in the transaction - if
|
|
107
107
|
// the chain has already moved past the reorg, we'll also see blocks-added events that will push the anchor
|
|
108
108
|
// forward.
|
|
109
|
-
const newAnchorBlockHeader = await this.node.getBlockHeader(
|
|
109
|
+
const newAnchorBlockHeader = await this.node.getBlockHeader(BlockHash.fromString(event.block.hash));
|
|
110
110
|
|
|
111
111
|
if (!newAnchorBlockHeader) {
|
|
112
112
|
throw new Error(
|
|
@@ -127,6 +127,10 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
|
|
|
127
127
|
|
|
128
128
|
/** Updates the anchor block header to the target block */
|
|
129
129
|
private async updateAnchorBlockHeader(blockHeader: BlockHeader) {
|
|
130
|
+
// Whenever the anchor block header is updated, we need to synchronize the private state of contracts again.
|
|
131
|
+
// Therefore, we clear the contract synchronization cache here such that the sync is re-triggered upon new
|
|
132
|
+
// execution.
|
|
133
|
+
this.contractSyncService.wipe();
|
|
130
134
|
this.log.verbose(`Updated pxe last block to ${blockHeader.getBlockNumber()}`, blockHeader.toInspect());
|
|
131
135
|
await this.anchorBlockStore.setHeader(blockHeader);
|
|
132
136
|
}
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
FIXED_AVM_STARTUP_L2_GAS,
|
|
8
8
|
FIXED_DA_GAS,
|
|
9
9
|
FIXED_L2_GAS,
|
|
10
|
+
GeneratorIndex,
|
|
10
11
|
L2_GAS_PER_CONTRACT_CLASS_LOG,
|
|
11
12
|
L2_GAS_PER_PRIVATE_LOG,
|
|
12
13
|
MAX_CONTRACT_CLASS_LOGS_PER_TX,
|
|
@@ -17,7 +18,7 @@ import {
|
|
|
17
18
|
MAX_PRIVATE_LOGS_PER_TX,
|
|
18
19
|
} from '@aztec/constants';
|
|
19
20
|
import { arrayNonEmptyLength, padArrayEnd } from '@aztec/foundation/collection';
|
|
20
|
-
import {
|
|
21
|
+
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
21
22
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
22
23
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
23
24
|
import { Timer } from '@aztec/foundation/timer';
|
|
@@ -71,8 +72,8 @@ import {
|
|
|
71
72
|
getFinalMinRevertibleSideEffectCounter,
|
|
72
73
|
} from '@aztec/stdlib/tx';
|
|
73
74
|
|
|
75
|
+
import type { ContractSyncService } from '../contract_sync/contract_sync_service.js';
|
|
74
76
|
import type { AddressStore } from '../storage/address_store/address_store.js';
|
|
75
|
-
import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
|
|
76
77
|
import type { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
|
|
77
78
|
import type { ContractStore } from '../storage/contract_store/contract_store.js';
|
|
78
79
|
import type { NoteStore } from '../storage/note_store/note_store.js';
|
|
@@ -89,52 +90,89 @@ import { executePrivateFunction } from './oracle/private_execution.js';
|
|
|
89
90
|
import { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
|
|
90
91
|
import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
91
92
|
|
|
93
|
+
/** Options for ContractFunctionSimulator.run. */
|
|
94
|
+
export type ContractSimulatorRunOpts = {
|
|
95
|
+
/** The address of the contract (should match request.origin). */
|
|
96
|
+
contractAddress: AztecAddress;
|
|
97
|
+
/** The function selector of the entry point. */
|
|
98
|
+
selector: FunctionSelector;
|
|
99
|
+
/** The address calling the function. Can be replaced to simulate a call from another contract or account. */
|
|
100
|
+
msgSender?: AztecAddress;
|
|
101
|
+
/** The block header to use as base state for this run. */
|
|
102
|
+
anchorBlockHeader: BlockHeader;
|
|
103
|
+
/** The address used as a tagging sender when emitting private logs. */
|
|
104
|
+
senderForTags?: AztecAddress;
|
|
105
|
+
/** The accounts whose notes we can access in this call. Defaults to all. */
|
|
106
|
+
scopes?: AztecAddress[];
|
|
107
|
+
/** The job ID for staged writes. */
|
|
108
|
+
jobId: string;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/** Args for ContractFunctionSimulator constructor. */
|
|
112
|
+
export type ContractFunctionSimulatorArgs = {
|
|
113
|
+
contractStore: ContractStore;
|
|
114
|
+
noteStore: NoteStore;
|
|
115
|
+
keyStore: KeyStore;
|
|
116
|
+
addressStore: AddressStore;
|
|
117
|
+
aztecNode: AztecNode;
|
|
118
|
+
senderTaggingStore: SenderTaggingStore;
|
|
119
|
+
recipientTaggingStore: RecipientTaggingStore;
|
|
120
|
+
senderAddressBookStore: SenderAddressBookStore;
|
|
121
|
+
capsuleStore: CapsuleStore;
|
|
122
|
+
privateEventStore: PrivateEventStore;
|
|
123
|
+
simulator: CircuitSimulator;
|
|
124
|
+
contractSyncService: ContractSyncService;
|
|
125
|
+
};
|
|
126
|
+
|
|
92
127
|
/**
|
|
93
128
|
* The contract function simulator.
|
|
94
129
|
*/
|
|
95
130
|
export class ContractFunctionSimulator {
|
|
96
|
-
private log: Logger;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
131
|
+
private readonly log: Logger;
|
|
132
|
+
private readonly contractStore: ContractStore;
|
|
133
|
+
private readonly noteStore: NoteStore;
|
|
134
|
+
private readonly keyStore: KeyStore;
|
|
135
|
+
private readonly addressStore: AddressStore;
|
|
136
|
+
private readonly aztecNode: AztecNode;
|
|
137
|
+
private readonly senderTaggingStore: SenderTaggingStore;
|
|
138
|
+
private readonly recipientTaggingStore: RecipientTaggingStore;
|
|
139
|
+
private readonly senderAddressBookStore: SenderAddressBookStore;
|
|
140
|
+
private readonly capsuleStore: CapsuleStore;
|
|
141
|
+
private readonly privateEventStore: PrivateEventStore;
|
|
142
|
+
private readonly simulator: CircuitSimulator;
|
|
143
|
+
private readonly contractSyncService: ContractSyncService;
|
|
144
|
+
|
|
145
|
+
constructor(args: ContractFunctionSimulatorArgs) {
|
|
146
|
+
this.contractStore = args.contractStore;
|
|
147
|
+
this.noteStore = args.noteStore;
|
|
148
|
+
this.keyStore = args.keyStore;
|
|
149
|
+
this.addressStore = args.addressStore;
|
|
150
|
+
this.aztecNode = args.aztecNode;
|
|
151
|
+
this.senderTaggingStore = args.senderTaggingStore;
|
|
152
|
+
this.recipientTaggingStore = args.recipientTaggingStore;
|
|
153
|
+
this.senderAddressBookStore = args.senderAddressBookStore;
|
|
154
|
+
this.capsuleStore = args.capsuleStore;
|
|
155
|
+
this.privateEventStore = args.privateEventStore;
|
|
156
|
+
this.simulator = args.simulator;
|
|
157
|
+
this.contractSyncService = args.contractSyncService;
|
|
112
158
|
this.log = createLogger('simulator');
|
|
113
159
|
}
|
|
114
160
|
|
|
115
161
|
/**
|
|
116
162
|
* Runs a private function.
|
|
117
163
|
* @param request - The transaction request.
|
|
118
|
-
* @param entryPointArtifact - The artifact of the entry point function.
|
|
119
|
-
* @param contractAddress - The address of the contract (should match request.origin)
|
|
120
|
-
* @param msgSender - The address calling the function. This can be replaced to simulate a call from another contract
|
|
121
|
-
* or a specific account.
|
|
122
|
-
* @param anchorBlockHeader - The block header to use as base state for this run.
|
|
123
|
-
* @param senderForTags - The address that is used as a tagging sender when emitting private logs. Returned from
|
|
124
|
-
* the `privateGetSenderForTags` oracle.
|
|
125
|
-
* @param scopes - The accounts whose notes we can access in this call. Currently optional and will default to all.
|
|
126
|
-
* @param jobId - The job ID for staged writes.
|
|
127
|
-
* @returns The result of the execution.
|
|
128
164
|
*/
|
|
129
165
|
public async run(
|
|
130
166
|
request: TxExecutionRequest,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
167
|
+
{
|
|
168
|
+
contractAddress,
|
|
169
|
+
selector,
|
|
170
|
+
msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE),
|
|
171
|
+
anchorBlockHeader,
|
|
172
|
+
senderForTags,
|
|
173
|
+
scopes,
|
|
174
|
+
jobId,
|
|
175
|
+
}: ContractSimulatorRunOpts,
|
|
138
176
|
): Promise<PrivateExecutionResult> {
|
|
139
177
|
const simulatorSetupTimer = new Timer();
|
|
140
178
|
|
|
@@ -164,38 +202,37 @@ export class ContractFunctionSimulator {
|
|
|
164
202
|
const noteCache = new ExecutionNoteCache(protocolNullifier);
|
|
165
203
|
const taggingIndexCache = new ExecutionTaggingIndexCache();
|
|
166
204
|
|
|
167
|
-
const privateExecutionOracle = new PrivateExecutionOracle(
|
|
168
|
-
request.firstCallArgsHash,
|
|
169
|
-
request.txContext,
|
|
205
|
+
const privateExecutionOracle = new PrivateExecutionOracle({
|
|
206
|
+
argsHash: request.firstCallArgsHash,
|
|
207
|
+
txContext: request.txContext,
|
|
170
208
|
callContext,
|
|
171
209
|
anchorBlockHeader,
|
|
172
|
-
async call => {
|
|
210
|
+
utilityExecutor: async call => {
|
|
173
211
|
await this.runUtility(call, [], anchorBlockHeader, scopes, jobId);
|
|
174
212
|
},
|
|
175
|
-
request.authWitnesses,
|
|
176
|
-
request.capsules,
|
|
177
|
-
HashedValuesCache.create(request.argsOfCalls),
|
|
213
|
+
authWitnesses: request.authWitnesses,
|
|
214
|
+
capsules: request.capsules,
|
|
215
|
+
executionCache: HashedValuesCache.create(request.argsOfCalls),
|
|
178
216
|
noteCache,
|
|
179
217
|
taggingIndexCache,
|
|
180
|
-
this.contractStore,
|
|
181
|
-
this.noteStore,
|
|
182
|
-
this.keyStore,
|
|
183
|
-
this.addressStore,
|
|
184
|
-
this.aztecNode,
|
|
185
|
-
this.
|
|
186
|
-
this.
|
|
187
|
-
this.
|
|
188
|
-
this.
|
|
189
|
-
this.
|
|
190
|
-
this.
|
|
218
|
+
contractStore: this.contractStore,
|
|
219
|
+
noteStore: this.noteStore,
|
|
220
|
+
keyStore: this.keyStore,
|
|
221
|
+
addressStore: this.addressStore,
|
|
222
|
+
aztecNode: this.aztecNode,
|
|
223
|
+
senderTaggingStore: this.senderTaggingStore,
|
|
224
|
+
recipientTaggingStore: this.recipientTaggingStore,
|
|
225
|
+
senderAddressBookStore: this.senderAddressBookStore,
|
|
226
|
+
capsuleStore: this.capsuleStore,
|
|
227
|
+
privateEventStore: this.privateEventStore,
|
|
228
|
+
contractSyncService: this.contractSyncService,
|
|
191
229
|
jobId,
|
|
192
|
-
0,
|
|
193
|
-
startSideEffectCounter,
|
|
194
|
-
undefined, // log
|
|
230
|
+
totalPublicCalldataCount: 0,
|
|
231
|
+
sideEffectCounter: startSideEffectCounter,
|
|
195
232
|
scopes,
|
|
196
233
|
senderForTags,
|
|
197
|
-
this.simulator,
|
|
198
|
-
);
|
|
234
|
+
simulator: this.simulator,
|
|
235
|
+
});
|
|
199
236
|
|
|
200
237
|
const setupTime = simulatorSetupTimer.ms();
|
|
201
238
|
|
|
@@ -268,25 +305,23 @@ export class ContractFunctionSimulator {
|
|
|
268
305
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
|
|
269
306
|
}
|
|
270
307
|
|
|
271
|
-
const oracle = new UtilityExecutionOracle(
|
|
272
|
-
call.to,
|
|
273
|
-
authwits,
|
|
274
|
-
[],
|
|
308
|
+
const oracle = new UtilityExecutionOracle({
|
|
309
|
+
contractAddress: call.to,
|
|
310
|
+
authWitnesses: authwits,
|
|
311
|
+
capsules: [],
|
|
275
312
|
anchorBlockHeader,
|
|
276
|
-
this.contractStore,
|
|
277
|
-
this.noteStore,
|
|
278
|
-
this.keyStore,
|
|
279
|
-
this.addressStore,
|
|
280
|
-
this.aztecNode,
|
|
281
|
-
this.
|
|
282
|
-
this.
|
|
283
|
-
this.
|
|
284
|
-
this.
|
|
285
|
-
this.privateEventStore,
|
|
313
|
+
contractStore: this.contractStore,
|
|
314
|
+
noteStore: this.noteStore,
|
|
315
|
+
keyStore: this.keyStore,
|
|
316
|
+
addressStore: this.addressStore,
|
|
317
|
+
aztecNode: this.aztecNode,
|
|
318
|
+
recipientTaggingStore: this.recipientTaggingStore,
|
|
319
|
+
senderAddressBookStore: this.senderAddressBookStore,
|
|
320
|
+
capsuleStore: this.capsuleStore,
|
|
321
|
+
privateEventStore: this.privateEventStore,
|
|
286
322
|
jobId,
|
|
287
|
-
undefined,
|
|
288
323
|
scopes,
|
|
289
|
-
);
|
|
324
|
+
});
|
|
290
325
|
|
|
291
326
|
try {
|
|
292
327
|
this.log.verbose(`Executing utility function ${entryPointArtifact.name}`, {
|
|
@@ -359,7 +394,7 @@ class OrderedSideEffect<T> {
|
|
|
359
394
|
*/
|
|
360
395
|
export async function generateSimulatedProvingResult(
|
|
361
396
|
privateExecutionResult: PrivateExecutionResult,
|
|
362
|
-
|
|
397
|
+
debugFunctionNameGetter: (contractAddress: AztecAddress, functionSelector: FunctionSelector) => Promise<string>,
|
|
363
398
|
minRevertibleSideEffectCounterOverride?: number,
|
|
364
399
|
): Promise<PrivateKernelExecutionProofOutput<PrivateKernelTailCircuitPublicInputs>> {
|
|
365
400
|
const siloedNoteHashes: OrderedSideEffect<Fr>[] = [];
|
|
@@ -401,7 +436,10 @@ export async function generateSimulatedProvingResult(
|
|
|
401
436
|
|
|
402
437
|
const privateLogsFromExecution = await Promise.all(
|
|
403
438
|
execution.publicInputs.privateLogs.getActiveItems().map(async metadata => {
|
|
404
|
-
metadata.log.fields[0] = await
|
|
439
|
+
metadata.log.fields[0] = await poseidon2HashWithSeparator(
|
|
440
|
+
[contractAddress, metadata.log.fields[0]],
|
|
441
|
+
GeneratorIndex.PRIVATE_LOG_FIRST_FIELD,
|
|
442
|
+
);
|
|
405
443
|
return new OrderedSideEffect(metadata.log, metadata.counter);
|
|
406
444
|
}),
|
|
407
445
|
);
|
|
@@ -437,7 +475,7 @@ export async function generateSimulatedProvingResult(
|
|
|
437
475
|
: execution.publicInputs.publicTeardownCallRequest;
|
|
438
476
|
|
|
439
477
|
executionSteps.push({
|
|
440
|
-
functionName: await
|
|
478
|
+
functionName: await debugFunctionNameGetter(
|
|
441
479
|
execution.publicInputs.callContext.contractAddress,
|
|
442
480
|
execution.publicInputs.callContext.functionSelector,
|
|
443
481
|
),
|
|
@@ -5,7 +5,7 @@ import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
|
5
5
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
6
6
|
import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
7
7
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
-
import {
|
|
8
|
+
import { BlockHash } from '@aztec/stdlib/block';
|
|
9
9
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
10
10
|
import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
|
|
11
11
|
import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
|
|
@@ -54,7 +54,7 @@ export interface IMiscOracle {
|
|
|
54
54
|
|
|
55
55
|
utilityGetRandomField(): Fr;
|
|
56
56
|
utilityAssertCompatibleOracleVersion(version: number): void;
|
|
57
|
-
|
|
57
|
+
utilityLog(level: number, message: string, fields: Fr[]): Promise<void>;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
/**
|
|
@@ -68,24 +68,24 @@ export interface IUtilityExecutionOracle {
|
|
|
68
68
|
utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
|
|
69
69
|
utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
|
|
70
70
|
utilityGetNoteHashMembershipWitness(
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
anchorBlockHash: BlockHash,
|
|
72
|
+
noteHash: Fr,
|
|
73
73
|
): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
utilityGetBlockHashMembershipWitness(
|
|
75
|
+
anchorBlockHash: BlockHash,
|
|
76
|
+
blockHash: BlockHash,
|
|
77
77
|
): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
|
|
78
78
|
utilityGetNullifierMembershipWitness(
|
|
79
|
-
|
|
79
|
+
anchorBlockHash: BlockHash,
|
|
80
80
|
nullifier: Fr,
|
|
81
81
|
): Promise<NullifierMembershipWitness | undefined>;
|
|
82
|
-
utilityGetPublicDataWitness(
|
|
82
|
+
utilityGetPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
83
83
|
utilityGetLowNullifierMembershipWitness(
|
|
84
|
-
|
|
84
|
+
anchorBlockHash: BlockHash,
|
|
85
85
|
nullifier: Fr,
|
|
86
86
|
): Promise<NullifierMembershipWitness | undefined>;
|
|
87
87
|
utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
|
|
88
|
-
|
|
88
|
+
utilityTryGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
|
|
89
89
|
utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
90
90
|
utilityGetNotes(
|
|
91
91
|
owner: AztecAddress | undefined,
|
|
@@ -111,7 +111,7 @@ export interface IUtilityExecutionOracle {
|
|
|
111
111
|
secret: Fr,
|
|
112
112
|
): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
|
|
113
113
|
utilityStorageRead(
|
|
114
|
-
|
|
114
|
+
anchorBlockHash: BlockHash,
|
|
115
115
|
contractAddress: AztecAddress,
|
|
116
116
|
startStorageSlot: Fr,
|
|
117
117
|
numberOfElements: number,
|