@aztec/simulator 0.69.1-devnet → 0.70.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 (119) hide show
  1. package/dest/acvm/acvm.d.ts +1 -2
  2. package/dest/acvm/acvm.d.ts.map +1 -1
  3. package/dest/acvm/index.d.ts +1 -1
  4. package/dest/acvm/index.d.ts.map +1 -1
  5. package/dest/acvm/index.js +2 -2
  6. package/dest/acvm/oracle/oracle.d.ts +4 -4
  7. package/dest/acvm/oracle/oracle.d.ts.map +1 -1
  8. package/dest/acvm/oracle/oracle.js +14 -14
  9. package/dest/acvm/oracle/typed_oracle.d.ts +6 -16
  10. package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
  11. package/dest/acvm/oracle/typed_oracle.js +10 -20
  12. package/dest/avm/avm_simulator.d.ts.map +1 -1
  13. package/dest/avm/avm_simulator.js +7 -2
  14. package/dest/avm/fixtures/index.d.ts +1 -1
  15. package/dest/avm/fixtures/index.d.ts.map +1 -1
  16. package/dest/avm/fixtures/index.js +2 -2
  17. package/dest/avm/journal/nullifiers.d.ts +1 -1
  18. package/dest/avm/journal/nullifiers.d.ts.map +1 -1
  19. package/dest/avm/journal/public_storage.d.ts +1 -1
  20. package/dest/avm/journal/public_storage.d.ts.map +1 -1
  21. package/dest/client/client_execution_context.d.ts +29 -18
  22. package/dest/client/client_execution_context.d.ts.map +1 -1
  23. package/dest/client/client_execution_context.js +42 -29
  24. package/dest/client/execution_note_cache.d.ts +27 -4
  25. package/dest/client/execution_note_cache.d.ts.map +1 -1
  26. package/dest/client/execution_note_cache.js +62 -12
  27. package/dest/client/index.d.ts +11 -3
  28. package/dest/client/index.d.ts.map +1 -1
  29. package/dest/client/index.js +11 -4
  30. package/dest/client/private_execution.d.ts +3 -2
  31. package/dest/client/private_execution.d.ts.map +1 -1
  32. package/dest/client/private_execution.js +9 -7
  33. package/dest/client/simulator.d.ts +4 -2
  34. package/dest/client/simulator.d.ts.map +1 -1
  35. package/dest/client/simulator.js +13 -8
  36. package/dest/client/unconstrained_execution.d.ts +2 -1
  37. package/dest/client/unconstrained_execution.d.ts.map +1 -1
  38. package/dest/client/unconstrained_execution.js +6 -4
  39. package/dest/client/view_data_oracle.d.ts +1 -1
  40. package/dest/common/hashed_values_cache.d.ts +28 -0
  41. package/dest/common/hashed_values_cache.d.ts.map +1 -0
  42. package/dest/common/{packed_values_cache.js → hashed_values_cache.js} +22 -22
  43. package/dest/common/index.d.ts +1 -1
  44. package/dest/common/index.js +1 -1
  45. package/dest/common/message_load_oracle_inputs.d.ts +15 -0
  46. package/dest/common/message_load_oracle_inputs.d.ts.map +1 -0
  47. package/dest/common/message_load_oracle_inputs.js +15 -0
  48. package/dest/common/simulation_provider.d.ts +19 -0
  49. package/dest/common/simulation_provider.d.ts.map +1 -0
  50. package/dest/common/simulation_provider.js +27 -0
  51. package/dest/common.d.ts +2 -0
  52. package/dest/common.d.ts.map +1 -0
  53. package/dest/common.js +2 -0
  54. package/dest/providers/acvm_native.d.ts +5 -2
  55. package/dest/providers/acvm_native.d.ts.map +1 -1
  56. package/dest/providers/acvm_native.js +5 -2
  57. package/dest/providers/acvm_wasm.d.ts +8 -2
  58. package/dest/providers/acvm_wasm.d.ts.map +1 -1
  59. package/dest/providers/acvm_wasm.js +31 -5
  60. package/dest/providers/acvm_wasm_with_blobs.d.ts +14 -2
  61. package/dest/providers/acvm_wasm_with_blobs.d.ts.map +1 -1
  62. package/dest/providers/acvm_wasm_with_blobs.js +24 -4
  63. package/dest/providers/factory.d.ts +1 -1
  64. package/dest/providers/factory.d.ts.map +1 -1
  65. package/dest/providers/factory.js +1 -1
  66. package/dest/providers/index.d.ts +1 -1
  67. package/dest/providers/index.d.ts.map +1 -1
  68. package/dest/providers/index.js +2 -2
  69. package/dest/public/db_interfaces.d.ts +1 -1
  70. package/dest/public/db_interfaces.d.ts.map +1 -1
  71. package/dest/public/fixtures/index.d.ts +3 -3
  72. package/dest/public/fixtures/index.d.ts.map +1 -1
  73. package/dest/public/fixtures/index.js +48 -18
  74. package/dest/public/public_db_sources.d.ts +2 -1
  75. package/dest/public/public_db_sources.d.ts.map +1 -1
  76. package/dest/public/public_db_sources.js +2 -2
  77. package/dest/public/public_tx_simulator.js +2 -2
  78. package/{src/index.ts → dest/server.d.ts} +1 -2
  79. package/dest/server.d.ts.map +1 -0
  80. package/dest/server.js +6 -0
  81. package/package.json +11 -12
  82. package/src/acvm/acvm.ts +1 -1
  83. package/src/acvm/index.ts +1 -1
  84. package/src/acvm/oracle/oracle.ts +14 -14
  85. package/src/acvm/oracle/typed_oracle.ts +12 -20
  86. package/src/avm/avm_simulator.ts +6 -1
  87. package/src/avm/fixtures/index.ts +2 -1
  88. package/src/avm/journal/nullifiers.ts +1 -1
  89. package/src/avm/journal/public_storage.ts +1 -1
  90. package/src/client/client_execution_context.ts +47 -30
  91. package/src/client/execution_note_cache.ts +67 -14
  92. package/src/client/index.ts +11 -3
  93. package/src/client/private_execution.ts +21 -17
  94. package/src/client/simulator.ts +20 -7
  95. package/src/client/unconstrained_execution.ts +17 -13
  96. package/src/common/hashed_values_cache.ts +55 -0
  97. package/src/common/index.ts +1 -1
  98. package/src/common/message_load_oracle_inputs.ts +15 -0
  99. package/src/common/simulation_provider.ts +45 -0
  100. package/src/common.ts +1 -0
  101. package/src/providers/acvm_native.ts +12 -2
  102. package/src/providers/acvm_wasm.ts +36 -9
  103. package/src/providers/acvm_wasm_with_blobs.ts +34 -9
  104. package/src/providers/factory.ts +1 -1
  105. package/src/providers/index.ts +1 -1
  106. package/src/public/db_interfaces.ts +1 -1
  107. package/src/public/fixtures/index.ts +62 -26
  108. package/src/public/public_db_sources.ts +3 -6
  109. package/src/public/public_tx_simulator.ts +1 -1
  110. package/{dest/index.d.ts → src/server.ts} +0 -3
  111. package/dest/common/packed_values_cache.d.ts +0 -28
  112. package/dest/common/packed_values_cache.d.ts.map +0 -1
  113. package/dest/index.d.ts.map +0 -1
  114. package/dest/index.js +0 -8
  115. package/dest/providers/simulation_provider.d.ts +0 -9
  116. package/dest/providers/simulation_provider.d.ts.map +0 -1
  117. package/dest/providers/simulation_provider.js +0 -2
  118. package/src/common/packed_values_cache.ts +0 -55
  119. package/src/providers/simulation_provider.ts +0 -10
