@aztec/simulator 0.80.0 → 0.82.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 (144) hide show
  1. package/dest/common/db_interfaces.d.ts +30 -17
  2. package/dest/common/db_interfaces.d.ts.map +1 -1
  3. package/dest/common/db_interfaces.js +1 -1
  4. package/dest/common/debug_fn_name.d.ts +2 -2
  5. package/dest/common/debug_fn_name.d.ts.map +1 -1
  6. package/dest/common/message_load_oracle_inputs.d.ts +4 -0
  7. package/dest/common/message_load_oracle_inputs.d.ts.map +1 -1
  8. package/dest/common/message_load_oracle_inputs.js +9 -0
  9. package/dest/private/acvm/acvm.d.ts +6 -1
  10. package/dest/private/acvm/acvm.d.ts.map +1 -1
  11. package/dest/private/acvm/acvm.js +7 -13
  12. package/dest/private/acvm/deserialize.d.ts +19 -18
  13. package/dest/private/acvm/deserialize.d.ts.map +1 -1
  14. package/dest/private/acvm/deserialize.js +31 -23
  15. package/dest/private/acvm/oracle/oracle.d.ts +36 -34
  16. package/dest/private/acvm/oracle/oracle.d.ts.map +1 -1
  17. package/dest/private/acvm/oracle/oracle.js +134 -79
  18. package/dest/private/acvm/oracle/typed_oracle.d.ts +3 -2
  19. package/dest/private/acvm/oracle/typed_oracle.d.ts.map +1 -1
  20. package/dest/private/acvm/oracle/typed_oracle.js +5 -2
  21. package/dest/private/acvm/serialize.d.ts +11 -0
  22. package/dest/private/acvm/serialize.d.ts.map +1 -1
  23. package/dest/private/acvm/serialize.js +27 -0
  24. package/dest/private/execution_data_provider.d.ts +15 -13
  25. package/dest/private/execution_data_provider.d.ts.map +1 -1
  26. package/dest/private/private_execution.d.ts +2 -2
  27. package/dest/private/private_execution.d.ts.map +1 -1
  28. package/dest/private/private_execution.js +4 -5
  29. package/dest/private/private_execution_oracle.d.ts.map +1 -1
  30. package/dest/private/private_execution_oracle.js +1 -1
  31. package/dest/private/providers/acvm_native.d.ts +6 -4
  32. package/dest/private/providers/acvm_native.d.ts.map +1 -1
  33. package/dest/private/providers/acvm_native.js +6 -3
  34. package/dest/private/providers/acvm_wasm.d.ts +6 -7
  35. package/dest/private/providers/acvm_wasm.d.ts.map +1 -1
  36. package/dest/private/providers/acvm_wasm.js +13 -15
  37. package/dest/private/providers/acvm_wasm_with_blobs.d.ts +5 -5
  38. package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +1 -1
  39. package/dest/private/providers/acvm_wasm_with_blobs.js +7 -9
  40. package/dest/private/providers/circuit_recording/circuit_recorder.d.ts +90 -0
  41. package/dest/private/providers/circuit_recording/circuit_recorder.d.ts.map +1 -0
  42. package/dest/private/providers/circuit_recording/circuit_recorder.js +246 -0
  43. package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.d.ts +18 -0
  44. package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.d.ts.map +1 -0
  45. package/dest/private/providers/circuit_recording/simulation_provider_recorder_wrapper.js +39 -0
  46. package/dest/private/providers/simulation_provider.d.ts +21 -7
  47. package/dest/private/providers/simulation_provider.d.ts.map +1 -1
  48. package/dest/private/simulator.d.ts +3 -2
  49. package/dest/private/simulator.d.ts.map +1 -1
  50. package/dest/private/simulator.js +2 -2
  51. package/dest/private/unconstrained_execution.d.ts +2 -2
  52. package/dest/private/unconstrained_execution.d.ts.map +1 -1
  53. package/dest/private/unconstrained_execution.js +1 -2
  54. package/dest/private/unconstrained_execution_oracle.d.ts +5 -3
  55. package/dest/private/unconstrained_execution_oracle.d.ts.map +1 -1
  56. package/dest/private/unconstrained_execution_oracle.js +9 -5
  57. package/dest/public/avm/avm_simulator.d.ts.map +1 -1
  58. package/dest/public/avm/avm_simulator.js +0 -2
  59. package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -1
  60. package/dest/public/avm/fixtures/avm_simulation_tester.js +5 -5
  61. package/dest/public/avm/fixtures/index.d.ts +4 -4
  62. package/dest/public/avm/fixtures/index.d.ts.map +1 -1
  63. package/dest/public/avm/fixtures/index.js +9 -6
  64. package/dest/public/avm/fixtures/simple_contract_data_source.d.ts +1 -2
  65. package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +1 -1
  66. package/dest/public/avm/fixtures/simple_contract_data_source.js +0 -3
  67. package/dest/public/avm/journal/journal.d.ts +16 -70
  68. package/dest/public/avm/journal/journal.d.ts.map +1 -1
  69. package/dest/public/avm/journal/journal.js +88 -210
  70. package/dest/public/avm/journal/nullifiers.d.ts +2 -2
  71. package/dest/public/avm/journal/nullifiers.d.ts.map +1 -1
  72. package/dest/public/avm/journal/public_storage.d.ts +2 -2
  73. package/dest/public/avm/journal/public_storage.d.ts.map +1 -1
  74. package/dest/public/avm/test_utils.d.ts +10 -13
  75. package/dest/public/avm/test_utils.d.ts.map +1 -1
  76. package/dest/public/avm/test_utils.js +8 -13
  77. package/dest/public/fixtures/public_tx_simulation_tester.d.ts +3 -3
  78. package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
  79. package/dest/public/fixtures/public_tx_simulation_tester.js +10 -9
  80. package/dest/public/hinting_db_sources.d.ts +19 -0
  81. package/dest/public/hinting_db_sources.d.ts.map +1 -0
  82. package/dest/public/hinting_db_sources.js +36 -0
  83. package/dest/public/public_db_sources.d.ts +46 -22
  84. package/dest/public/public_db_sources.d.ts.map +1 -1
  85. package/dest/public/public_db_sources.js +82 -27
  86. package/dest/public/public_processor/public_processor.d.ts +5 -5
  87. package/dest/public/public_processor/public_processor.d.ts.map +1 -1
  88. package/dest/public/public_processor/public_processor.js +21 -20
  89. package/dest/public/public_tx_simulator/public_tx_context.d.ts +9 -14
  90. package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
  91. package/dest/public/public_tx_simulator/public_tx_context.js +15 -19
  92. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +9 -6
  93. package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
  94. package/dest/public/public_tx_simulator/public_tx_simulator.js +28 -14
  95. package/dest/public/side_effect_trace.d.ts +6 -22
  96. package/dest/public/side_effect_trace.d.ts.map +1 -1
  97. package/dest/public/side_effect_trace.js +11 -70
  98. package/dest/public/side_effect_trace_interface.d.ts +5 -19
  99. package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
  100. package/dest/testing.d.ts +2 -0
  101. package/dest/testing.d.ts.map +1 -0
  102. package/dest/testing.js +1 -0
  103. package/package.json +15 -14
  104. package/src/common/db_interfaces.ts +32 -18
  105. package/src/common/debug_fn_name.ts +2 -2
  106. package/src/common/message_load_oracle_inputs.ts +8 -0
  107. package/src/private/acvm/acvm.ts +8 -24
  108. package/src/private/acvm/deserialize.ts +35 -29
  109. package/src/private/acvm/oracle/oracle.ts +171 -129
  110. package/src/private/acvm/oracle/typed_oracle.ts +7 -3
  111. package/src/private/acvm/serialize.ts +28 -0
  112. package/src/private/execution_data_provider.ts +19 -14
  113. package/src/private/private_execution.ts +11 -7
  114. package/src/private/private_execution_oracle.ts +5 -1
  115. package/src/private/providers/acvm_native.ts +17 -6
  116. package/src/private/providers/acvm_wasm.ts +27 -20
  117. package/src/private/providers/acvm_wasm_with_blobs.ts +15 -12
  118. package/src/private/providers/circuit_recording/circuit_recorder.ts +283 -0
  119. package/src/private/providers/circuit_recording/simulation_provider_recorder_wrapper.ts +82 -0
  120. package/src/private/providers/simulation_provider.ts +30 -5
  121. package/src/private/simulator.ts +5 -3
  122. package/src/private/unconstrained_execution.ts +8 -4
  123. package/src/private/unconstrained_execution_oracle.ts +15 -9
  124. package/src/public/avm/avm_simulator.ts +0 -2
  125. package/src/public/avm/fixtures/avm_simulation_tester.ts +8 -5
  126. package/src/public/avm/fixtures/index.ts +16 -10
  127. package/src/public/avm/fixtures/simple_contract_data_source.ts +1 -10
  128. package/src/public/avm/journal/journal.ts +119 -353
  129. package/src/public/avm/journal/nullifiers.ts +2 -2
  130. package/src/public/avm/journal/public_storage.ts +2 -2
  131. package/src/public/avm/test_utils.ts +20 -29
  132. package/src/public/fixtures/public_tx_simulation_tester.ts +9 -12
  133. package/src/public/hinting_db_sources.ts +71 -0
  134. package/src/public/public_db_sources.ts +134 -32
  135. package/src/public/public_processor/public_processor.ts +22 -21
  136. package/src/public/public_tx_simulator/public_tx_context.ts +30 -38
  137. package/src/public/public_tx_simulator/public_tx_simulator.ts +47 -17
  138. package/src/public/side_effect_trace.ts +8 -172
  139. package/src/public/side_effect_trace_interface.ts +4 -55
  140. package/src/testing.ts +1 -0
  141. package/dest/public/avm/bytecode_utils.d.ts +0 -5
  142. package/dest/public/avm/bytecode_utils.d.ts.map +0 -1
  143. package/dest/public/avm/bytecode_utils.js +0 -17
  144. package/src/public/avm/bytecode_utils.ts +0 -17
