@aztec/pxe 1.2.1 → 2.0.0-nightly.20250813

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 (88) hide show
  1. package/dest/config/package_info.js +1 -1
  2. package/dest/contract_function_simulator/contract_function_simulator.d.ts +5 -2
  3. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  4. package/dest/contract_function_simulator/contract_function_simulator.js +48 -29
  5. package/dest/contract_function_simulator/index.d.ts +1 -0
  6. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  7. package/dest/contract_function_simulator/index.js +1 -0
  8. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +1 -1
  9. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +1 -1
  10. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +1 -1
  11. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +1 -1
  12. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +1 -1
  13. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  14. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +1 -1
  15. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +1 -1
  16. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +22 -0
  17. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -0
  18. package/dest/contract_function_simulator/oracle/note_packing_utils.js +49 -0
  19. package/dest/contract_function_simulator/oracle/oracle.d.ts +44 -43
  20. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  21. package/dest/contract_function_simulator/oracle/oracle.js +127 -106
  22. package/dest/contract_function_simulator/oracle/private_execution.d.ts +7 -2
  23. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  24. package/dest/contract_function_simulator/oracle/private_execution.js +16 -11
  25. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +41 -17
  26. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +51 -23
  28. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts +48 -47
  29. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts.map +1 -1
  30. package/dest/contract_function_simulator/oracle/typed_oracle.js +89 -87
  31. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +31 -30
  32. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +33 -30
  34. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/pxe_oracle_interface.js +6 -7
  36. package/dest/entrypoints/server/utils.d.ts +4 -2
  37. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  38. package/dest/entrypoints/server/utils.js +4 -2
  39. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +4 -4
  40. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
  41. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +58 -59
  42. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +4 -0
  43. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +1 -0
  44. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +41 -0
  45. package/dest/private_kernel/hints/index.d.ts +1 -0
  46. package/dest/private_kernel/hints/index.d.ts.map +1 -1
  47. package/dest/private_kernel/hints/index.js +1 -0
  48. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  49. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  50. package/dest/private_kernel/private_kernel_execution_prover.js +13 -4
  51. package/dest/private_kernel/private_kernel_oracle.d.ts +1 -1
  52. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  53. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  54. package/dest/private_kernel/private_kernel_oracle_impl.js +6 -6
  55. package/dest/pxe_service/error_enriching.d.ts.map +1 -1
  56. package/dest/pxe_service/error_enriching.js +1 -0
  57. package/dest/pxe_service/pxe_service.d.ts +3 -2
  58. package/dest/pxe_service/pxe_service.d.ts.map +1 -1
  59. package/dest/pxe_service/pxe_service.js +28 -19
  60. package/dest/storage/capsule_data_provider/capsule_data_provider.js +1 -1
  61. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -1
  62. package/dest/storage/note_data_provider/note_data_provider.js +16 -4
  63. package/package.json +16 -16
  64. package/src/config/package_info.ts +1 -1
  65. package/src/contract_function_simulator/contract_function_simulator.ts +67 -37
  66. package/src/contract_function_simulator/index.ts +1 -0
  67. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  68. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  69. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
  70. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
  71. package/src/contract_function_simulator/oracle/note_packing_utils.ts +52 -0
  72. package/src/contract_function_simulator/oracle/oracle.ts +149 -111
  73. package/src/contract_function_simulator/oracle/private_execution.ts +17 -12
  74. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +60 -24
  75. package/src/contract_function_simulator/oracle/typed_oracle.ts +108 -92
  76. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +34 -30
  77. package/src/contract_function_simulator/pxe_oracle_interface.ts +6 -8
  78. package/src/entrypoints/server/utils.ts +17 -6
  79. package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +106 -104
  80. package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +58 -0
  81. package/src/private_kernel/hints/index.ts +1 -0
  82. package/src/private_kernel/private_kernel_execution_prover.ts +21 -4
  83. package/src/private_kernel/private_kernel_oracle.ts +1 -1
  84. package/src/private_kernel/private_kernel_oracle_impl.ts +12 -9
  85. package/src/pxe_service/error_enriching.ts +1 -0
  86. package/src/pxe_service/pxe_service.ts +30 -32
  87. package/src/storage/capsule_data_provider/capsule_data_provider.ts +1 -1
  88. package/src/storage/note_data_provider/note_data_provider.ts +27 -16
@@ -1,6 +1,6 @@
1
1
  export function getPackageInfo() {
2
2
  return {
3
- version: '1.2.0',
3
+ version: '1.2.1',
4
4
  name: '@aztec/pxe'
5
5
  };
6
6
  }