@@ -1,7 +1,15 @@
1
- export * from './simulator.js';
2
- export * from './db_oracle.js';
1
+ export { AcirSimulator } from './simulator.js';
2
+ export { DBOracle, ContractClassNotFoundError, ContractNotFoundError } from './db_oracle.js';
3
3
  export * from './pick_notes.js';
4
- export * from './execution_note_cache.js';
4
+ export { ExecutionNoteCache } from './execution_note_cache.js';
5
5
  export { extractPrivateCircuitPublicInputs } from './private_execution.js';
6
+ export { witnessMapToFields } from '../acvm/deserialize.js';
7
+ export { toACVMWitness } from '../acvm/serialize.js';
8
+ export { extractCallStack } from '../acvm/acvm.js';
6
9
  export { WASMSimulator } from '../providers/acvm_wasm.js';
10
+ export { NoteData, TypedOracle } from '../acvm/oracle/typed_oracle.js';
11
+ export { Oracle } from '../acvm/oracle/oracle.js';
12
+ export { type SimulationProvider } from '../common/simulation_provider.js';
13
+ export { MessageLoadOracleInputs } from '../common/message_load_oracle_inputs.js';
14
+ export { resolveAssertionMessageFromRevertData, resolveOpcodeLocations } from '../common/errors.js';
7
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,qCAAqC,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,7 +1,14 @@
1
- export * from './simulator.js';
2
- export * from './db_oracle.js';
1
+ export { AcirSimulator } from './simulator.js';
2
+ export { ContractClassNotFoundError, ContractNotFoundError } from './db_oracle.js';
3
3
  export * from './pick_notes.js';
4
- export * from './execution_note_cache.js';
4
+ export { ExecutionNoteCache } from './execution_note_cache.js';
5
5
  export { extractPrivateCircuitPublicInputs } from './private_execution.js';
6
+ export { witnessMapToFields } from '../acvm/deserialize.js';
7
+ export { toACVMWitness } from '../acvm/serialize.js';
8
+ export { extractCallStack } from '../acvm/acvm.js';
6
9
  export { WASMSimulator } from '../providers/acvm_wasm.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDIn0=
10
+ export { TypedOracle } from '../acvm/oracle/typed_oracle.js';
11
+ export { Oracle } from '../acvm/oracle/oracle.js';
12
+ export { MessageLoadOracleInputs } from '../common/message_load_oracle_inputs.js';
13
+ export { resolveAssertionMessageFromRevertData, resolveOpcodeLocations } from '../common/errors.js';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQVksMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFZLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUscUNBQXFDLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyJ9
@@ -1,13 +1,14 @@
1
- import { PrivateExecutionResult } from '@aztec/circuit-types';
1
+ import { PrivateCallExecutionResult } from '@aztec/circuit-types';
2
2
  import { PrivateCircuitPublicInputs } from '@aztec/circuits.js';
3
3
  import { type FunctionArtifact, type FunctionSelector } from '@aztec/foundation/abi';
4
4
  import { type AztecAddress } from '@aztec/foundation/aztec-address';
5
5
  import { type ACVMWitness } from '../acvm/index.js';
6
+ import { type SimulationProvider } from '../server.js';
6
7
  import { type ClientExecutionContext } from './client_execution_context.js';
7
8
  /**
8
9
  * Execute a private function and return the execution result.
9
10
  */
