@aztec/pxe 3.0.0-nightly.20251222 → 3.0.0-nightly.20251223

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.
Files changed (108) hide show
  1. package/dest/contract_function_simulator/contract_function_simulator.d.ts +31 -6
  2. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  3. package/dest/contract_function_simulator/contract_function_simulator.js +35 -11
  4. package/dest/contract_function_simulator/oracle/private_execution.d.ts +6 -8
  5. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  6. package/dest/contract_function_simulator/oracle/private_execution.js +10 -9
  7. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +13 -4
  8. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  9. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +18 -13
  10. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +44 -6
  11. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  12. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +135 -30
  13. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +2 -2
  14. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  15. package/dest/contract_function_simulator/proxied_contract_data_source.js +18 -0
  16. package/dest/debug/pxe_debug_utils.d.ts +3 -2
  17. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  18. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  19. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  20. package/dest/entrypoints/client/bundle/index.js +0 -1
  21. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  22. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  23. package/dest/entrypoints/client/lazy/index.js +0 -1
  24. package/dest/entrypoints/server/index.d.ts +2 -2
  25. package/dest/entrypoints/server/index.d.ts.map +1 -1
  26. package/dest/entrypoints/server/index.js +1 -1
  27. package/dest/events/event_service.d.ts +15 -0
  28. package/dest/events/event_service.d.ts.map +1 -0
  29. package/dest/events/event_service.js +47 -0
  30. package/dest/events/private_event_filter_validator.d.ts +3 -2
  31. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  32. package/dest/logs/log_service.d.ts +43 -0
  33. package/dest/logs/log_service.d.ts.map +1 -0
  34. package/dest/logs/log_service.js +258 -0
  35. package/dest/notes/index.d.ts +2 -0
  36. package/dest/notes/index.d.ts.map +1 -0
  37. package/dest/notes/index.js +1 -0
  38. package/dest/notes/note_service.d.ts +48 -0
  39. package/dest/notes/note_service.d.ts.map +1 -0
  40. package/dest/notes/note_service.js +152 -0
  41. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +2 -2
  42. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  43. package/dest/public_storage/public_storage_service.d.ts +24 -0
  44. package/dest/public_storage/public_storage_service.d.ts.map +1 -0
  45. package/dest/public_storage/public_storage_service.js +26 -0
  46. package/dest/pxe.d.ts +1 -1
  47. package/dest/pxe.d.ts.map +1 -1
  48. package/dest/pxe.js +3 -5
  49. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +33 -1
  50. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -1
  51. package/dest/storage/capsule_data_provider/capsule_data_provider.js +32 -4
  52. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +2 -1
  53. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -1
  54. package/dest/storage/contract_data_provider/contract_data_provider.js +11 -0
  55. package/dest/storage/tagging_data_provider/sender_tagging_data_provider.js +3 -3
  56. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
  57. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
  58. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
  59. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts +21 -0
  60. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts.map +1 -0
  61. package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.js +42 -0
  62. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
  63. package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
  64. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
  65. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
  66. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
  67. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +32 -0
  68. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts +2 -2
  69. package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  70. package/dest/tagging/sync/sync_sender_tagging_indexes.js +3 -3
  71. package/dest/tree_membership/tree_membership_service.d.ts +52 -0
  72. package/dest/tree_membership/tree_membership_service.d.ts.map +1 -0
  73. package/dest/tree_membership/tree_membership_service.js +84 -0
  74. package/package.json +16 -16
  75. package/src/contract_function_simulator/contract_function_simulator.ts +59 -10
  76. package/src/contract_function_simulator/oracle/private_execution.ts +13 -10
  77. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +80 -20
  78. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +199 -38
  79. package/src/contract_function_simulator/proxied_contract_data_source.ts +18 -1
  80. package/src/debug/pxe_debug_utils.ts +2 -1
  81. package/src/entrypoints/client/bundle/index.ts +0 -1
  82. package/src/entrypoints/client/lazy/index.ts +0 -1
  83. package/src/entrypoints/server/index.ts +1 -1
  84. package/src/events/event_service.ts +77 -0
  85. package/src/events/private_event_filter_validator.ts +2 -1
  86. package/src/logs/log_service.ts +386 -0
  87. package/src/notes/index.ts +1 -0
  88. package/src/notes/note_service.ts +200 -0
  89. package/src/private_kernel/private_kernel_oracle_impl.ts +1 -1
  90. package/src/public_storage/public_storage_service.ts +33 -0
  91. package/src/pxe.ts +13 -11
  92. package/src/storage/capsule_data_provider/capsule_data_provider.ts +32 -0
  93. package/src/storage/contract_data_provider/contract_data_provider.ts +15 -0
  94. package/src/storage/tagging_data_provider/sender_tagging_data_provider.ts +3 -3
  95. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +129 -0
  96. package/src/tagging/recipient_sync/new_recipient_tagging_data_provider.ts +53 -0
  97. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
  98. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +47 -0
  99. package/src/tagging/sync/sync_sender_tagging_indexes.ts +3 -3
  100. package/src/tree_membership/tree_membership_service.ts +112 -0
  101. package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -248
  102. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
  103. package/dest/contract_function_simulator/execution_data_provider.js +0 -14
  104. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -113
  105. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
  106. package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -648
  107. package/src/contract_function_simulator/execution_data_provider.ts +0 -322
  108. package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -967
@@ -1,21 +1,38 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { KeyStore } from '@aztec/key-store';
2
3
  import { type CircuitSimulator } from '@aztec/simulator/client';
3
4
  import type { FunctionCall } from '@aztec/stdlib/abi';
4
5
  import { FunctionSelector } from '@aztec/stdlib/abi';
5
6
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
6
7
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
8
+ import type { AztecNode } from '@aztec/stdlib/interfaces/server';
7
9
  import { type PrivateKernelExecutionProofOutput, PrivateKernelTailCircuitPublicInputs } from '@aztec/stdlib/kernel';
8
10
  import { BlockHeader, PrivateExecutionResult, TxExecutionRequest } from '@aztec/stdlib/tx';
9
- import type { ContractDataProvider } from '../storage/index.js';
10
- import type { ExecutionDataProvider } from './execution_data_provider.js';
11
+ import type { AddressDataProvider } from '../storage/address_data_provider/address_data_provider.js';
12
+ import type { AnchorBlockDataProvider } from '../storage/anchor_block_data_provider/anchor_block_data_provider.js';
13
+ import type { CapsuleDataProvider } from '../storage/capsule_data_provider/capsule_data_provider.js';
14
+ import type { ContractDataProvider } from '../storage/contract_data_provider/contract_data_provider.js';
15
+ import type { NoteDataProvider } from '../storage/note_data_provider/note_data_provider.js';
16
+ import type { PrivateEventDataProvider } from '../storage/private_event_data_provider/private_event_data_provider.js';
17
+ import type { RecipientTaggingDataProvider } from '../storage/tagging_data_provider/recipient_tagging_data_provider.js';
18
+ import type { SenderTaggingDataProvider } from '../storage/tagging_data_provider/sender_tagging_data_provider.js';
11
19
  /**
12
20
  * The contract function simulator.
13
21
  */