@@ -21,11 +21,14 @@ export declare class ContractFunctionSimulator {
21
21
  * @param request - The transaction request.
22
22
  * @param entryPointArtifact - The artifact of the entry point function.
23
23
  * @param contractAddress - The address of the contract (should match request.origin)
24
- * @param msgSender - The address calling the function. This can be replaced to simulate a call from another contract or a specific account.
24
+ * @param msgSender - The address calling the function. This can be replaced to simulate a call from another contract
25
+ * or a specific account.
26
+ * @param senderForTags - The address that is used as a tagging sender when emitting private logs. Returned from
27
+ * the `privateGetSenderForTags` oracle.
25
28
  * @param scopes - The accounts whose notes we can access in this call. Currently optional and will default to all.
26
29
  * @returns The result of the execution.
27
30
  */
28
- run(request: TxExecutionRequest, contractAddress: AztecAddress, selector: FunctionSelector, msgSender?: AztecAddress, scopes?: AztecAddress[]): Promise<PrivateExecutionResult>;
31
+ run(request: TxExecutionRequest, contractAddress: AztecAddress, selector: FunctionSelector, msgSender?: AztecAddress, senderForTags?: AztecAddress, scopes?: AztecAddress[]): Promise<PrivateExecutionResult>;
29
32
  /**
30
33
  * Runs a utility function.
31
34
  * @param call - The function call to execute.
@@ -1 +1 @@
1
- {"version":3,"file":"contract_function_simulator.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/contract_function_simulator.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAA+B,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,EAIL,KAAK,iCAAiC,EACtC,oCAAoC,EAMrC,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAGL,sBAAsB,EAEtB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQ1E;;GAEG;AACH,qBAAa,yBAAyB;IAIlC,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,SAAS;IAJnB,OAAO,CAAC,GAAG,CAAS;gBAGV,qBAAqB,EAAE,qBAAqB,EAC5C,SAAS,EAAE,gBAAgB;IAKrC;;;;;;;;OAQG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,eAA6C,EACtD,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,sBAAsB,CAAC;IAuFlC;;;;;;;OAOG;IACU,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IA0ClH,QAAQ;CAGT;AAYD;;;;;;;;;;;GAWG;AACH,wBAAsB,8BAA8B,CAClD,sBAAsB,EAAE,sBAAsB,EAC9C,cAAc,EAAE,EAAE,EAClB,oBAAoB,EAAE,oBAAoB,GACzC,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CA8KlF"}
1
+ {"version":3,"file":"contract_function_simulator.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/contract_function_simulator.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAA+B,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,EAIL,KAAK,iCAAiC,EACtC,oCAAoC,EAKrC,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAGL,sBAAsB,EAEtB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQ1E;;GAEG;AACH,qBAAa,yBAAyB;IAIlC,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,SAAS;IAJnB,OAAO,CAAC,GAAG,CAAS;gBAGV,qBAAqB,EAAE,qBAAqB,EAC5C,SAAS,EAAE,gBAAgB;IAKrC;;;;;;;;;;;OAWG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,eAA6C,EACtD,aAAa,CAAC,EAAE,YAAY,EAC5B,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,sBAAsB,CAAC;IAiGlC;;;;;;;OAOG;IACU,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IA0ClH,QAAQ;CAGT;AAYD;;;;;;;;;;;GAWG;AACH,wBAAsB,8BAA8B,CAClD,sBAAsB,EAAE,sBAAsB,EAC9C,cAAc,EAAE,EAAE,EAClB,oBAAoB,EAAE,oBAAoB,GACzC,OAAO,CAAC,iCAAiC,CAAC,oCAAoC,CAAC,CAAC,CA+LlF"}
@@ -11,7 +11,7 @@ import { FunctionSelector, FunctionType, decodeFromAbi } from '@aztec/stdlib/abi
11
11
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
12
12
  import { Gas } from '@aztec/stdlib/gas';
13
13
  import { computeNoteHashNonce, computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
14
- import { PartialPrivateTailPublicInputsForPublic, PartialPrivateTailPublicInputsForRollup, PrivateKernelTailCircuitPublicInputs, PrivateToPublicAccumulatedData, PrivateToRollupAccumulatedData, PublicCallRequest, RollupValidationRequests, ScopedLogHash } from '@aztec/stdlib/kernel';
14
+ import { PartialPrivateTailPublicInputsForPublic, PartialPrivateTailPublicInputsForRollup, PrivateKernelTailCircuitPublicInputs, PrivateToPublicAccumulatedData, PrivateToRollupAccumulatedData, PublicCallRequest, ScopedLogHash } from '@aztec/stdlib/kernel';
15
15
  import { PrivateLog } from '@aztec/stdlib/logs';
16
16
  import { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
17
17
  import { ClientIvcProof } from '@aztec/stdlib/proofs';
@@ -38,10 +38,13 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
38
38
  * @param request - The transaction request.
39
39
  * @param entryPointArtifact - The artifact of the entry point function.
40
40
  * @param contractAddress - The address of the contract (should match request.origin)
41
- * @param msgSender - The address calling the function. This can be replaced to simulate a call from another contract or a specific account.
41
+ * @param msgSender - The address calling the function. This can be replaced to simulate a call from another contract
42
+ * or a specific account.
43
+ * @param senderForTags - The address that is used as a tagging sender when emitting private logs. Returned from
44
+ * the `privateGetSenderForTags` oracle.
42
45
  * @param scopes - The accounts whose notes we can access in this call. Currently optional and will default to all.
43
46
  * @returns The result of the execution.
44
- */ async run(request, contractAddress, selector, msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE), scopes) {
47
+ */ async run(request, contractAddress, selector, msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE), senderForTags, scopes) {
45
48
  const simulatorSetupTimer = new Timer();
46
49
  const header = await this.executionDataProvider.getBlockHeader();
47
50
  await verifyCurrentClassId(contractAddress, this.executionDataProvider);
@@ -57,21 +60,24 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
57
60
  const callContext = new CallContext(msgSender, contractAddress, await FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), entryPointArtifact.isStatic);
58
61
  const txRequestHash = await request.toTxRequest().hash();
59
62
  const noteCache = new ExecutionNoteCache(txRequestHash);
60
- const privateExecutionOracle = new PrivateExecutionOracle(request.firstCallArgsHash, request.txContext, callContext, header, request.authWitnesses, request.capsules, HashedValuesCache.create(request.argsOfCalls), noteCache, this.executionDataProvider, this.simulator, /*totalPublicArgsCount=*/ 0, startSideEffectCounter, undefined, scopes);
63
+ const privateExecutionOracle = new PrivateExecutionOracle(request.firstCallArgsHash, request.txContext, callContext, header, request.authWitnesses, request.capsules, HashedValuesCache.create(request.argsOfCalls), noteCache, this.executionDataProvider, this.simulator, 0, startSideEffectCounter, undefined, scopes, senderForTags);
61
64
  const setupTime = simulatorSetupTimer.ms();
62
65
  try {
66
+ // Note: any nested private function calls are made recursively within this
67
+ // function call. So this execution result is the result of executing _all_
68
+ // private functions of this tx (the results of those executions are contained
69
+ // within executionResult.nestedExecutionResults).
63
70
  const executionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, entryPointArtifact, contractAddress, request.functionSelector);