10
- export declare function executePrivateFunction(context: ClientExecutionContext, artifact: FunctionArtifact, contractAddress: AztecAddress, functionSelector: FunctionSelector, log?: import("@aztec/foundation/log").Logger): Promise<PrivateExecutionResult>;
11
+ export declare function executePrivateFunction(simulator: SimulationProvider, context: ClientExecutionContext, artifact: FunctionArtifact, contractAddress: AztecAddress, functionSelector: FunctionSelector, log?: import("@aztec/foundation/log").Logger): Promise<PrivateCallExecutionResult>;
11
12
  /**
12
13
  * Get the private circuit public inputs from the partial witness.
13
14
  * @param artifact - The function artifact
@@ -1 +1 @@
1
- {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/client/private_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAIL,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAsB,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAKpE,OAAO,EAAE,KAAK,WAAW,EAAkC,MAAM,kBAAkB,CAAC;AAEpF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,sBAAsB,CAAC,CA6DjC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B"}
1
+ {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/client/private_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAIL,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAsB,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAKpE,OAAO,EAAE,KAAK,WAAW,EAA4B,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA+DrC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B"}
@@ -1,22 +1,24 @@
1
- import { PrivateExecutionResult } from '@aztec/circuit-types';
1
+ import { PrivateCallExecutionResult } from '@aztec/circuit-types';
2
2
  import { Fr, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH, PrivateCircuitPublicInputs, } from '@aztec/circuits.js';
3
3
  import { countArgumentsSize } from '@aztec/foundation/abi';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { Timer } from '@aztec/foundation/timer';
6
6
  import { fromACVMField, witnessMapToFields } from '../acvm/deserialize.js';
7
- import { Oracle, acvm, extractCallStack } from '../acvm/index.js';
7
+ import { Oracle, extractCallStack } from '../acvm/index.js';
8
8
  import { ExecutionError, resolveAssertionMessageFromError } from '../common/errors.js';
9
9
  /**
10
10
  * Execute a private function and return the execution result.
11
11
  */
