@aztec/simulator 0.40.1 → 0.42.0

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 (234) hide show
  1. package/dest/acvm/acvm.d.ts +2 -2
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/acvm.js +3 -3
  4. package/dest/acvm/oracle/oracle.d.ts +6 -2
  5. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  6. package/dest/acvm/oracle/oracle.js +31 -19
  7. package/dest/acvm/oracle/typed_oracle.d.ts +8 -11
  8. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  9. package/dest/acvm/oracle/typed_oracle.js +17 -5
  10. package/dest/acvm/serialize.js +2 -2
  11. package/dest/avm/avm_execution_environment.d.ts +4 -3
  12. package/dest/avm/avm_execution_environment.d.ts.map +1 -1
  13. package/dest/avm/avm_execution_environment.js +7 -5
  14. package/dest/avm/avm_gas.d.ts +1 -5
  15. package/dest/avm/avm_gas.d.ts.map +1 -1
  16. package/dest/avm/avm_gas.js +67 -73
  17. package/dest/avm/avm_simulator.d.ts +5 -0
  18. package/dest/avm/avm_simulator.d.ts.map +1 -1
  19. package/dest/avm/avm_simulator.js +12 -4
  20. package/dest/avm/errors.d.ts +6 -0
  21. package/dest/avm/errors.d.ts.map +1 -1
  22. package/dest/avm/errors.js +10 -1
  23. package/dest/avm/fixtures/index.d.ts +3 -0
  24. package/dest/avm/fixtures/index.d.ts.map +1 -1
  25. package/dest/avm/fixtures/index.js +15 -3
  26. package/dest/avm/index.d.ts +2 -0
  27. package/dest/avm/index.d.ts.map +1 -0
  28. package/dest/avm/index.js +2 -0
  29. package/dest/avm/journal/host_storage.d.ts +1 -1
  30. package/dest/avm/journal/host_storage.d.ts.map +1 -1
  31. package/dest/avm/journal/journal.d.ts +4 -3
  32. package/dest/avm/journal/journal.d.ts.map +1 -1
  33. package/dest/avm/journal/journal.js +10 -11
  34. package/dest/avm/journal/nullifiers.d.ts +17 -5
  35. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  36. package/dest/avm/journal/nullifiers.js +27 -10
  37. package/dest/avm/journal/public_storage.d.ts +19 -6
  38. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  39. package/dest/avm/journal/public_storage.js +30 -12
  40. package/dest/avm/journal/trace.d.ts +2 -0
  41. package/dest/avm/journal/trace.d.ts.map +1 -1
  42. package/dest/avm/journal/trace.js +7 -1
  43. package/dest/avm/journal/trace_types.d.ts +1 -0
  44. package/dest/avm/journal/trace_types.d.ts.map +1 -1
  45. package/dest/avm/journal/trace_types.js +1 -1
  46. package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
  47. package/dest/avm/opcodes/accrued_substate.js +6 -7
  48. package/dest/avm/opcodes/arithmetic.d.ts +1 -7
  49. package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
  50. package/dest/avm/opcodes/arithmetic.js +1 -12
  51. package/dest/avm/opcodes/conversion.js +2 -2
  52. package/dest/avm/opcodes/external_calls.d.ts +2 -2
  53. package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
  54. package/dest/avm/opcodes/external_calls.js +25 -13
  55. package/dest/avm/opcodes/instruction.d.ts +1 -1
  56. package/dest/avm/opcodes/instruction.d.ts.map +1 -1
  57. package/dest/avm/opcodes/instruction.js +6 -4
  58. package/dest/avm/opcodes/memory.d.ts +0 -4
  59. package/dest/avm/opcodes/memory.d.ts.map +1 -1
  60. package/dest/avm/opcodes/memory.js +1 -7
  61. package/dest/avm/opcodes/storage.d.ts +0 -12
  62. package/dest/avm/opcodes/storage.d.ts.map +1 -1
  63. package/dest/avm/opcodes/storage.js +3 -18
  64. package/dest/avm/serialization/bytecode_serialization.js +2 -2
  65. package/dest/client/client_execution_context.d.ts +30 -20
  66. package/dest/client/client_execution_context.d.ts.map +1 -1
  67. package/dest/client/client_execution_context.js +59 -39
  68. package/dest/client/db_oracle.d.ts +17 -12
  69. package/dest/client/db_oracle.d.ts.map +1 -1
  70. package/dest/client/execution_note_cache.js +2 -2
  71. package/dest/client/execution_result.d.ts +17 -2
  72. package/dest/client/execution_result.d.ts.map +1 -1
  73. package/dest/client/execution_result.js +32 -4
  74. package/dest/client/private_execution.d.ts +2 -3
  75. package/dest/client/private_execution.d.ts.map +1 -1
  76. package/dest/client/private_execution.js +22 -8
  77. package/dest/client/simulator.d.ts +0 -16
  78. package/dest/client/simulator.d.ts.map +1 -1
  79. package/dest/client/simulator.js +13 -30
  80. package/dest/client/unconstrained_execution.d.ts +2 -3
  81. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  82. package/dest/client/unconstrained_execution.js +5 -7
  83. package/dest/client/view_data_oracle.d.ts +12 -10
  84. package/dest/client/view_data_oracle.d.ts.map +1 -1
  85. package/dest/client/view_data_oracle.js +17 -11
  86. package/dest/common/index.d.ts +1 -0
  87. package/dest/common/index.d.ts.map +1 -1
  88. package/dest/common/index.js +2 -1
  89. package/dest/common/return_values.d.ts +11 -0
  90. package/dest/common/return_values.d.ts.map +1 -0
  91. package/dest/common/return_values.js +13 -0
  92. package/dest/index.d.ts +3 -1
  93. package/dest/index.d.ts.map +1 -1
  94. package/dest/index.js +4 -2
  95. package/dest/mocks/fixtures.d.ts +15 -10
  96. package/dest/mocks/fixtures.d.ts.map +1 -1
  97. package/dest/mocks/fixtures.js +22 -17
  98. package/dest/{simulator → providers}/acvm_native.d.ts.map +1 -1
  99. package/dest/{simulator → providers}/acvm_native.js +13 -14
  100. package/dest/providers/acvm_wasm.d.ts.map +1 -0
  101. package/dest/providers/acvm_wasm.js +15 -0
  102. package/dest/providers/index.d.ts.map +1 -0
  103. package/dest/{simulator → providers}/index.js +1 -1
  104. package/dest/{simulator → providers}/simulation_provider.d.ts.map +1 -1
  105. package/dest/{simulator → providers}/simulation_provider.js +1 -1
  106. package/dest/public/abstract_phase_manager.d.ts +43 -42
  107. package/dest/public/abstract_phase_manager.d.ts.map +1 -1
  108. package/dest/public/abstract_phase_manager.js +81 -103
  109. package/dest/public/app_logic_phase_manager.d.ts +7 -8
  110. package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
  111. package/dest/public/app_logic_phase_manager.js +14 -14
  112. package/dest/public/{db.d.ts → db_interfaces.d.ts} +3 -3
  113. package/dest/public/db_interfaces.d.ts.map +1 -0
  114. package/dest/public/db_interfaces.js +2 -0
  115. package/dest/public/execution.d.ts +17 -14
  116. package/dest/public/execution.d.ts.map +1 -1
  117. package/dest/public/execution.js +1 -1
  118. package/dest/public/executor.d.ts +3 -30
  119. package/dest/public/executor.d.ts.map +1 -1
  120. package/dest/public/executor.js +32 -279
  121. package/dest/public/fee_payment.d.ts +11 -0
  122. package/dest/public/fee_payment.d.ts.map +1 -0
  123. package/dest/public/fee_payment.js +24 -0
  124. package/dest/public/hints_builder.d.ts +3 -2
  125. package/dest/public/hints_builder.d.ts.map +1 -1
  126. package/dest/public/hints_builder.js +8 -4
  127. package/dest/public/index.d.ts +4 -2
  128. package/dest/public/index.d.ts.map +1 -1
  129. package/dest/public/index.js +5 -3
  130. package/dest/public/phase_manager_factory.d.ts +1 -1
  131. package/dest/public/phase_manager_factory.d.ts.map +1 -1
  132. package/dest/public/{public_executor.d.ts → public_db_sources.d.ts} +3 -2
  133. package/dest/public/public_db_sources.d.ts.map +1 -0
  134. package/dest/public/public_db_sources.js +198 -0
  135. package/dest/public/public_kernel.js +14 -14
  136. package/dest/public/public_processor.d.ts +8 -6
  137. package/dest/public/public_processor.d.ts.map +1 -1
  138. package/dest/public/public_processor.js +48 -29
  139. package/dest/public/setup_phase_manager.d.ts +7 -9
  140. package/dest/public/setup_phase_manager.d.ts.map +1 -1
  141. package/dest/public/setup_phase_manager.js +11 -20
  142. package/dest/public/tail_phase_manager.d.ts +5 -11
  143. package/dest/public/tail_phase_manager.d.ts.map +1 -1
  144. package/dest/public/tail_phase_manager.js +16 -36
  145. package/dest/public/teardown_phase_manager.d.ts +7 -9
  146. package/dest/public/teardown_phase_manager.d.ts.map +1 -1
  147. package/dest/public/teardown_phase_manager.js +15 -21
  148. package/dest/public/transitional_adaptors.d.ts +3 -2
  149. package/dest/public/transitional_adaptors.d.ts.map +1 -1
  150. package/dest/public/transitional_adaptors.js +24 -8
  151. package/dest/public/utils.d.ts +2 -2
  152. package/dest/public/utils.d.ts.map +1 -1
  153. package/dest/public/utils.js +21 -14
  154. package/package.json +12 -9
  155. package/src/acvm/acvm.ts +0 -3
  156. package/src/acvm/oracle/oracle.ts +53 -27
  157. package/src/acvm/oracle/typed_oracle.ts +25 -16
  158. package/src/acvm/serialize.ts +1 -1
  159. package/src/avm/avm_execution_environment.ts +9 -5
  160. package/src/avm/avm_gas.ts +66 -73
  161. package/src/avm/avm_simulator.ts +14 -3
  162. package/src/avm/errors.ts +10 -0
  163. package/src/avm/fixtures/index.ts +22 -2
  164. package/src/avm/index.ts +1 -0
  165. package/src/avm/journal/host_storage.ts +1 -1
  166. package/src/avm/journal/journal.ts +15 -14
  167. package/src/avm/journal/nullifiers.ts +27 -14
  168. package/src/avm/journal/public_storage.ts +30 -16
  169. package/src/avm/journal/trace.ts +12 -0
  170. package/src/avm/journal/trace_types.ts +1 -0
  171. package/src/avm/opcodes/accrued_substate.ts +5 -6
  172. package/src/avm/opcodes/arithmetic.ts +1 -14
  173. package/src/avm/opcodes/conversion.ts +1 -1
  174. package/src/avm/opcodes/external_calls.ts +26 -10
  175. package/src/avm/opcodes/instruction.ts +5 -3
  176. package/src/avm/opcodes/memory.ts +1 -8
  177. package/src/avm/opcodes/storage.ts +3 -20
  178. package/src/avm/serialization/bytecode_serialization.ts +1 -1
  179. package/src/client/client_execution_context.ts +70 -44
  180. package/src/client/db_oracle.ts +18 -12
  181. package/src/client/execution_note_cache.ts +1 -1
  182. package/src/client/execution_result.ts +41 -3
  183. package/src/client/private_execution.ts +38 -20
  184. package/src/client/simulator.ts +11 -32
  185. package/src/client/unconstrained_execution.ts +9 -12
  186. package/src/client/view_data_oracle.ts +20 -12
  187. package/src/common/index.ts +1 -0
  188. package/src/common/return_values.ts +18 -0
  189. package/src/index.ts +3 -1
  190. package/src/mocks/fixtures.ts +31 -33
  191. package/src/{simulator → providers}/acvm_native.ts +21 -19
  192. package/src/{simulator → providers}/acvm_wasm.ts +2 -16
  193. package/src/public/abstract_phase_manager.ts +146 -207
  194. package/src/public/app_logic_phase_manager.ts +23 -39
  195. package/src/public/{db.ts → db_interfaces.ts} +2 -2
  196. package/src/public/execution.ts +17 -14
  197. package/src/public/executor.ts +51 -391
  198. package/src/public/fee_payment.ts +26 -0
  199. package/src/public/hints_builder.ts +17 -3
  200. package/src/public/index.ts +4 -2
  201. package/src/public/phase_manager_factory.ts +1 -1
  202. package/src/public/{public_executor.ts → public_db_sources.ts} +3 -2
  203. package/src/public/public_kernel.ts +24 -24
  204. package/src/public/public_processor.ts +82 -38
  205. package/src/public/setup_phase_manager.ts +20 -45
  206. package/src/public/tail_phase_manager.ts +18 -68
  207. package/src/public/teardown_phase_manager.ts +22 -41
  208. package/src/public/transitional_adaptors.ts +24 -13
  209. package/src/public/utils.ts +20 -14
  210. package/dest/client/logs_cache.d.ts +0 -33
  211. package/dest/client/logs_cache.d.ts.map +0 -1
  212. package/dest/client/logs_cache.js +0 -59
  213. package/dest/public/db.d.ts.map +0 -1
  214. package/dest/public/db.js +0 -2
  215. package/dest/public/public_execution_context.d.ts +0 -121
  216. package/dest/public/public_execution_context.d.ts.map +0 -1
  217. package/dest/public/public_execution_context.js +0 -214
  218. package/dest/public/public_executor.d.ts.map +0 -1
  219. package/dest/public/public_executor.js +0 -197
  220. package/dest/public/state_actions.d.ts +0 -39
  221. package/dest/public/state_actions.d.ts.map +0 -1
  222. package/dest/public/state_actions.js +0 -80
  223. package/dest/simulator/acvm_wasm.d.ts.map +0 -1
  224. package/dest/simulator/acvm_wasm.js +0 -22
  225. package/dest/simulator/index.d.ts.map +0 -1
  226. package/src/client/logs_cache.ts +0 -65
  227. package/src/public/public_execution_context.ts +0 -289
  228. package/src/public/state_actions.ts +0 -102
  229. /package/dest/{simulator → providers}/acvm_native.d.ts +0 -0
  230. /package/dest/{simulator → providers}/acvm_wasm.d.ts +0 -0
  231. /package/dest/{simulator → providers}/index.d.ts +0 -0
  232. /package/dest/{simulator → providers}/simulation_provider.d.ts +0 -0
  233. /package/src/{simulator → providers}/index.ts +0 -0
  234. /package/src/{simulator → providers}/simulation_provider.ts +0 -0