14
22
  export declare class ContractFunctionSimulator {
15
- private executionDataProvider;
23
+ private contractDataProvider;
24
+ private noteDataProvider;
25
+ private keyStore;
26
+ private addressDataProvider;
27
+ private aztecNode;
28
+ private anchorBlockDataProvider;
29
+ private senderTaggingDataProvider;
30
+ private recipientTaggingDataProvider;
31
+ private capsuleDataProvider;
32
+ private privateEventDataProvider;
16
33
  private simulator;
17
34
  private log;
18
- constructor(executionDataProvider: ExecutionDataProvider, simulator: CircuitSimulator);
35
+ constructor(contractDataProvider: ContractDataProvider, noteDataProvider: NoteDataProvider, keyStore: KeyStore, addressDataProvider: AddressDataProvider, aztecNode: AztecNode, anchorBlockDataProvider: AnchorBlockDataProvider, senderTaggingDataProvider: SenderTaggingDataProvider, recipientTaggingDataProvider: RecipientTaggingDataProvider, capsuleDataProvider: CapsuleDataProvider, privateEventDataProvider: PrivateEventDataProvider, simulator: CircuitSimulator);
19
36
  /**
20
37
  * Runs a private function.
21
38
  * @param request - The transaction request.
@@ -40,7 +57,15 @@ export declare class ContractFunctionSimulator {
40
57
  * @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
41
58
  */
42
59
  runUtility(call: FunctionCall, authwits: AuthWitness[], anchorBlockHeader: BlockHeader, scopes?: AztecAddress[]): Promise<Fr[]>;
43
- getStats(): import("./execution_data_provider.js").ExecutionStats;
60
+ /**
61
+ * Returns the execution statistics collected during the simulator run.
62
+ * @returns The execution statistics.
63
+ */
64
+ getStats(): {
65
+ nodeRPCCalls: Partial<Record<keyof AztecNode, {
66
+ times: number[];
67
+ }>>;
68
+ };
44
69
  }
45
70
  /**
46
71
  * Generates the final public inputs of the tail kernel circuit, an empty Chonk proof
@@ -55,4 +80,4 @@ export declare class ContractFunctionSimulator {
55
80
  * @returns The simulated proving result.
56
81
  */
57
82
  export declare function generateSimulatedProvingResult(privateExecutionResult: PrivateExecutionResult, nonceGenerator: Fr, contractDataProvider: ContractDataProvider): Promise<PrivateKernelExecutionProofOutput<PrivateKernelTailCircuitPublicInputs>>;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL2NvbnRyYWN0X2Z1bmN0aW9uX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBS3BELE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQU90QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFTM0QsT0FBTyxFQUlMLEtBQUssaUNBQWlDLEVBQ3RDLG9DQUFvQyxFQUtyQyxNQUFNLHNCQUFzQixDQUFDO0FBSTlCLE9BQU8sRUFDTCxXQUFXLEVBR1gsc0JBQXNCLEVBRXRCLGtCQUFrQixFQUduQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVMxRTs7R0FFRztBQUNILHFCQUFhLHlCQUF5QjtJQUlsQyxPQUFPLENBQUMscUJBQXFCO0lBQzdCLE9BQU8sQ0FBQyxTQUFTO0lBSm5CLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFDNUMsU0FBUyxFQUFFLGdCQUFnQixFQUdwQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNVLEdBQUcsQ0FDZCxPQUFPLEVBQUUsa0JBQWtCLEVBQzNCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsU0FBUywwQkFBNkMsRUFDdEQsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixhQUFhLENBQUMsRUFBRSxZQUFZLEVBQzVCLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxHQUN0QixPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0ErRmpDO0lBR0Q7Ozs7Ozs7O09BUUc7SUFDVSxVQUFVLENBQ3JCLElBQUksRUFBRSxZQUFZLEVBQ2xCLFFBQVEsRUFBRSxXQUFXLEVBQUUsRUFDdkIsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsR0FDdEIsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBOENmO0lBR0QsUUFBUSwwREFFUDtDQUNGO0FBWUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCx3QkFBc0IsOEJBQThCLENBQ2xELHNCQUFzQixFQUFFLHNCQUFzQixFQUM5QyxjQUFjLEVBQUUsRUFBRSxFQUNsQixvQkFBb0IsRUFBRSxvQkFBb0IsR0FDekMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FnTmxGIn0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL2NvbnRyYWN0X2Z1bmN0aW9uX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQU90QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFTM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUlMLEtBQUssaUNBQWlDLEVBQ3RDLG9DQUFvQyxFQUtyQyxNQUFNLHNCQUFzQixDQUFDO0FBSTlCLE9BQU8sRUFDTCxXQUFXLEVBR1gsc0JBQXNCLEVBRXRCLGtCQUFrQixFQUduQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDckcsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNuSCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3JHLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDeEcsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3RILE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQVVsSDs7R0FFRztBQUNILHFCQUFhLHlCQUF5QjtJQUlsQyxPQUFPLENBQUMsb0JBQW9CO0lBQzVCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLFFBQVE7SUFDaEIsT0FBTyxDQUFDLG1CQUFtQjtJQUMzQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsdUJBQXVCO0lBQy9CLE9BQU8sQ0FBQyx5QkFBeUI7SUFDakMsT0FBTyxDQUFDLDRCQUE0QjtJQUNwQyxPQUFPLENBQUMsbUJBQW1CO0lBQzNCLE9BQU8sQ0FBQyx3QkFBd0I7SUFDaEMsT0FBTyxDQUFDLFNBQVM7SUFibkIsT0FBTyxDQUFDLEdBQUcsQ0FBUztJQUVwQixZQUNVLG9CQUFvQixFQUFFLG9CQUFvQixFQUMxQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsUUFBUSxFQUFFLFFBQVEsRUFDbEIsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQ3hDLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCx5QkFBeUIsRUFBRSx5QkFBeUIsRUFDcEQsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQzFELG1CQUFtQixFQUFFLG1CQUFtQixFQUN4Qyx3QkFBd0IsRUFBRSx3QkFBd0IsRUFDbEQsU0FBUyxFQUFFLGdCQUFnQixFQUdwQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNVLEdBQUcsQ0FDZCxPQUFPLEVBQUUsa0JBQWtCLEVBQzNCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsU0FBUywwQkFBNkMsRUFDdEQsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixhQUFhLENBQUMsRUFBRSxZQUFZLEVBQzVCLE1BQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxHQUN0QixPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0EyR2pDO0lBR0Q7Ozs7Ozs7O09BUUc7SUFDVSxVQUFVLENBQ3JCLElBQUksRUFBRSxZQUFZLEVBQ2xCLFFBQVEsRUFBRSxXQUFXLEVBQUUsRUFDdkIsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsR0FDdEIsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBMERmO0lBR0Q7OztPQUdHO0lBQ0gsUUFBUTs7OztNQUtQO0NBQ0Y7QUFZRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FDbEQsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLGNBQWMsRUFBRSxFQUFFLEVBQ2xCLG9CQUFvQixFQUFFLG9CQUFvQixHQUN6QyxPQUFPLENBQUMsaUNBQWlDLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQWdObEYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contract_function_simulator.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/contract_function_simulator.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAKpD,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAS3D,OAAO,EAIL,KAAK,iCAAiC,EACtC,oCAAoC,EAKrC,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,WAAW,EAGX,sBAAsB,EAEtB,kBAAkB,EAGnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAS1E;;GAEG;AACH,qBAAa,yBAAyB;IAIlC,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,SAAS;IAJnB,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,qBAAqB,EAAE,qBAAqB,EAC5C,SAAS,EAAE,gBAAgB,EAGpC;IAED;;;;;;;;;;;;OAYG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,0BAA6C,EACtD,iBAAiB,EAAE,WAAW,EAC9B,aAAa,CAAC,EAAE,YAAY,EAC5B,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,sBAAsB,CAAC,CA+FjC;IAGD;;;;;;;;OAQG;IACU,UAAU,CACrB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,iBAAiB,EAAE,WAAW,EAC9B,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,EAAE,EAAE,CAAC,CA8Cf;IAGD,QAAQ,0DAEP;CACF;AAYD;;;;;;;;;;;GAWG;AACH,wBAAsB,8BAA8B,CAClD,sBAAsB,EAAE,sBAAsB,EAC9C,cAAc,EAAE,EAAE,EAClB,oBAAoB,EAAE,oBAAoB,GACzC,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CAgNlF"}