12
- export async function executePrivateFunction(context, artifact, contractAddress, functionSelector, log = createLogger('simulator:private_execution')) {
12
+ export async function executePrivateFunction(simulator, context, artifact, contractAddress, functionSelector, log = createLogger('simulator:private_execution')) {
13
13
  const functionName = await context.getDebugFunctionName();
14
14
  log.verbose(`Executing private function ${functionName}@${contractAddress}`);
15
15
  const acir = artifact.bytecode;
16
16
  const initialWitness = context.getInitialWitness(artifact);
17
17
  const acvmCallback = new Oracle(context);
18
18
  const timer = new Timer();
19
- const acirExecutionResult = await acvm(acir, initialWitness, acvmCallback).catch((err) => {
19
+ const acirExecutionResult = await simulator
20
+ .executeUserCircuit(acir, initialWitness, acvmCallback)
21
+ .catch((err) => {
20
22
  err.message = resolveAssertionMessageFromError(err, artifact);
21
23
  throw new ExecutionError(err.message, {
22
24
  contractAddress,
@@ -37,7 +39,7 @@ export async function executePrivateFunction(context, artifact, contractAddress,
37
39
  appCircuitName: functionName,
38
40
  });
39
41
  const contractClassLogs = context.getContractClassLogs();
40
- const rawReturnValues = await context.unpackReturns(publicInputs.returnsHash);
42
+ const rawReturnValues = await context.loadFromExecutionCache(publicInputs.returnsHash);
41
43
  const noteHashLeafIndexMap = context.getNoteHashLeafIndexMap();
42
44
  const newNotes = context.getNewNotes();
43
45
  const noteHashNullifierCounterMap = context.getNoteHashNullifierCounterMap();
@@ -45,7 +47,7 @@ export async function executePrivateFunction(context, artifact, contractAddress,
45
47
  const enqueuedPublicFunctionCalls = context.getEnqueuedPublicFunctionCalls();
46
48
  const publicTeardownFunctionCall = context.getPublicTeardownFunctionCall();
47
49
  log.debug(`Returning from call to ${contractAddress.toString()}:${functionSelector}`);
48
- return new PrivateExecutionResult(acir, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, noteHashLeafIndexMap, newNotes, noteHashNullifierCounterMap, rawReturnValues, nestedExecutions, enqueuedPublicFunctionCalls, publicTeardownFunctionCall, contractClassLogs);
50
+ return new PrivateCallExecutionResult(acir, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, noteHashLeafIndexMap, newNotes, noteHashNullifierCounterMap, rawReturnValues, nestedExecutions, enqueuedPublicFunctionCalls, publicTeardownFunctionCall, contractClassLogs);
49
51
  }
50
52
  /**
51
53
  * Get the private circuit public inputs from the partial witness.
@@ -67,4 +69,4 @@ export function extractPrivateCircuitPublicInputs(artifact, partialWitness) {
67
69
  }
68
70
  return PrivateCircuitPublicInputs.fromFields(returnData);
69
71
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlELE9BQU8sRUFDTCxFQUFFLEVBQ0Ysb0NBQW9DLEVBQ3BDLDZCQUE2QixFQUM3QiwwQkFBMEIsR0FDM0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQWdELGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0UsT0FBTyxFQUFvQixNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3ZGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsT0FBK0IsRUFDL0IsUUFBMEIsRUFDMUIsZUFBNkIsRUFDN0IsZ0JBQWtDLEVBQ2xDLEdBQUcsR0FBRyxZQUFZLENBQUMsNkJBQTZCLENBQUM7SUFFakQsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUMxRCxHQUFHLENBQUMsT0FBTyxDQUFDLDhCQUE4QixZQUFZLElBQUksZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM3RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQy9CLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxR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
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxFLE9BQU8sRUFDTCxFQUFFLEVBQ0Ysb0NBQW9DLEVBQ3BDLDZCQUE2QixFQUM3QiwwQkFBMEIsR0FDM0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQWdELGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0UsT0FBTyxFQUFvQixNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdkY7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxTQUE2QixFQUM3QixPQUErQixFQUMvQixRQUEwQixFQUMxQixlQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsR0FBRyxHQUFHLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQztJQUVqRCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzFELEdBQUcsQ0FBQyxPQUFPLENBQUMsOEJBQThCLFlBQVksSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFD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
@@ -1,7 +1,8 @@
1
- import type { AztecNode, FunctionCall, Note, PrivateExecutionResult, TxExecutionRequest } from '@aztec/circuit-types';
1
+ import { type AztecNode, type FunctionCall, type Note, PrivateExecutionResult, type TxExecutionRequest } from '@aztec/circuit-types';
2
2
  import { type FunctionArtifact, type NoteSelector } from '@aztec/foundation/abi';
3
3
  import { AztecAddress } from '@aztec/foundation/aztec-address';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
+ import { type SimulationProvider } from '../common/simulation_provider.js';
5
6
  import { type DBOracle } from './db_oracle.js';
6
7
  /**
7
8
  * The ACIR simulator.
@@ -9,8 +10,9 @@ import { type DBOracle } from './db_oracle.js';
9
10
  export declare class AcirSimulator {
10
11
  private db;
11
12
  private node;
13
+ private simulationProvider;
12
14
  private log;
13
- constructor(db: DBOracle, node: AztecNode);
15
+ constructor(db: DBOracle, node: AztecNode, simulationProvider: SimulationProvider);
14
16
  /**
15
17
  * Runs a private function.
16
18
  * @param request - The transaction request.
@@ -1 +1 @@
1
- {"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../src/client/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEtH,OAAO,EAEL,KAAK,gBAAgB,EAGrB,KAAK,YAAY,EAElB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAM9C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM/C;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,EAAE;IAAY,OAAO,CAAC,IAAI;IAF9C,OAAO,CAAC,GAAG,CAAS;gBAEA,EAAE,EAAE,QAAQ,EAAU,IAAI,EAAE,SAAS;IAIzD;;;;;;;;OAQG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,kBAAkB,EAAE,gBAAgB,EACpC,eAAe,EAAE,YAAY,EAC7B,SAAS,eAA6C,EACtD,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,sBAAsB,CAAC;IAqDlC;;;;;;OAMG;IACU,gBAAgB,CAC3B,OAAO,EAAE,YAAY,EACrB,kBAAkB,EAAE,gBAAgB,EACpC,eAAe,EAAE,YAAY,EAC7B,MAAM,CAAC,EAAE,YAAY,EAAE;IAqBzB;;;;;;;;;OASG;IACU,sCAAsC,CACjD,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,YAAY,EACxB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,IAAI;;;;;;IA6DZ;;;;;;;OAOG;IACU,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI;CAWlH"}
1
+ {"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../src/client/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,sBAAsB,EACtB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,gBAAgB,EAGrB,KAAK,YAAY,EAElB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM/C;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,EAAE;IAAY,OAAO,CAAC,IAAI;IAAa,OAAO,CAAC,kBAAkB;IAFrF,OAAO,CAAC,GAAG,CAAS;gBAEA,EAAE,EAAE,QAAQ,EAAU,IAAI,EAAE,SAAS,EAAU,kBAAkB,EAAE,kBAAkB;IAIzG;;;;;;;;OAQG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,kBAAkB,EAAE,gBAAgB,EACpC,eAAe,EAAE,YAAY,EAC7B,SAAS,eAA6C,EACtD,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,sBAAsB,CAAC;IA0DlC;;;;;;OAMG;IACU,gBAAgB,CAC3B,OAAO,EAAE,YAAY,EACrB,kBAAkB,EAAE,gBAAgB,EACpC,eAAe,EAAE,YAAY,EAC7B,MAAM,CAAC,EAAE,YAAY,EAAE;IAsBzB;;;;;;;;;OASG;IACU,sCAAsC,CACjD,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,YAAY,EACxB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,IAAI;;;;;;IA6DZ;;;;;;;OAOG;IACU,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI;CAWlH"}
@@ -1,10 +1,11 @@
1
+ import { PrivateExecutionResult, } from '@aztec/circuit-types';
1
2
  import { CallContext } from '@aztec/circuits.js';
2
3
  import { FunctionSelector, FunctionType, encodeArguments, } from '@aztec/foundation/abi';
3
4
  import { AztecAddress } from '@aztec/foundation/aztec-address';
4
5
  import { Fr } from '@aztec/foundation/fields';
5
6
  import { createLogger } from '@aztec/foundation/log';
6
7
  import { createSimulationError } from '../common/errors.js';
7
- import { PackedValuesCache } from '../common/packed_values_cache.js';
8
+ import { HashedValuesCache } from '../common/hashed_values_cache.js';
8
9
  import { ClientExecutionContext } from './client_execution_context.js';
9
10
  import { ExecutionNoteCache } from './execution_note_cache.js';
10
11
  import { executePrivateFunction } from './private_execution.js';
@@ -14,9 +15,10 @@ import { ViewDataOracle } from './view_data_oracle.js';
14
15
  * The ACIR simulator.
15
16
  */
16
17
  export class AcirSimulator {
17
- constructor(db, node) {
18
+ constructor(db, node, simulationProvider) {
18
19
  this.db = db;
19
20
  this.node = node;
21
+ this.simulationProvider = simulationProvider;
20
22
  this.log = createLogger('simulator');
21
23
  }
22
24
  /**
@@ -39,11 +41,14 @@ export class AcirSimulator {
39
41
  // reserve the first side effect for the tx hash (inserted by the private kernel)
40
42
  const startSideEffectCounter = 1;
41
43
  const callContext = new CallContext(msgSender, contractAddress, FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), entryPointArtifact.isStatic);
42
- const txHash = request.toTxRequest().hash();
43
- const context = new ClientExecutionContext(request.firstCallArgsHash, request.txContext, callContext, header, request.authWitnesses, PackedValuesCache.create(request.argsOfCalls), new ExecutionNoteCache(txHash), this.db, this.node, startSideEffectCounter, undefined, scopes);
44
+ const txRequestHash = request.toTxRequest().hash();
45
+ const noteCache = new ExecutionNoteCache(txRequestHash);
46
+ const context = new ClientExecutionContext(request.firstCallArgsHash, request.txContext, callContext, header, request.authWitnesses, HashedValuesCache.create(request.argsOfCalls), noteCache, this.db, this.node, this.simulationProvider, startSideEffectCounter, undefined, scopes);
44
47
  try {
45
- const executionResult = await executePrivateFunction(context, entryPointArtifact, contractAddress, request.functionSelector);
46
- return executionResult;
48
+ const executionResult = await executePrivateFunction(this.simulationProvider, context, entryPointArtifact, contractAddress, request.functionSelector);
49
+ const { usedTxRequestHashForNonces } = noteCache.finish();
50
+ const firstNullifierHint = usedTxRequestHashForNonces ? Fr.ZERO : noteCache.getAllNullifiers()[0];
51
+ return new PrivateExecutionResult(executionResult, firstNullifierHint);
47
52
  }
48
53
  catch (err) {
49
54
  throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
@@ -62,7 +67,7 @@ export class AcirSimulator {
62
67
  }
63
68
  const context = new ViewDataOracle(contractAddress, [], this.db, this.node, undefined, scopes);
64
69
  try {
65
- return await executeUnconstrainedFunction(context, entryPointArtifact, contractAddress, request.selector, request.args);
70
+ return await executeUnconstrainedFunction(this.simulationProvider, context, entryPointArtifact, contractAddress, request.selector, request.args);
66
71
  }
67
72
  catch (err) {
68
73
  throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
@@ -128,4 +133,4 @@ export class AcirSimulator {
128
133
  return noteHash;
129
134
  }
130
135
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFHTCxnQkFBZ0IsRUFDaEIsWUFBWSxFQUVaLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUFvQixFQUFZLEVBQVUsSUFBZTtRQUFyQyxPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBVztRQUN2RCxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsR0FBRyxDQUNkLE9BQTJCLEVBQzNCLGtCQUFv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
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLHNCQUFzQixHQUV2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLFlBQVksRUFFWixlQUFlLEdBQ2hCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBb0IsRUFBWSxFQUFVLElBQWUsRUFBVSxrQkFBc0M7UUFBckYsT0FBRSxHQUFGLEVBQUUsQ0FBVTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVc7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZHLElBQUksQ0FBQyxHQUFHLEdBQUcsWUFBWSxD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
@@ -1,9 +1,10 @@
1
1
  import { type AbiDecoded, type FunctionArtifact, type FunctionSelector } from '@aztec/foundation/abi';
2
2
  import { type AztecAddress } from '@aztec/foundation/aztec-address';
3
3
  import { type Fr } from '@aztec/foundation/fields';
4
+ import { type SimulationProvider } from '../server.js';
4
5
  import { type ViewDataOracle } from './view_data_oracle.js';
5
6
  /**
6
7
  * Execute an unconstrained function and return the decoded values.
7
8
  */
8
- export declare function executeUnconstrainedFunction(oracle: ViewDataOracle, artifact: FunctionArtifact, contractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], log?: import("@aztec/foundation/log").Logger): Promise<AbiDecoded>;
9
+ export declare function executeUnconstrainedFunction(simulatorProvider: SimulationProvider, oracle: ViewDataOracle, artifact: FunctionArtifact, contractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], log?: import("@aztec/foundation/log").Logger): Promise<AbiDecoded>;
9
10
  //# sourceMappingURL=unconstrained_execution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unconstrained_execution.d.ts","sourceRoot":"","sources":["../../src/client/unconstrained_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAiB,MAAM,uBAAuB,CAAC;AACrH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAMnD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,EAAE,EAAE,EACV,GAAG,yCAAoD,GACtD,OAAO,CAAC,UAAU,CAAC,CAoBrB"}
1
+ {"version":3,"file":"unconstrained_execution.d.ts","sourceRoot":"","sources":["../../src/client/unconstrained_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAiB,MAAM,uBAAuB,CAAC;AACrH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAMnD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,EAAE,EAAE,EACV,GAAG,yCAAoD,GACtD,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
@@ -1,17 +1,19 @@
1
1
  import { decodeFromAbi } from '@aztec/foundation/abi';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { witnessMapToFields } from '../acvm/deserialize.js';
4
- import { Oracle, acvm, extractCallStack, toACVMWitness } from '../acvm/index.js';
4
+ import { Oracle, extractCallStack, toACVMWitness } from '../acvm/index.js';
5
5
  import { ExecutionError, resolveAssertionMessageFromError } from '../common/errors.js';
6
6
  // docs:start:execute_unconstrained_function
7
7
  /**
8
8
  * Execute an unconstrained function and return the decoded values.
9
9
  */
10
- export async function executeUnconstrainedFunction(oracle, artifact, contractAddress, functionSelector, args, log = createLogger('simulator:unconstrained_execution')) {
10
+ export async function executeUnconstrainedFunction(simulatorProvider, oracle, artifact, contractAddress, functionSelector, args, log = createLogger('simulator:unconstrained_execution')) {
11
11
  log.verbose(`Executing unconstrained function ${contractAddress}:${functionSelector}(${artifact.name})`);
12
12
  const acir = artifact.bytecode;
13
13
  const initialWitness = toACVMWitness(0, args);
14
- const acirExecutionResult = await acvm(acir, initialWitness, new Oracle(oracle)).catch((err) => {
14
+ const acirExecutionResult = await simulatorProvider
15
+ .executeUserCircuit(acir, initialWitness, new Oracle(oracle))
16
+ .catch((err) => {
15
17
  err.message = resolveAssertionMessageFromError(err, artifact);
16
18
  throw new ExecutionError(err.message, {
17
19
  contractAddress,
@@ -22,4 +24,4 @@ export async function executeUnconstrainedFunction(oracle, artifact, contractAdd
22
24
  return decodeFromAbi(artifact.returnTypes, returnWitness);
23
25
  }
24
26
  // docs:end:execute_unconstrained_function
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jb25zdHJhaW5lZF9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3VuY29uc3RyYWluZWRfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd2Riw0Q0FBNEM7QUFDNUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDRCQUE0QixDQUNoRCxNQUFzQixFQUN0QixRQUEwQixFQUMxQixlQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsSUFBVSxFQUNWLEdBQUcsR0FBRyxZQUFZLENBQUMsbUNBQW1DLENBQUM7SUFFdkQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsZUFBZSxJQUFJLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRXpHLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFVLEVBQUUsRUFBRTtRQUNwRyxHQUFHLENBQUMsT0FBTyxHQUFHLGdDQUFnQyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RCxNQUFNLElBQUksY0FBYyxDQUN0QixHQUFHLENBQUMsT0FBTyxFQUNYO1lBQ0UsZUFBZTtZQUNmLGdCQUFnQjtTQUNqQixFQUNELGdCQUFnQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQ3JDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUNmLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUNELDBDQUEwQyJ9
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jb25zdHJhaW5lZF9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3VuY29uc3RyYWluZWRfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSXZGLDRDQUE0QztBQUM1Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsNEJBQTRCLENBQ2hELGlCQUFxQyxFQUNyQyxNQUFzQixFQUN0QixRQUEwQixFQUMxQixlQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsSUFBVSxFQUNWLEdBQUcsR0FBRyxZQUFZLENBQUMsbUNBQW1DLENBQUM7SUFFdkQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsZUFBZSxJQUFJLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRXpHLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLG1CQUFtQixHQUFHLE1BQU0saUJBQWlCO1NBQ2hELGtCQUFrQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUQsS0FBSyxDQUFDLENBQUMsR0FBVSxFQUFFLEVBQUU7UUFDcEIsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQ0FBZ0MsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUQsTUFBTSxJQUFJLGNBQWMsQ0FDdEIsR0FBRyxDQUFDLE9BQU8sRUFDWDtZQUNFLGVBQWU7WUFDZixnQkFBZ0I7U0FDakIsRUFDRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUNyQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FDZixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFTCxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RSxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFDRCwwQ0FBMEMifQ==
@@ -130,7 +130,7 @@ export declare class ViewDataOracle extends TypedOracle {
130
130
  * @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
131
131
  * @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
132
132
  */
133
- getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<import("../acvm/index.js").MessageLoadOracleInputs<39>>;
133
+ getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<import("./index.js").MessageLoadOracleInputs<39>>;
134
134
  /**
135
135
  * Read the public storage data.
136
136
  * @param contractAddress - The address to read storage from.
@@ -0,0 +1,28 @@
1
+ import { HashedValues } from '@aztec/circuit-types';
2
+ import { Fr } from '@aztec/circuits.js';
3
+ /**
4
+ * A cache for hashed values (arguments, returns) during transaction execution.
5
+ */
6
+ export declare class HashedValuesCache {
7
+ private cache;
8
+ constructor(initialArguments?: HashedValues[]);
9
+ /**
10
+ * Creates a new hashed values cache.
11
+ * @param initialArguments - The initial arguments to add to the cache.
12
+ * @returns The new hashed values cache.
13
+ */
14
+ static create(initialArguments?: HashedValues[]): HashedValuesCache;
15
+ /**
16
+ * Gets preimage of a hash.
17
+ * @param hash - The hash to get the preimage of.
18
+ * @returns The preimage.
19
+ */
20
+ getPreimage(hash: Fr): Fr[];
21
+ /**
22
+ * Stores values in cache and returns its hash.
23
+ * @param values - The values to store.
24
+ * @returns The hash of the values.
25
+ */
26
+ store(values: Fr[]): Fr;
27
+ }
28
+ //# sourceMappingURL=hashed_values_cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashed_values_cache.d.ts","sourceRoot":"","sources":["../../src/common/hashed_values_cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAoB;gBAErB,gBAAgB,GAAE,YAAY,EAAO;IAOjD;;;;OAIG;WACW,MAAM,CAAC,gBAAgB,GAAE,YAAY,EAAO;IAI1D;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IAWlC;;;;OAIG;IACI,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE;CAQ1B"}
@@ -1,9 +1,9 @@
1
- import { PackedValues } from '@aztec/circuit-types';
1
+ import { HashedValues } from '@aztec/circuit-types';
2
2
  import { Fr } from '@aztec/circuits.js';
3
3
  /**
4
- * A cache for packed values (arguments, returns) during transaction execution.
4
+ * A cache for hashed values (arguments, returns) during transaction execution.
5
5
  */
6
- export class PackedValuesCache {
6
+ export class HashedValuesCache {
7
7
  constructor(initialArguments = []) {
8
8
  this.cache = new Map();
9
9
  for (const initialArg of initialArguments) {
@@ -11,40 +11,40 @@ export class PackedValuesCache {
11
11
  }
12
12
  }
13
13
  /**
14
- * Creates a new packed values cache.
14
+ * Creates a new hashed values cache.
15
15
  * @param initialArguments - The initial arguments to add to the cache.
16
- * @returns The new packed values cache.
16
+ * @returns The new hashed values cache.
17
17
  */
18
18
  static create(initialArguments = []) {
19
- return new PackedValuesCache(initialArguments);
19
+ return new HashedValuesCache(initialArguments);
20
20
  }
21
21
  /**
22
- * Unpacks packed values.
23
- * @param hash - The hash of the packed values.
24
- * @returns The unpacked values.
22
+ * Gets preimage of a hash.
23
+ * @param hash - The hash to get the preimage of.
24
+ * @returns The preimage.
25
25
  */
26
- unpack(hash) {
26
+ getPreimage(hash) {
27
27
  if (hash.equals(Fr.ZERO)) {
28
28
  return [];
29
29
  }
30
- const packedValues = this.cache.get(hash.value);
31
- if (!packedValues) {
32
- throw new Error(`Packed values for hash ${hash.toString()} not found in cache`);
30
+ const hashedValues = this.cache.get(hash.value);
31
+ if (!hashedValues) {
32
+ throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
33
33
  }
34
- return packedValues;
34
+ return hashedValues;
35
35
  }
36
36
  /**
37
- * Packs values.
38
- * @param values - The values to pack.
39
- * @returns The hash of the packed values.
37
+ * Stores values in cache and returns its hash.
38
+ * @param values - The values to store.
39
+ * @returns The hash of the values.
40
40
  */
41
- pack(values) {
41
+ store(values) {
42
42
  if (values.length === 0) {
43
43
  return Fr.ZERO;
44
44
  }
45
- const packedValues = PackedValues.fromValues(values);
46
- this.cache.set(packedValues.hash.value, packedValues.values);
47
- return packedValues.hash;
45
+ const hashedValues = HashedValues.fromValues(values);
46
+ this.cache.set(hashedValues.hash.value, hashedValues.values);
47
+ return hashedValues.hash;
48
48
  }
49
49
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2VkX3ZhbHVlc19jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcGFja2VkX3ZhbHVlc19jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFZLG1CQUFtQyxFQUFFO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sVUFBVSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUMsRUFBRTtRQUN4RCxPQUFPLElBQUksaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxJQUFRO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLElBQUksQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUMsTUFBWTtRQUN0QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztDQUNGIn0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGVkX3ZhbHVlc19jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vaGFzaGVkX3ZhbHVlc19jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFZLG1CQUFtQyxFQUFFO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sVUFBVSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUMsRUFBRTtRQUN4RCxPQUFPLElBQUksaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxJQUFRO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLElBQUksQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsTUFBWTtRQUN2QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztDQUNGIn0=
@@ -1,3 +1,3 @@
1
- export * from './packed_values_cache.js';
1
+ export * from './hashed_values_cache.js';
2
2
  export * from './errors.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
- export * from './packed_values_cache.js';
1
+ export * from './hashed_values_cache.js';
2
2
  export * from './errors.js';
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxhQUFhLENBQUMifQ==
@@ -0,0 +1,15 @@
1
+ import { type SiblingPath } from '@aztec/circuit-types';
2
+ import { Fr } from '@aztec/circuits.js';
3
+ export declare class MessageLoadOracleInputs<N extends number> {
4
+ /** The index of the message commitment in the merkle tree. */
5
+ index: bigint;
6
+ /** The path in the merkle tree to the message. */
7
+ siblingPath: SiblingPath<N>;
8
+ constructor(
9
+ /** The index of the message commitment in the merkle tree. */
10
+ index: bigint,
11
+ /** The path in the merkle tree to the message. */
12
+ siblingPath: SiblingPath<N>);
13
+ toFields(): Fr[];
14
+ }
15
+ //# sourceMappingURL=message_load_oracle_inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_load_oracle_inputs.d.ts","sourceRoot":"","sources":["../../src/common/message_load_oracle_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,qBAAa,uBAAuB,CAAC,CAAC,SAAS,MAAM;IAEjD,8DAA8D;IACvD,KAAK,EAAE,MAAM;IACpB,kDAAkD;IAC3C,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;;IAHlC,8DAA8D;IACvD,KAAK,EAAE,MAAM;IACpB,kDAAkD;IAC3C,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAGpC,QAAQ,IAAI,EAAE,EAAE;CAGjB"}
@@ -0,0 +1,15 @@
1
+ import { Fr } from '@aztec/circuits.js';
2
+ export class MessageLoadOracleInputs {
3
+ constructor(
4
+ /** The index of the message commitment in the merkle tree. */
5
+ index,
6
+ /** The path in the merkle tree to the message. */
7
+ siblingPath) {
8
+ this.index = index;
9
+ this.siblingPath = siblingPath;
10
+ }
11
+ toFields() {
12
+ return [new Fr(this.index), ...this.siblingPath.toFields()];
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9sb2FkX29yYWNsZV9pbnB1dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL21lc3NhZ2VfbG9hZF9vcmFjbGVfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDO0lBQ0UsOERBQThEO0lBQ3ZELEtBQWE7SUFDcEIsa0RBQWtEO0lBQzNDLFdBQTJCO1FBRjNCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFFYixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFDakMsQ0FBQztJQUVKLFFBQVE7UUFDTixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRiJ9
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { type NoirCompiledCircuit } from '@aztec/types/noir';
4
+ import { type ExecutionError } from '@noir-lang/acvm_js';
5
+ import { type Abi, type WitnessMap } from '@noir-lang/types';
6
+ import { type ACIRCallback, type ACIRExecutionResult } from '../acvm/acvm.js';
7
+ import { type ACVMWitness } from '../acvm/acvm_types.js';
8
+ /**
9
+ * Low level simulation interface
10
+ */
11
+ export interface SimulationProvider {
12
+ executeProtocolCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap>;
13
+ executeUserCircuit(acir: Buffer, initialWitness: ACVMWitness, callback: ACIRCallback): Promise<ACIRExecutionResult>;
14
+ }
15
+ export type ErrorWithPayload = ExecutionError & {
16
+ decodedAssertionPayload?: any;
17
+ };
18
+ export declare function parseErrorPayload(abi: Abi, originalError: ExecutionError): Error;
19
+ //# sourceMappingURL=simulation_provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulation_provider.d.ts","sourceRoot":"","sources":["../../src/common/simulation_provider.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrG,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrH;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAAE,uBAAuB,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC;AAIlF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,cAAc,GAAG,KAAK,CAuBhF"}
@@ -0,0 +1,27 @@
1
+ import { abiDecodeError } from '@noir-lang/noirc_abi';
2
+ // Error handling taken from noir/noir-repo/tooling/noir_js/src/witness_generation.ts.
3
+ // TODO: import this in isolation without having to import noir_js in its entirety.
4
+ export function parseErrorPayload(abi, originalError) {
5
+ const payload = originalError.rawAssertionPayload;
6
+ if (!payload) {
7
+ return originalError;
8
+ }
9
+ const enrichedError = originalError;
10
+ try {
11
+ // Decode the payload
12
+ const decodedPayload = abiDecodeError(abi, payload);
13
+ if (typeof decodedPayload === 'string') {
14
+ // If it's a string, just add it to the error message
15
+ enrichedError.message = `Circuit execution failed: ${decodedPayload}`;
16
+ }
17
+ else {
18
+ // If not, attach the payload to the original error
19
+ enrichedError.decodedAssertionPayload = decodedPayload;
20
+ }
21
+ }
22
+ catch (_errorDecoding) {
23
+ // Ignore errors decoding the payload
24
+ }
25
+ return enrichedError;
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGlvbl9wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vc2ltdWxhdGlvbl9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFnQnRELHNGQUFzRjtBQUN0RixtRkFBbUY7QUFDbkYsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVEsRUFBRSxhQUE2QjtJQUN2RSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsbUJBQW1CLENBQUM7SUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUNELE1BQU0sYUFBYSxHQUFHLGFBQWlDLENBQUM7SUFFeEQsSUFBSSxDQUFDO1FBQ0gscUJBQXFCO1FBQ3JCLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEQsSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxxREFBcUQ7WUFDckQsYUFBYSxDQUFDLE9BQU8sR0FBRyw2QkFBNkIsY0FBYyxFQUFFLENBQUM7UUFDeEUsQ0FBQzthQUFNLENBQUM7WUFDTixtREFBbUQ7WUFDbkQsYUFBYSxDQUFDLHVCQUF1QixHQUFHLGNBQWMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sY0FBYyxFQUFFLENBQUM7UUFDeEIscUNBQXFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ export * from './common/index.js';
2
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
package/dest/common.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './common/index.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIn0=
@@ -2,7 +2,9 @@
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { type NoirCompiledCircuit } from '@aztec/types/noir';
4
4
  import { type WitnessMap } from '@noir-lang/types';
5
- import { type SimulationProvider } from './simulation_provider.js';
5
+ import { type ACIRCallback, type ACIRExecutionResult } from '../acvm/acvm.js';
6
+ import { type ACVMWitness } from '../acvm/acvm_types.js';
7
+ import { type SimulationProvider } from '../common/simulation_provider.js';
6
8
  export declare enum ACVM_RESULT {
7
9
  SUCCESS = 0,
8
10
  FAILURE = 1
@@ -32,6 +34,7 @@ export declare class NativeACVMSimulator implements SimulationProvider {
32
34
  private pathToAcvm;
33
35
  private witnessFilename?;
34
36
  constructor(workingDirectory: string, pathToAcvm: string, witnessFilename?: string | undefined);
35
- simulateCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap>;
37
+ executeProtocolCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap>;
38
+ executeUserCircuit(_acir: Buffer, _initialWitness: ACVMWitness, _callback: ACIRCallback): Promise<ACIRExecutionResult>;
36
39
  }
37
40
  //# sourceMappingURL=acvm_native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"acvm_native.d.ts","sourceRoot":"","sources":["../../src/providers/acvm_native.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAInE,oBAAY,WAAW;IACrB,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAmBnD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,UAAU,CAAC,CAqErB;AAED,qBAAa,mBAAoB,YAAW,kBAAkB;IAChD,OAAO,CAAC,gBAAgB;IAAU,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,eAAe,CAAC;gBAA9E,gBAAgB,EAAE,MAAM,EAAU,UAAU,EAAE,MAAM,EAAU,eAAe,CAAC,oBAAQ;IACpG,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAwBpG"}
1
+ {"version":3,"file":"acvm_native.d.ts","sourceRoot":"","sources":["../../src/providers/acvm_native.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAI3E,oBAAY,WAAW;IACrB,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAmBnD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,UAAU,CAAC,CAqErB;AAED,qBAAa,mBAAoB,YAAW,kBAAkB;IAChD,OAAO,CAAC,gBAAgB;IAAU,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,eAAe,CAAC;gBAA9E,gBAAgB,EAAE,MAAM,EAAU,UAAU,EAAE,MAAM,EAAU,eAAe,CAAC,oBAAQ;IACpG,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB1G,kBAAkB,CAChB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,WAAW,EAC5B,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC;CAGhC"}