@@ -1,15 +1,11 @@
1
1
  // All code in this file needs to die once the public executor is phased out in favor of the AVM.
2
2
  import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
3
- import {
4
- CallContext,
5
- FunctionData,
6
- type Gas,
7
- type GasSettings,
8
- type GlobalVariables,
9
- type Header,
10
- } from '@aztec/circuits.js';
3
+ import { CallContext, type Gas, type GasSettings, type GlobalVariables, type Header } from '@aztec/circuits.js';
11
4
  import { Fr } from '@aztec/foundation/fields';
12
5
 
6
+ import { promisify } from 'util';
7
+ import { gunzip } from 'zlib';
8
+
13
9
  import { type AvmContext } from '../avm/avm_context.js';
14
10
  import { AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
15
11
  import { type AvmContractCallResults } from '../avm/avm_message_call_result.js';
@@ -45,7 +41,7 @@ export function createAvmExecutionEnvironment(
45
41
  current.args,
46
42
  gasSettings,
47
43
  transactionFee,
48
- current.functionData.selector,
44
+ current.functionSelector,
49
45
  );
50
46
  }
51
47
 
@@ -62,12 +58,11 @@ export function createPublicExecution(
62
58
  isStaticCall: avmEnvironment.isStaticCall,
63
59
  sideEffectCounter: startSideEffectCounter,
64
60
  });