1
+ {"version":3,"file":"contract_function_simulator.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/contract_function_simulator.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAS3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAIL,KAAK,iCAAiC,EACtC,oCAAoC,EAKrC,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,WAAW,EAGX,sBAAsB,EAEtB,kBAAkB,EAGnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAC;AACnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qEAAqE,CAAC;AACxH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAUlH;;GAEG;AACH,qBAAa,yBAAyB;IAIlC,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,yBAAyB;IACjC,OAAO,CAAC,4BAA4B;IACpC,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,wBAAwB;IAChC,OAAO,CAAC,SAAS;IAbnB,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,uBAAuB,EAChD,yBAAyB,EAAE,yBAAyB,EACpD,4BAA4B,EAAE,4BAA4B,EAC1D,mBAAmB,EAAE,mBAAmB,EACxC,wBAAwB,EAAE,wBAAwB,EAClD,SAAS,EAAE,gBAAgB,EAGpC;IAED;;;;;;;;;;;;OAYG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,0BAA6C,EACtD,iBAAiB,EAAE,WAAW,EAC9B,aAAa,CAAC,EAAE,YAAY,EAC5B,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,sBAAsB,CAAC,CA2GjC;IAGD;;;;;;;;OAQG;IACU,UAAU,CACrB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,iBAAiB,EAAE,WAAW,EAC9B,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,EAAE,EAAE,CAAC,CA0Df;IAGD;;;OAGG;IACH,QAAQ;;;;MAKP;CACF;AAYD;;;;;;;;;;;GAWG;AACH,wBAAsB,8BAA8B,CAClD,sBAAsB,EAAE,sBAAsB,EAC9C,cAAc,EAAE,EAAE,EAClB,oBAAoB,EAAE,oBAAoB,GACzC,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CAgNlF"}
@@ -26,11 +26,29 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
26
26
  /**
27
27
  * The contract function simulator.
28
28
  */ export class ContractFunctionSimulator {
29
- executionDataProvider;
29
+ contractDataProvider;
30
+ noteDataProvider;
31
+ keyStore;
32
+ addressDataProvider;
33
+ aztecNode;
34
+ anchorBlockDataProvider;
35
+ senderTaggingDataProvider;
36
+ recipientTaggingDataProvider;
37
+ capsuleDataProvider;
38
+ privateEventDataProvider;
30
39
  simulator;
31
40
  log;
32
- constructor(executionDataProvider, simulator){
33
- this.executionDataProvider = executionDataProvider;
41
+ constructor(contractDataProvider, noteDataProvider, keyStore, addressDataProvider, aztecNode, anchorBlockDataProvider, senderTaggingDataProvider, recipientTaggingDataProvider, capsuleDataProvider, privateEventDataProvider, simulator){
42
+ this.contractDataProvider = contractDataProvider;
43
+ this.noteDataProvider = noteDataProvider;
44
+ this.keyStore = keyStore;
45
+ this.addressDataProvider = addressDataProvider;
46
+ this.aztecNode = aztecNode;
47
+ this.anchorBlockDataProvider = anchorBlockDataProvider;
48
+ this.senderTaggingDataProvider = senderTaggingDataProvider;
49
+ this.recipientTaggingDataProvider = recipientTaggingDataProvider;
50
+ this.capsuleDataProvider = capsuleDataProvider;
51
+ this.privateEventDataProvider = privateEventDataProvider;
34
52
  this.simulator = simulator;
35
53
  this.log = createLogger('simulator');
36
54
  }
@@ -48,8 +66,8 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
48
66
  * @returns The result of the execution.
49
67
  */ async run(request, contractAddress, selector, msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE), anchorBlockHeader, senderForTags, scopes) {
50
68
  const simulatorSetupTimer = new Timer();
51
- await verifyCurrentClassId(contractAddress, this.executionDataProvider, anchorBlockHeader);
52
- const entryPointArtifact = await this.executionDataProvider.getFunctionArtifact(contractAddress, selector);
69
+ await verifyCurrentClassId(contractAddress, this.aztecNode, this.contractDataProvider, anchorBlockHeader);
70
+ const entryPointArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(contractAddress, selector);
53
71
  if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
54
72
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
55
73
  }
@@ -62,7 +80,7 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
62
80
  const protocolNullifier = await computeProtocolNullifier(await request.toTxRequest().hash());
63
81
  const noteCache = new ExecutionNoteCache(protocolNullifier);
64
82
  const taggingIndexCache = new ExecutionTaggingIndexCache();
65
- const privateExecutionOracle = new PrivateExecutionOracle(request.firstCallArgsHash, request.txContext, callContext, anchorBlockHeader, request.authWitnesses, request.capsules, HashedValuesCache.create(request.argsOfCalls), noteCache, taggingIndexCache, this.executionDataProvider, 0, startSideEffectCounter, undefined, scopes, senderForTags, this.simulator);
83
+ const privateExecutionOracle = new PrivateExecutionOracle(request.firstCallArgsHash, request.txContext, callContext, anchorBlockHeader, request.authWitnesses, request.capsules, HashedValuesCache.create(request.argsOfCalls), noteCache, taggingIndexCache, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.aztecNode, this.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider, 0, startSideEffectCounter, undefined, scopes, senderForTags, this.simulator);
66
84
  const setupTime = simulatorSetupTimer.ms();
67
85
  try {
68
86
  // Note: any nested private function calls are made recursively within this
@@ -105,12 +123,12 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
105
123
  * accounts if not specified.
106
124
  * @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
107
125
  */ async runUtility(call, authwits, anchorBlockHeader, scopes) {
108
- await verifyCurrentClassId(call.to, this.executionDataProvider, anchorBlockHeader);
109
- const entryPointArtifact = await this.executionDataProvider.getFunctionArtifact(call.to, call.selector);
126
+ await verifyCurrentClassId(call.to, this.aztecNode, this.contractDataProvider, anchorBlockHeader);
127
+ const entryPointArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
110
128
  if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
111
129
  throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
112
130
  }
113
- const oracle = new UtilityExecutionOracle(call.to, authwits, [], anchorBlockHeader, this.executionDataProvider, undefined, scopes);
131
+ const oracle = new UtilityExecutionOracle(call.to, authwits, [], anchorBlockHeader, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.aztecNode, this.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider, undefined, scopes);
114
132
  try {
115
133
  this.log.verbose(`Executing utility function ${entryPointArtifact.name}`, {
116
134
  contract: call.to,
@@ -133,8 +151,14 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
133
151
  }
134
152
  }
135
153
  // docs:end:execute_utility_function
136
- getStats() {
137
- return this.executionDataProvider.getStats();
154
+ /**
155
+ * Returns the execution statistics collected during the simulator run.
156
+ * @returns The execution statistics.
157
+ */ getStats() {
158
+ const nodeRPCCalls = typeof this.aztecNode.getStats === 'function' ? this.aztecNode.getStats() : {};
159
+ return {
160
+ nodeRPCCalls
161
+ };
138
162
  }
139
163
  }
140
164
  class OrderedSideEffect {
@@ -8,7 +8,7 @@ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
8
8
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
9
9
  import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
10
10
  import type { UInt64 } from '@aztec/stdlib/types';
11
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
11
+ import { ContractDataProvider } from '../../storage/contract_data_provider/index.js';
12
12
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
13
13
  /**
14
14
  * Execute a private function and return the execution result.
@@ -36,14 +36,12 @@ export declare function extractPrivateCircuitPublicInputs(artifact: FunctionArti
36
36
  * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
37
37
  * @returns The current class id.
38
38
  */
39
- export declare function readCurrentClassId(contractAddress: AztecAddress, instance: ContractInstance, executionDataProvider: ExecutionDataProvider | AztecNode, blockNumber: BlockNumber, timestamp: UInt64): Promise<Fr>;
39
+ export declare function readCurrentClassId(contractAddress: AztecAddress, instance: ContractInstance, aztecNode: AztecNode, blockNumber: BlockNumber, timestamp: UInt64): Promise<Fr>;
40
40
  /**
41
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
42
- * provider (i.e. PXE).
43
- * @param contractAddress - The address of the contract to verify class id for.
44
- * @param executionDataProvider - The execution data provider.
41
+ * Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
42
+ * provider (i.e. PXE's own storage).
45
43
  * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
46
44
  * header of the execution data provider is used.
47
45
  */
48
- export declare function verifyCurrentClassId(contractAddress: AztecAddress, executionDataProvider: ExecutionDataProvider, header: BlockHeader): Promise<void>;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivb3JhY2xlL3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsT0FBTyxFQUNMLEtBQUssV0FBVyxFQUNoQixLQUFLLGdCQUFnQixFQUt0QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLGdDQUFnQyxFQUNyQyxLQUFLLGdCQUFnQixFQUV0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0UsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RTs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLHNCQUFzQixDQUMxQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQzNCLHNCQUFzQixFQUFFLHNCQUFzQixFQUM5QyxRQUFRLEVBQUUsZ0NBQWdDLEVBQzFDLGVBQWUsRUFBRSxZQUFZLEVBQzdCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxHQUFHLHlDQUE4QyxHQUNoRCxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0E2RXJDO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsaUNBQWlDLENBQy9DLFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsY0FBYyxFQUFFLFdBQVcsR0FDMUIsMEJBQTBCLENBYTVCO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUN0QyxlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsZ0JBQWdCLEVBQzFCLHFCQUFxQixFQUFFLHFCQUFxQixHQUFHLFNBQVMsRUFDeEQsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLE1BQU0sZUFXbEI7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLG9CQUFvQixDQUN4QyxlQUFlLEVBQUUsWUFBWSxFQUM3QixxQkFBcUIsRUFBRSxxQkFBcUIsRUFDNUMsTUFBTSxFQUFFLFdBQVcsaUJBZXBCIn0=
46
+ export declare function verifyCurrentClassId(contractAddress: AztecAddress, aztecNode: AztecNode, contractDataProvider: ContractDataProvider, header: BlockHeader): Promise<void>;
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivb3JhY2xlL3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsT0FBTyxFQUNMLEtBQUssV0FBVyxFQUNoQixLQUFLLGdCQUFnQixFQUt0QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLGdDQUFnQyxFQUNyQyxLQUFLLGdCQUFnQixFQUV0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUU7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixzQkFBc0IsQ0FDMUMsU0FBUyxFQUFFLGdCQUFnQixFQUMzQixzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsUUFBUSxFQUFFLGdDQUFnQyxFQUMxQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsR0FBRyx5Q0FBOEMsR0FDaEQsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBNkVyQztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGlDQUFpQyxDQUMvQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQzFCLGNBQWMsRUFBRSxXQUFXLEdBQzFCLDBCQUEwQixDQWE1QjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQixrQkFBa0IsQ0FDdEMsZUFBZSxFQUFFLFlBQVksRUFDN0IsUUFBUSxFQUFFLGdCQUFnQixFQUMxQixTQUFTLEVBQUUsU0FBUyxFQUNwQixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsTUFBTSxlQVdsQjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLG9CQUFvQixDQUN4QyxlQUFlLEVBQUUsWUFBWSxFQUM3QixTQUFTLEVBQUUsU0FBUyxFQUNwQixvQkFBb0IsRUFBRSxvQkFBb0IsRUFDMUMsTUFBTSxFQUFFLFdBQVcsaUJBbUJwQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAKtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EAEtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,gBAAgB,EAC3B,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,gCAAgC,EAC1C,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA6ErC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,EACxD,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,eAWlB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,YAAY,EAC7B,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,EAAE,WAAW,iBAepB"}
1
+ {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAKtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EAEtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,gBAAgB,EAC3B,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,gCAAgC,EAC1C,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA6ErC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,eAWlB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,YAAY,EAC7B,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,WAAW,iBAmBpB"}
@@ -97,9 +97,9 @@ import { Oracle } from './oracle.js';
97
97
  * @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
98
98
  * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
99
99
  * @returns The current class id.
100
- */ export async function readCurrentClassId(contractAddress, instance, executionDataProvider, blockNumber, timestamp) {
100
+ */ export async function readCurrentClassId(contractAddress, instance, aztecNode, blockNumber, timestamp) {
101
101
  const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
102
- const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, (slot)=>executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot));
102
+ const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, (slot)=>aztecNode.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot));
103
103
  let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
104
104
  if (currentClassId.isZero()) {
105
105
  currentClassId = instance.originalContractClassId;
@@ -107,15 +107,16 @@ import { Oracle } from './oracle.js';
107
107
  return currentClassId;
108
108
  }
109
109
  /**
110
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
111
- * provider (i.e. PXE).
112
- * @param contractAddress - The address of the contract to verify class id for.
113
- * @param executionDataProvider - The execution data provider.
110
+ * Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
111
+ * provider (i.e. PXE's own storage).
114
112
  * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
115
113
  * header of the execution data provider is used.
116
- */ export async function verifyCurrentClassId(contractAddress, executionDataProvider, header) {
117
- const instance = await executionDataProvider.getContractInstance(contractAddress);
118
- const currentClassId = await readCurrentClassId(contractAddress, instance, executionDataProvider, header.globalVariables.blockNumber, header.globalVariables.timestamp);
114
+ */ export async function verifyCurrentClassId(contractAddress, aztecNode, contractDataProvider, header) {
115
+ const instance = await contractDataProvider.getContractInstance(contractAddress);
116
+ if (!instance) {
117
+ throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
118
+ }
119
+ const currentClassId = await readCurrentClassId(contractAddress, instance, aztecNode, header.globalVariables.blockNumber, header.globalVariables.timestamp);
119
120
  if (!instance.currentContractClassId.equals(currentClassId)) {
120
121
  throw new Error(`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`);
121
122
  }
@@ -1,14 +1,23 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { KeyStore } from '@aztec/key-store';
2
3
  import { type CircuitSimulator } from '@aztec/simulator/client';
3
4
  import { type FunctionAbi, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
4
5
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
5
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
7
+ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
6
8
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
7
- import type { ContractClassLog, PreTag } from '@aztec/stdlib/logs';
9
+ import { type ContractClassLog, type PreTag } from '@aztec/stdlib/logs';
8
10
  import { type NoteStatus } from '@aztec/stdlib/note';
9
11
  import { type BlockHeader, CallContext, Capsule, CountedContractClassLog, NoteAndSlot, PrivateCallExecutionResult, type TxContext } from '@aztec/stdlib/tx';
12
+ import type { AddressDataProvider } from '../../storage/address_data_provider/address_data_provider.js';
13
+ import type { AnchorBlockDataProvider } from '../../storage/anchor_block_data_provider/anchor_block_data_provider.js';
14
+ import type { CapsuleDataProvider } from '../../storage/capsule_data_provider/capsule_data_provider.js';
15
+ import type { ContractDataProvider } from '../../storage/contract_data_provider/contract_data_provider.js';
16
+ import type { NoteDataProvider } from '../../storage/note_data_provider/note_data_provider.js';
17
+ import type { PrivateEventDataProvider } from '../../storage/private_event_data_provider/private_event_data_provider.js';
18
+ import type { RecipientTaggingDataProvider } from '../../storage/tagging_data_provider/recipient_tagging_data_provider.js';
19
+ import type { SenderTaggingDataProvider } from '../../storage/tagging_data_provider/sender_tagging_data_provider.js';
10
20
  import { Tag } from '../../tagging/tag.js';
11
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
12
21
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
13
22
  import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
14
23
  import type { HashedValuesCache } from '../hashed_values_cache.js';
@@ -58,7 +67,7 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
58
67
  /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
59
68
  anchorBlockHeader: BlockHeader,
60
69
  /** List of transient auth witnesses to be used during this simulation */
61
- authWitnesses: AuthWitness[], capsules: Capsule[], executionCache: HashedValuesCache, noteCache: ExecutionNoteCache, taggingIndexCache: ExecutionTaggingIndexCache, executionDataProvider: ExecutionDataProvider, totalPublicCalldataCount?: number, sideEffectCounter?: number, log?: import("@aztec/foundation/log").Logger, scopes?: AztecAddress[], senderForTags?: AztecAddress | undefined, simulator?: CircuitSimulator | undefined);
70
+ authWitnesses: AuthWitness[], capsules: Capsule[], executionCache: HashedValuesCache, noteCache: ExecutionNoteCache, taggingIndexCache: ExecutionTaggingIndexCache, contractDataProvider: ContractDataProvider, noteDataProvider: NoteDataProvider, keyStore: KeyStore, addressDataProvider: AddressDataProvider, aztecNode: AztecNode, anchorBlockDataProvider: AnchorBlockDataProvider, senderTaggingDataProvider: SenderTaggingDataProvider, recipientTaggingDataProvider: RecipientTaggingDataProvider, capsuleDataProvider: CapsuleDataProvider, privateEventDataProvider: PrivateEventDataProvider, totalPublicCalldataCount?: number, sideEffectCounter?: number, log?: import("@aztec/foundation/log").Logger, scopes?: AztecAddress[], senderForTags?: AztecAddress | undefined, simulator?: CircuitSimulator | undefined);
62
71
  getPrivateContextInputs(): PrivateContextInputs;
63
72
  /**
64
73
  * Writes the function inputs to the initial witness.
@@ -228,4 +237,4 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
228
237
  getDebugFunctionName(): Promise<string>;
229
238
  utilityEmitOffchainEffect(data: Fr[]): Promise<void>;
230
239
  }
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsZ0JBQWdCLEVBQ2hCLEtBQUssWUFBWSxFQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBK0IsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEcsT0FBTyxFQUFRLEtBQUssVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLEtBQUssV0FBVyxFQUNoQixXQUFXLEVBQ1gsT0FBTyxFQUNQLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsMEJBQTBCLEVBQzFCLEtBQUssU0FBUyxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFHMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0UsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMs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
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsZ0JBQWdCLEVBQ2hCLEtBQUssWUFBWSxFQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBK0IsS0FBSyxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRyxPQUFPLEVBQVEsS0FBSyxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCwwQkFBMEIsRUFDMUIsS0FBSyxTQUFTLEVBQ2YsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3hHLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFF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
@@ -1 +1 @@
1
- {"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,10 @@ import { toACVMWitness } from '@aztec/simulator/client';
6
6
  import { FunctionSelector, countArgumentsSize } from '@aztec/stdlib/abi';
7
7
  import { computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
8
8
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
9
+ import { DirectionalAppTaggingSecret } from '@aztec/stdlib/logs';
9
10
  import { Note } from '@aztec/stdlib/note';
10
11
  import { CallContext, CountedContractClassLog, NoteAndSlot } from '@aztec/stdlib/tx';
12
+ import { NoteService } from '../../notes/note_service.js';
11
13
  import { syncSenderTaggingIndexes } from '../../tagging/sync/sync_sender_tagging_indexes.js';
12
14
  import { Tag } from '../../tagging/tag.js';
13
15
  import { pickNotes } from '../pick_notes.js';
@@ -49,8 +51,8 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
49
51
  contractClassLogs;
50
52
  offchainEffects;
51
53
  nestedExecutionResults;
52
- constructor(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ anchorBlockHeader, /** List of transient auth witnesses to be used during this simulation */ authWitnesses, capsules, executionCache, noteCache, taggingIndexCache, executionDataProvider, totalPublicCalldataCount = 0, sideEffectCounter = 0, log = createLogger('simulator:client_execution_context'), scopes, senderForTags, simulator){
53
- super(callContext.contractAddress, authWitnesses, capsules, anchorBlockHeader, executionDataProvider, log, scopes), this.argsHash = argsHash, this.txContext = txContext, this.callContext = callContext, this.anchorBlockHeader = anchorBlockHeader, this.executionCache = executionCache, this.noteCache = noteCache, this.taggingIndexCache = taggingIndexCache, this.totalPublicCalldataCount = totalPublicCalldataCount, this.sideEffectCounter = sideEffectCounter, this.senderForTags = senderForTags, this.simulator = simulator, this.isPrivate = true, this.newNotes = [], this.noteHashLeafIndexMap = new Map(), this.noteHashNullifierCounterMap = new Map(), this.contractClassLogs = [], this.offchainEffects = [], this.nestedExecutionResults = [];
54
+ constructor(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ anchorBlockHeader, /** List of transient auth witnesses to be used during this simulation */ authWitnesses, capsules, executionCache, noteCache, taggingIndexCache, contractDataProvider, noteDataProvider, keyStore, addressDataProvider, aztecNode, anchorBlockDataProvider, senderTaggingDataProvider, recipientTaggingDataProvider, capsuleDataProvider, privateEventDataProvider, totalPublicCalldataCount = 0, sideEffectCounter = 0, log = createLogger('simulator:client_execution_context'), scopes, senderForTags, simulator){
55
+ super(callContext.contractAddress, authWitnesses, capsules, anchorBlockHeader, contractDataProvider, noteDataProvider, keyStore, addressDataProvider, aztecNode, anchorBlockDataProvider, senderTaggingDataProvider, recipientTaggingDataProvider, capsuleDataProvider, privateEventDataProvider, log, scopes), this.argsHash = argsHash, this.txContext = txContext, this.callContext = callContext, this.anchorBlockHeader = anchorBlockHeader, this.executionCache = executionCache, this.noteCache = noteCache, this.taggingIndexCache = taggingIndexCache, this.totalPublicCalldataCount = totalPublicCalldataCount, this.sideEffectCounter = sideEffectCounter, this.senderForTags = senderForTags, this.simulator = simulator, this.isPrivate = true, this.newNotes = [], this.noteHashLeafIndexMap = new Map(), this.noteHashNullifierCounterMap = new Map(), this.contractClassLogs = [], this.offchainEffects = [], this.nestedExecutionResults = [];
54
56
  }
55
57
  getPrivateContextInputs() {
56
58
  return new PrivateContextInputs(this.callContext, this.anchorBlockHeader, this.txContext, this.sideEffectCounter);
@@ -143,7 +145,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
143
145
  * @param recipient - The address receiving the log
144
146
  * @returns An app tag to be used in a log.
145
147
  */ async privateGetNextAppTagAsSender(sender, recipient) {
146
- const secret = await this.executionDataProvider.calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
148
+ const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
147
149
  const index = await this.#getIndexToUseForSecret(secret);
148
150
  this.log.debug(`Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`);
149
151
  this.taggingIndexCache.setLastUsedIndex(secret, index);
@@ -152,20 +154,22 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
152
154
  index
153
155
  });
154
156
  }
157
+ async #calculateDirectionalAppTaggingSecret(contractAddress, sender, recipient) {
158
+ const senderCompleteAddress = await this.getCompleteAddress(sender);
159
+ const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
160
+ return DirectionalAppTaggingSecret.compute(senderCompleteAddress, senderIvsk, recipient, contractAddress, recipient);
161
+ }
155
162
  async #getIndexToUseForSecret(secret) {
156
163
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
157
164
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
158
165
  if (lastUsedIndexInTx !== undefined) {
159
166
  return lastUsedIndexInTx + 1;
160
167
  } else {
161
- // TODO(#17776): Don't access the Aztec node and senderTaggingDataProvider via the executionDataProvider.
162
- const aztecNode = this.executionDataProvider.aztecNode;
163
- const senderTaggingDataProvider = this.executionDataProvider.senderTaggingDataProvider;
164
168
  // This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
165
169
  // are up to date. We do this here because this store is not synced as part of the global sync because
166
170
  // that'd be wasteful as most tagging secrets are not used in each tx.
167
- await syncSenderTaggingIndexes(secret, this.contractAddress, aztecNode, senderTaggingDataProvider);
168
- const lastUsedIndex = await senderTaggingDataProvider.getLastUsedIndex(secret);
171
+ await syncSenderTaggingIndexes(secret, this.contractAddress, this.aztecNode, this.senderTaggingDataProvider);
172
+ const lastUsedIndex = await this.senderTaggingDataProvider.getLastUsedIndex(secret);
169
173
  // If lastUsedIndex is undefined, we've never used this secret, so start from 0
170
174
  // Otherwise, the next index to use is one past the last used index
171
175
  return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
@@ -223,7 +227,8 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
223
227
  // Nullified pending notes are already removed from the list.
224
228
  const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
225
229
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
226
- const dbNotes = await this.executionDataProvider.getNotes(this.callContext.contractAddress, owner, storageSlot, status, this.scopes);
230
+ const noteService = new NoteService(this.noteDataProvider, this.aztecNode, this.anchorBlockDataProvider);
231
+ const dbNotes = await noteService.getNotes(this.callContext.contractAddress, owner, storageSlot, status, this.scopes);
227
232
  const dbNotesFiltered = dbNotes.filter((n)=>!pendingNullifiers.has(n.siloedNullifier.value));
228
233
  const notes = pickNotes([
229
234
  ...dbNotesFiltered,
@@ -356,11 +361,11 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
356
361
  const simulatorSetupTimer = new Timer();
357
362
  this.log.debug(`Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`);
358
363
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
359
- await verifyCurrentClassId(targetContractAddress, this.executionDataProvider, this.anchorBlockHeader);
360
- const targetArtifact = await this.executionDataProvider.getFunctionArtifact(targetContractAddress, functionSelector);
364
+ await verifyCurrentClassId(targetContractAddress, this.aztecNode, this.contractDataProvider, this.anchorBlockHeader);
365
+ const targetArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(targetContractAddress, functionSelector);
361
366
  const derivedTxContext = this.txContext.clone();
362
367
  const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
363
- const privateExecutionOracle = new PrivateExecutionOracle(argsHash, derivedTxContext, derivedCallContext, this.anchorBlockHeader, this.authWitnesses, this.capsules, this.executionCache, this.noteCache, this.taggingIndexCache, this.executionDataProvider, this.totalPublicCalldataCount, sideEffectCounter, this.log, this.scopes, this.senderForTags, this.simulator);
368
+ const privateExecutionOracle = new PrivateExecutionOracle(argsHash, derivedTxContext, derivedCallContext, this.anchorBlockHeader, this.authWitnesses, this.capsules, this.executionCache, this.noteCache, this.taggingIndexCache, this.contractDataProvider, this.noteDataProvider, this.keyStore, this.addressDataProvider, this.aztecNode, this.anchorBlockDataProvider, this.senderTaggingDataProvider, this.recipientTaggingDataProvider, this.capsuleDataProvider, this.privateEventDataProvider, this.totalPublicCalldataCount, sideEffectCounter, this.log, this.scopes, this.senderForTags, this.simulator);
364
369
  const setupTime = simulatorSetupTimer.ms();
365
370
  const childExecutionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, targetArtifact, targetContractAddress, functionSelector);
366
371
  if (isStaticCall) {
@@ -423,7 +428,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
423
428
  return new CallContext(this.contractAddress, targetContractAddress, await FunctionSelector.fromNameAndParameters(targetArtifact.name, targetArtifact.parameters), isStaticCall);
424
429
  }
425
430
  getDebugFunctionName() {
426
- return this.executionDataProvider.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
431
+ return this.contractDataProvider.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
427
432
  }
428
433
  utilityEmitOffchainEffect(data) {
429
434
  this.offchainEffects.push({
@@ -1,16 +1,26 @@
1
1
  import type { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { Point } from '@aztec/foundation/curves/grumpkin';
4
+ import type { KeyStore } from '@aztec/key-store';
4
5
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
5
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
7
  import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
8
+ import type { AztecNode } from '@aztec/stdlib/interfaces/server';
7
9
  import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
8
10
  import type { NoteStatus } from '@aztec/stdlib/note';
9
- import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
11
+ import { MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
10
12
  import type { BlockHeader, Capsule } from '@aztec/stdlib/tx';
11
- import type { ExecutionDataProvider } from '../execution_data_provider.js';
13
+ import type { AddressDataProvider } from '../../storage/address_data_provider/address_data_provider.js';
14
+ import type { AnchorBlockDataProvider } from '../../storage/anchor_block_data_provider/anchor_block_data_provider.js';
15
+ import type { CapsuleDataProvider } from '../../storage/capsule_data_provider/capsule_data_provider.js';
16
+ import type { ContractDataProvider } from '../../storage/contract_data_provider/contract_data_provider.js';
17
+ import type { NoteDataProvider } from '../../storage/note_data_provider/note_data_provider.js';
18
+ import type { PrivateEventDataProvider } from '../../storage/private_event_data_provider/private_event_data_provider.js';
19
+ import type { RecipientTaggingDataProvider } from '../../storage/tagging_data_provider/recipient_tagging_data_provider.js';
20
+ import type { SenderTaggingDataProvider } from '../../storage/tagging_data_provider/sender_tagging_data_provider.js';
12
21
  import { UtilityContext } from '../noir-structs/utility_context.js';
13
22
  import type { IMiscOracle, IUtilityExecutionOracle, NoteData } from './interfaces.js';
23
+ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
14
24
  /**
15
25
  * The oracle for an execution of utility contract functions.
16
26
  */
@@ -20,7 +30,16 @@ export declare class UtilityExecutionOracle implements IMiscOracle, IUtilityExec
20
30
  protected readonly authWitnesses: AuthWitness[];
21
31
  protected readonly capsules: Capsule[];
22
32
  protected readonly anchorBlockHeader: BlockHeader;
23
- protected readonly executionDataProvider: ExecutionDataProvider;
33
+ protected readonly contractDataProvider: ContractDataProvider;
34
+ protected readonly noteDataProvider: NoteDataProvider;
35
+ protected readonly keyStore: KeyStore;
36
+ protected readonly addressDataProvider: AddressDataProvider;
37
+ protected readonly aztecNode: AztecNode;
38
+ protected readonly anchorBlockDataProvider: AnchorBlockDataProvider;
39
+ protected readonly senderTaggingDataProvider: SenderTaggingDataProvider;
40
+ protected readonly recipientTaggingDataProvider: RecipientTaggingDataProvider;
41
+ protected readonly capsuleDataProvider: CapsuleDataProvider;
42
+ protected readonly privateEventDataProvider: PrivateEventDataProvider;
24
43
  protected log: import("@aztec/foundation/log").Logger;
25
44
  protected readonly scopes?: AztecAddress[] | undefined;
26
45
  isMisc: true;
@@ -28,7 +47,7 @@ export declare class UtilityExecutionOracle implements IMiscOracle, IUtilityExec
28
47
  private aztecNrDebugLog;
29
48
  constructor(contractAddress: AztecAddress,
30
49
  /** List of transient auth witnesses to be used during this simulation */
31
- authWitnesses: AuthWitness[], capsules: Capsule[], anchorBlockHeader: BlockHeader, executionDataProvider: ExecutionDataProvider, log?: import("@aztec/foundation/log").Logger, scopes?: AztecAddress[] | undefined);
50
+ authWitnesses: AuthWitness[], capsules: Capsule[], anchorBlockHeader: BlockHeader, contractDataProvider: ContractDataProvider, noteDataProvider: NoteDataProvider, keyStore: KeyStore, addressDataProvider: AddressDataProvider, aztecNode: AztecNode, anchorBlockDataProvider: AnchorBlockDataProvider, senderTaggingDataProvider: SenderTaggingDataProvider, recipientTaggingDataProvider: RecipientTaggingDataProvider, capsuleDataProvider: CapsuleDataProvider, privateEventDataProvider: PrivateEventDataProvider, log?: import("@aztec/foundation/log").Logger, scopes?: AztecAddress[] | undefined);
32
51
  utilityAssertCompatibleOracleVersion(version: number): void;
33
52
  utilityGetRandomField(): Fr;
34
53
  utilityGetUtilityContext(): UtilityContext;
@@ -84,12 +103,14 @@ export declare class UtilityExecutionOracle implements IMiscOracle, IUtilityExec
84
103
  * @throws An error if the account is not registered in the database.
85
104
  */
86
105
  utilityGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress>;
106
+ protected getCompleteAddress(account: AztecAddress): Promise<CompleteAddress>;
87
107
  /**
88
108
  * Returns a contract instance associated with an address or throws if not found.
89
109
  * @param address - Address.
90
110
  * @returns A contract instance.
91
111
  */
92
112
  utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
113
+ protected getContractInstance(address: AztecAddress): Promise<ContractInstance>;
93
114
  /**
94
115
  * Returns an auth witness for the given message hash. Checks on the list of transient witnesses
95
116
  * for this transaction first, and falls back to the local database if not found.
@@ -134,7 +155,7 @@ export declare class UtilityExecutionOracle implements IMiscOracle, IUtilityExec
134
155
  * @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
135
156
  * @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
136
157
  */
137
- utilityGetL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<import("./message_load_oracle_inputs.js").MessageLoadOracleInputs<36>>;
158
+ utilityGetL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<MessageLoadOracleInputs<36>>;
138
159
  /**
139
160
  * Read the public storage data.
140
161
  * @param contractAddress - The address to read storage from.
@@ -145,6 +166,16 @@ export declare class UtilityExecutionOracle implements IMiscOracle, IUtilityExec
145
166
  utilityStorageRead(contractAddress: AztecAddress, startStorageSlot: Fr, blockNumber: BlockNumber, numberOfElements: number): Promise<Fr[]>;
146
167
  utilityDebugLog(level: number, message: string, fields: Fr[]): void;
147
168
  utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
169
+ /**
170
+ * Validates all note and event validation requests enqueued via `enqueue_note_for_validation` and
171
+ * `enqueue_event_for_validation`, inserting them into the note database and event store respectively, making them
172
+ * queryable via `get_notes` and `getPrivateEvents`.
173
+ *
174
+ * This automatically clears both validation request queues, so no further work needs to be done by the caller.
175
+ * @param contractAddress - The address of the contract that the logs are tagged for.
176
+ * @param noteValidationRequestsArrayBaseSlot - The base slot of capsule array containing note validation requests.
177
+ * @param eventValidationRequestsArrayBaseSlot - The base slot of capsule array containing event validation requests.
178
+ */
148
179
  utilityValidateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
149
180
  utilityBulkRetrieveLogs(contractAddress: AztecAddress, logRetrievalRequestsArrayBaseSlot: Fr, logRetrievalResponsesArrayBaseSlot: Fr): Promise<void>;
150
181
  utilityStoreCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void>;
@@ -152,6 +183,13 @@ export declare class UtilityExecutionOracle implements IMiscOracle, IUtilityExec
152
183
  utilityDeleteCapsule(contractAddress: AztecAddress, slot: Fr): Promise<void>;
153
184
  utilityCopyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
154
185
  utilityAes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
186
+ /**
187
+ * Retrieves the shared secret for a given address and ephemeral public key.
188
+ * @param address - The address to get the secret for.
189
+ * @param ephPk - The ephemeral public key to get the secret for.
190
+ * @returns The secret for the given address.
191
+ */
155
192
  utilityGetSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
193
+ protected getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
156
194
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS91dGlsaXR5X2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEYsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQUUsS0FBSywwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVHLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RCxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEY7O0dBRUc7QUFDSCxxQkFBYSxzQkFBdUIsWUFBVyxXQUFXLEVBQUUsdUJBQXVCO0lBTy9FLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQVk7SUFDaEQseUVBQXlFO0lBQ3pFLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRTtJQUMvQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUU7SUFDdEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXO0lBQ2pELFNBQVMsQ0FBQyxRQUFRLENBQUMscUJBQXFCLEVBQUUscUJBQXFCO0lBQy9ELFNBQVMsQ0FBQyxHQUFHO0lBQ2IsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFiNUIsTUFBTSxPQUFpQjtJQUN2QixTQUFTLE9BQWlCO0lBRTFCLE9BQU8sQ0FBQyxlQUFlLENBQXNDO0lBRTdELFlBQ3FCLGVBQWUsRUFBRSxZQUFZO0lBQ2hELHlFQUF5RTtJQUN0RCxhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQzVCLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFDbkIsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixxQkFBcUIsRUFBRSxxQkFBcUIsRUFDckQsR0FBRyx5Q0FBZ0QsRUFDMUMsTUFBTSxDQUFDLDRCQUFnQixFQUN4QztJQUVHLG9DQUFvQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUVqRTtJQUVNLHFCQUFxQixJQUFJLEVBQUUsQ0FFakM7SUFFTSx3QkFBd0IsSUFBSSxjQUFjLENBUWhEO0lBRUQ7Ozs7O09BS0c7SUFDSSw4QkFBOEIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUVoRjtJQUVEOzs7Ozs7T0FNRztJQUNJLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUUvRztJQUVEOzs7OztPQUtHO0lBQ1Usb0NBQW9DLENBQy9DLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxFQUFFLEdBQ1osT0FBTyxDQUFDLDBCQUEwQixHQUFHLFNBQVMsQ0FBQyxDQUVqRDtJQUVEOzs7Ozs7OztPQVFHO0lBQ1UsdUNBQXVDLENBQ2xELFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxFQUFFLEdBQ1osT0FBTyxDQUFDLDBCQUEwQixHQUFHLFNBQVMsQ0FBQyxDQUVqRDtJQUVEOzs7OztPQUtHO0lBQ1UsMkJBQTJCLENBQ3RDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFFBQVEsRUFBRSxFQUFFLEdBQ1gsT0FBTyxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUV4QztJQUVEOzs7O09BSUc7SUFDVSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBTTdGO0lBRUQ7Ozs7O09BS0c7SUFDSSxxQ0FBcUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFNUY7SUFFRDs7OztPQUlHO0lBQ0ksMEJBQTBCLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FFbEY7SUFFRDs7Ozs7T0FLRztJQUNJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUV2RTtJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDVSxlQUFlLENBQzFCLEtBQUssRUFBRSxZQUFZLEdBQUcsU0FBUyxFQUMvQixXQUFXLEVBQUUsRUFBRSxFQUNmLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLGVBQWUsRUFBRSxNQUFNLEVBQUUsRUFDekIsZUFBZSxFQUFFLE1BQU0sRUFBRSxFQUN6QixlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQ3pCLFlBQVksRUFBRSxFQUFFLEVBQUUsRUFDbEIsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLEVBQzNCLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFDdkIsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUN2QixhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQ3ZCLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsS0FBSyxFQUFFLE1BQU0sRUFDYixNQUFNLEVBQUUsTUFBTSxFQUNkLE1BQU0sRUFBRSxVQUFVLEdBQ2pCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQXFCckI7SUFFRDs7OztPQUlHO0lBQ1UsMkJBQTJCLENBQUMsY0FBYyxFQUFFLEVBQUUsb0JBSTFEO0lBRUQ7Ozs7Ozs7T0FPRztJQUNVLGlDQUFpQyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxrRkFFeEc7SUFFRDs7Ozs7O09BTUc7SUFDVSxrQkFBa0IsQ0FDN0IsZUFBZSxFQUFFLFlBQVksRUFDN0IsZ0JBQWdCLEVBQUUsRUFBRSxFQUNwQixXQUFXLEVBQUUsV0FBVyxFQUN4QixnQkFBZ0IsRUFBRSxNQUFNLGlCQWF6QjtJQUVNLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FNekU7SUFFWSxzQkFBc0IsQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLGlCQUlwRTtJQUVZLHFDQUFxQyxDQUNoRCxlQUFlLEVBQUUsWUFBWSxFQUM3QixtQ0FBbUMsRUFBRSxFQUFFLEVBQ3ZDLG9DQUFvQyxFQUFFLEVBQUUsaUJBWXpDO0lBRVksdUJBQXVCLENBQ2xDLGVBQWUsRUFBRSxZQUFZLEVBQzdCLGlDQUFpQyxFQUFFLEVBQUUsRUFDckMsa0NBQWtDLEVBQUUsRUFBRSxpQkFZdkM7SUFFTSxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNaEc7SUFFWSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQVU3RjtJQUVNLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBTWxGO0lBRU0sa0JBQWtCLENBQ3ZCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLE9BQU8sRUFBRSxFQUFFLEVBQ1gsT0FBTyxFQUFFLEVBQUUsRUFDWCxVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBTWY7SUFHTSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRzNGO0lBRU0sc0JBQXNCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FFakY7Q0FDRiJ9
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS91dGlsaXR5X2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEYsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssMEJBQTBCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPN0QsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN4RyxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3RILE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUMzRyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDekgsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMzSCxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBTXJILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUU7O0dBRUc7QUFDSCxxQkFBYSxzQkFBdUIsWUFBVyxXQUFXLEVBQUUsdUJBQXVCO0lBTy9FLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQVk7SUFDaEQseUVBQXlFO0lBQ3pFLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRTtJQUMvQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUU7SUFDdEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXO0lBQ2pELFNBQVMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CO0lBQzdELFNBQVMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ3JELFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVE7SUFDckMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUI7SUFDM0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUztJQUN2QyxTQUFTLENBQUMsUUFBUSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QjtJQUNuRSxTQUFTLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLHlCQUF5QjtJQUN2RSxTQUFTLENBQUMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLDRCQUE0QjtJQUM3RSxTQUFTLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQjtJQUMzRCxTQUFTLENBQUMsUUFBUSxDQUFDLHdCQUF3QixFQUFFLHdCQUF3QjtJQUNyRSxTQUFTLENBQUMsR0FBRztJQUNiLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBdEI1QixNQUFNLE9BQWlCO0lBQ3ZCLFNBQVMsT0FBaUI7SUFFMUIsT0FBTyxDQUFDLGVBQWUsQ0FBc0M7SUFFN0QsWUFDcUIsZUFBZSxFQUFFLFlBQVk7SUFDaEQseUVBQXlFO0lBQ3RELGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFDNUIsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUNuQixpQkFBaUIsRUFBRSxXQUFXLEVBQzlCLG9CQUFvQixFQUFFLG9CQUFvQixFQUMxQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsUUFBUSxFQUFFLFFBQVEsRUFDbEIsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQ3hDLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCx5QkFBeUIsRUFBRSx5QkFBeUIsRUFDcEQsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQzFELG1CQUFtQixFQUFFLG1CQUFtQixFQUN4Qyx3QkFBd0IsRUFBRSx3QkFBd0IsRUFDM0QsR0FBRyx5Q0FBZ0QsRUFDMUMsTUFBTSxDQUFDLDRCQUFnQixFQUN4QztJQUVHLG9DQUFvQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUlqRTtJQUVNLHFCQUFxQixJQUFJLEVBQUUsQ0FFakM7SUFFTSx3QkFBd0IsSUFBSSxjQUFjLENBUWhEO0lBRUQ7Ozs7O09BS0c7SUFDSSw4QkFBOEIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUVoRjtJQUVEOzs7Ozs7T0FNRztJQUNJLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUcvRztJQUVEOzs7OztPQUtHO0lBQ1Usb0NBQW9DLENBQy9DLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxFQUFFLEdBQ1osT0FBTyxDQUFDLDBCQUEwQixHQUFHLFNBQVMsQ0FBQyxDQUVqRDtJQUVEOzs7Ozs7OztPQVFHO0lBQ1UsdUNBQXVDLENBQ2xELFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxFQUFFLEdBQ1osT0FBTyxDQUFDLDBCQUEwQixHQUFHLFNBQVMsQ0FBQyxDQUdqRDtJQUVEOzs7OztPQUtHO0lBQ1UsMkJBQTJCLENBQ3RDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFFBQVEsRUFBRSxFQUFFLEdBQ1gsT0FBTyxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUd4QztJQUVEOzs7O09BSUc7SUFDVSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBUTdGO0lBRUQ7Ozs7O09BS0c7SUFDSSxxQ0FBcUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFNUY7SUFFRCxVQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FTbEY7SUFFRDs7OztPQUlHO0lBQ0ksMEJBQTBCLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FFbEY7SUFFRCxVQUFnQixtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQU1wRjtJQUVEOzs7OztPQUtHO0lBQ0kscUJBQXFCLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBRXZFO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUNVLGVBQWUsQ0FDMUIsS0FBSyxFQUFFLFlBQVksR0FBRyxTQUFTLEVBQy9CLFdBQVcsRUFBRSxFQUFFLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsZUFBZSxFQUFFLE1BQU0sRUFBRSxFQUN6QixlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQ3pCLGVBQWUsRUFBRSxNQUFNLEVBQUUsRUFDekIsWUFBWSxFQUFFLEVBQUUsRUFBRSxFQUNsQixpQkFBaUIsRUFBRSxNQUFNLEVBQUUsRUFDM0IsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUN2QixhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQ3ZCLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFDdkIsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUNuQixLQUFLLEVBQUUsTUFBTSxFQUNiLE1BQU0sRUFBRSxNQUFNLEVBQ2QsTUFBTSxFQUFFLFVBQVUsR0FDakIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBaUJyQjtJQUVEOzs7O09BSUc7SUFDVSwyQkFBMkIsQ0FBQyxjQUFjLEVBQUUsRUFBRSxvQkFLMUQ7SUFFRDs7Ozs7OztPQU9HO0lBQ1UsaUNBQWlDLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLHdDQVV4RztJQUVEOzs7Ozs7T0FNRztJQUNVLGtCQUFrQixDQUM3QixlQUFlLEVBQUUsWUFBWSxFQUM3QixnQkFBZ0IsRUFBRSxFQUFFLEVBQ3BCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLGdCQUFnQixFQUFFLE1BQU0saUJBaUJ6QjtJQUVNLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FNekU7SUFFWSxzQkFBc0IsQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLGlCQWNwRTtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNVLHFDQUFxQyxDQUNoRCxlQUFlLEVBQUUsWUFBWSxFQUM3QixtQ0FBbUMsRUFBRSxFQUFFLEVBQ3ZDLG9DQUFvQyxFQUFFLEVBQUUsaUJBa0R6QztJQUVZLHVCQUF1QixDQUNsQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixpQ0FBaUMsRUFBRSxFQUFFLEVBQ3JDLGtDQUFrQyxFQUFFLEVBQUUsaUJBaUN2QztJQUVNLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU1oRztJQUVZLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBVTdGO0lBRU0sb0JBQW9CLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNbEY7SUFFTSxrQkFBa0IsQ0FDdkIsZUFBZSxFQUFFLFlBQVksRUFDN0IsT0FBTyxFQUFFLEVBQUUsRUFDWCxPQUFPLEVBQUUsRUFBRSxFQUNYLFVBQVUsRUFBRSxNQUFNLEdBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNZjtJQUdNLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FHM0Y7SUFFRDs7Ozs7T0FLRztJQUNJLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBRWpGO0lBRUQsVUFBZ0IsZUFBZSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBUW5GO0NBQ0YifQ==