64
71
  const simulatorTeardownTimer = new Timer();
65
72
  const { usedTxRequestHashForNonces } = noteCache.finish();
66
73
  const firstNullifierHint = usedTxRequestHashForNonces ? Fr.ZERO : noteCache.getAllNullifiers()[0];
67
74
  const publicCallRequests = collectNested([
68
75
  executionResult
69
- ], (r)=>[
70
- ...r.publicInputs.publicCallRequests.map((r)=>r.inner),
76
+ ], (r)=>r.publicInputs.publicCallRequests.getActiveItems().map((r)=>r.inner).concat(r.publicInputs.publicTeardownCallRequest.isEmpty() ? [] : [
71
77
  r.publicInputs.publicTeardownCallRequest
72
- ]).filter((r)=>!r.isEmpty());
78
+ ]));
73
79
  const publicFunctionsCalldata = await Promise.all(publicCallRequests.map(async (r)=>{
74
- const calldata = await privateExecutionOracle.loadFromExecutionCache(r.calldataHash);
80
+ const calldata = await privateExecutionOracle.privateLoadFromExecutionCache(r.calldataHash);
75
81
  return new HashedValues(calldata, r.calldataHash);
76
82
  }));
77
83
  const teardownTime = simulatorTeardownTimer.ms();
@@ -79,6 +85,9 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
79
85
  if (executionResult.profileResult) {
80
86
  executionResult.profileResult.timings.witgen += setupTime + teardownTime;
81
87
  }
88
+ // Not to be confused with a PrivateCallExecutionResult. This is a superset
89
+ // of the PrivateCallExecutionResult, containing also firstNullifierHint
90
+ // and publicFunctionsCalldata.
82
91
  return new PrivateExecutionResult(executionResult, firstNullifierHint, publicFunctionsCalldata);