65
- const functionData = new FunctionData(avmEnvironment.temporaryFunctionSelector, /*isPrivate=*/ false);
66
61
  const execution: PublicExecution = {
67
62
  contractAddress: avmEnvironment.address,
68
63
  callContext,
69
64
  args: calldata,
70
- functionData,
65
+ functionSelector: avmEnvironment.temporaryFunctionSelector,
71
66
  };
72
67
  return execution;
73
68
  }
@@ -78,6 +73,7 @@ export function convertAvmResultsToPxResult(
78
73
  fromPx: PublicExecution,
79
74
  startGas: Gas,
80
75
  endAvmContext: AvmContext,
76
+ bytecode: Buffer | undefined,
81
77
  ): PublicExecutionResult {
82
78
  const endPersistableState = endAvmContext.persistableState;
83
79
  const endMachineState = endAvmContext.machineState;
@@ -97,6 +93,9 @@ export function convertAvmResultsToPxResult(
97
93
  startGasLeft: startGas,
98
94
  endGasLeft: endMachineState.gasLeft,
99
95
  transactionFee: endAvmContext.environment.transactionFee,
96
+ bytecode: bytecode,
97
+ calldata: endAvmContext.environment.calldata,
98
+ avmHints: endPersistableState.trace.toHints(),
100
99
  };
101
100
  }
102
101
 
@@ -111,7 +110,19 @@ export function markBytecodeAsAvm(bytecode: Buffer): Buffer {
111
110
  return Buffer.concat([bytecode, AVM_MAGIC_SUFFIX]);
112
111
  }
113
112
 
