@aztec/pxe 0.0.1-commit.2ed92850 → 0.0.1-commit.43597cc1
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 +5 -5
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +11 -11
- 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 +4 -4
- 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 +4 -3
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +7 -7
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +29 -23
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +61 -40
- 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 +12 -6
- 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 +13 -7
- 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 +19 -8
- 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 +13 -2
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +39 -16
- 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 +11 -8
- 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 +7 -10
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +73 -48
- 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 +7 -14
- package/src/entrypoints/client/lazy/utils.ts +8 -14
- package/src/entrypoints/pxe_creation_options.ts +2 -1
- package/src/entrypoints/server/index.ts +1 -1
- package/src/entrypoints/server/utils.ts +15 -19
- 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 +61 -19
- 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.43597cc1",
|
|
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.43597cc1",
|
|
74
|
+
"@aztec/bb.js": "0.0.1-commit.43597cc1",
|
|
75
|
+
"@aztec/builder": "0.0.1-commit.43597cc1",
|
|
76
|
+
"@aztec/constants": "0.0.1-commit.43597cc1",
|
|
77
|
+
"@aztec/ethereum": "0.0.1-commit.43597cc1",
|
|
78
|
+
"@aztec/foundation": "0.0.1-commit.43597cc1",
|
|
79
|
+
"@aztec/key-store": "0.0.1-commit.43597cc1",
|
|
80
|
+
"@aztec/kv-store": "0.0.1-commit.43597cc1",
|
|
81
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.43597cc1",
|
|
82
|
+
"@aztec/noir-types": "0.0.1-commit.43597cc1",
|
|
83
|
+
"@aztec/protocol-contracts": "0.0.1-commit.43597cc1",
|
|
84
|
+
"@aztec/simulator": "0.0.1-commit.43597cc1",
|
|
85
|
+
"@aztec/stdlib": "0.0.1-commit.43597cc1",
|
|
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.43597cc1",
|
|
95
|
+
"@aztec/noir-test-contracts.js": "0.0.1-commit.43597cc1",
|
|
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';
|
|
@@ -101,13 +102,13 @@ export class ContractFunctionSimulator {
|
|
|
101
102
|
private keyStore: KeyStore,
|
|
102
103
|
private addressStore: AddressStore,
|
|
103
104
|
private aztecNode: AztecNode,
|
|
104
|
-
private anchorBlockStore: AnchorBlockStore,
|
|
105
105
|
private senderTaggingStore: SenderTaggingStore,
|
|
106
106
|
private recipientTaggingStore: RecipientTaggingStore,
|
|
107
107
|
private senderAddressBookStore: SenderAddressBookStore,
|
|
108
108
|
private capsuleStore: CapsuleStore,
|
|
109
109
|
private privateEventStore: PrivateEventStore,
|
|
110
110
|
private simulator: CircuitSimulator,
|
|
111
|
+
private contractSyncService: ContractSyncService,
|
|
111
112
|
) {
|
|
112
113
|
this.log = createLogger('simulator');
|
|
113
114
|
}
|
|
@@ -182,12 +183,12 @@ export class ContractFunctionSimulator {
|
|
|
182
183
|
this.keyStore,
|
|
183
184
|
this.addressStore,
|
|
184
185
|
this.aztecNode,
|
|
185
|
-
this.anchorBlockStore,
|
|
186
186
|
this.senderTaggingStore,
|
|
187
187
|
this.recipientTaggingStore,
|
|
188
188
|
this.senderAddressBookStore,
|
|
189
189
|
this.capsuleStore,
|
|
190
190
|
this.privateEventStore,
|
|
191
|
+
this.contractSyncService,
|
|
191
192
|
jobId,
|
|
192
193
|
0, // totalPublicArgsCount
|
|
193
194
|
startSideEffectCounter,
|
|
@@ -278,7 +279,6 @@ export class ContractFunctionSimulator {
|
|
|
278
279
|
this.keyStore,
|
|
279
280
|
this.addressStore,
|
|
280
281
|
this.aztecNode,
|
|
281
|
-
this.anchorBlockStore,
|
|
282
282
|
this.recipientTaggingStore,
|
|
283
283
|
this.senderAddressBookStore,
|
|
284
284
|
this.capsuleStore,
|
|
@@ -359,7 +359,7 @@ class OrderedSideEffect<T> {
|
|
|
359
359
|
*/
|
|
360
360
|
export async function generateSimulatedProvingResult(
|
|
361
361
|
privateExecutionResult: PrivateExecutionResult,
|
|
362
|
-
|
|
362
|
+
debugFunctionNameGetter: (contractAddress: AztecAddress, functionSelector: FunctionSelector) => Promise<string>,
|
|
363
363
|
minRevertibleSideEffectCounterOverride?: number,
|
|
364
364
|
): Promise<PrivateKernelExecutionProofOutput<PrivateKernelTailCircuitPublicInputs>> {
|
|
365
365
|
const siloedNoteHashes: OrderedSideEffect<Fr>[] = [];
|
|
@@ -401,7 +401,10 @@ export async function generateSimulatedProvingResult(
|
|
|
401
401
|
|
|
402
402
|
const privateLogsFromExecution = await Promise.all(
|
|
403
403
|
execution.publicInputs.privateLogs.getActiveItems().map(async metadata => {
|
|
404
|
-
metadata.log.fields[0] = await
|
|
404
|
+
metadata.log.fields[0] = await poseidon2HashWithSeparator(
|
|
405
|
+
[contractAddress, metadata.log.fields[0]],
|
|
406
|
+
GeneratorIndex.PRIVATE_LOG_FIRST_FIELD,
|
|
407
|
+
);
|
|
405
408
|
return new OrderedSideEffect(metadata.log, metadata.counter);
|
|
406
409
|
}),
|
|
407
410
|
);
|
|
@@ -437,7 +440,7 @@ export async function generateSimulatedProvingResult(
|
|
|
437
440
|
: execution.publicInputs.publicTeardownCallRequest;
|
|
438
441
|
|
|
439
442
|
executionSteps.push({
|
|
440
|
-
functionName: await
|
|
443
|
+
functionName: await debugFunctionNameGetter(
|
|
441
444
|
execution.publicInputs.callContext.contractAddress,
|
|
442
445
|
execution.publicInputs.callContext.functionSelector,
|
|
443
446
|
),
|
|
@@ -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
|
-
utilityDebugLog(level: number, message: string, fields: Fr[]): void
|
|
57
|
+
utilityDebugLog(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,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from '@aztec/simulator/client';
|
|
13
13
|
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
14
14
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
|
-
import {
|
|
15
|
+
import { BlockHash } from '@aztec/stdlib/block';
|
|
16
16
|
import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
|
|
17
17
|
|
|
18
18
|
import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
|
|
@@ -138,29 +138,39 @@ export class Oracle {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
async utilityGetNoteHashMembershipWitness(
|
|
141
|
-
[
|
|
142
|
-
[
|
|
141
|
+
[anchorBlockHash]: ACVMField[],
|
|
142
|
+
[noteHash]: ACVMField[],
|
|
143
143
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
144
|
-
const
|
|
145
|
-
const
|
|
144
|
+
const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
|
|
145
|
+
const parsedNoteHash = Fr.fromString(noteHash);
|
|
146
146
|
|
|
147
|
-
const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
|
|
147
|
+
const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
|
|
148
|
+
parsedAnchorBlockHash,
|
|
149
|
+
parsedNoteHash,
|
|
150
|
+
);
|
|
148
151
|
if (!witness) {
|
|
149
|
-
throw new Error(
|
|
152
|
+
throw new Error(
|
|
153
|
+
`Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
|
|
154
|
+
);
|
|
150
155
|
}
|
|
151
156
|
return witness.toNoirRepresentation();
|
|
152
157
|
}
|
|
153
158
|
|
|
154
|
-
async
|
|
159
|
+
async utilityGetBlockHashMembershipWitness(
|
|
160
|
+
[anchorBlockHash]: ACVMField[],
|
|
155
161
|
[blockHash]: ACVMField[],
|
|
156
|
-
[leafValue]: ACVMField[],
|
|
157
162
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
158
|
-
const
|
|
159
|
-
const
|
|
163
|
+
const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
|
|
164
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
160
165
|
|
|
161
|
-
const witness = await this.handlerAsUtility().
|
|
166
|
+
const witness = await this.handlerAsUtility().utilityGetBlockHashMembershipWitness(
|
|
167
|
+
parsedAnchorBlockHash,
|
|
168
|
+
parsedBlockHash,
|
|
169
|
+
);
|
|
162
170
|
if (!witness) {
|
|
163
|
-
throw new Error(
|
|
171
|
+
throw new Error(
|
|
172
|
+
`Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
|
|
173
|
+
);
|
|
164
174
|
}
|
|
165
175
|
return witness.toNoirRepresentation();
|
|
166
176
|
}
|
|
@@ -169,7 +179,7 @@ export class Oracle {
|
|
|
169
179
|
[blockHash]: ACVMField[],
|
|
170
180
|
[nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
|
|
171
181
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
172
|
-
const parsedBlockHash =
|
|
182
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
173
183
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
174
184
|
|
|
175
185
|
const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
|
|
@@ -188,7 +198,7 @@ export class Oracle {
|
|
|
188
198
|
[blockHash]: ACVMField[],
|
|
189
199
|
[nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
|
|
190
200
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
191
|
-
const parsedBlockHash =
|
|
201
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
192
202
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
193
203
|
|
|
194
204
|
const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
|
|
@@ -207,7 +217,7 @@ export class Oracle {
|
|
|
207
217
|
[blockHash]: ACVMField[],
|
|
208
218
|
[leafSlot]: ACVMField[],
|
|
209
219
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
210
|
-
const parsedBlockHash =
|
|
220
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
211
221
|
const parsedLeafSlot = Fr.fromString(leafSlot);
|
|
212
222
|
|
|
213
223
|
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
|
|
@@ -238,12 +248,19 @@ export class Oracle {
|
|
|
238
248
|
return [witness.map(toACVMField)];
|
|
239
249
|
}
|
|
240
250
|
|
|
241
|
-
async
|
|
251
|
+
async utilityTryGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]> {
|
|
242
252
|
const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
|
|
243
|
-
const
|
|
244
|
-
await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
|
|
253
|
+
const result = await this.handlerAsUtility().utilityTryGetPublicKeysAndPartialAddress(parsedAddress);
|
|
245
254
|
|
|
246
|
-
return
|
|
255
|
+
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
256
|
+
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
257
|
+
if (result === undefined) {
|
|
258
|
+
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
259
|
+
return [toACVMField(0), Array(13).fill(toACVMField(0))];
|
|
260
|
+
} else {
|
|
261
|
+
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
262
|
+
return [toACVMField(1), [...result.publicKeys.toFields(), result.partialAddress].map(toACVMField)];
|
|
263
|
+
}
|
|
247
264
|
}
|
|
248
265
|
|
|
249
266
|
async utilityGetNotes(
|
|
@@ -379,7 +396,7 @@ export class Oracle {
|
|
|
379
396
|
[numberOfElements]: ACVMField[],
|
|
380
397
|
): Promise<ACVMField[][]> {
|
|
381
398
|
const values = await this.handlerAsUtility().utilityStorageRead(
|
|
382
|
-
|
|
399
|
+
BlockHash.fromString(blockHash),
|
|
383
400
|
new AztecAddress(Fr.fromString(contractAddress)),
|
|
384
401
|
Fr.fromString(startStorageSlot),
|
|
385
402
|
+numberOfElements,
|
|
@@ -400,7 +417,7 @@ export class Oracle {
|
|
|
400
417
|
return Promise.resolve([]);
|
|
401
418
|
}
|
|
402
419
|
|
|
403
|
-
utilityDebugLog(
|
|
420
|
+
async utilityDebugLog(
|
|
404
421
|
level: ACVMField[],
|
|
405
422
|
message: ACVMField[],
|
|
406
423
|
_ignoredFieldsSize: ACVMField[],
|
|
@@ -409,8 +426,8 @@ export class Oracle {
|
|
|
409
426
|
const levelFr = Fr.fromString(level[0]);
|
|
410
427
|
const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
|
|
411
428
|
const fieldsFr = fields.map(Fr.fromString);
|
|
412
|
-
this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
|
|
413
|
-
return
|
|
429
|
+
await this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
|
|
430
|
+
return [];
|
|
414
431
|
}
|
|
415
432
|
|
|
416
433
|
// This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
|
|
@@ -30,10 +30,9 @@ import {
|
|
|
30
30
|
type TxContext,
|
|
31
31
|
} from '@aztec/stdlib/tx';
|
|
32
32
|
|
|
33
|
-
import {
|
|
33
|
+
import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
|
|
34
34
|
import { NoteService } from '../../notes/note_service.js';
|
|
35
35
|
import type { AddressStore } from '../../storage/address_store/address_store.js';
|
|
36
|
-
import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
|
|
37
36
|
import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
|
|
38
37
|
import type { ContractStore } from '../../storage/contract_store/contract_store.js';
|
|
39
38
|
import type { NoteStore } from '../../storage/note_store/note_store.js';
|
|
@@ -89,12 +88,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
89
88
|
keyStore: KeyStore,
|
|
90
89
|
addressStore: AddressStore,
|
|
91
90
|
aztecNode: AztecNode,
|
|
92
|
-
anchorBlockStore: AnchorBlockStore,
|
|
93
91
|
private readonly senderTaggingStore: SenderTaggingStore,
|
|
94
92
|
recipientTaggingStore: RecipientTaggingStore,
|
|
95
93
|
senderAddressBookStore: SenderAddressBookStore,
|
|
96
94
|
capsuleStore: CapsuleStore,
|
|
97
95
|
privateEventStore: PrivateEventStore,
|
|
96
|
+
private readonly contractSyncService: ContractSyncService,
|
|
98
97
|
jobId: string,
|
|
99
98
|
private totalPublicCalldataCount: number = 0,
|
|
100
99
|
protected sideEffectCounter: number = 0,
|
|
@@ -113,7 +112,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
113
112
|
keyStore,
|
|
114
113
|
addressStore,
|
|
115
114
|
aztecNode,
|
|
116
|
-
anchorBlockStore,
|
|
117
115
|
recipientTaggingStore,
|
|
118
116
|
senderAddressBookStore,
|
|
119
117
|
capsuleStore,
|
|
@@ -245,7 +243,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
245
243
|
sender: AztecAddress,
|
|
246
244
|
recipient: AztecAddress,
|
|
247
245
|
) {
|
|
248
|
-
const senderCompleteAddress = await this.
|
|
246
|
+
const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
|
|
249
247
|
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
250
248
|
return DirectionalAppTaggingSecret.compute(
|
|
251
249
|
senderCompleteAddress,
|
|
@@ -364,7 +362,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
364
362
|
|
|
365
363
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
366
364
|
|
|
367
|
-
const noteService = new NoteService(this.noteStore, this.aztecNode, this.
|
|
365
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
|
|
368
366
|
const dbNotes = await noteService.getNotes(
|
|
369
367
|
this.callContext.contractAddress,
|
|
370
368
|
owner,
|
|
@@ -540,13 +538,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
540
538
|
|
|
541
539
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
542
540
|
|
|
543
|
-
await ensureContractSynced(
|
|
541
|
+
await this.contractSyncService.ensureContractSynced(
|
|
544
542
|
targetContractAddress,
|
|
545
543
|
functionSelector,
|
|
546
544
|
this.utilityExecutor,
|
|
547
|
-
this.aztecNode,
|
|
548
|
-
this.contractStore,
|
|
549
545
|
this.anchorBlockHeader,
|
|
546
|
+
this.jobId,
|
|
550
547
|
);
|
|
551
548
|
|
|
552
549
|
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
|
|
@@ -574,12 +571,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
574
571
|
this.keyStore,
|
|
575
572
|
this.addressStore,
|
|
576
573
|
this.aztecNode,
|
|
577
|
-
this.anchorBlockStore,
|
|
578
574
|
this.senderTaggingStore,
|
|
579
575
|
this.recipientTaggingStore,
|
|
580
576
|
this.senderAddressBookStore,
|
|
581
577
|
this.capsuleStore,
|
|
582
578
|
this.privateEventStore,
|
|
579
|
+
this.contractSyncService,
|
|
583
580
|
this.jobId,
|
|
584
581
|
this.totalPublicCalldataCount,
|
|
585
582
|
sideEffectCounter,
|