@@ -1,10 +1,10 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr, Point } from '@aztec/foundation/fields';
2
2
  import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { ContractClassLog, LogWithTxData } from '@aztec/stdlib/logs';
5
5
  import { MerkleTreeId } from '@aztec/stdlib/trees';
6
- import { frToBoolean, frToNumber, fromACVMField, fromBoundedVec } from '../deserialize.js';
7
- import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
6
+ import { fromBoundedVec, fromUintArray, fromUintBoundedVec } from '../deserialize.js';
7
+ import { bufferToBoundedVec, toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
8
8
  /**
9
9
  * A data source that has all the apis required by Aztec.nr.
10
10
  */ export class Oracle {
@@ -14,40 +14,49 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
14
14
  }
15
15
  getRandomField() {
16
16
  const val = this.typedOracle.getRandomField();
17
- return toACVMField(val);
17
+ return Promise.resolve([
18
+ toACVMField(val)
19
+ ]);
18
20
  }
19
21
  // Since the argument is a slice, noir automatically adds a length field to oracle call.
20
22
  async storeInExecutionCache(_length, values) {
21
- const hash = await this.typedOracle.storeInExecutionCache(values.map(fromACVMField));
22
- return toACVMField(hash);
23
+ const hash = await this.typedOracle.storeInExecutionCache(values.map(Fr.fromString));
24
+ return [
25
+ toACVMField(hash)
26
+ ];
23
27
  }
24
28
  async loadFromExecutionCache([returnsHash]) {
25
- const values = await this.typedOracle.loadFromExecutionCache(fromACVMField(returnsHash));
26
- return values.map(toACVMField);
29
+ const values = await this.typedOracle.loadFromExecutionCache(Fr.fromString(returnsHash));
30
+ return [
31
+ values.map(toACVMField)
32
+ ];
27
33
  }
28
34
  async getBlockNumber() {
29
- return toACVMField(await this.typedOracle.getBlockNumber());
35
+ return [
36
+ toACVMField(await this.typedOracle.getBlockNumber())
37
+ ];
30
38
  }
31
39
  async getContractAddress() {
32
- return toACVMField(await this.typedOracle.getContractAddress());
40
+ return [
41
+ toACVMField(await this.typedOracle.getContractAddress())
42
+ ];
33
43
  }
34
44
  async getVersion() {
35
- return toACVMField(await this.typedOracle.getVersion());
45
+ return [
46
+ toACVMField(await this.typedOracle.getVersion())
47
+ ];
36
48
  }
37
49
  async getChainId() {
38
- return toACVMField(await this.typedOracle.getChainId());
39
- }
40
- async getKeyValidationRequest([pkMHash]) {
41
- const { pkM, skApp } = await this.typedOracle.getKeyValidationRequest(fromACVMField(pkMHash));
42
50
  return [
43
- toACVMField(pkM.x),
44
- toACVMField(pkM.y),
45
- toACVMField(pkM.isInfinite),
46
- toACVMField(skApp)
51
+ toACVMField(await this.typedOracle.getChainId())
47
52
  ];
48
53
  }
54
+ async getKeyValidationRequest([pkMHash]) {
55
+ const keyValidationRequest = await this.typedOracle.getKeyValidationRequest(Fr.fromString(pkMHash));
56
+ return keyValidationRequest.toFields().map(toACVMField);
57
+ }
49
58
  async getContractInstance([address]) {
50
- const instance = await this.typedOracle.getContractInstance(AztecAddress.fromField(fromACVMField(address)));
59
+ const instance = await this.typedOracle.getContractInstance(AztecAddress.fromField(Fr.fromString(address)));
51
60
  return [
52
61
  instance.salt,
53
62
  instance.deployer,
@@ -57,44 +66,47 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
57
66
  ].map(toACVMField);
58
67
  }
59
68
  async getMembershipWitness([blockNumber], [treeId], [leafValue]) {
60
- const parsedBlockNumber = frToNumber(fromACVMField(blockNumber));
61
- const parsedTreeId = frToNumber(fromACVMField(treeId));
62
- const parsedLeafValue = fromACVMField(leafValue);
69
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
70
+ const parsedTreeId = Fr.fromString(treeId).toNumber();
71
+ const parsedLeafValue = Fr.fromString(leafValue);
63
72
  const witness = await this.typedOracle.getMembershipWitness(parsedBlockNumber, parsedTreeId, parsedLeafValue);
64
73
  if (!witness) {
65
74
  throw new Error(`Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`);
66
75
  }
67
- return witness.map(toACVMField);
76
+ return [
77
+ toACVMField(witness[0]),
78
+ witness.slice(1).map(toACVMField)
79
+ ];
68
80
  }
69
81
  async getNullifierMembershipWitness([blockNumber], [nullifier]) {
70
- const parsedBlockNumber = frToNumber(fromACVMField(blockNumber));
71
- const parsedNullifier = fromACVMField(nullifier);
82
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
83
+ const parsedNullifier = Fr.fromString(nullifier);
72
84
  const witness = await this.typedOracle.getNullifierMembershipWitness(parsedBlockNumber, parsedNullifier);
73
85
  if (!witness) {
74
86
  throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
75
87
  }
76
- return witness.toFields().map(toACVMField);
88
+ return witness.toNoirRepresentation();
77
89
  }
78
90
  async getLowNullifierMembershipWitness([blockNumber], [nullifier]) {
79
- const parsedBlockNumber = frToNumber(fromACVMField(blockNumber));
80
- const parsedNullifier = fromACVMField(nullifier);
91
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
92
+ const parsedNullifier = Fr.fromString(nullifier);
81
93
  const witness = await this.typedOracle.getLowNullifierMembershipWitness(parsedBlockNumber, parsedNullifier);
82
94
  if (!witness) {
83
95
  throw new Error(`Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
84
96
  }
85
- return witness.toFields().map(toACVMField);
97
+ return witness.toNoirRepresentation();
86
98
  }
87
- async getPublicDataTreeWitness([blockNumber], [leafSlot]) {
88
- const parsedBlockNumber = frToNumber(fromACVMField(blockNumber));
89
- const parsedLeafSlot = fromACVMField(leafSlot);
90
- const witness = await this.typedOracle.getPublicDataTreeWitness(parsedBlockNumber, parsedLeafSlot);
99
+ async getPublicDataWitness([blockNumber], [leafSlot]) {
100
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
101
+ const parsedLeafSlot = Fr.fromString(leafSlot);
102
+ const witness = await this.typedOracle.getPublicDataWitness(parsedBlockNumber, parsedLeafSlot);
91
103
  if (!witness) {
92
104
  throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
93
105
  }
94
- return witness.toFields().map(toACVMField);
106
+ return witness.toNoirRepresentation();
95
107
  }
96
108
  async getBlockHeader([blockNumber]) {
97
- const parsedBlockNumber = frToNumber(fromACVMField(blockNumber));
109
+ const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
98
110
  const header = await this.typedOracle.getBlockHeader(parsedBlockNumber);
99
111
  if (!header) {
100
112
  throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
@@ -102,23 +114,27 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
102
114
  return header.toFields().map(toACVMField);
103
115
  }
104
116
  async getAuthWitness([messageHash]) {
105
- const messageHashField = fromACVMField(messageHash);
117
+ const messageHashField = Fr.fromString(messageHash);
106
118
  const witness = await this.typedOracle.getAuthWitness(messageHashField);
107
119
  if (!witness) {
108
120
  throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
109
121
  }
110
- return witness.map(toACVMField);
122
+ return [
123
+ witness.map(toACVMField)
124
+ ];
111
125
  }
112
126
  async getPublicKeysAndPartialAddress([address]) {
113
- const parsedAddress = AztecAddress.fromField(fromACVMField(address));
127
+ const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
114
128
  const { publicKeys, partialAddress } = await this.typedOracle.getCompleteAddress(parsedAddress);
115
129
  return [
116
- ...publicKeys.toFields(),
117
- partialAddress
118
- ].map(toACVMField);
130
+ [
131
+ ...publicKeys.toFields(),
132
+ partialAddress
133
+ ].map(toACVMField)
134
+ ];
119
135
  }
120
136
  async getNotes([storageSlot], [numSelects], selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, [limit], [offset], [status], [returnSize]) {
121
- const noteDatas = await this.typedOracle.getNotes(fromACVMField(storageSlot), +numSelects, selectByIndexes.map((s)=>+s), selectByOffsets.map((s)=>+s), selectByLengths.map((s)=>+s), selectValues.map(fromACVMField), selectComparators.map((s)=>+s), sortByIndexes.map((s)=>+s), sortByOffsets.map((s)=>+s), sortByLengths.map((s)=>+s), sortOrder.map((s)=>+s), +limit, +offset, +status);
137
+ const noteDatas = await this.typedOracle.getNotes(Fr.fromString(storageSlot), +numSelects, selectByIndexes.map((s)=>+s), selectByOffsets.map((s)=>+s), selectByLengths.map((s)=>+s), selectValues.map(Fr.fromString), selectComparators.map((s)=>+s), sortByIndexes.map((s)=>+s), sortByOffsets.map((s)=>+s), sortByLengths.map((s)=>+s), sortOrder.map((s)=>+s), +limit, +offset, +status);
122
138
  const noteLength = noteDatas?.[0]?.note.items.length ?? 0;
123
139
  if (!noteDatas.every(({ note })=>noteLength === note.items.length)) {
124
140
  throw new Error('Notes should all be the same length.');
@@ -144,83 +160,104 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
144
160
  throw new Error(`Return data size too big. Maximum ${returnFieldSize} fields. Got ${flattenData.length}.`);
145
161
  }
146
162
  const paddedZeros = Array(returnFieldSize - returnData.length).fill(toACVMField(0));
147
- return returnData.concat(paddedZeros);
163
+ return [
164
+ returnData.concat(paddedZeros)
165
+ ];
148
166
  }
149
167
  notifyCreatedNote([storageSlot], [noteTypeId], note, [noteHash], [counter]) {
150
- this.typedOracle.notifyCreatedNote(fromACVMField(storageSlot), NoteSelector.fromField(fromACVMField(noteTypeId)), note.map(fromACVMField), fromACVMField(noteHash), +counter);
151
- return toACVMField(0);
168
+ this.typedOracle.notifyCreatedNote(Fr.fromString(storageSlot), NoteSelector.fromField(Fr.fromString(noteTypeId)), note.map(Fr.fromString), Fr.fromString(noteHash), +counter);
169
+ return Promise.resolve([]);
152
170
  }
153
171
  async notifyNullifiedNote([innerNullifier], [noteHash], [counter]) {
154
- await this.typedOracle.notifyNullifiedNote(fromACVMField(innerNullifier), fromACVMField(noteHash), +counter);
155
- return toACVMField(0);
172
+ await this.typedOracle.notifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
173
+ return [];
156
174
  }
157
175
  async notifyCreatedNullifier([innerNullifier]) {
158
- await this.typedOracle.notifyCreatedNullifier(fromACVMField(innerNullifier));
159
- return toACVMField(0);
176
+ await this.typedOracle.notifyCreatedNullifier(Fr.fromString(innerNullifier));
177
+ return [];
160
178
  }
161
179
  async checkNullifierExists([innerNullifier]) {
162
- const exists = await this.typedOracle.checkNullifierExists(fromACVMField(innerNullifier));
163
- return toACVMField(exists);
180
+ const exists = await this.typedOracle.checkNullifierExists(Fr.fromString(innerNullifier));
181
+ return [
182
+ toACVMField(exists)
183
+ ];
164
184
  }
165
185
  async getL1ToL2MembershipWitness([contractAddress], [messageHash], [secret]) {
166
- const message = await this.typedOracle.getL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress), fromACVMField(messageHash), fromACVMField(secret));
167
- return message.toFields().map(toACVMField);
186
+ const message = await this.typedOracle.getL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress), Fr.fromString(messageHash), Fr.fromString(secret));
187
+ return message.toNoirRepresentation();
168
188
  }
169
189
  async storageRead([contractAddress], [startStorageSlot], [blockNumber], [numberOfElements]) {
170
- const values = await this.typedOracle.storageRead(new AztecAddress(fromACVMField(contractAddress)), fromACVMField(startStorageSlot), +blockNumber, +numberOfElements);
171
- return values.map(toACVMField);
190
+ const values = await this.typedOracle.storageRead(new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +blockNumber, +numberOfElements);
191
+ return [
192
+ values.map(toACVMField)
193
+ ];
172
194
  }
173
195
  async storageWrite([startStorageSlot], values) {
174
- const newValues = await this.typedOracle.storageWrite(fromACVMField(startStorageSlot), values.map(fromACVMField));
196
+ const newValues = await this.typedOracle.storageWrite(Fr.fromString(startStorageSlot), values.map(Fr.fromString));
175
197
  return newValues.map(toACVMField);
176
198
  }
177
199
  notifyCreatedContractClassLog([contractAddress], message, [counter]) {
178
- const logPayload = message.map(fromACVMField);
179
- const log = new ContractClassLog(new AztecAddress(fromACVMField(contractAddress)), logPayload);
200
+ const logPayload = message.map(Fr.fromString);
201
+ const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logPayload);
180
202
  this.typedOracle.notifyCreatedContractClassLog(log, +counter);
203
+ return Promise.resolve([]);
181
204
  }
182
205
  debugLog(message, _ignoredFieldsSize, fields) {
183
- const messageStr = message.map((acvmField)=>String.fromCharCode(fromACVMField(acvmField).toNumber())).join('');
184
- const fieldsFr = fields.map(fromACVMField);
206
+ const messageStr = message.map((acvmField)=>String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
207
+ const fieldsFr = fields.map(Fr.fromString);
185
208
  this.typedOracle.debugLog(messageStr, fieldsFr);
209
+ return Promise.resolve([]);
186
210
  }
187
211
  async callPrivateFunction([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
188
- const { endSideEffectCounter, returnsHash } = await this.typedOracle.callPrivateFunction(AztecAddress.fromField(fromACVMField(contractAddress)), FunctionSelector.fromField(fromACVMField(functionSelector)), fromACVMField(argsHash), frToNumber(fromACVMField(sideEffectCounter)), frToBoolean(fromACVMField(isStaticCall)));
212
+ const { endSideEffectCounter, returnsHash } = await this.typedOracle.callPrivateFunction(AztecAddress.fromField(Fr.fromString(contractAddress)), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
189
213
  return [
190
- endSideEffectCounter,
191
- returnsHash
192
- ].map(toACVMField);
214
+ [
215
+ endSideEffectCounter,
216
+ returnsHash
217
+ ].map(toACVMField)
218
+ ];
193
219
  }
194
220
  async enqueuePublicFunctionCall([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
195
- const newArgsHash = await this.typedOracle.enqueuePublicFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(fromACVMField(functionSelector)), fromACVMField(argsHash), frToNumber(fromACVMField(sideEffectCounter)), frToBoolean(fromACVMField(isStaticCall)));
196
- return toACVMField(newArgsHash);
221
+ const newArgsHash = await this.typedOracle.enqueuePublicFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
222
+ return [
223
+ toACVMField(newArgsHash)
224
+ ];
197
225
  }
198
226
  async setPublicTeardownFunctionCall([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
199
- const newArgsHash = await this.typedOracle.setPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(fromACVMField(functionSelector)), fromACVMField(argsHash), frToNumber(fromACVMField(sideEffectCounter)), frToBoolean(fromACVMField(isStaticCall)));
200
- return toACVMField(newArgsHash);
227
+ const newArgsHash = await this.typedOracle.setPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
228
+ return [
229
+ toACVMField(newArgsHash)
230
+ ];
201
231
  }
202
232
  notifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]) {
203
- this.typedOracle.notifySetMinRevertibleSideEffectCounter(frToNumber(fromACVMField(minRevertibleSideEffectCounter)));
233
+ this.typedOracle.notifySetMinRevertibleSideEffectCounter(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
234
+ return Promise.resolve([]);
204
235
  }
205
236
  async getIndexedTaggingSecretAsSender([sender], [recipient]) {
206
237
  const taggingSecret = await this.typedOracle.getIndexedTaggingSecretAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
207
- return taggingSecret.toFields().map(toACVMField);
238
+ return [
239
+ taggingSecret.toFields().map(toACVMField)
240
+ ];
208
241
  }
209
242
  async incrementAppTaggingSecretIndexAsSender([sender], [recipient]) {
210
243
  await this.typedOracle.incrementAppTaggingSecretIndexAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
244
+ return [];
211
245
  }
212
246
  async syncNotes() {
213
247
  await this.typedOracle.syncNotes();
248
+ return [];
214
249
  }
215
250
  async deliverNote([contractAddress], [storageSlot], [nonce], content, [contentLength], [noteHash], [nullifier], [txHash], [recipient]) {
216
251
  // TODO(#10728): try-catch this block and return false if we get an exception so that the contract can decide what
217
252
  // to do if a note fails delivery (e.g. not increment the tagging index, or add it to some pending work list).
218
253
  // Delivery might fail due to temporary issues, such as poor node connectivity.
219
- await this.typedOracle.deliverNote(AztecAddress.fromString(contractAddress), fromACVMField(storageSlot), fromACVMField(nonce), fromBoundedVec(content, contentLength), fromACVMField(noteHash), fromACVMField(nullifier), fromACVMField(txHash), AztecAddress.fromString(recipient));
220
- return toACVMField(true);
254
+ await this.typedOracle.deliverNote(AztecAddress.fromString(contractAddress), Fr.fromString(storageSlot), Fr.fromString(nonce), fromBoundedVec(content, contentLength), Fr.fromString(noteHash), Fr.fromString(nullifier), Fr.fromString(txHash), AztecAddress.fromString(recipient));
255
+ return [
256
+ toACVMField(true)
257
+ ];
221
258
  }
222
259
  async getLogByTag([tag]) {
223
- const log = await this.typedOracle.getLogByTag(fromACVMField(tag));
260
+ const log = await this.typedOracle.getLogByTag(Fr.fromString(tag));
224
261
  if (log == null) {
225
262
  return [
226
263
  toACVMField(0),
@@ -234,17 +271,18 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
234
271
  }
235
272
  }
236
273
  async storeCapsule([contractAddress], [slot], capsule) {
237
- await this.typedOracle.storeCapsule(AztecAddress.fromField(fromACVMField(contractAddress)), fromACVMField(slot), capsule.map(fromACVMField));
274
+ await this.typedOracle.storeCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString));
275
+ return [];
238
276
  }
239
277
  async loadCapsule([contractAddress], [slot], [tSize]) {
240
- const values = await this.typedOracle.loadCapsule(AztecAddress.fromField(fromACVMField(contractAddress)), fromACVMField(slot));
278
+ const values = await this.typedOracle.loadCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
241
279
  // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
242
280
  // with two fields: `some` (a boolean) and `value` (a field array in this case).
243
281
  if (values === null) {
244
282
  // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
245
283
  return [
246
284
  toACVMField(0),
247
- Array(frToNumber(fromACVMField(tSize))).fill(toACVMField(0))
285
+ Array(Fr.fromString(tSize).toNumber()).fill(toACVMField(0))
248
286
  ];
249
287
  } else {
250
288
  // Data was found so we set `some` to 1 and return it along with `value`.
@@ -255,9 +293,26 @@ import { toACVMField, toACVMFieldSingleOrArray } from '../serialize.js';
255
293
  }
256
294
  }
257
295
  async deleteCapsule([contractAddress], [slot]) {
258
- await this.typedOracle.deleteCapsule(AztecAddress.fromField(fromACVMField(contractAddress)), fromACVMField(slot));
296
+ await this.typedOracle.deleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
297
+ return [];
259
298
  }
260
299
  async copyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries]) {
261
- await this.typedOracle.copyCapsule(AztecAddress.fromField(fromACVMField(contractAddress)), fromACVMField(srcSlot), fromACVMField(dstSlot), frToNumber(fromACVMField(numEntries)));
300
+ await this.typedOracle.copyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber());
301
+ return [];
302
+ }
303
+ async aes128Decrypt(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
304
+ const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
305
+ const ivBuffer = fromUintArray(iv, 8);
306
+ const symKeyBuffer = fromUintArray(symKey, 8);
307
+ const plaintext = await this.typedOracle.aes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
308
+ return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
309
+ }
310
+ async getSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2]) {
311
+ const secret = await this.typedOracle.getSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
312
+ ephPKField0,
313
+ ephPKField1,
314
+ ephPKField2
315
+ ].map(Fr.fromString)));
316
+ return secret.toFields().map(toACVMField);
262
317
  }
263
318
  }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
4
- import { Fr } from '@aztec/foundation/fields';
4
+ import { Fr, Point } from '@aztec/foundation/fields';
5
5
  import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
6
6
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
7
7
  import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
@@ -47,7 +47,7 @@ export declare abstract class TypedOracle {
47
47
  getContractInstance(_address: AztecAddress): Promise<ContractInstance>;
48
48
  getMembershipWitness(_blockNumber: number, _treeId: MerkleTreeId, _leafValue: Fr): Promise<Fr[] | undefined>;
49
49
  getNullifierMembershipWitness(_blockNumber: number, _nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
50
- getPublicDataTreeWitness(_blockNumber: number, _leafSlot: Fr): Promise<PublicDataWitness | undefined>;
50
+ getPublicDataWitness(_blockNumber: number, _leafSlot: Fr): Promise<PublicDataWitness | undefined>;
51
51
  getLowNullifierMembershipWitness(_blockNumber: number, _nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
52
52
  getBlockHeader(_blockNumber: number): Promise<BlockHeader | undefined>;
53
53
  getCompleteAddress(_account: AztecAddress): Promise<CompleteAddress>;
@@ -79,5 +79,6 @@ export declare abstract class TypedOracle {
79
79
  deleteCapsule(_contractAddress: AztecAddress, _key: Fr): Promise<void>;
80
80
  copyCapsule(_contractAddress: AztecAddress, _srcKey: Fr, _dstKey: Fr, _numEntries: number): Promise<void>;
81
81
  aes128Decrypt(_ciphertext: Buffer, _iv: Buffer, _symKey: Buffer): Promise<Buffer>;
82
+ getSharedSecret(_address: AztecAddress, _ephPk: Point): Promise<Point>;
82
83
  }
83
84
  //# sourceMappingURL=typed_oracle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typed_oracle.d.ts","sourceRoot":"","sources":["../../../../src/private/acvm/oracle/typed_oracle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed_oracle.d.ts","sourceRoot":"","sources":["../../../../src/private/acvm/oracle/typed_oracle.ts"],"names":[],"mappings":"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"}
@@ -42,8 +42,8 @@ class OracleMethodNotAvailableError extends Error {
42
42
  getNullifierMembershipWitness(_blockNumber, _nullifier) {
43
43
  return Promise.reject(new OracleMethodNotAvailableError('getNullifierMembershipWitness'));
44
44
  }
45
- getPublicDataTreeWitness(_blockNumber, _leafSlot) {
46
- return Promise.reject(new OracleMethodNotAvailableError('getPublicDataTreeWitness'));
45
+ getPublicDataWitness(_blockNumber, _leafSlot) {
46
+ return Promise.reject(new OracleMethodNotAvailableError('getPublicDataWitness'));
47
47
  }
48
48
  getLowNullifierMembershipWitness(_blockNumber, _nullifier) {
49
49
  return Promise.reject(new OracleMethodNotAvailableError('getLowNullifierMembershipWitness'));
@@ -129,4 +129,7 @@ class OracleMethodNotAvailableError extends Error {
129
129
  aes128Decrypt(_ciphertext, _iv, _symKey) {
130
130
  return Promise.reject(new OracleMethodNotAvailableError('aes128Decrypt'));
131
131
  }
132
+ getSharedSecret(_address, _ephPk) {
133
+ return Promise.reject(new OracleMethodNotAvailableError('getSharedSecret'));
134
+ }
132
135
  }
@@ -21,4 +21,15 @@ export declare function toACVMFieldSingleOrArray(value: Fr | Fr[]): string | str
21
21
  * @returns The witness.
22
22
  */
23
23
  export declare function toACVMWitness(witnessStartIndex: number, fields: Parameters<typeof toACVMField>[0][]): Map<number, string>;
24
+ export declare function bufferToU8Array(buffer: Buffer): ACVMField[];
25
+ export declare function bufferToBoundedVec(buffer: Buffer, maxLen: number): [ACVMField[], ACVMField];
26
+ /**
27
+ * Converts a ForeignCallArray into a tuple which represents a nr BoundedVec.
28
+ * If the input array is shorter than the maxLen, it pads the result with zeros,
29
+ * so that nr can correctly coerce this result into a BoundedVec.
30
+ * @param bVecStorage - The array underlying the BoundedVec.
31
+ * @param maxLen - the max length of the BoundedVec.
32
+ * @returns a tuple representing a BoundedVec.
33
+ */
34
+ export declare function arrayToBoundedVec(bVecStorage: ACVMField[], maxLen: number): [ACVMField[], ACVMField];
24
35
  //# sourceMappingURL=serialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/private/acvm/serialize.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgBjD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GACrF,SAAS,CAYX;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,qBAExD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,uBAKnG"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/private/acvm/serialize.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAgBjD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GACrF,SAAS,CAYX;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,qBAExD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,uBAKnG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CAG3F;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CASpG"}
@@ -44,3 +44,30 @@ import { Fr } from '@aztec/foundation/fields';
44
44
  return witness;
45
45
  }, new Map());
46
46
  }
47
+ export function bufferToU8Array(buffer) {
48
+ return Array.from(buffer).map((byte)=>toACVMField(BigInt(byte)));
49
+ }
50
+ export function bufferToBoundedVec(buffer, maxLen) {
51
+ const u8Array = bufferToU8Array(buffer);
52
+ return arrayToBoundedVec(u8Array, maxLen);
53
+ }
54
+ /**
55
+ * Converts a ForeignCallArray into a tuple which represents a nr BoundedVec.
56
+ * If the input array is shorter than the maxLen, it pads the result with zeros,
57
+ * so that nr can correctly coerce this result into a BoundedVec.
58
+ * @param bVecStorage - The array underlying the BoundedVec.
59
+ * @param maxLen - the max length of the BoundedVec.
60
+ * @returns a tuple representing a BoundedVec.
61
+ */ export function arrayToBoundedVec(bVecStorage, maxLen) {
62
+ if (bVecStorage.length > maxLen) {
63
+ throw new Error(`Array of length ${bVecStorage.length} larger than maxLen ${maxLen}`);
64
+ }
65
+ const lengthDiff = maxLen - bVecStorage.length;
66
+ const zeroPaddingArray = Array(lengthDiff).fill(toACVMField(BigInt(0)));
67
+ const storage = bVecStorage.concat(zeroPaddingArray);
68
+ const len = toACVMField(BigInt(bVecStorage.length));
69
+ return [
70
+ storage,
71
+ len
72
+ ];
73
+ }
@@ -1,5 +1,5 @@
1
- import type { Fr } from '@aztec/foundation/fields';
2
- import type { FunctionArtifact, FunctionSelector } from '@aztec/stdlib/abi';
1
+ import type { Fr, Point } from '@aztec/foundation/fields';
2
+ import type { FunctionArtifact, FunctionArtifactWithContractName, FunctionSelector } from '@aztec/stdlib/abi';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { L2Block } from '@aztec/stdlib/block';
5
5
  import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
@@ -8,7 +8,7 @@ import { IndexedTaggingSecret, LogWithTxData, TxScopedL2Log } from '@aztec/stdli
8
8
  import type { NoteStatus } from '@aztec/stdlib/note';
9
9
  import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
10
10
  import type { BlockHeader } from '@aztec/stdlib/tx';
11
- import type { CommitmentsDB } from '../common/db_interfaces.js';
11
+ import type { CommitmentsDBInterface } from '../common/db_interfaces.js';
12
12
  import type { NoteData } from './acvm/index.js';
13
13
  /**
14
14
  * Error thrown when a contract is not found in the database.
@@ -25,7 +25,7 @@ export declare class ContractClassNotFoundError extends Error {
25
25
  /**
26
26
  * The interface for the data layer required to perform private and unconstrained execution.
27
27
  */
28
- export interface ExecutionDataProvider extends CommitmentsDB {
28
+ export interface ExecutionDataProvider extends CommitmentsDBInterface {
29
29
  /**
30
30
  * Returns a contract instance associated with an address, if available.
31
31
  * @param address - Address.
@@ -39,12 +39,6 @@ export interface ExecutionDataProvider extends CommitmentsDB {
39
39
  * @throws An error if the account is not registered in the database.
40
40
  */
41
41
  getCompleteAddress(account: AztecAddress): Promise<CompleteAddress>;
42
- /**
43
- * Retrieve the auth witness for a given message hash.
44
- * @param messageHash - The message hash.
45
- * @returns A Promise that resolves to an array of field elements representing the auth witness.
46
- */
47
- getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
48
42
  /**
49
43
  * Retrieve keys associated with a specific master public key and app address.
50
44
  * @param pkMHash - The master public key hash.
@@ -72,7 +66,7 @@ export interface ExecutionDataProvider extends CommitmentsDB {
72
66
  * @param selector - The corresponding function selector.
73
67
  * @returns A Promise that resolves to a FunctionArtifact object.
74
68
  */
75
- getFunctionArtifact(contractAddress: AztecAddress, selector: FunctionSelector): Promise<FunctionArtifact>;
69
+ getFunctionArtifact(contractAddress: AztecAddress, selector: FunctionSelector): Promise<FunctionArtifactWithContractName>;
76
70
  /**
77
71
  * Generates a stable function name for debug purposes.
78
72
  * @param contractAddress - The contract address.
@@ -131,7 +125,7 @@ export interface ExecutionDataProvider extends CommitmentsDB {
131
125
  * @param blockNumber - The block number at which to get the witness.
132
126
  * @param leafSlot - The slot of the public data in the public data tree.
133
127
  */
134
- getPublicDataTreeWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
128
+ getPublicDataWitness(blockNumber: number, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
135
129
  /**
136
130
  * Gets the storage value at the given contract storage slot.
137
131
  *
@@ -192,10 +186,11 @@ export interface ExecutionDataProvider extends CommitmentsDB {
192
186
  syncTaggedLogs(contractAddress: AztecAddress, maxBlockNumber: number, scopes?: AztecAddress[]): Promise<Map<string, TxScopedL2Log[]>>;
193
187
  /**
194
188
  * Processes the tagged logs returned by syncTaggedLogs by decrypting them and storing them in the database.
189
+ * @param contractAddress - The address of the contract that emitted the logs.
195
190
  * @param logs - The logs to process.
196
191
  * @param recipient - The recipient of the logs.
197
192
  */
198
- processTaggedLogs(logs: TxScopedL2Log[], recipient: AztecAddress): Promise<void>;
193
+ processTaggedLogs(contractAddress: AztecAddress, logs: TxScopedL2Log[], recipient: AztecAddress): Promise<void>;
199
194
  /**
200
195
  * Delivers the preimage and metadata of a committed note so that it can be later requested via the `getNotes`
201
196
  * oracle.
@@ -257,5 +252,12 @@ export interface ExecutionDataProvider extends CommitmentsDB {
257
252
  * @param numEntries - The number of entries to copy.
258
253
  */
259
254
  copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
255
+ /**
256
+ * Retrieves the shared secret for a given address and ephemeral public key.
257
+ * @param address - The address to get the secret for.
258
+ * @param ephPk - The ephemeral public key to get the secret for.
259
+ * @returns The secret for the given address.
260
+ */
261
+ getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
260
262
  }
261
263
  //# sourceMappingURL=execution_data_provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution_data_provider.d.ts","sourceRoot":"","sources":["../../src/private/execution_data_provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution_data_provider.d.ts","sourceRoot":"","sources":["../../src/private/execution_data_provider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
- import { type FunctionArtifact, type FunctionSelector } from '@aztec/stdlib/abi';
2
+ import { type FunctionArtifact, type FunctionArtifactWithContractName, type FunctionSelector } from '@aztec/stdlib/abi';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { ContractInstance } from '@aztec/stdlib/contract';
5
5
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
@@ -12,7 +12,7 @@ import type { SimulationProvider } from './providers/simulation_provider.js';
12
12
  /**
13
13
  * Execute a private function and return the execution result.
14
14
  */
15
- export declare function executePrivateFunction(simulator: SimulationProvider, privateExecutionOracle: PrivateExecutionOracle, artifact: FunctionArtifact, contractAddress: AztecAddress, functionSelector: FunctionSelector, log?: import("@aztec/foundation/log").Logger): Promise<PrivateCallExecutionResult>;
15
+ export declare function executePrivateFunction(simulator: SimulationProvider, privateExecutionOracle: PrivateExecutionOracle, artifact: FunctionArtifactWithContractName, contractAddress: AztecAddress, functionSelector: FunctionSelector, log?: import("@aztec/foundation/log").Logger): Promise<PrivateCallExecutionResult>;
16
16
  /**
17
17
  * Get the private circuit public inputs from the partial witness.
18
18
  * @param artifact - The function artifact
@@ -1 +1 @@
1
- {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/private/private_execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAsB,MAAM,mBAAmB,CAAC;AACrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAI9D,OAAO,EAAE,KAAK,WAAW,EAA4B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,kBAAkB,EAC7B,sBAAsB,EAAE,sBAAsB,EAC9C,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;AAED,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,EACxD,WAAW,EAAE,MAAM,eAWpB;AAED,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,YAAY,EAC7B,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,CAAC,EAAE,MAAM,iBAUrB"}
1
+ {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/private/private_execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EAEtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAI9D,OAAO,EAAE,KAAK,WAAW,EAA4B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,kBAAkB,EAC7B,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,gCAAgC,EAC1C,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA8DrC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B;AAED,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,EACxD,WAAW,EAAE,MAAM,eAWpB;AAED,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,YAAY,EAC7B,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,CAAC,EAAE,MAAM,iBAUrB"}