83
92
  } catch (err) {
84
93
  throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
@@ -146,7 +155,7 @@ class OrderedSideEffect {
146
155
  * @param contractDataProvider - A provider for contract data in order to get function names and debug info.
147
156
  * @returns The simulated proving result.
148
157
  */ export async function generateSimulatedProvingResult(privateExecutionResult, nonceGenerator, contractDataProvider) {
149
- const uniqueNoteHashes = [];
158
+ const siloedNoteHashes = [];
150
159
  const nullifiers = [];
151
160
  const taggedPrivateLogs = [];
152
161
  const l2ToL1Messages = [];
@@ -154,34 +163,28 @@ class OrderedSideEffect {
154
163
  const publicCallRequests = [];
155
164
  const executionSteps = [];
156
165
  let publicTeardownCallRequest;
157
- let noteHashIndexInTx = 0;
158
166
  const executions = [
159
167
  privateExecutionResult.entrypoint
160
168
  ];
161
169
  while(executions.length !== 0){
162
170
  const execution = executions.shift();
163
- executions.unshift(...execution.nestedExecutions);
171
+ executions.unshift(...execution.nestedExecutionResults);
164
172
  const { contractAddress } = execution.publicInputs.callContext;
165
- const noteHashesFromExecution = await Promise.all(execution.publicInputs.noteHashes.filter((noteHash)=>!noteHash.isEmpty()).map(async (noteHash)=>{
166
- const nonce = await computeNoteHashNonce(nonceGenerator, noteHashIndexInTx++);
167
- const siloedNoteHash = await siloNoteHash(contractAddress, noteHash.value);
168
- // We could defer this to the public processor, and pass this in as non-revertible.
169
- return new OrderedSideEffect(await computeUniqueNoteHash(nonce, siloedNoteHash), noteHash.counter);
170
- }));
171
- const nullifiersFromExecution = await Promise.all(execution.publicInputs.nullifiers.filter((nullifier)=>!nullifier.isEmpty()).map(async (nullifier)=>new OrderedSideEffect(await siloNullifier(contractAddress, nullifier.value), nullifier.counter)));
172
- const privateLogsFromExecution = await Promise.all(execution.publicInputs.privateLogs.filter((privateLog)=>!privateLog.isEmpty()).map(async (metadata)=>{
173
+ const noteHashesFromExecution = await Promise.all(execution.publicInputs.noteHashes.getActiveItems().filter((noteHash)=>!noteHash.isEmpty()).map(async (noteHash)=>new OrderedSideEffect(await siloNoteHash(contractAddress, noteHash.value), noteHash.counter)));
174
+ const nullifiersFromExecution = await Promise.all(execution.publicInputs.nullifiers.getActiveItems().map(async (nullifier)=>new OrderedSideEffect(await siloNullifier(contractAddress, nullifier.value), nullifier.counter)));
175
+ const privateLogsFromExecution = await Promise.all(execution.publicInputs.privateLogs.getActiveItems().map(async (metadata)=>{
173
176
  metadata.log.fields[0] = await poseidon2Hash([
174
177
  contractAddress,
175
178
  metadata.log.fields[0]
176
179
  ]);
177
180
  return new OrderedSideEffect(metadata.log, metadata.counter);
178
181
  }));
179
- uniqueNoteHashes.push(...noteHashesFromExecution);
182
+ siloedNoteHashes.push(...noteHashesFromExecution);
180
183
  taggedPrivateLogs.push(...privateLogsFromExecution);
181
184
  nullifiers.push(...nullifiersFromExecution);
182
- l2ToL1Messages.push(...execution.publicInputs.l2ToL1Msgs.filter((l2ToL1Message)=>!l2ToL1Message.isEmpty()).map((message)=>new OrderedSideEffect(message.message.scope(contractAddress), message.counter)));
183
- contractClassLogsHashes.push(...execution.publicInputs.contractClassLogsHashes.filter((contractClassLogsHash)=>!contractClassLogsHash.isEmpty()).map((contractClassLogHash)=>new OrderedSideEffect(contractClassLogHash.logHash.scope(contractAddress), contractClassLogHash.counter)));
184
- publicCallRequests.push(...execution.publicInputs.publicCallRequests.filter((publicCallRequest)=>!publicCallRequest.isEmpty()).map((callRequest)=>new OrderedSideEffect(callRequest.inner, callRequest.counter)));
185
+ l2ToL1Messages.push(...execution.publicInputs.l2ToL1Msgs.getActiveItems().map((message)=>new OrderedSideEffect(message.message.scope(contractAddress), message.counter)));
186
+ contractClassLogsHashes.push(...execution.publicInputs.contractClassLogsHashes.getActiveItems().map((contractClassLogHash)=>new OrderedSideEffect(contractClassLogHash.logHash.scope(contractAddress), contractClassLogHash.counter)));
187
+ publicCallRequests.push(...execution.publicInputs.publicCallRequests.getActiveItems().map((callRequest)=>new OrderedSideEffect(callRequest.inner, callRequest.counter)));
185
188
  if (publicTeardownCallRequest !== undefined && !execution.publicInputs.publicTeardownCallRequest.isEmpty()) {
186
189
  throw new Error('Trying to set multiple teardown requests');
187
190
  }
@@ -204,20 +207,36 @@ class OrderedSideEffect {
204
207
  const sortByCounter = (a, b)=>a.counter - b.counter;
205
208
  const getEffect = (orderedSideEffect)=>orderedSideEffect.sideEffect;
206
209
  const sortedNullifiers = nullifiers.sort(sortByCounter).map(getEffect);
210
+ // If the tx generated no nullifiers, the nonce generator (txRequest hash)
211
+ // is injected as the first nullifier as per protocol rules.
207
212
  if (sortedNullifiers.length === 0) {
208
213
  sortedNullifiers.push(nonceGenerator);
209
214
  }
210
215
  // Private only
211
216
  if (privateExecutionResult.publicFunctionCalldata.length === 0) {
212
- const accumulatedDataForRollup = new PrivateToRollupAccumulatedData(padArrayEnd(uniqueNoteHashes.sort(sortByCounter).map(getEffect), Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(sortedNullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(l2ToL1Messages.sort(sortByCounter).map(getEffect), ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(taggedPrivateLogs.sort(sortByCounter).map(getEffect), PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), padArrayEnd(contractClassLogsHashes.sort(sortByCounter).map(getEffect), ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX));
217
+ // In case the tx only contains private functions, we must make the note hashes unique by using the
218
+ // nonce generator and their index in the tx.
219
+ const uniqueNoteHashes = await Promise.all(siloedNoteHashes.sort(sortByCounter).map(async (orderedSideEffect, i)=>{
220
+ const siloedNoteHash = orderedSideEffect.sideEffect;
221
+ const nonce = await computeNoteHashNonce(nonceGenerator, i);
222
+ const uniqueNoteHash = await computeUniqueNoteHash(nonce, siloedNoteHash);
223
+ return uniqueNoteHash;
224
+ }));
225
+ const accumulatedDataForRollup = new PrivateToRollupAccumulatedData(padArrayEnd(uniqueNoteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(sortedNullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(l2ToL1Messages.sort(sortByCounter).map(getEffect), ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(taggedPrivateLogs.sort(sortByCounter).map(getEffect), PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), padArrayEnd(contractClassLogsHashes.sort(sortByCounter).map(getEffect), ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX));
213
226
  inputsForRollup = new PartialPrivateTailPublicInputsForRollup(accumulatedDataForRollup);
214
227
  } else {
215
- const accumulatedDataForPublic = new PrivateToPublicAccumulatedData(padArrayEnd(uniqueNoteHashes.sort(sortByCounter).map(getEffect), Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(sortedNullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(l2ToL1Messages.sort(sortByCounter).map(getEffect), ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(taggedPrivateLogs.sort(sortByCounter).map(getEffect), PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), padArrayEnd(contractClassLogsHashes.sort(sortByCounter).map(getEffect), ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX), padArrayEnd(publicCallRequests.sort(sortByCounter).map(getEffect), PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX));
216
- inputsForPublic = new PartialPrivateTailPublicInputsForPublic(// nonrevertible
217
- accumulatedDataForPublic, // revertible
218
- PrivateToPublicAccumulatedData.empty(), publicTeardownCallRequest ?? PublicCallRequest.empty());
228
+ const nonRevertibleData = PrivateToPublicAccumulatedData.empty();
229
+ // The nullifier array contains the nonce generator in position 0
230
+ // Here we remove it from the revertible data and
231
+ // add it as the first non-revertible nullifier (we can't have dupes!)
232
+ // This is because public processor will use that first non-revertible nullifier
233
+ // as the nonce generator for the note hashes in the revertible part of the tx.
234
+ const [firstNullifier] = sortedNullifiers.splice(0, 1);
235
+ nonRevertibleData.nullifiers[0] = firstNullifier;
236
+ const revertibleData = new PrivateToPublicAccumulatedData(padArrayEnd(siloedNoteHashes.sort(sortByCounter).map(getEffect), Fr.ZERO, MAX_NOTE_HASHES_PER_TX), padArrayEnd(sortedNullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX), padArrayEnd(l2ToL1Messages.sort(sortByCounter).map(getEffect), ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(taggedPrivateLogs.sort(sortByCounter).map(getEffect), PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX), padArrayEnd(contractClassLogsHashes.sort(sortByCounter).map(getEffect), ScopedLogHash.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX), padArrayEnd(publicCallRequests.sort(sortByCounter).map(getEffect), PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX));
237
+ inputsForPublic = new PartialPrivateTailPublicInputsForPublic(nonRevertibleData, revertibleData, publicTeardownCallRequest ?? PublicCallRequest.empty());
219
238
  }
220
- const publicInputs = new PrivateKernelTailCircuitPublicInputs(constantData, RollupValidationRequests.empty(), /*gasUsed=*/ new Gas(0, 0), /*feePayer=*/ AztecAddress.zero(), hasPublicCalls ? inputsForPublic : undefined, !hasPublicCalls ? inputsForRollup : undefined);
239
+ const publicInputs = new PrivateKernelTailCircuitPublicInputs(constantData, /*gasUsed=*/ new Gas(0, 0), /*feePayer=*/ AztecAddress.zero(), /*includeByTimestamp=*/ 0n, hasPublicCalls ? inputsForPublic : undefined, !hasPublicCalls ? inputsForRollup : undefined);
221
240
  return {
222
241
  publicInputs,
223
242
  clientIvcProof: ClientIvcProof.empty(),
@@ -8,4 +8,5 @@ export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
8
8
  export { Oracle } from './oracle/oracle.js';
9
9
  export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
10
10
  export { generateSimulatedProvingResult } from './contract_function_simulator.js';
11
+ export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAC1G,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAC1G,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -7,3 +7,4 @@ export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
7
7
  export { Oracle } from './oracle/oracle.js';
8
8
  export { executePrivateFunction, extractPrivateCircuitPublicInputs } from './oracle/private_execution.js';
9
9
  export { generateSimulatedProvingResult } from './contract_function_simulator.js';
10
+ export { packAsRetrievedNote } from './oracle/note_packing_utils.js';
@@ -4,7 +4,7 @@ import { EventSelector } from '@aztec/stdlib/abi';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
  import { TxHash } from '@aztec/stdlib/tx';
6
6
  /**
7
- * Intermediate struct used to perform batch event validation by PXE. The `validateEnqueuedNotesAndEvents` oracle
7
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
8
8
  * expects for values of this type to be stored in a `CapsuleArray`.
9
9
  */
10
10
  export declare class EventValidationRequest {
@@ -5,7 +5,7 @@ import { TxHash } from '@aztec/stdlib/tx';
5
5
  // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
6
6
  const MAX_EVENT_SERIALIZED_LEN = 12;
7
7
  /**
8
- * Intermediate struct used to perform batch event validation by PXE. The `validateEnqueuedNotesAndEvents` oracle
8
+ * Intermediate struct used to perform batch event validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
9
9
  * expects for values of this type to be stored in a `CapsuleArray`.
10
10
  */ export class EventValidationRequest {
11
11
  contractAddress;
@@ -2,7 +2,7 @@ import { Fr } from '@aztec/foundation/fields';
2
2
  import { FieldReader } from '@aztec/foundation/serialize';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  /**
5
- * Intermediate struct used to perform batch log retrieval by PXE. The `bulkRetrieveLogs` oracle expects values of this
5
+ * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle expects values of this
6
6
  * type to be stored in a `CapsuleArray`.
7
7
  */
8
8
  export declare class LogRetrievalRequest {
@@ -1,7 +1,7 @@
1
1
  import { FieldReader } from '@aztec/foundation/serialize';
2
2
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
3
  /**
4
- * Intermediate struct used to perform batch log retrieval by PXE. The `bulkRetrieveLogs` oracle expects values of this
4
+ * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle expects values of this
5
5
  * type to be stored in a `CapsuleArray`.
6
6
  */ export class LogRetrievalRequest {
7
7
  contractAddress;
@@ -1,7 +1,7 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
  import type { TxHash } from '@aztec/stdlib/tx';
3
3
  /**
4
- * Intermediate struct used to perform batch log retrieval by PXE. The `bulkRetrieveLogs` oracle stores values of this
4
+ * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle stores values of this
5
5
  * type in a `CapsuleArray`.
6
6
  */
7
7
  export declare class LogRetrievalResponse {
@@ -3,7 +3,7 @@ import { range } from '@aztec/foundation/array';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  const MAX_LOG_CONTENT_LEN = Math.max(PUBLIC_LOG_PLAINTEXT_LEN, PRIVATE_LOG_CIPHERTEXT_LEN);
5
5
  /**
6
- * Intermediate struct used to perform batch log retrieval by PXE. The `bulkRetrieveLogs` oracle stores values of this
6
+ * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle stores values of this
7
7
  * type in a `CapsuleArray`.
8
8
  */ export class LogRetrievalResponse {
9
9
  logPayload;
@@ -3,7 +3,7 @@ import { FieldReader } from '@aztec/foundation/serialize';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { TxHash } from '@aztec/stdlib/tx';
5
5
  /**
6
- * Intermediate struct used to perform batch note validation by PXE. The `validateEnqueuedNotesAndEvents` oracle
6
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
7
7
  * expects for values of this type to be stored in a `CapsuleArray`.
8
8
  */
9
9
  export declare class NoteValidationRequest {
@@ -4,7 +4,7 @@ import { TxHash } from '@aztec/stdlib/tx';
4
4
  // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
5
5
  const MAX_NOTE_PACKED_LEN = 12;
6
6
  /**
7
- * Intermediate struct used to perform batch note validation by PXE. The `validateEnqueuedNotesAndEvents` oracle
7
+ * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
8
8
  * expects for values of this type to be stored in a `CapsuleArray`.
9
9
  */ export class NoteValidationRequest {
10
10
  contractAddress;
@@ -0,0 +1,22 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import type { Note } from '@aztec/stdlib/note';
4
+ /**
5
+ * Packs a note in a format that is compatible with the default Packable implementation of the retrieved note.
6
+ *
7
+ * @dev Unlike the default Packable implementation, this function first constructs the note metadata from the inputs
8
+ * and only after that it packs the retrieved note. Hence it doesn't map one to one with `RetrievedNote::pack()`.
9
+ *
10
+ * @param contractAddress - The address of the contract that owns the note
11
+ * @param noteNonce - The nonce injected into the note hash preimage by kernels.
12
+ * @param index - Optional index in the note hash tree. If undefined, indicates a transient note
13
+ * @param note - The note content containing the actual note data
14
+ * @returns The packed note as an array of field elements
15
+ */
16
+ export declare function packAsRetrievedNote({ contractAddress, noteNonce, index, note, }: {
17
+ contractAddress: AztecAddress;
18
+ noteNonce: Fr;
19
+ index?: bigint;
20
+ note: Note;
21
+ }): (AztecAddress | Fr)[];
22
+ //# sourceMappingURL=note_packing_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note_packing_utils.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/note_packing_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAiB/C;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,eAAe,EACf,SAAS,EACT,KAAK,EACL,IAAI,GACL,EAAE;IACD,eAAe,EAAE,YAAY,CAAC;IAC9B,SAAS,EAAE,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ,yBAUA"}
@@ -0,0 +1,49 @@
1
+ import { Fr } from '@aztec/foundation/fields';
2
+ // TS equivalent of the `NoteMetadata::from_raw_data` function in `aztec/src/note/note_metadata.nr`
3
+ function fromRawData(nonzeroNoteHashCounter, maybeNoteNonce) {
4
+ if (nonzeroNoteHashCounter) {
5
+ if (maybeNoteNonce.equals(Fr.ZERO)) {
6
+ return {
7
+ stage: 1,
8
+ maybeNoteNonce
9
+ }; // PENDING_SAME_PHASE
10
+ } else {
11
+ return {
12
+ stage: 2,
13
+ maybeNoteNonce
14
+ }; // PENDING_PREVIOUS_PHASE
15
+ }
16
+ } else if (!maybeNoteNonce.equals(Fr.ZERO)) {
17
+ return {
18
+ stage: 3,
19
+ maybeNoteNonce
20
+ }; // SETTLED
21
+ } else {
22
+ throw new Error('Note has a zero note hash counter and no nonce - existence cannot be proven');
23
+ }
24
+ }
25
+ /**
26
+ * Packs a note in a format that is compatible with the default Packable implementation of the retrieved note.
27
+ *
28
+ * @dev Unlike the default Packable implementation, this function first constructs the note metadata from the inputs
29
+ * and only after that it packs the retrieved note. Hence it doesn't map one to one with `RetrievedNote::pack()`.
30
+ *
31
+ * @param contractAddress - The address of the contract that owns the note
32
+ * @param noteNonce - The nonce injected into the note hash preimage by kernels.
33
+ * @param index - Optional index in the note hash tree. If undefined, indicates a transient note
34
+ * @param note - The note content containing the actual note data
35
+ * @returns The packed note as an array of field elements
36
+ */ export function packAsRetrievedNote({ contractAddress, noteNonce, index, note }) {
37
+ // If index is undefined, the note is transient which implies that the nonzero_note_hash_counter has to be true
38
+ const noteIsTransient = index === undefined;
39
+ const nonzeroNoteHashCounter = noteIsTransient ? true : false;
40
+ // To pack the note as retrieved note we first need to reconstruct the note metadata.
41
+ const noteMetadata = fromRawData(nonzeroNoteHashCounter, noteNonce);
42
+ // Pack metadata first (stage and maybe_note_nonce), followed by the rest
43
+ return [
44
+ ...note.items,
45
+ contractAddress,
46
+ new Fr(noteMetadata.stage),
47
+ noteMetadata.maybeNoteNonce
48
+ ];
49
+ }
@@ -7,48 +7,49 @@ export declare class Oracle {
7
7
  private typedOracle;
8
8
  constructor(typedOracle: TypedOracle);
9
9
  toACIRCallback(): ACIRCallback;
10
- getRandomField(): Promise<ACVMField[]>;
11
- storeInExecutionCache(_length: ACVMField[], values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]>;
12
- loadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]>;
13
- getBlockNumber(): Promise<ACVMField[]>;
14
- getTimestamp(): Promise<ACVMField[]>;
15
- getContractAddress(): Promise<ACVMField[]>;
16
- getVersion(): Promise<ACVMField[]>;
17
- getChainId(): Promise<ACVMField[]>;
18
- getKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]>;
19
- getContractInstance([address]: ACVMField[]): Promise<ACVMField[]>;
20
- getMembershipWitness([blockNumber]: ACVMField[], [treeId]: ACVMField[], [leafValue]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
21
- getNullifierMembershipWitness([blockNumber]: ACVMField[], [nullifier]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
22
- getLowNullifierMembershipWitness([blockNumber]: ACVMField[], [nullifier]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
23
- getPublicDataWitness([blockNumber]: ACVMField[], [leafSlot]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
24
- getBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]>;
25
- getAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]>;
26
- getPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]>;
27
- getNotes([storageSlot]: ACVMField[], [numSelects]: ACVMField[], selectByIndexes: ACVMField[], selectByOffsets: ACVMField[], selectByLengths: ACVMField[], selectValues: ACVMField[], selectComparators: ACVMField[], sortByIndexes: ACVMField[], sortByOffsets: ACVMField[], sortByLengths: ACVMField[], sortOrder: ACVMField[], [limit]: ACVMField[], [offset]: ACVMField[], [status]: ACVMField[], [maxNotes]: ACVMField[], [packedRetrievedNoteLength]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
28
- notifyCreatedNote([storageSlot]: ACVMField[], [noteTypeId]: ACVMField[], note: ACVMField[], [noteHash]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
29
- notifyNullifiedNote([innerNullifier]: ACVMField[], [noteHash]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
30
- notifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]>;
31
- checkNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]>;
32
- getL1ToL2MembershipWitness([contractAddress]: ACVMField[], [messageHash]: ACVMField[], [secret]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
33
- storageRead([contractAddress]: ACVMField[], [startStorageSlot]: ACVMField[], [blockNumber]: ACVMField[], [numberOfElements]: ACVMField[]): Promise<ACVMField[][]>;
34
- storageWrite([startStorageSlot]: ACVMField[], values: ACVMField[]): Promise<ACVMField[]>;
35
- notifyCreatedContractClassLog([contractAddress]: ACVMField[], message: ACVMField[], [length]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
36
- debugLog(message: ACVMField[], _ignoredFieldsSize: ACVMField[], fields: ACVMField[]): Promise<ACVMField[]>;
37
- callPrivateFunction([contractAddress]: ACVMField[], [functionSelector]: ACVMField[], [argsHash]: ACVMField[], [sideEffectCounter]: ACVMField[], [isStaticCall]: ACVMField[]): Promise<ACVMField[][]>;
38
- notifyEnqueuedPublicFunctionCall([contractAddress]: ACVMField[], [calldataHash]: ACVMField[], [sideEffectCounter]: ACVMField[], [isStaticCall]: ACVMField[]): Promise<ACVMField[]>;
39
- notifySetPublicTeardownFunctionCall([contractAddress]: ACVMField[], [calldataHash]: ACVMField[], [sideEffectCounter]: ACVMField[], [isStaticCall]: ACVMField[]): Promise<ACVMField[]>;
40
- notifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]): Promise<ACVMField[]>;
41
- getIndexedTaggingSecretAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]>;
42
- incrementAppTaggingSecretIndexAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]>;
43
- fetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]>;
44
- validateEnqueuedNotesAndEvents([contractAddress]: ACVMField[], [noteValidationRequestsArrayBaseSlot]: ACVMField[], [eventValidationRequestsArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]>;
45
- bulkRetrieveLogs([contractAddress]: ACVMField[], [logRetrievalRequestsArrayBaseSlot]: ACVMField[], [logRetrievalResponsesArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]>;
46
- storeCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[], capsule: ACVMField[]): Promise<ACVMField[]>;
47
- loadCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[], [tSize]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
48
- deleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]>;
49
- copyCapsule([contractAddress]: ACVMField[], [srcSlot]: ACVMField[], [dstSlot]: ACVMField[], [numEntries]: ACVMField[]): Promise<ACVMField[]>;
50
- aes128Decrypt(ciphertextBVecStorage: ACVMField[], [ciphertextLength]: ACVMField[], iv: ACVMField[], symKey: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
51
- getSharedSecret([address]: ACVMField[], [ephPKField0]: ACVMField[], [ephPKField1]: ACVMField[], [ephPKField2]: ACVMField[]): Promise<ACVMField[]>;
52
- emitOffchainEffect(data: ACVMField[]): Promise<never[]>;
10
+ utilityGetRandomField(): Promise<ACVMField[]>;
11
+ privateStoreInExecutionCache(_length: ACVMField[], values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]>;
12
+ privateLoadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]>;
13
+ utilityGetBlockNumber(): Promise<ACVMField[]>;
14
+ utilityGetTimestamp(): Promise<ACVMField[]>;
15
+ utilityGetContractAddress(): Promise<ACVMField[]>;
16
+ utilityGetVersion(): Promise<ACVMField[]>;
17
+ utilityGetChainId(): Promise<ACVMField[]>;
18
+ utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]>;
19
+ utilityGetContractInstance([address]: ACVMField[]): Promise<ACVMField[]>;
20
+ utilityGetMembershipWitness([blockNumber]: ACVMField[], [treeId]: ACVMField[], [leafValue]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
21
+ utilityGetNullifierMembershipWitness([blockNumber]: ACVMField[], [nullifier]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
22
+ utilityGetLowNullifierMembershipWitness([blockNumber]: ACVMField[], [nullifier]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
23
+ utilityGetPublicDataWitness([blockNumber]: ACVMField[], [leafSlot]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
24
+ utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]>;
25
+ utilityGetAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]>;
26
+ utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]>;
27
+ utilityGetNotes([storageSlot]: ACVMField[], [numSelects]: ACVMField[], selectByIndexes: ACVMField[], selectByOffsets: ACVMField[], selectByLengths: ACVMField[], selectValues: ACVMField[], selectComparators: ACVMField[], sortByIndexes: ACVMField[], sortByOffsets: ACVMField[], sortByLengths: ACVMField[], sortOrder: ACVMField[], [limit]: ACVMField[], [offset]: ACVMField[], [status]: ACVMField[], [maxNotes]: ACVMField[], [packedRetrievedNoteLength]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
28
+ privateNotifyCreatedNote([storageSlot]: ACVMField[], [noteTypeId]: ACVMField[], note: ACVMField[], [noteHash]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
29
+ privateNotifyNullifiedNote([innerNullifier]: ACVMField[], [noteHash]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
30
+ privateNotifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]>;
31
+ utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]>;
32
+ utilityGetL1ToL2MembershipWitness([contractAddress]: ACVMField[], [messageHash]: ACVMField[], [secret]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
33
+ utilityStorageRead([contractAddress]: ACVMField[], [startStorageSlot]: ACVMField[], [blockNumber]: ACVMField[], [numberOfElements]: ACVMField[]): Promise<ACVMField[][]>;
34
+ privateNotifyCreatedContractClassLog([contractAddress]: ACVMField[], message: ACVMField[], [length]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
35
+ utilityDebugLog(message: ACVMField[], _ignoredFieldsSize: ACVMField[], fields: ACVMField[]): Promise<ACVMField[]>;
36
+ privateCallPrivateFunction([contractAddress]: ACVMField[], [functionSelector]: ACVMField[], [argsHash]: ACVMField[], [sideEffectCounter]: ACVMField[], [isStaticCall]: ACVMField[]): Promise<ACVMField[][]>;
37
+ privateNotifyEnqueuedPublicFunctionCall([contractAddress]: ACVMField[], [calldataHash]: ACVMField[], [sideEffectCounter]: ACVMField[], [isStaticCall]: ACVMField[]): Promise<ACVMField[]>;
38
+ privateNotifySetPublicTeardownFunctionCall([contractAddress]: ACVMField[], [calldataHash]: ACVMField[], [sideEffectCounter]: ACVMField[], [isStaticCall]: ACVMField[]): Promise<ACVMField[]>;
39
+ privateNotifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]): Promise<ACVMField[]>;
40
+ utilityGetIndexedTaggingSecretAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]>;
41
+ privateIncrementAppTaggingSecretIndexAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]>;
42
+ utilityFetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]>;
43
+ utilityValidateEnqueuedNotesAndEvents([contractAddress]: ACVMField[], [noteValidationRequestsArrayBaseSlot]: ACVMField[], [eventValidationRequestsArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]>;
44
+ utilityBulkRetrieveLogs([contractAddress]: ACVMField[], [logRetrievalRequestsArrayBaseSlot]: ACVMField[], [logRetrievalResponsesArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]>;
45
+ utilityStoreCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[], capsule: ACVMField[]): Promise<ACVMField[]>;
46
+ utilityLoadCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[], [tSize]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
47
+ utilityDeleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]>;
48
+ utilityCopyCapsule([contractAddress]: ACVMField[], [srcSlot]: ACVMField[], [dstSlot]: ACVMField[], [numEntries]: ACVMField[]): Promise<ACVMField[]>;
49
+ utilityAes128Decrypt(ciphertextBVecStorage: ACVMField[], [ciphertextLength]: ACVMField[], iv: ACVMField[], symKey: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
50
+ utilityGetSharedSecret([address]: ACVMField[], [ephPKField0]: ACVMField[], [ephPKField1]: ACVMField[], [ephPKField2]: ACVMField[]): Promise<ACVMField[]>;
51
+ utilityEmitOffchainEffect(data: ACVMField[]): Promise<never[]>;
52
+ privateGetSenderForTags(): Promise<ACVMField[]>;
53
+ privateSetSenderForTags([senderForTags]: ACVMField[]): Promise<ACVMField[]>;
53
54
  }
54
55
  //# sourceMappingURL=oracle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/oracle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAMf,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,WAAW;IAIpC,cAAc,IAAI,YAAY;IAW9B,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAMtC,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKrG,sBAAsB,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAK1E,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAItC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIpC,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAI1C,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIlC,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAIlC,uBAAuB,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMrE,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAYjE,oBAAoB,CACxB,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EACrB,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IAcjC,6BAA6B,CACjC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IAWjC,gCAAgC,CACpC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IAajC,oBAAoB,CACxB,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IAWjC,cAAc,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAUhE,cAAc,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IASlE,8BAA8B,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAO9E,QAAQ,CACZ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EACzB,eAAe,EAAE,SAAS,EAAE,EAC5B,eAAe,EAAE,SAAS,EAAE,EAC5B,eAAe,EAAE,SAAS,EAAE,EAC5B,YAAY,EAAE,SAAS,EAAE,EACzB,iBAAiB,EAAE,SAAS,EAAE,EAC9B,aAAa,EAAE,SAAS,EAAE,EAC1B,aAAa,EAAE,SAAS,EAAE,EAC1B,aAAa,EAAE,SAAS,EAAE,EAC1B,SAAS,EAAE,SAAS,EAAE,EACtB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EACpB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EACrB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EACrB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EACvB,CAAC,yBAAyB,CAAC,EAAE,SAAS,EAAE,GACvC,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IA4CvC,iBAAiB,CACf,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EACzB,IAAI,EAAE,SAAS,EAAE,EACjB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EACvB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC;IAWjB,mBAAmB,CACvB,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,EAC7B,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EACvB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC;IAKjB,sBAAsB,CAAC,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK3E,oBAAoB,CAAC,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKzE,0BAA0B,CAC9B,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GACpB,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IASjC,WAAW,CACf,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,EAC/B,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAC9B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAUnB,YAAY,CAAC,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK9F,6BAA6B,CAC3B,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,OAAO,EAAE,SAAS,EAAE,EACpB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EACrB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GACrB,OAAO,CAAC,SAAS,EAAE,CAAC;IAQvB,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAOpG,mBAAmB,CACvB,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,EAC/B,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EACvB,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAChC,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,GAC1B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAWnB,gCAAgC,CACpC,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAC3B,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAChC,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,GAC1B,OAAO,CAAC,SAAS,EAAE,CAAC;IAUjB,mCAAmC,CACvC,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAC3B,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAChC,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,GAC1B,OAAO,CAAC,SAAS,EAAE,CAAC;IAUjB,uCAAuC,CAAC,CAAC,8BAA8B,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5G,+BAA+B,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQtG,sCAAsC,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQ7G,eAAe,CAAC,CAAC,6BAA6B,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKnF,8BAA8B,CAClC,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,mCAAmC,CAAC,EAAE,SAAS,EAAE,EAClD,CAAC,oCAAoC,CAAC,EAAE,SAAS,EAAE,GAClD,OAAO,CAAC,SAAS,EAAE,CAAC;IAUjB,gBAAgB,CACpB,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,iCAAiC,CAAC,EAAE,SAAS,EAAE,EAChD,CAAC,kCAAkC,CAAC,EAAE,SAAS,EAAE,GAChD,OAAO,CAAC,SAAS,EAAE,CAAC;IASjB,YAAY,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAS7G,WAAW,CACf,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EACnB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GACnB,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IAiBjC,aAAa,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKxF,WAAW,CACf,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAC9B,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EACtB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EACtB,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,GACxB,OAAO,CAAC,SAAS,EAAE,CAAC;IAUjB,aAAa,CACjB,qBAAqB,EAAE,SAAS,EAAE,EAClC,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,EAC/B,EAAE,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC;IASjC,eAAe,CACnB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EACtB,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,EAC1B,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC;IAQjB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE;CAI3C"}
1
+ {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/oracle.ts"],"names":[],"mappings":"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"}