114
- export function isAvmBytecode(bytecode: Buffer): boolean {
113
+ // This is just a helper function for the AVM circuit.
114
+ export async function decompressBytecodeIfCompressed(bytecode: Buffer): Promise<Buffer> {
115
+ try {
116
+ return await promisify(gunzip)(bytecode);
117
+ } catch {
118
+ // If the bytecode is not compressed, the gunzip call will throw an error
119
+ // In this case, we assume the bytecode is not compressed and continue.
120
+ return Promise.resolve(bytecode);
121
+ }
122
+ }
123
+
124
+ export async function isAvmBytecode(bytecode: Buffer): Promise<boolean> {
125
+ const decompressedBytecode = await decompressBytecodeIfCompressed(bytecode);
115
126
  const magicSize = AVM_MAGIC_SUFFIX.length;
116
- return bytecode.subarray(-magicSize).equals(AVM_MAGIC_SUFFIX);
127
+ return decompressedBytecode.subarray(-magicSize).equals(AVM_MAGIC_SUFFIX);
117
128
  }
@@ -1,31 +1,37 @@
1
- import { type Tx } from '@aztec/circuit-types';
2
- import { CallRequest } from '@aztec/circuits.js';
1
+ import { type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
3
2
 
4
3
  /**
5
4
  * Looks at the side effects of a transaction and returns the highest counter
6
5
  * @param tx - A transaction
7
6
  * @returns The highest side effect counter in the transaction so far
8
7
  */
9
- export function lastSideEffectCounter(tx: Tx): number {
10
- const data = tx.data.forPublic!;
8
+ export function lastSideEffectCounter(inputs: PublicKernelCircuitPublicInputs): number {
11
9
  const sideEffectCounters = [
12
- ...data.endNonRevertibleData.newNoteHashes,
13
- ...data.endNonRevertibleData.newNullifiers,
14
- ...data.endNonRevertibleData.publicCallStack,
15
- ...data.end.newNoteHashes,
16
- ...data.end.newNullifiers,
17
- ...data.end.unencryptedLogsHashes,
18
- ...data.end.publicCallStack,
10
+ ...inputs.endNonRevertibleData.newNoteHashes,
11
+ ...inputs.endNonRevertibleData.newNullifiers,
12
+ ...inputs.endNonRevertibleData.noteEncryptedLogsHashes,
13
+ ...inputs.endNonRevertibleData.encryptedLogsHashes,
14
+ ...inputs.endNonRevertibleData.unencryptedLogsHashes,
15
+ ...inputs.endNonRevertibleData.publicCallStack,
16
+ ...inputs.endNonRevertibleData.publicDataUpdateRequests,
17
+ ...inputs.end.newNoteHashes,
18
+ ...inputs.end.newNullifiers,
19
+ ...inputs.end.noteEncryptedLogsHashes,
20
+ ...inputs.end.encryptedLogsHashes,
21
+ ...inputs.end.unencryptedLogsHashes,
22
+ ...inputs.end.publicCallStack,
23
+ ...inputs.end.publicDataUpdateRequests,
19
24
  ];
20
25
 
21
26
  let max = 0;
22
27
  for (const sideEffect of sideEffectCounters) {
23
- if (sideEffect instanceof CallRequest) {
28
+ if ('startSideEffectCounter' in sideEffect) {
24
29
  // look at both start and end counters because for enqueued public calls start > 0 while end === 0
25
30
  max = Math.max(max, sideEffect.startSideEffectCounter.toNumber(), sideEffect.endSideEffectCounter.toNumber());
31
+ } else if ('counter' in sideEffect) {
32
+ max = Math.max(max, sideEffect.counter);
26
33
  } else {
27
- const counter = typeof sideEffect.counter === 'number' ? sideEffect.counter : sideEffect.counter.toNumber();
28
- max = Math.max(max, counter);
34
+ throw new Error('Unknown side effect type');
29
35
  }
30
36
  }
31
37
 
@@ -1,33 +0,0 @@
1
- import { type EncryptedL2Log, type UnencryptedL2Log } from '@aztec/circuit-types';
2
- /**
3
- * Log data that's accessible by all the function calls in an execution.
4
- * This class exists to:
5
- * 1. Keep track of logs emitted through nested calls in the correct order.
6
- * 2. TODO(1641): Remove encrypted logs based on notes nullified in the same scope.
7
- */
8
- export declare class LogsCache {
9
- /**
10
- * Logs notes created in this transaction.
11
- */
12
- private encryptedLogs;
13
- private unencryptedLogs;
14
- /**
15
- * Add a new encrypted log to cache.
16
- * @param log - New log created during execution.
17
- */
18
- addEncryptedLog(log: EncryptedL2Log): void;
19
- /**
20
- * Add a new unencrypted log to cache.
21
- * @param log - New log created during execution.
22
- */
23
- addUnencryptedLog(log: UnencryptedL2Log): void;
24
- /**
25
- * Return the encrypted logs.
26
- */
27
- getEncryptedLogs(): EncryptedL2Log[];
28
- /**
29
- * Return the encrypted logs.
30
- */
31
- getUnencryptedLogs(): UnencryptedL2Log[];
32
- }
33
- //# sourceMappingURL=logs_cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs_cache.d.ts","sourceRoot":"","sources":["../../src/client/logs_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAElF;;;;;GAKG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,eAAe,CAA0B;IAsBjD;;;OAGG;IACI,eAAe,CAAC,GAAG,EAAE,cAAc;IAI1C;;;OAGG;IACI,iBAAiB,CAAC,GAAG,EAAE,gBAAgB;IAI9C;;OAEG;IACI,gBAAgB;IAIvB;;OAEG;IACI,kBAAkB;CAG1B"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Log data that's accessible by all the function calls in an execution.
3
- * This class exists to:
4
- * 1. Keep track of logs emitted through nested calls in the correct order.
5
- * 2. TODO(1641): Remove encrypted logs based on notes nullified in the same scope.
6
- */
7
- export class LogsCache {
8
- constructor() {
9
- /**
10
- * Logs notes created in this transaction.
11
- */
12
- this.encryptedLogs = [];
13
- this.unencryptedLogs = [];
14
- }
15
- // TODO Separate encrypted logs linked to note hashes and arbitrary logs:
16
- // Maps from note hash to encrypted log - useful for removing transient logs
17
- // private encryptedLogsLinkedToNotes: Map<bigint, EncryptedL2Log> = new Map();
18
- // /**
19
- // * Remove the encrypted log for a nullified note.
20
- // * This fn should only be called if the note's innerNoteHash != 0.
21
- // * @param noteHashCounter - Side effect counter of the note.
22
- // */
23
- // public nullifyNote(noteHashCounter: Fr) {
24
- // // Find and remove the matching new note if the emitted innerNoteHash is not empty.
25
- // const log = this.encryptedLogsLinkedToNotes.get(noteHashCounter.toBigInt()) ?? false;
26
- // // TODO: throw here? Will the log always be here?
27
- // if (!log) {
28
- // throw new Error('Attempt to remove a pending note log that does not exist.');
29
- // }
30
- // this.encryptedLogsLinkedToNotes.delete(noteHashCounter.toBigInt());
31
- // }
32
- /**
33
- * Add a new encrypted log to cache.
34
- * @param log - New log created during execution.
35
- */
36
- addEncryptedLog(log) {
37
- this.encryptedLogs.push(log);
38
- }
39
- /**
40
- * Add a new unencrypted log to cache.
41
- * @param log - New log created during execution.
42
- */
43
- addUnencryptedLog(log) {
44
- this.unencryptedLogs.push(log);
45
- }
46
- /**
47
- * Return the encrypted logs.
48
- */
49
- getEncryptedLogs() {
50
- return this.encryptedLogs;
51
- }
52
- /**
53
- * Return the encrypted logs.
54
- */
55
- getUnencryptedLogs() {
56
- return this.unencryptedLogs;
57
- }
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nc19jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvbG9nc19jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQXRCO1FBQ0U7O1dBRUc7UUFDSyxrQkFBYSxHQUFxQixFQUFFLENBQUM7UUFDckMsb0JBQWUsR0FBdUIsRUFBRSxDQUFDO0lBbURuRCxDQUFDO0lBakRDLHlFQUF5RTtJQUV6RSw0RUFBNEU7SUFDNUUsK0VBQStFO0lBRS9FLE1BQU07SUFDTixvREFBb0Q7SUFDcEQscUVBQXFFO0lBQ3JFLCtEQUErRDtJQUMvRCxNQUFNO0lBQ04sNENBQTRDO0lBQzVDLHVGQUF1RjtJQUN2Rix5RkFBeUY7SUFDekYscURBQXFEO0lBQ3JELGVBQWU7SUFDZixtRkFBbUY7SUFDbkYsS0FBSztJQUNMLHVFQUF1RTtJQUN2RSxJQUFJO0lBRUo7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLEdBQW1CO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxpQkFBaUIsQ0FBQyxHQUFxQjtRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/public/db.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE5F;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAAC;CAC9F;AAED,6GAA6G;AAC7G,MAAM,WAAW,aAAa;IAC5B;;;;;;;OAOG;IACH,0BAA0B,CACxB,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,GACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;IAErE;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAE/D;;;;OAIG;IACH,kBAAkB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEhE;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9D;;;;OAIG;IACH,0CAA0C,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAAC;CAC5G"}
package/dest/public/db.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,121 +0,0 @@
1
- import { UnencryptedFunctionL2Logs, type UnencryptedL2Log } from '@aztec/circuit-types';
2
- import { type FunctionSelector, type Gas, type GasSettings, type GlobalVariables, type Header, type Nullifier } from '@aztec/circuits.js';
3
- import { type AztecAddress } from '@aztec/foundation/aztec-address';
4
- import { Fr } from '@aztec/foundation/fields';
5
- import { type ContractInstance } from '@aztec/types/contracts';
6
- import { TypedOracle } from '../acvm/index.js';
7
- import { type PackedValuesCache, type SideEffectCounter } from '../common/index.js';
8
- import { type CommitmentsDB, type PublicContractsDB, type PublicStateDB } from './db.js';
9
- import { type PublicExecution, type PublicExecutionResult } from './execution.js';
10
- /**
11
- * The execution context for a public tx simulation.
12
- */
13
- export declare class PublicExecutionContext extends TypedOracle {
14
- /**
15
- * Data for this execution.
16
- */
17
- readonly execution: PublicExecution;
18
- readonly header: Header;
19
- readonly globalVariables: GlobalVariables;
20
- private readonly packedValuesCache;
21
- readonly sideEffectCounter: SideEffectCounter;
22
- readonly stateDb: PublicStateDB;
23
- readonly contractsDb: PublicContractsDB;
24
- readonly commitmentsDb: CommitmentsDB;
25
- readonly availableGas: Gas;
26
- readonly transactionFee: Fr;
27
- readonly gasSettings: GasSettings;
28
- readonly pendingNullifiers: Nullifier[];
29
- private allUnencryptedLogs;
30
- private log;
31
- private storageActions;
32
- private nestedExecutions;
33
- private unencryptedLogs;
34
- constructor(
35
- /**
36
- * Data for this execution.
37
- */
38
- execution: PublicExecution, header: Header, globalVariables: GlobalVariables, packedValuesCache: PackedValuesCache, sideEffectCounter: SideEffectCounter, stateDb: PublicStateDB, contractsDb: PublicContractsDB, commitmentsDb: CommitmentsDB, availableGas: Gas, transactionFee: Fr, gasSettings: GasSettings, pendingNullifiers: Nullifier[], allUnencryptedLogs?: UnencryptedL2Log[], log?: import("@aztec/foundation/log").Logger);
39
- /**
40
- * Generates the initial witness for a public function.
41
- * @param args - The arguments to the function.
42
- * @param callContext - The call context of the function.
43
- * @param header - Contains data required to reconstruct a block hash (historical roots etc.).
44
- * @param globalVariables - The global variables.
45
- * @param witnessStartIndex - The index where to start inserting the parameters.
46
- * @returns The initial witness.
47
- */
48
- getInitialWitness(witnessStartIndex?: number): Map<number, string>;
49
- /**
50
- * Return the nested execution results during this execution.
51
- */
52
- getNestedExecutions(): PublicExecutionResult[];
53
- /**
54
- * Return the encrypted logs emitted during this execution.
55
- */
56
- getUnencryptedLogs(): UnencryptedFunctionL2Logs;
57
- /**
58
- * Return the encrypted logs emitted during this execution, including nested calls.
59
- */
60
- getAllUnencryptedLogs(): UnencryptedFunctionL2Logs;
61
- /**
62
- * Return the data read and updated during this execution.
63
- */
64
- getStorageActionData(): {
65
- contractStorageReads: import("@aztec/circuits.js").ContractStorageRead[];
66
- contractStorageUpdateRequests: import("@aztec/circuits.js").ContractStorageUpdateRequest[];
67
- };
68
- /**
69
- * Pack the given array of arguments.
70
- * @param args - Arguments to pack
71
- */
72
- packArgumentsArray(args: Fr[]): Promise<Fr>;
73
- /**
74
- * Pack the given returns.
75
- * @param returns - Returns to pack
76
- */
77
- packReturns(returns: Fr[]): Promise<Fr>;
78
- /**
79
- * Unpack the given returns.
80
- * @param returnsHash - Returns hash to unpack
81
- */
82
- unpackReturns(returnsHash: Fr): Promise<Fr[]>;
83
- /**
84
- * Fetches a message from the db, given its key.
85
- * @param contractAddress - Address of a contract by which the message was emitted.
86
- * @param messageHash - Hash of the message.
87
- * @param secret - Secret used to compute a nullifier.
88
- * @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
89
- * @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
90
- */
91
- getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<import("../acvm/index.js").MessageLoadOracleInputs<16>>;
92
- /**
93
- * Emit an unencrypted log.
94
- * @param log - The unencrypted log to be emitted.
95
- */
96
- emitUnencryptedLog(log: UnencryptedL2Log, _counter: number): void;
97
- /**
98
- * Read the public storage data.
99
- * @param startStorageSlot - The starting storage slot.
100
- * @param numberOfElements - Number of elements to read from the starting storage slot.
101
- */
102
- storageRead(startStorageSlot: Fr, numberOfElements: number): Promise<Fr[]>;
103
- /**
104
- * Write some values to the public storage.
105
- * @param startStorageSlot - The starting storage slot.
106
- * @param values - The values to be written.
107
- */
108
- storageWrite(startStorageSlot: Fr, values: Fr[]): Promise<Fr[]>;
109
- /**
110
- * Calls a public function as a nested execution.
111
- * @param targetContractAddress - The address of the contract to call.
112
- * @param functionSelector - The function selector of the function to call.
113
- * @param argsHash - The packed arguments to pass to the function.
114
- * @returns The return values of the public function.
115
- */
116
- callPublicFunction(targetContractAddress: AztecAddress, functionSelector: FunctionSelector, argsHash: Fr, sideEffectCounter: number, isStaticCall: boolean, isDelegateCall: boolean): Promise<Fr[]>;
117
- checkNullifierExists(nullifier: Fr): Promise<boolean>;
118
- getContractInstance(address: AztecAddress): Promise<ContractInstance>;
119
- debugLog(message: string, fields: Fr[]): void;
120
- }
121
- //# sourceMappingURL=public_execution_context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public_execution_context.d.ts","sourceRoot":"","sources":["../../src/public/public_execution_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,GAAG,EACR,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,SAAS,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAwB,MAAM,gBAAgB,CAAC;AAIxG;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IAMnD;;OAEG;aACa,SAAS,EAAE,eAAe;aAC1B,MAAM,EAAE,MAAM;aACd,eAAe,EAAE,eAAe;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;aAElB,iBAAiB,EAAE,iBAAiB;aACpC,OAAO,EAAE,aAAa;aACtB,WAAW,EAAE,iBAAiB;aAC9B,aAAa,EAAE,aAAa;aAC5B,YAAY,EAAE,GAAG;aACjB,cAAc,EAAE,EAAE;aAClB,WAAW,EAAE,WAAW;aACxB,iBAAiB,EAAE,SAAS,EAAE;IAG9C,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,GAAG;IAxBb,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,eAAe,CAA0B;;IAG/C;;OAEG;IACa,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAC/B,iBAAiB,EAAE,iBAAiB,EAErC,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,EAAE,EAClB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,SAAS,EAAE,EAGtC,kBAAkB,GAAE,gBAAgB,EAAO,EAC3C,GAAG,yCAAgE;IAM7E;;;;;;;;OAQG;IACI,iBAAiB,CAAC,iBAAiB,SAAI;IAc9C;;OAEG;IACI,mBAAmB;IAI1B;;OAEG;IACI,kBAAkB;IAIzB;;OAEG;IACI,qBAAqB;IAI5B;;OAEG;IACI,oBAAoB;;;;IAK3B;;;OAGG;IACa,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAI3D;;;OAGG;IACa,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAIvD;;;OAGG;IACa,aAAa,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAI7D;;;;;;;OAOG;IACmB,0BAA0B,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAI3G;;;OAGG;IACa,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM;IAM1E;;;;OAIG;IACmB,WAAW,CAAC,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM;IAYhF;;;;OAIG;IACmB,YAAY,CAAC,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAcrE;;;;;;OAMG;IACmB,kBAAkB,CACtC,qBAAqB,EAAE,YAAY,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,EAAE,EACZ,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,OAAO;IA6DH,oBAAoB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrD,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAa3E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI;CAI9D"}
@@ -1,214 +0,0 @@
1
- import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
2
- import { CallContext, FunctionData, PublicContextInputs, } from '@aztec/circuits.js';
3
- import { Fr } from '@aztec/foundation/fields';
4
- import { applyStringFormatting, createDebugLogger } from '@aztec/foundation/log';
5
- import { TypedOracle, toACVMWitness } from '../acvm/index.js';
6
- import { checkValidStaticCall } from './execution.js';
7
- import { executePublicFunction } from './executor.js';
8
- import { ContractStorageActionsCollector } from './state_actions.js';
9
- /**
10
- * The execution context for a public tx simulation.
11
- */
12
- export class PublicExecutionContext extends TypedOracle {
13
- constructor(
14
- /**
15
- * Data for this execution.
16
- */
17
- execution, header, globalVariables, packedValuesCache,
18
- // TRANSITIONAL: once AVM-ACVM interoperability is removed (fully functional AVM), sideEffectCounter can be made private
19
- sideEffectCounter, stateDb, contractsDb, commitmentsDb, availableGas, transactionFee, gasSettings, pendingNullifiers,
20
- // Unencrypted logs emitted during this call AND any nested calls
21
- // Useful for maintaining correct ordering in ts
22
- allUnencryptedLogs = [], log = createDebugLogger('aztec:simulator:public_execution_context')) {
23
- super();
24
- this.execution = execution;
25
- this.header = header;
26
- this.globalVariables = globalVariables;
27
- this.packedValuesCache = packedValuesCache;
28
- this.sideEffectCounter = sideEffectCounter;
29
- this.stateDb = stateDb;
30
- this.contractsDb = contractsDb;
31
- this.commitmentsDb = commitmentsDb;
32
- this.availableGas = availableGas;
33
- this.transactionFee = transactionFee;
34
- this.gasSettings = gasSettings;
35
- this.pendingNullifiers = pendingNullifiers;
36
- this.allUnencryptedLogs = allUnencryptedLogs;
37
- this.log = log;
38
- this.nestedExecutions = [];
39
- this.unencryptedLogs = [];
40
- this.storageActions = new ContractStorageActionsCollector(stateDb, execution.callContext.storageContractAddress);
41
- }
42
- /**
43
- * Generates the initial witness for a public function.
44
- * @param args - The arguments to the function.
45
- * @param callContext - The call context of the function.
46
- * @param header - Contains data required to reconstruct a block hash (historical roots etc.).
47
- * @param globalVariables - The global variables.
48
- * @param witnessStartIndex - The index where to start inserting the parameters.
49
- * @returns The initial witness.
50
- */
51
- getInitialWitness(witnessStartIndex = 0) {
52
- const { callContext, args } = this.execution;
53
- const publicContextInputs = new PublicContextInputs(callContext, this.header, this.globalVariables, this.sideEffectCounter.current(), this.availableGas, this.transactionFee);
54
- const fields = [...publicContextInputs.toFields(), ...args];
55
- return toACVMWitness(witnessStartIndex, fields);
56
- }
57
- /**
58
- * Return the nested execution results during this execution.
59
- */
60
- getNestedExecutions() {
61
- return this.nestedExecutions;
62
- }
63
- /**
64
- * Return the encrypted logs emitted during this execution.
65
- */
66
- getUnencryptedLogs() {
67
- return new UnencryptedFunctionL2Logs(this.unencryptedLogs);
68
- }
69
- /**
70
- * Return the encrypted logs emitted during this execution, including nested calls.
71
- */
72
- getAllUnencryptedLogs() {
73
- return new UnencryptedFunctionL2Logs(this.allUnencryptedLogs);
74
- }
75
- /**
76
- * Return the data read and updated during this execution.
77
- */
78
- getStorageActionData() {
79
- const [contractStorageReads, contractStorageUpdateRequests] = this.storageActions.collect();
80
- return { contractStorageReads, contractStorageUpdateRequests };
81
- }
82
- /**
83
- * Pack the given array of arguments.
84
- * @param args - Arguments to pack
85
- */
86
- packArgumentsArray(args) {
87
- return Promise.resolve(this.packedValuesCache.pack(args));
88
- }
89
- /**
90
- * Pack the given returns.
91
- * @param returns - Returns to pack
92
- */
93
- packReturns(returns) {
94
- return Promise.resolve(this.packedValuesCache.pack(returns));
95
- }
96
- /**
97
- * Unpack the given returns.
98
- * @param returnsHash - Returns hash to unpack
99
- */
100
- unpackReturns(returnsHash) {
101
- return Promise.resolve(this.packedValuesCache.unpack(returnsHash));
102
- }
103
- /**
104
- * Fetches a message from the db, given its key.
105
- * @param contractAddress - Address of a contract by which the message was emitted.
106
- * @param messageHash - Hash of the message.
107
- * @param secret - Secret used to compute a nullifier.
108
- * @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
109
- * @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
110
- */
111
- async getL1ToL2MembershipWitness(contractAddress, messageHash, secret) {
112
- return await this.commitmentsDb.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
113
- }
114
- /**
115
- * Emit an unencrypted log.
116
- * @param log - The unencrypted log to be emitted.
117
- */
118
- emitUnencryptedLog(log, _counter) {
119
- this.unencryptedLogs.push(log);
120
- this.allUnencryptedLogs.push(log);
121
- this.log.verbose(`Emitted unencrypted log: "${log.toHumanReadable()}"`);
122
- }
123
- /**
124
- * Read the public storage data.
125
- * @param startStorageSlot - The starting storage slot.
126
- * @param numberOfElements - Number of elements to read from the starting storage slot.
127
- */
128
- async storageRead(startStorageSlot, numberOfElements) {
129
- const values = [];
130
- for (let i = 0; i < Number(numberOfElements); i++) {
131
- const storageSlot = new Fr(startStorageSlot.value + BigInt(i));
132
- const sideEffectCounter = this.sideEffectCounter.count();
133
- const value = await this.storageActions.read(storageSlot, sideEffectCounter);
134
- this.log.debug(`Oracle storage read: slot=${storageSlot.toString()} value=${value.toString()}`);
135
- values.push(value);
136
- }
137
- return values;
138
- }
139
- /**
140
- * Write some values to the public storage.
141
- * @param startStorageSlot - The starting storage slot.
142
- * @param values - The values to be written.
143
- */
144
- async storageWrite(startStorageSlot, values) {
145
- const newValues = [];
146
- for (let i = 0; i < values.length; i++) {
147
- const storageSlot = new Fr(startStorageSlot.toBigInt() + BigInt(i));
148
- const newValue = values[i];
149
- const sideEffectCounter = this.sideEffectCounter.count();
150
- this.storageActions.write(storageSlot, newValue, sideEffectCounter);
151
- await this.stateDb.storageWrite(this.execution.callContext.storageContractAddress, storageSlot, newValue);
152
- this.log.debug(`Oracle storage write: slot=${storageSlot.toString()} value=${newValue.toString()}`);
153
- newValues.push(newValue);
154
- }
155
- return newValues;
156
- }
157
- /**
158
- * Calls a public function as a nested execution.
159
- * @param targetContractAddress - The address of the contract to call.
160
- * @param functionSelector - The function selector of the function to call.
161
- * @param argsHash - The packed arguments to pass to the function.
162
- * @returns The return values of the public function.
163
- */
164
- async callPublicFunction(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall, isDelegateCall) {
165
- isStaticCall = isStaticCall || this.execution.callContext.isStaticCall;
166
- const args = this.packedValuesCache.unpack(argsHash);
167
- this.log.verbose(`Public function call: addr=${targetContractAddress} selector=${functionSelector} args=${args.join(',')}`);
168
- const functionData = new FunctionData(functionSelector, /*isPrivate=*/ false);
169
- const callContext = CallContext.from({
170
- msgSender: isDelegateCall ? this.execution.callContext.msgSender : this.execution.contractAddress,
171
- storageContractAddress: isDelegateCall ? this.execution.contractAddress : targetContractAddress,
172
- functionSelector,
173
- isDelegateCall,
174
- isStaticCall,
175
- sideEffectCounter,
176
- });
177
- const nestedExecution = {
178
- args,
179
- contractAddress: targetContractAddress,
180
- functionData,
181
- callContext,
182
- };
183
- const context = new PublicExecutionContext(nestedExecution, this.header, this.globalVariables, this.packedValuesCache, this.sideEffectCounter, this.stateDb, this.contractsDb, this.commitmentsDb, this.availableGas, this.transactionFee, this.gasSettings,
184
- /*pendingNullifiers=*/ [], this.allUnencryptedLogs, this.log);
185
- const childExecutionResult = await executePublicFunction(context, /*nested=*/ true);
186
- if (isStaticCall) {
187
- checkValidStaticCall(childExecutionResult.newNoteHashes, childExecutionResult.newNullifiers, childExecutionResult.contractStorageUpdateRequests, childExecutionResult.newL2ToL1Messages, childExecutionResult.unencryptedLogs);
188
- }
189
- this.nestedExecutions.push(childExecutionResult);
190
- this.log.debug(`Returning from nested call: ret=${childExecutionResult.returnValues.join(', ')}`);
191
- return childExecutionResult.returnValues;
192
- }
193
- async checkNullifierExists(nullifier) {
194
- const witness = await this.commitmentsDb.getNullifierMembershipWitnessAtLatestBlock(nullifier);
195
- return !!witness;
196
- }
197
- async getContractInstance(address) {
198
- // Note to AVM implementor: The wrapper of the oracle call get_contract_instance in aztec-nr
199
- // automatically checks that the returned instance is correct, by hashing it together back
200
- // into the address. However, in the AVM, we also need to prove the negative, otherwise a malicious
201
- // sequencer could just lie about not having the instance available in its local db. We can do this
202
- // by using the prove_contract_non_deployment_at method if the contract is not found in the db.
203
- const instance = await this.contractsDb.getContractInstance(address);
204
- if (!instance) {
205
- throw new Error(`Contract instance at ${address} not found`);
206
- }
207
- return instance;
208
- }
209
- debugLog(message, fields) {
210
- const formattedStr = applyStringFormatting(message, fields);
211
- this.log.verbose(`debug_log ${formattedStr}`);
212
- }
213
- }
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2V4ZWN1dGlvbl9jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfZXhlY3V0aW9uX2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQ3hGLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQU9aLG1CQUFtQixHQUNwQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdqRixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzlELE9BQU8sRUFBb0Qsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQUtyRDtJQUNFOztPQUVHO0lBQ2EsU0FBMEIsRUFDMUIsTUFBYyxFQUNkLGVBQWdDLEVBQy9CLGlCQUFvQztJQUNyRCx3SEFBd0g7SUFDeEcsaUJBQW9DLEVBQ3BDLE9BQXNCLEVBQ3RCLFdBQThCLEVBQzlCLGFBQTRCLEVBQzVCLFlBQWlCLEVBQ2pCLGNBQWtCLEVBQ2xCLFdBQXdCLEVBQ3hCLGlCQUE4QjtJQUM5QyxpRUFBaUU7SUFDakUsZ0RBQWdEO0lBQ3hDLHFCQUF5QyxFQUFFLEVBQzNDLE1BQU0saUJBQWlCLENBQUMsMENBQTBDLENBQUM7UUFFM0UsS0FBSyxFQUFFLENBQUM7UUFsQlEsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsV0FB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"public_executor.d.ts","sourceRoot":"","sources":["../../src/public/public_executor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,0BAA0B,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EACL,KAAK,YAAY,EAGjB,EAAE,EACF,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAI9B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,KAAK,aAAa,EAClB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,iBAAiB;IAMvD,OAAO,CAAC,EAAE;IALtB,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,UAAU,CAA0C;IAE5D,OAAO,CAAC,GAAG,CAA8D;gBAErD,EAAE,EAAE,kBAAkB;IAE1C;;;OAGG;IACI,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7C;;;OAGG;IACI,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnC,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAI5F,gBAAgB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAItF,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAWlG;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IAK1C,OAAO,CAAC,EAAE;IAJtB,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,qBAAqB,CAA8B;gBAEvC,EAAE,EAAE,oBAAoB;IAE5C;;;;;OAKG;IACU,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IA4BvE;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlF;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvB;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAItC;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,aAAa;IACpC,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,oBAAoB;IAE/B,0CAA0C,CACrD,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IAqBrC,0BAA0B,CACrC,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,GACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,wBAAwB,CAAC,CAAC;IA2BvD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAI9D,kBAAkB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI/D,iBAAiB,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG3E"}