@aztec-labs/txe 6.0.0-nightly.20260829

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 (173) hide show
  1. package/dest/AuthRegistry-D4XJULH3.js +3 -0
  2. package/dest/AuthRegistry-D4XJULH3.js.map +7 -0
  3. package/dest/ContractClassRegistry-Q76MXQZD.js +3 -0
  4. package/dest/ContractClassRegistry-Q76MXQZD.js.map +7 -0
  5. package/dest/ContractInstanceRegistry-CTRARU77.js +3 -0
  6. package/dest/ContractInstanceRegistry-CTRARU77.js.map +7 -0
  7. package/dest/FeeJuice-YLTJXWYJ.js +3 -0
  8. package/dest/FeeJuice-YLTJXWYJ.js.map +7 -0
  9. package/dest/HandshakeRegistry-BRPEG7GL.js +3 -0
  10. package/dest/HandshakeRegistry-BRPEG7GL.js.map +7 -0
  11. package/dest/MultiCallEntrypoint-CJHMYQT5.js +3 -0
  12. package/dest/MultiCallEntrypoint-CJHMYQT5.js.map +7 -0
  13. package/dest/SchnorrAccount-OB4N4QIM.js +3 -0
  14. package/dest/SchnorrAccount-OB4N4QIM.js.map +7 -0
  15. package/dest/SchnorrInitializerlessAccount-TWGKRUSY.js +3 -0
  16. package/dest/SchnorrInitializerlessAccount-TWGKRUSY.js.map +7 -0
  17. package/dest/bin/check_txe_oracle_version.d.ts +2 -0
  18. package/dest/bin/check_txe_oracle_version.d.ts.map +1 -0
  19. package/dest/bin/check_txe_oracle_version.js +22 -0
  20. package/dest/bin/index.d.ts +3 -0
  21. package/dest/bin/index.d.ts.map +1 -0
  22. package/dest/bin/index.js +4 -0
  23. package/dest/bin/index.js.map +7 -0
  24. package/dest/bin/oracle_test_server.d.ts +3 -0
  25. package/dest/bin/oracle_test_server.d.ts.map +1 -0
  26. package/dest/bin/oracle_test_server.js +41 -0
  27. package/dest/chunk-32UHX7YY.js +3 -0
  28. package/dest/chunk-32UHX7YY.js.map +7 -0
  29. package/dest/chunk-F4QVFWNM.js +258 -0
  30. package/dest/chunk-F4QVFWNM.js.map +7 -0
  31. package/dest/chunk-LILEKW2X.js +304 -0
  32. package/dest/chunk-LILEKW2X.js.map +7 -0
  33. package/dest/constants.d.ts +7 -0
  34. package/dest/constants.d.ts.map +1 -0
  35. package/dest/constants.js +10 -0
  36. package/dest/dispatcher_pool.d.ts +67 -0
  37. package/dest/dispatcher_pool.d.ts.map +1 -0
  38. package/dest/dispatcher_pool.js +288 -0
  39. package/dest/index.d.ts +52 -0
  40. package/dest/index.d.ts.map +1 -0
  41. package/dest/index.js +102 -0
  42. package/dest/metafile.json +38805 -0
  43. package/dest/msgpackr_fr_extension.d.ts +2 -0
  44. package/dest/msgpackr_fr_extension.d.ts.map +1 -0
  45. package/dest/msgpackr_fr_extension.js +21 -0
  46. package/dest/oracle/interfaces.d.ts +90 -0
  47. package/dest/oracle/interfaces.d.ts.map +1 -0
  48. package/dest/oracle/interfaces.js +3 -0
  49. package/dest/oracle/noir-structs/gas_settings_data.d.ts +14 -0
  50. package/dest/oracle/noir-structs/gas_settings_data.d.ts.map +1 -0
  51. package/dest/oracle/noir-structs/gas_settings_data.js +1 -0
  52. package/dest/oracle/noir-structs/tx_effects_data.d.ts +11 -0
  53. package/dest/oracle/noir-structs/tx_effects_data.d.ts.map +1 -0
  54. package/dest/oracle/noir-structs/tx_effects_data.js +1 -0
  55. package/dest/oracle/tagging_secret_strategy.d.ts +12 -0
  56. package/dest/oracle/tagging_secret_strategy.d.ts.map +1 -0
  57. package/dest/oracle/tagging_secret_strategy.js +12 -0
  58. package/dest/oracle/test-resolver/default_fixtures.d.ts +16 -0
  59. package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
  60. package/dest/oracle/test-resolver/default_fixtures.js +207 -0
  61. package/dest/oracle/test-resolver/index.d.ts +9 -0
  62. package/dest/oracle/test-resolver/index.d.ts.map +1 -0
  63. package/dest/oracle/test-resolver/index.js +32 -0
  64. package/dest/oracle/test-resolver/resolver.d.ts +48 -0
  65. package/dest/oracle/test-resolver/resolver.d.ts.map +1 -0
  66. package/dest/oracle/test-resolver/resolver.js +181 -0
  67. package/dest/oracle/txe_oracle_public_context.d.ts +58 -0
  68. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -0
  69. package/dest/oracle/txe_oracle_public_context.js +170 -0
  70. package/dest/oracle/txe_oracle_registry.d.ts +164 -0
  71. package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
  72. package/dest/oracle/txe_oracle_registry.js +753 -0
  73. package/dest/oracle/txe_oracle_top_level_context.d.ts +128 -0
  74. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -0
  75. package/dest/oracle/txe_oracle_top_level_context.js +815 -0
  76. package/dest/oracle/txe_oracle_version.d.ts +17 -0
  77. package/dest/oracle/txe_oracle_version.d.ts.map +1 -0
  78. package/dest/oracle/txe_oracle_version.js +14 -0
  79. package/dest/oracle/txe_private_execution_oracle.d.ts +17 -0
  80. package/dest/oracle/txe_private_execution_oracle.d.ts.map +1 -0
  81. package/dest/oracle/txe_private_execution_oracle.js +15 -0
  82. package/dest/rpc_server.d.ts +14 -0
  83. package/dest/rpc_server.d.ts.map +1 -0
  84. package/dest/rpc_server.js +78 -0
  85. package/dest/rpc_translator.d.ts +140 -0
  86. package/dest/rpc_translator.d.ts.map +1 -0
  87. package/dest/rpc_translator.js +976 -0
  88. package/dest/server.bundle.js +3 -0
  89. package/dest/server.bundle.js.map +7 -0
  90. package/dest/state_machine/archiver.d.ts +32 -0
  91. package/dest/state_machine/archiver.d.ts.map +1 -0
  92. package/dest/state_machine/archiver.js +95 -0
  93. package/dest/state_machine/dummy_p2p_client.d.ts +69 -0
  94. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -0
  95. package/dest/state_machine/dummy_p2p_client.js +180 -0
  96. package/dest/state_machine/global_variable_builder.d.ts +15 -0
  97. package/dest/state_machine/global_variable_builder.d.ts.map +1 -0
  98. package/dest/state_machine/global_variable_builder.js +25 -0
  99. package/dest/state_machine/index.d.ts +22 -0
  100. package/dest/state_machine/index.d.ts.map +1 -0
  101. package/dest/state_machine/index.js +110 -0
  102. package/dest/state_machine/mock_epoch_cache.d.ts +43 -0
  103. package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -0
  104. package/dest/state_machine/mock_epoch_cache.js +88 -0
  105. package/dest/state_machine/synchronizer.d.ts +41 -0
  106. package/dest/state_machine/synchronizer.d.ts.map +1 -0
  107. package/dest/state_machine/synchronizer.js +70 -0
  108. package/dest/txe_session.d.ts +179 -0
  109. package/dest/txe_session.d.ts.map +1 -0
  110. package/dest/txe_session.js +697 -0
  111. package/dest/utils/block_creation.d.ts +28 -0
  112. package/dest/utils/block_creation.d.ts.map +1 -0
  113. package/dest/utils/block_creation.js +59 -0
  114. package/dest/utils/encoding.d.ts +194 -0
  115. package/dest/utils/encoding.d.ts.map +1 -0
  116. package/dest/utils/encoding.js +136 -0
  117. package/dest/utils/expected_failure_error.d.ts +4 -0
  118. package/dest/utils/expected_failure_error.d.ts.map +1 -0
  119. package/dest/utils/expected_failure_error.js +5 -0
  120. package/dest/utils/tx_effect_creation.d.ts +5 -0
  121. package/dest/utils/tx_effect_creation.d.ts.map +1 -0
  122. package/dest/utils/tx_effect_creation.js +12 -0
  123. package/dest/utils/txe_account_store.d.ts +10 -0
  124. package/dest/utils/txe_account_store.d.ts.map +1 -0
  125. package/dest/utils/txe_account_store.js +17 -0
  126. package/dest/utils/txe_artifact_resolver.d.ts +36 -0
  127. package/dest/utils/txe_artifact_resolver.d.ts.map +1 -0
  128. package/dest/utils/txe_artifact_resolver.js +160 -0
  129. package/dest/utils/txe_public_contract_data_source.d.ts +20 -0
  130. package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -0
  131. package/dest/utils/txe_public_contract_data_source.js +51 -0
  132. package/dest/worker.bundle.js +3 -0
  133. package/dest/worker.bundle.js.map +7 -0
  134. package/dest/worker.d.ts +2 -0
  135. package/dest/worker.d.ts.map +1 -0
  136. package/dest/worker.js +92 -0
  137. package/package.json +115 -0
  138. package/src/bin/check_txe_oracle_version.ts +31 -0
  139. package/src/bin/index.ts +49 -0
  140. package/src/bin/oracle_test_server.ts +51 -0
  141. package/src/constants.ts +13 -0
  142. package/src/dispatcher_pool.ts +319 -0
  143. package/src/index.ts +152 -0
  144. package/src/msgpackr_fr_extension.ts +22 -0
  145. package/src/oracle/interfaces.ts +125 -0
  146. package/src/oracle/noir-structs/gas_settings_data.ts +16 -0
  147. package/src/oracle/noir-structs/tx_effects_data.ts +11 -0
  148. package/src/oracle/tagging_secret_strategy.ts +25 -0
  149. package/src/oracle/test-resolver/default_fixtures.ts +278 -0
  150. package/src/oracle/test-resolver/index.ts +43 -0
  151. package/src/oracle/test-resolver/resolver.ts +245 -0
  152. package/src/oracle/txe_oracle_public_context.ts +220 -0
  153. package/src/oracle/txe_oracle_registry.ts +501 -0
  154. package/src/oracle/txe_oracle_top_level_context.ts +1086 -0
  155. package/src/oracle/txe_oracle_version.ts +17 -0
  156. package/src/oracle/txe_private_execution_oracle.ts +30 -0
  157. package/src/rpc_server.ts +86 -0
  158. package/src/rpc_translator.ts +1229 -0
  159. package/src/state_machine/archiver.ts +118 -0
  160. package/src/state_machine/dummy_p2p_client.ts +264 -0
  161. package/src/state_machine/global_variable_builder.ts +39 -0
  162. package/src/state_machine/index.ts +152 -0
  163. package/src/state_machine/mock_epoch_cache.ts +111 -0
  164. package/src/state_machine/synchronizer.ts +105 -0
  165. package/src/txe_session.ts +1107 -0
  166. package/src/utils/block_creation.ts +91 -0
  167. package/src/utils/encoding.ts +171 -0
  168. package/src/utils/expected_failure_error.ts +5 -0
  169. package/src/utils/tx_effect_creation.ts +28 -0
  170. package/src/utils/txe_account_store.ts +23 -0
  171. package/src/utils/txe_artifact_resolver.ts +217 -0
  172. package/src/utils/txe_public_contract_data_source.ts +60 -0
  173. package/src/worker.ts +98 -0
@@ -0,0 +1,1229 @@
1
+ import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from '@aztec-labs/pxe/simulator';
2
+
3
+ import type { IAvmExecutionOracle, ITxeExecutionOracle } from './oracle/interfaces.js';
4
+ import { callTxeHandler } from './oracle/txe_oracle_registry.js';
5
+ import type { TXESessionStateHandler } from './txe_session.js';
6
+ import type { ForeignCallArgs } from './utils/encoding.js';
7
+
8
+ export class UnavailableOracleError extends Error {
9
+ constructor(oracleName: string) {
10
+ super(`${oracleName} oracles not available with the current handler`);
11
+ }
12
+ }
13
+
14
+ export class RPCTranslator {
15
+ /**
16
+ * Create a new instance of `RPCTranslator` that will translate all TXE RPC calls to and from the foreign
17
+ * (`ForeignCallSingle`, `ForeignCallResult`, etc.) and native TS types, delegating actual execution of the oracles
18
+ * to the different handlers.
19
+ * @param stateHandler The handler that will process TXE session state transitions, such as entering a private or
20
+ * public context.
21
+ * @param oracleHandler The handler that will process all other oracle calls that are not directly related to session
22
+ * state.
23
+ */
24
+ constructor(
25
+ private stateHandler: TXESessionStateHandler,
26
+ private oracleHandler:
27
+ | IMiscOracle
28
+ | IUtilityExecutionOracle
29
+ | IPrivateExecutionOracle
30
+ | IAvmExecutionOracle
31
+ | ITxeExecutionOracle,
32
+ ) {}
33
+
34
+ // Note: If you rename the following functions to not start with "handlerAs", you must also update the validation
35
+ // check in `TXESession.processFunction`.
36
+
37
+ private handlerAsMisc(): IMiscOracle {
38
+ if (!('isMisc' in this.oracleHandler)) {
39
+ throw new UnavailableOracleError('Misc');
40
+ }
41
+
42
+ return this.oracleHandler;
43
+ }
44
+
45
+ private handlerAsUtility(): IUtilityExecutionOracle {
46
+ if (!('isUtility' in this.oracleHandler)) {
47
+ throw new UnavailableOracleError('Utility');
48
+ }
49
+
50
+ return this.oracleHandler;
51
+ }
52
+
53
+ private handlerAsPrivate(): IPrivateExecutionOracle {
54
+ if (!('isPrivate' in this.oracleHandler)) {
55
+ throw new UnavailableOracleError('Private');
56
+ }
57
+
58
+ return this.oracleHandler;
59
+ }
60
+
61
+ private handlerAsAvm(): IAvmExecutionOracle {
62
+ if (!('isAvm' in this.oracleHandler)) {
63
+ throw new UnavailableOracleError('Avm');
64
+ }
65
+
66
+ return this.oracleHandler;
67
+ }
68
+
69
+ private handlerAsTxe(): ITxeExecutionOracle {
70
+ if (!('isTxe' in this.oracleHandler)) {
71
+ throw new UnavailableOracleError('Txe');
72
+ }
73
+
74
+ return this.oracleHandler;
75
+ }
76
+
77
+ // eslint-disable-next-line camelcase
78
+ aztec_txe_assertCompatibleOracleVersion(...inputs: ForeignCallArgs) {
79
+ return callTxeHandler({
80
+ oracle: 'aztec_txe_assertCompatibleOracleVersion',
81
+ inputs,
82
+ handler: ([major, minor]) => {
83
+ this.stateHandler.setTxeOracleVersion(major, minor);
84
+ },
85
+ });
86
+ }
87
+
88
+ // TXE session state transition functions - these get handled by the state handler
89
+
90
+ // eslint-disable-next-line camelcase
91
+ aztec_txe_setTopLevelTXEContext() {
92
+ return callTxeHandler({
93
+ oracle: 'aztec_txe_setTopLevelTXEContext',
94
+ inputs: [],
95
+ handler: () => this.stateHandler.enterTopLevelState(),
96
+ });
97
+ }
98
+
99
+ // eslint-disable-next-line camelcase
100
+ aztec_txe_setPrivateTXEContext(...inputs: ForeignCallArgs) {
101
+ return callTxeHandler({
102
+ oracle: 'aztec_txe_setPrivateTXEContext',
103
+ inputs,
104
+ handler: ([contractAddress, anchorBlockNumber, gasSettings]) =>
105
+ this.stateHandler.enterPrivateState(contractAddress, anchorBlockNumber, gasSettings),
106
+ });
107
+ }
108
+
109
+ // eslint-disable-next-line camelcase
110
+ aztec_txe_setPublicTXEContext(...inputs: ForeignCallArgs) {
111
+ return callTxeHandler({
112
+ oracle: 'aztec_txe_setPublicTXEContext',
113
+ inputs,
114
+ handler: ([contractAddress]) => this.stateHandler.enterPublicState(contractAddress),
115
+ });
116
+ }
117
+
118
+ // eslint-disable-next-line camelcase
119
+ aztec_txe_setUtilityTXEContext(...inputs: ForeignCallArgs) {
120
+ return callTxeHandler({
121
+ oracle: 'aztec_txe_setUtilityTXEContext',
122
+ inputs,
123
+ handler: ([contractAddress]) => this.stateHandler.enterUtilityState(contractAddress),
124
+ });
125
+ }
126
+
127
+ // Other oracles - these get handled by the oracle handler
128
+
129
+ // TXE-specific oracles
130
+
131
+ // eslint-disable-next-line camelcase
132
+ aztec_txe_getDefaultAddress() {
133
+ return callTxeHandler({
134
+ oracle: 'aztec_txe_getDefaultAddress',
135
+ inputs: [],
136
+ handler: () => this.handlerAsTxe().getDefaultAddress(),
137
+ });
138
+ }
139
+
140
+ // eslint-disable-next-line camelcase
141
+ aztec_txe_getNextBlockNumber() {
142
+ return callTxeHandler({
143
+ oracle: 'aztec_txe_getNextBlockNumber',
144
+ inputs: [],
145
+ handler: () => this.handlerAsTxe().getNextBlockNumber(),
146
+ });
147
+ }
148
+
149
+ // eslint-disable-next-line camelcase
150
+ aztec_txe_getNextBlockTimestamp() {
151
+ return callTxeHandler({
152
+ oracle: 'aztec_txe_getNextBlockTimestamp',
153
+ inputs: [],
154
+ handler: () => this.handlerAsTxe().getNextBlockTimestamp(),
155
+ });
156
+ }
157
+
158
+ // eslint-disable-next-line camelcase
159
+ aztec_txe_advanceBlocksBy(...inputs: ForeignCallArgs) {
160
+ return callTxeHandler({
161
+ oracle: 'aztec_txe_advanceBlocksBy',
162
+ inputs,
163
+ handler: ([blocks]) => this.handlerAsTxe().advanceBlocksBy(blocks),
164
+ });
165
+ }
166
+
167
+ // eslint-disable-next-line camelcase
168
+ aztec_txe_advanceTimestampBy(...inputs: ForeignCallArgs) {
169
+ return callTxeHandler({
170
+ oracle: 'aztec_txe_advanceTimestampBy',
171
+ inputs,
172
+ handler: ([duration]) => this.handlerAsTxe().advanceTimestampBy(duration),
173
+ });
174
+ }
175
+
176
+ // eslint-disable-next-line camelcase
177
+ aztec_txe_deploy(...inputs: ForeignCallArgs) {
178
+ return callTxeHandler({
179
+ oracle: 'aztec_txe_deploy',
180
+ inputs,
181
+ handler: ([contractPath, initializer, _, args, secret, salt, deployer]) =>
182
+ this.handlerAsTxe().deploy(contractPath, initializer, args, secret, salt, deployer),
183
+ });
184
+ }
185
+
186
+ // eslint-disable-next-line camelcase
187
+ aztec_txe_createAccount(...inputs: ForeignCallArgs) {
188
+ return callTxeHandler({
189
+ oracle: 'aztec_txe_createAccount',
190
+ inputs,
191
+ handler: ([secret, partialAddress]) => this.handlerAsTxe().createAccount(secret, partialAddress),
192
+ });
193
+ }
194
+
195
+ // eslint-disable-next-line camelcase
196
+ aztec_txe_addAccount(...inputs: ForeignCallArgs) {
197
+ return callTxeHandler({
198
+ oracle: 'aztec_txe_addAccount',
199
+ inputs,
200
+ handler: ([secret]) => this.handlerAsTxe().addAccount(secret),
201
+ });
202
+ }
203
+
204
+ // eslint-disable-next-line camelcase
205
+ aztec_txe_addAuthWitness(...inputs: ForeignCallArgs) {
206
+ return callTxeHandler({
207
+ oracle: 'aztec_txe_addAuthWitness',
208
+ inputs,
209
+ handler: ([address, messageHash]) => this.handlerAsTxe().addAuthWitness(address, messageHash),
210
+ });
211
+ }
212
+
213
+ // eslint-disable-next-line camelcase
214
+ aztec_txe_sendL1ToL2Message(...inputs: ForeignCallArgs) {
215
+ return callTxeHandler({
216
+ oracle: 'aztec_txe_sendL1ToL2Message',
217
+ inputs,
218
+ handler: ([content, secretHash, sender, recipient]) =>
219
+ this.handlerAsTxe().sendL1ToL2Message(content, secretHash, sender, recipient),
220
+ });
221
+ }
222
+
223
+ // eslint-disable-next-line camelcase
224
+ aztec_txe_setTaggingSecretStrategies(...inputs: ForeignCallArgs) {
225
+ return callTxeHandler({
226
+ oracle: 'aztec_txe_setTaggingSecretStrategies',
227
+ inputs,
228
+ handler: ([unconstrainedStrategy, constrainedStrategy]) =>
229
+ this.handlerAsTxe().setTaggingSecretStrategies(unconstrainedStrategy, constrainedStrategy),
230
+ });
231
+ }
232
+
233
+ // eslint-disable-next-line camelcase
234
+ aztec_txe_setAuthorizeAllUtilityCallTargets(...inputs: ForeignCallArgs) {
235
+ return callTxeHandler({
236
+ oracle: 'aztec_txe_setAuthorizeAllUtilityCallTargets',
237
+ inputs,
238
+ handler: ([authorizeAll]) => this.handlerAsTxe().setAuthorizeAllUtilityCallTargets(authorizeAll),
239
+ });
240
+ }
241
+
242
+ // PXE oracles
243
+
244
+ // eslint-disable-next-line camelcase
245
+ aztec_misc_assertCompatibleOracleVersion(...inputs: ForeignCallArgs) {
246
+ return callTxeHandler({
247
+ oracle: 'aztec_misc_assertCompatibleOracleVersion',
248
+ inputs,
249
+ handler: ([major, minor]) => this.handlerAsMisc().assertCompatibleOracleVersion(major, minor),
250
+ });
251
+ }
252
+
253
+ // eslint-disable-next-line camelcase
254
+ aztec_misc_getRandomField() {
255
+ return callTxeHandler({
256
+ oracle: 'aztec_misc_getRandomField',
257
+ inputs: [],
258
+ handler: () => this.handlerAsMisc().getRandomField(),
259
+ });
260
+ }
261
+
262
+ // eslint-disable-next-line camelcase
263
+ aztec_txe_getLastBlockTimestamp() {
264
+ return callTxeHandler({
265
+ oracle: 'aztec_txe_getLastBlockTimestamp',
266
+ inputs: [],
267
+ handler: () => this.handlerAsTxe().getLastBlockTimestamp(),
268
+ });
269
+ }
270
+
271
+ // eslint-disable-next-line camelcase
272
+ aztec_txe_getLastTxEffects() {
273
+ return callTxeHandler({
274
+ oracle: 'aztec_txe_getLastTxEffects',
275
+ inputs: [],
276
+ handler: () => this.handlerAsTxe().getLastTxEffects(),
277
+ });
278
+ }
279
+
280
+ // eslint-disable-next-line camelcase
281
+ aztec_txe_getLastCallOffchainEffects() {
282
+ return callTxeHandler({
283
+ oracle: 'aztec_txe_getLastCallOffchainEffects',
284
+ inputs: [],
285
+ handler: () => this.stateHandler.getLastCallOffchainEffects(),
286
+ });
287
+ }
288
+
289
+ // eslint-disable-next-line camelcase
290
+ aztec_txe_getLastCallContext() {
291
+ return callTxeHandler({
292
+ oracle: 'aztec_txe_getLastCallContext',
293
+ inputs: [],
294
+ handler: () => this.stateHandler.getLastCallContext(),
295
+ });
296
+ }
297
+
298
+ // eslint-disable-next-line camelcase
299
+ aztec_txe_getPrivateEvents(...inputs: ForeignCallArgs) {
300
+ return callTxeHandler({
301
+ oracle: 'aztec_txe_getPrivateEvents',
302
+ inputs,
303
+ handler: ([selector, contractAddress, scope]) =>
304
+ this.stateHandler.getPrivateEvents(selector, contractAddress, scope),
305
+ });
306
+ }
307
+
308
+ // eslint-disable-next-line camelcase
309
+ aztec_prv_setHashPreimage(...inputs: ForeignCallArgs) {
310
+ return callTxeHandler({
311
+ oracle: 'aztec_prv_setHashPreimage',
312
+ inputs,
313
+ handler: ([values, hash]) => this.handlerAsPrivate().setHashPreimage(values, hash),
314
+ });
315
+ }
316
+
317
+ // eslint-disable-next-line camelcase
318
+ aztec_prv_getHashPreimage(...inputs: ForeignCallArgs) {
319
+ return callTxeHandler({
320
+ oracle: 'aztec_prv_getHashPreimage',
321
+ inputs,
322
+ handler: ([hash]) => this.handlerAsPrivate().getHashPreimage(hash),
323
+ });
324
+ }
325
+
326
+ // eslint-disable-next-line camelcase
327
+ aztec_misc_log(...inputs: ForeignCallArgs) {
328
+ return callTxeHandler({
329
+ oracle: 'aztec_misc_log',
330
+ inputs,
331
+ handler: ([level, message, fieldsSize, fields]) => this.handlerAsMisc().log(level, message, fieldsSize, fields),
332
+ });
333
+ }
334
+
335
+ // eslint-disable-next-line camelcase
336
+ aztec_utl_getFromPublicStorage(...inputs: ForeignCallArgs) {
337
+ return callTxeHandler({
338
+ oracle: 'aztec_utl_getFromPublicStorage',
339
+ inputs,
340
+ handler: ([blockHash, contractAddress, startStorageSlot, numberOfElements]) =>
341
+ this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements),
342
+ });
343
+ }
344
+
345
+ // eslint-disable-next-line camelcase
346
+ aztec_utl_getPublicDataWitness(...inputs: ForeignCallArgs) {
347
+ return callTxeHandler({
348
+ oracle: 'aztec_utl_getPublicDataWitness',
349
+ inputs,
350
+ handler: ([blockHash, leafSlot]) => this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot),
351
+ });
352
+ }
353
+
354
+ // eslint-disable-next-line camelcase
355
+ aztec_utl_getNotes(...inputs: ForeignCallArgs) {
356
+ return callTxeHandler({
357
+ oracle: 'aztec_utl_getNotes',
358
+ inputs,
359
+ handler: ([
360
+ owner,
361
+ storageSlot,
362
+ numSelects,
363
+ selectByIndexes,
364
+ selectByOffsets,
365
+ selectByLengths,
366
+ selectValues,
367
+ selectComparators,
368
+ sortByIndexes,
369
+ sortByOffsets,
370
+ sortByLengths,
371
+ sortOrder,
372
+ limit,
373
+ offset,
374
+ status,
375
+ maxNotes,
376
+ packedHintedNoteLength,
377
+ ]) =>
378
+ this.handlerAsUtility().getNotes(
379
+ owner,
380
+ storageSlot,
381
+ numSelects,
382
+ selectByIndexes,
383
+ selectByOffsets,
384
+ selectByLengths,
385
+ selectValues,
386
+ selectComparators,
387
+ sortByIndexes,
388
+ sortByOffsets,
389
+ sortByLengths,
390
+ sortOrder,
391
+ limit,
392
+ offset,
393
+ status,
394
+ maxNotes,
395
+ packedHintedNoteLength,
396
+ ),
397
+ });
398
+ }
399
+
400
+ // eslint-disable-next-line camelcase
401
+ aztec_prv_notifyCreatedNote(...inputs: ForeignCallArgs) {
402
+ return callTxeHandler({
403
+ oracle: 'aztec_prv_notifyCreatedNote',
404
+ inputs,
405
+ handler: ([owner, storageSlot, randomness, noteTypeId, note, noteHash, counter]) =>
406
+ this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter),
407
+ });
408
+ }
409
+
410
+ // eslint-disable-next-line camelcase
411
+ aztec_prv_notifyNullifiedNote(...inputs: ForeignCallArgs) {
412
+ return callTxeHandler({
413
+ oracle: 'aztec_prv_notifyNullifiedNote',
414
+ inputs,
415
+ handler: ([innerNullifier, noteHash, counter]) =>
416
+ this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter),
417
+ });
418
+ }
419
+
420
+ // eslint-disable-next-line camelcase
421
+ aztec_prv_notifyCreatedNullifier(...inputs: ForeignCallArgs) {
422
+ return callTxeHandler({
423
+ oracle: 'aztec_prv_notifyCreatedNullifier',
424
+ inputs,
425
+ handler: ([innerNullifier]) => this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier),
426
+ });
427
+ }
428
+
429
+ // eslint-disable-next-line camelcase
430
+ aztec_prv_isNullifierPending(...inputs: ForeignCallArgs) {
431
+ return callTxeHandler({
432
+ oracle: 'aztec_prv_isNullifierPending',
433
+ inputs,
434
+ handler: ([innerNullifier, contractAddress]) =>
435
+ this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress),
436
+ });
437
+ }
438
+
439
+ // eslint-disable-next-line camelcase
440
+ aztec_utl_doesNullifierExist(...inputs: ForeignCallArgs) {
441
+ return callTxeHandler({
442
+ oracle: 'aztec_utl_doesNullifierExist',
443
+ inputs,
444
+ handler: ([innerNullifier]) => this.handlerAsUtility().doesNullifierExist(innerNullifier),
445
+ });
446
+ }
447
+
448
+ // eslint-disable-next-line camelcase
449
+ aztec_utl_getContractInstance(...inputs: ForeignCallArgs) {
450
+ return callTxeHandler({
451
+ oracle: 'aztec_utl_getContractInstance',
452
+ inputs,
453
+ handler: ([address]) => this.handlerAsUtility().getContractInstance(address),
454
+ });
455
+ }
456
+
457
+ // eslint-disable-next-line camelcase
458
+ aztec_utl_getPublicKeysAndPartialAddress(...inputs: ForeignCallArgs) {
459
+ return callTxeHandler({
460
+ oracle: 'aztec_utl_getPublicKeysAndPartialAddress',
461
+ inputs,
462
+ handler: ([address]) => this.handlerAsUtility().getPublicKeysAndPartialAddress(address),
463
+ });
464
+ }
465
+
466
+ // eslint-disable-next-line camelcase
467
+ aztec_utl_getKeyValidationRequest(...inputs: ForeignCallArgs) {
468
+ return callTxeHandler({
469
+ oracle: 'aztec_utl_getKeyValidationRequest',
470
+ inputs,
471
+ handler: ([pkMHash, keyIndex]) => this.handlerAsUtility().getKeyValidationRequest(pkMHash, keyIndex),
472
+ });
473
+ }
474
+
475
+ // eslint-disable-next-line camelcase
476
+ aztec_prv_callPrivateFunction(...inputs: ForeignCallArgs) {
477
+ return callTxeHandler({
478
+ oracle: 'aztec_prv_callPrivateFunction',
479
+ inputs,
480
+ handler: ([contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall]) =>
481
+ this.handlerAsPrivate().callPrivateFunction(
482
+ contractAddress,
483
+ functionSelector,
484
+ argsHash,
485
+ sideEffectCounter,
486
+ isStaticCall,
487
+ ),
488
+ });
489
+ }
490
+
491
+ // eslint-disable-next-line camelcase
492
+ aztec_utl_getNullifierMembershipWitness(...inputs: ForeignCallArgs) {
493
+ return callTxeHandler({
494
+ oracle: 'aztec_utl_getNullifierMembershipWitness',
495
+ inputs,
496
+ handler: ([blockHash, nullifier]) => this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier),
497
+ });
498
+ }
499
+
500
+ // eslint-disable-next-line camelcase
501
+ aztec_utl_getL1ToL2MembershipWitnessV2(...inputs: ForeignCallArgs) {
502
+ return callTxeHandler({
503
+ oracle: 'aztec_utl_getL1ToL2MembershipWitnessV2',
504
+ inputs,
505
+ handler: ([messageHash, nullifier]) =>
506
+ this.handlerAsUtility().getL1ToL2MembershipWitnessV2(messageHash, nullifier),
507
+ });
508
+ }
509
+
510
+ // eslint-disable-next-line camelcase
511
+ aztec_utl_getAuthWitness(...inputs: ForeignCallArgs) {
512
+ return callTxeHandler({
513
+ oracle: 'aztec_utl_getAuthWitness',
514
+ inputs,
515
+ handler: ([messageHash]) => this.handlerAsUtility().getAuthWitness(messageHash),
516
+ });
517
+ }
518
+
519
+ // eslint-disable-next-line camelcase
520
+ aztec_prv_assertValidPublicCalldata(...inputs: ForeignCallArgs) {
521
+ return callTxeHandler({
522
+ oracle: 'aztec_prv_assertValidPublicCalldata',
523
+ inputs,
524
+ handler: ([calldataHash]) => this.handlerAsPrivate().assertValidPublicCalldata(calldataHash),
525
+ });
526
+ }
527
+
528
+ // eslint-disable-next-line camelcase
529
+ aztec_prv_notifyRevertiblePhaseStart(...inputs: ForeignCallArgs) {
530
+ return callTxeHandler({
531
+ oracle: 'aztec_prv_notifyRevertiblePhaseStart',
532
+ inputs,
533
+ handler: ([minRevertibleSideEffectCounter]) =>
534
+ this.handlerAsPrivate().notifyRevertiblePhaseStart(minRevertibleSideEffectCounter),
535
+ });
536
+ }
537
+
538
+ // eslint-disable-next-line camelcase
539
+ aztec_prv_isExecutionInRevertiblePhase(...inputs: ForeignCallArgs) {
540
+ return callTxeHandler({
541
+ oracle: 'aztec_prv_isExecutionInRevertiblePhase',
542
+ inputs,
543
+ handler: ([sideEffectCounter]) => this.handlerAsPrivate().isExecutionInRevertiblePhase(sideEffectCounter),
544
+ });
545
+ }
546
+
547
+ // eslint-disable-next-line camelcase
548
+ aztec_utl_getUtilityContext() {
549
+ return callTxeHandler({
550
+ oracle: 'aztec_utl_getUtilityContext',
551
+ inputs: [],
552
+ handler: () => this.handlerAsUtility().getUtilityContext(),
553
+ });
554
+ }
555
+
556
+ // eslint-disable-next-line camelcase
557
+ aztec_utl_getBlockHeader(...inputs: ForeignCallArgs) {
558
+ return callTxeHandler({
559
+ oracle: 'aztec_utl_getBlockHeader',
560
+ inputs,
561
+ handler: ([blockNumber]) => this.handlerAsUtility().getBlockHeader(blockNumber),
562
+ });
563
+ }
564
+
565
+ // eslint-disable-next-line camelcase
566
+ aztec_utl_getNoteHashMembershipWitness(...inputs: ForeignCallArgs) {
567
+ return callTxeHandler({
568
+ oracle: 'aztec_utl_getNoteHashMembershipWitness',
569
+ inputs,
570
+ handler: ([blockHash, noteHash]) => this.handlerAsUtility().getNoteHashMembershipWitness(blockHash, noteHash),
571
+ });
572
+ }
573
+
574
+ // eslint-disable-next-line camelcase
575
+ aztec_utl_getBlockHashMembershipWitness(...inputs: ForeignCallArgs) {
576
+ return callTxeHandler({
577
+ oracle: 'aztec_utl_getBlockHashMembershipWitness',
578
+ inputs,
579
+ handler: ([anchorBlockHash, blockHash]) =>
580
+ this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash),
581
+ });
582
+ }
583
+
584
+ // eslint-disable-next-line camelcase
585
+ aztec_utl_areBlockHashesInArchive(...inputs: ForeignCallArgs) {
586
+ return callTxeHandler({
587
+ oracle: 'aztec_utl_areBlockHashesInArchive',
588
+ inputs,
589
+ handler: ([anchorBlockHash, blockHashes]) =>
590
+ this.handlerAsUtility().areBlockHashesInArchive(anchorBlockHash, blockHashes),
591
+ });
592
+ }
593
+
594
+ // eslint-disable-next-line camelcase
595
+ aztec_utl_getLowNullifierMembershipWitness(...inputs: ForeignCallArgs) {
596
+ return callTxeHandler({
597
+ oracle: 'aztec_utl_getLowNullifierMembershipWitness',
598
+ inputs,
599
+ handler: ([blockHash, nullifier]) =>
600
+ this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier),
601
+ });
602
+ }
603
+
604
+ // eslint-disable-next-line camelcase
605
+ aztec_utl_getPendingTaggedLogsV2(...inputs: ForeignCallArgs) {
606
+ return callTxeHandler({
607
+ oracle: 'aztec_utl_getPendingTaggedLogsV2',
608
+ inputs,
609
+ handler: ([scope, providedSecrets]) => this.handlerAsUtility().getPendingTaggedLogsV2(scope, providedSecrets),
610
+ });
611
+ }
612
+
613
+ // eslint-disable-next-line camelcase
614
+ aztec_utl_validateAndStoreEnqueuedNotesAndEvents(...inputs: ForeignCallArgs) {
615
+ return callTxeHandler({
616
+ oracle: 'aztec_utl_validateAndStoreEnqueuedNotesAndEvents',
617
+ inputs,
618
+ handler: ([noteValidationRequests, eventValidationRequests, scope]) =>
619
+ this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(
620
+ noteValidationRequests,
621
+ eventValidationRequests,
622
+ scope,
623
+ ),
624
+ });
625
+ }
626
+
627
+ // eslint-disable-next-line camelcase
628
+ aztec_utl_getLogsByTagV2(...inputs: ForeignCallArgs) {
629
+ return callTxeHandler({
630
+ oracle: 'aztec_utl_getLogsByTagV2',
631
+ inputs,
632
+ handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot),
633
+ });
634
+ }
635
+
636
+ // eslint-disable-next-line camelcase
637
+ aztec_utl_getResolvedTxs(...inputs: ForeignCallArgs) {
638
+ return callTxeHandler({
639
+ oracle: 'aztec_utl_getResolvedTxs',
640
+ inputs,
641
+ handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getResolvedTxs(requestArrayBaseSlot),
642
+ });
643
+ }
644
+
645
+ // eslint-disable-next-line camelcase
646
+ aztec_utl_getTxEffects(...inputs: ForeignCallArgs) {
647
+ return callTxeHandler({
648
+ oracle: 'aztec_utl_getTxEffects',
649
+ inputs,
650
+ handler: ([txHashes]) => this.handlerAsUtility().getTxEffects(txHashes),
651
+ });
652
+ }
653
+
654
+ // eslint-disable-next-line camelcase
655
+ aztec_utl_setCapsule(...inputs: ForeignCallArgs) {
656
+ return callTxeHandler({
657
+ oracle: 'aztec_utl_setCapsule',
658
+ inputs,
659
+ handler: ([contractAddress, slot, capsule, scope]) =>
660
+ this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope),
661
+ });
662
+ }
663
+
664
+ // eslint-disable-next-line camelcase
665
+ aztec_utl_getCapsule(...inputs: ForeignCallArgs) {
666
+ return callTxeHandler({
667
+ oracle: 'aztec_utl_getCapsule',
668
+ inputs,
669
+ handler: ([contractAddress, slot, tSize, scope]) =>
670
+ this.handlerAsUtility().getCapsule(contractAddress, slot, tSize, scope),
671
+ });
672
+ }
673
+
674
+ // eslint-disable-next-line camelcase
675
+ aztec_utl_deleteCapsule(...inputs: ForeignCallArgs) {
676
+ return callTxeHandler({
677
+ oracle: 'aztec_utl_deleteCapsule',
678
+ inputs,
679
+ handler: ([contractAddress, slot, scope]) => this.handlerAsUtility().deleteCapsule(contractAddress, slot, scope),
680
+ });
681
+ }
682
+
683
+ // eslint-disable-next-line camelcase
684
+ aztec_utl_copyCapsule(...inputs: ForeignCallArgs) {
685
+ return callTxeHandler({
686
+ oracle: 'aztec_utl_copyCapsule',
687
+ inputs,
688
+ handler: ([contractAddress, srcSlot, dstSlot, numEntries, scope]) =>
689
+ this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope),
690
+ });
691
+ }
692
+
693
+ // eslint-disable-next-line camelcase
694
+ aztec_utl_pushEphemeral(...inputs: ForeignCallArgs) {
695
+ return callTxeHandler({
696
+ oracle: 'aztec_utl_pushEphemeral',
697
+ inputs,
698
+ handler: ([slot, elements]) => this.handlerAsUtility().pushEphemeral(slot, elements),
699
+ });
700
+ }
701
+
702
+ // eslint-disable-next-line camelcase
703
+ aztec_utl_popEphemeral(...inputs: ForeignCallArgs) {
704
+ return callTxeHandler({
705
+ oracle: 'aztec_utl_popEphemeral',
706
+ inputs,
707
+ handler: ([slot]) => this.handlerAsUtility().popEphemeral(slot),
708
+ });
709
+ }
710
+
711
+ // eslint-disable-next-line camelcase
712
+ aztec_utl_getEphemeral(...inputs: ForeignCallArgs) {
713
+ return callTxeHandler({
714
+ oracle: 'aztec_utl_getEphemeral',
715
+ inputs,
716
+ handler: ([slot, index]) => this.handlerAsUtility().getEphemeral(slot, index),
717
+ });
718
+ }
719
+
720
+ // eslint-disable-next-line camelcase
721
+ aztec_utl_setEphemeral(...inputs: ForeignCallArgs) {
722
+ return callTxeHandler({
723
+ oracle: 'aztec_utl_setEphemeral',
724
+ inputs,
725
+ handler: ([slot, index, elements]) => this.handlerAsUtility().setEphemeral(slot, index, elements),
726
+ });
727
+ }
728
+
729
+ // eslint-disable-next-line camelcase
730
+ aztec_utl_getEphemeralLen(...inputs: ForeignCallArgs) {
731
+ return callTxeHandler({
732
+ oracle: 'aztec_utl_getEphemeralLen',
733
+ inputs,
734
+ handler: ([slot]) => this.handlerAsUtility().getEphemeralLen(slot),
735
+ });
736
+ }
737
+
738
+ // eslint-disable-next-line camelcase
739
+ aztec_utl_removeEphemeral(...inputs: ForeignCallArgs) {
740
+ return callTxeHandler({
741
+ oracle: 'aztec_utl_removeEphemeral',
742
+ inputs,
743
+ handler: ([slot, index]) => this.handlerAsUtility().removeEphemeral(slot, index),
744
+ });
745
+ }
746
+
747
+ // eslint-disable-next-line camelcase
748
+ aztec_utl_clearEphemeral(...inputs: ForeignCallArgs) {
749
+ return callTxeHandler({
750
+ oracle: 'aztec_utl_clearEphemeral',
751
+ inputs,
752
+ handler: ([slot]) => this.handlerAsUtility().clearEphemeral(slot),
753
+ });
754
+ }
755
+
756
+ // eslint-disable-next-line camelcase
757
+ aztec_utl_pushTransient(...inputs: ForeignCallArgs) {
758
+ return callTxeHandler({
759
+ oracle: 'aztec_utl_pushTransient',
760
+ inputs,
761
+ handler: ([slot, elements]) => this.handlerAsUtility().pushTransient(slot, elements),
762
+ });
763
+ }
764
+
765
+ // eslint-disable-next-line camelcase
766
+ aztec_utl_popTransient(...inputs: ForeignCallArgs) {
767
+ return callTxeHandler({
768
+ oracle: 'aztec_utl_popTransient',
769
+ inputs,
770
+ handler: ([slot]) => this.handlerAsUtility().popTransient(slot),
771
+ });
772
+ }
773
+
774
+ // eslint-disable-next-line camelcase
775
+ aztec_utl_getTransient(...inputs: ForeignCallArgs) {
776
+ return callTxeHandler({
777
+ oracle: 'aztec_utl_getTransient',
778
+ inputs,
779
+ handler: ([slot, index]) => this.handlerAsUtility().getTransient(slot, index),
780
+ });
781
+ }
782
+
783
+ // eslint-disable-next-line camelcase
784
+ aztec_utl_setTransient(...inputs: ForeignCallArgs) {
785
+ return callTxeHandler({
786
+ oracle: 'aztec_utl_setTransient',
787
+ inputs,
788
+ handler: ([slot, index, elements]) => this.handlerAsUtility().setTransient(slot, index, elements),
789
+ });
790
+ }
791
+
792
+ // eslint-disable-next-line camelcase
793
+ aztec_utl_getTransientLen(...inputs: ForeignCallArgs) {
794
+ return callTxeHandler({
795
+ oracle: 'aztec_utl_getTransientLen',
796
+ inputs,
797
+ handler: ([slot]) => this.handlerAsUtility().getTransientLen(slot),
798
+ });
799
+ }
800
+
801
+ // eslint-disable-next-line camelcase
802
+ aztec_utl_removeTransient(...inputs: ForeignCallArgs) {
803
+ return callTxeHandler({
804
+ oracle: 'aztec_utl_removeTransient',
805
+ inputs,
806
+ handler: ([slot, index]) => this.handlerAsUtility().removeTransient(slot, index),
807
+ });
808
+ }
809
+
810
+ // eslint-disable-next-line camelcase
811
+ aztec_utl_clearTransient(...inputs: ForeignCallArgs) {
812
+ return callTxeHandler({
813
+ oracle: 'aztec_utl_clearTransient',
814
+ inputs,
815
+ handler: ([slot]) => this.handlerAsUtility().clearTransient(slot),
816
+ });
817
+ }
818
+
819
+ // TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
820
+ // The compiler didn't throw an error, so it took me a while to learn of the existence of this file, and that I need
821
+ // to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
822
+ // existence of a txe_oracle method?
823
+ // eslint-disable-next-line camelcase
824
+ aztec_utl_decryptAes128(...inputs: ForeignCallArgs) {
825
+ return callTxeHandler({
826
+ oracle: 'aztec_utl_decryptAes128',
827
+ inputs,
828
+ handler: ([ciphertext, iv, symKey]) => this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey),
829
+ });
830
+ }
831
+
832
+ // eslint-disable-next-line camelcase
833
+ aztec_utl_getSharedSecrets(...inputs: ForeignCallArgs) {
834
+ return callTxeHandler({
835
+ oracle: 'aztec_utl_getSharedSecrets',
836
+ inputs,
837
+ handler: ([address, ephPksSlot, contractAddress]) =>
838
+ this.handlerAsUtility().getSharedSecrets(address, ephPksSlot, contractAddress),
839
+ });
840
+ }
841
+
842
+ // eslint-disable-next-line camelcase
843
+ aztec_utl_setContractSyncCacheInvalid(...inputs: ForeignCallArgs) {
844
+ return callTxeHandler({
845
+ oracle: 'aztec_utl_setContractSyncCacheInvalid',
846
+ inputs,
847
+ handler: ([contractAddress, scopes]) =>
848
+ this.handlerAsUtility().setContractSyncCacheInvalid(contractAddress, scopes),
849
+ });
850
+ }
851
+
852
+ // eslint-disable-next-line camelcase
853
+ aztec_utl_emitOffchainEffect(...inputs: ForeignCallArgs) {
854
+ return callTxeHandler({
855
+ oracle: 'aztec_utl_emitOffchainEffect',
856
+ inputs,
857
+ handler: ([data]) => {
858
+ // Record the raw payload against the currently-executing top-level call. The Noir side
859
+ // (via `env.offchain_messages()`) is responsible for decoding the protocol-reserved prefix
860
+ // (`OFFCHAIN_MESSAGE_IDENTIFIER`, recipient) and turning each payload into an `OffchainMessage` struct suitable
861
+ // for `offchain_receive`.
862
+ this.stateHandler.recordOffchainEffect(data);
863
+ },
864
+ });
865
+ }
866
+
867
+ // eslint-disable-next-line camelcase
868
+ aztec_utl_recordFact(...inputs: ForeignCallArgs) {
869
+ return callTxeHandler({
870
+ oracle: 'aztec_utl_recordFact',
871
+ inputs,
872
+ handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId, factTypeId, payload, originBlock]) =>
873
+ this.handlerAsUtility().recordFact(
874
+ contractAddress,
875
+ scope,
876
+ factCollectionTypeId,
877
+ factCollectionId,
878
+ factTypeId,
879
+ payload,
880
+ originBlock,
881
+ ),
882
+ });
883
+ }
884
+
885
+ // eslint-disable-next-line camelcase
886
+ aztec_utl_deleteFactCollection(...inputs: ForeignCallArgs) {
887
+ return callTxeHandler({
888
+ oracle: 'aztec_utl_deleteFactCollection',
889
+ inputs,
890
+ handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId]) =>
891
+ this.handlerAsUtility().deleteFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId),
892
+ });
893
+ }
894
+
895
+ // eslint-disable-next-line camelcase
896
+ aztec_utl_getFactCollection(...inputs: ForeignCallArgs) {
897
+ return callTxeHandler({
898
+ oracle: 'aztec_utl_getFactCollection',
899
+ inputs,
900
+ handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId]) =>
901
+ this.handlerAsUtility().getFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId),
902
+ });
903
+ }
904
+
905
+ // eslint-disable-next-line camelcase
906
+ aztec_utl_getFactCollectionsByType(...inputs: ForeignCallArgs) {
907
+ return callTxeHandler({
908
+ oracle: 'aztec_utl_getFactCollectionsByType',
909
+ inputs,
910
+ handler: ([contractAddress, scope, factCollectionTypeId]) =>
911
+ this.handlerAsUtility().getFactCollectionsByType(contractAddress, scope, factCollectionTypeId),
912
+ });
913
+ }
914
+
915
+ // eslint-disable-next-line camelcase
916
+ aztec_utl_callUtilityFunction(...inputs: ForeignCallArgs) {
917
+ return callTxeHandler({
918
+ oracle: 'aztec_utl_callUtilityFunction',
919
+ inputs,
920
+ handler: ([contractAddress, functionSelector, args]) =>
921
+ this.handlerAsUtility().callUtilityFunction(contractAddress, functionSelector, args),
922
+ });
923
+ }
924
+
925
+ // AVM opcodes
926
+
927
+ // eslint-disable-next-line camelcase
928
+ aztec_avm_emitPublicLog() {
929
+ return callTxeHandler({
930
+ oracle: 'aztec_avm_emitPublicLog',
931
+ inputs: [],
932
+ // TODO(#8811): Implement
933
+ handler: () => {},
934
+ });
935
+ }
936
+
937
+ // eslint-disable-next-line camelcase
938
+ aztec_avm_storageRead(...inputs: ForeignCallArgs) {
939
+ return callTxeHandler({
940
+ oracle: 'aztec_avm_storageRead',
941
+ inputs,
942
+ handler: ([slot, contractAddress]) => this.handlerAsAvm().storageRead(slot, contractAddress),
943
+ });
944
+ }
945
+
946
+ // eslint-disable-next-line camelcase
947
+ aztec_avm_storageWrite(...inputs: ForeignCallArgs) {
948
+ return callTxeHandler({
949
+ oracle: 'aztec_avm_storageWrite',
950
+ inputs,
951
+ handler: ([slot, value]) => this.handlerAsAvm().storageWrite(slot, value),
952
+ });
953
+ }
954
+
955
+ // eslint-disable-next-line camelcase
956
+ aztec_avm_getContractInstanceDeployer(...inputs: ForeignCallArgs) {
957
+ return callTxeHandler({
958
+ oracle: 'aztec_avm_getContractInstanceDeployer',
959
+ inputs,
960
+ handler: ([address]) => this.handlerAsAvm().getContractInstanceDeployer(address),
961
+ });
962
+ }
963
+
964
+ // eslint-disable-next-line camelcase
965
+ aztec_avm_getContractInstanceClassId(...inputs: ForeignCallArgs) {
966
+ return callTxeHandler({
967
+ oracle: 'aztec_avm_getContractInstanceClassId',
968
+ inputs,
969
+ handler: ([address]) => this.handlerAsAvm().getContractInstanceClassId(address),
970
+ });
971
+ }
972
+
973
+ // eslint-disable-next-line camelcase
974
+ aztec_avm_getContractInstanceInitializationHash(...inputs: ForeignCallArgs) {
975
+ return callTxeHandler({
976
+ oracle: 'aztec_avm_getContractInstanceInitializationHash',
977
+ inputs,
978
+ handler: ([address]) => this.handlerAsAvm().getContractInstanceInitializationHash(address),
979
+ });
980
+ }
981
+
982
+ // eslint-disable-next-line camelcase
983
+ aztec_avm_getContractInstanceImmutablesHash(...inputs: ForeignCallArgs) {
984
+ return callTxeHandler({
985
+ oracle: 'aztec_avm_getContractInstanceImmutablesHash',
986
+ inputs,
987
+ handler: ([address]) => this.handlerAsAvm().getContractInstanceImmutablesHash(address),
988
+ });
989
+ }
990
+
991
+ // eslint-disable-next-line camelcase
992
+ aztec_avm_sender() {
993
+ return callTxeHandler({
994
+ oracle: 'aztec_avm_sender',
995
+ inputs: [],
996
+ handler: () => this.handlerAsAvm().sender(),
997
+ });
998
+ }
999
+
1000
+ // eslint-disable-next-line camelcase
1001
+ aztec_avm_emitNullifier(...inputs: ForeignCallArgs) {
1002
+ return callTxeHandler({
1003
+ oracle: 'aztec_avm_emitNullifier',
1004
+ inputs,
1005
+ handler: ([nullifier]) => this.handlerAsAvm().emitNullifier(nullifier),
1006
+ });
1007
+ }
1008
+
1009
+ // eslint-disable-next-line camelcase
1010
+ aztec_avm_emitNoteHash(...inputs: ForeignCallArgs) {
1011
+ return callTxeHandler({
1012
+ oracle: 'aztec_avm_emitNoteHash',
1013
+ inputs,
1014
+ handler: ([noteHash]) => this.handlerAsAvm().emitNoteHash(noteHash),
1015
+ });
1016
+ }
1017
+
1018
+ // eslint-disable-next-line camelcase
1019
+ aztec_avm_nullifierExists(...inputs: ForeignCallArgs) {
1020
+ return callTxeHandler({
1021
+ oracle: 'aztec_avm_nullifierExists',
1022
+ inputs,
1023
+ handler: ([siloedNullifier]) => this.handlerAsAvm().nullifierExists(siloedNullifier),
1024
+ });
1025
+ }
1026
+
1027
+ // eslint-disable-next-line camelcase
1028
+ aztec_avm_address() {
1029
+ return callTxeHandler({
1030
+ oracle: 'aztec_avm_address',
1031
+ inputs: [],
1032
+ handler: () => this.handlerAsAvm().address(),
1033
+ });
1034
+ }
1035
+
1036
+ // eslint-disable-next-line camelcase
1037
+ aztec_avm_blockNumber() {
1038
+ return callTxeHandler({
1039
+ oracle: 'aztec_avm_blockNumber',
1040
+ inputs: [],
1041
+ handler: () => this.handlerAsAvm().blockNumber(),
1042
+ });
1043
+ }
1044
+
1045
+ // eslint-disable-next-line camelcase
1046
+ aztec_avm_timestamp() {
1047
+ return callTxeHandler({
1048
+ oracle: 'aztec_avm_timestamp',
1049
+ inputs: [],
1050
+ handler: () => this.handlerAsAvm().timestamp(),
1051
+ });
1052
+ }
1053
+
1054
+ // eslint-disable-next-line camelcase
1055
+ aztec_avm_isStaticCall() {
1056
+ return callTxeHandler({
1057
+ oracle: 'aztec_avm_isStaticCall',
1058
+ inputs: [],
1059
+ handler: () => this.handlerAsAvm().isStaticCall(),
1060
+ });
1061
+ }
1062
+
1063
+ // eslint-disable-next-line camelcase
1064
+ aztec_avm_chainId() {
1065
+ return callTxeHandler({
1066
+ oracle: 'aztec_avm_chainId',
1067
+ inputs: [],
1068
+ handler: () => this.handlerAsAvm().chainId(),
1069
+ });
1070
+ }
1071
+
1072
+ // eslint-disable-next-line camelcase
1073
+ aztec_avm_version() {
1074
+ return callTxeHandler({
1075
+ oracle: 'aztec_avm_version',
1076
+ inputs: [],
1077
+ handler: () => this.handlerAsAvm().version(),
1078
+ });
1079
+ }
1080
+
1081
+ // eslint-disable-next-line camelcase
1082
+ aztec_avm_returndataSize() {
1083
+ return callTxeHandler({
1084
+ oracle: 'aztec_avm_returndataSize',
1085
+ inputs: [],
1086
+ handler: () => this.handlerAsAvm().returndataSize(),
1087
+ });
1088
+ }
1089
+
1090
+ // eslint-disable-next-line camelcase
1091
+ aztec_avm_returndataCopy(...inputs: ForeignCallArgs) {
1092
+ return callTxeHandler({
1093
+ oracle: 'aztec_avm_returndataCopy',
1094
+ inputs,
1095
+ handler: ([rdOffset, copySize]) => this.handlerAsAvm().returndataCopy(rdOffset, copySize),
1096
+ });
1097
+ }
1098
+
1099
+ // eslint-disable-next-line camelcase
1100
+ aztec_avm_call(...inputs: ForeignCallArgs) {
1101
+ return callTxeHandler({
1102
+ oracle: 'aztec_avm_call',
1103
+ inputs,
1104
+ handler: ([l2Gas, daGas, address, argsLength, args]) =>
1105
+ this.handlerAsAvm().call(l2Gas, daGas, address, argsLength, args),
1106
+ });
1107
+ }
1108
+
1109
+ // eslint-disable-next-line camelcase
1110
+ aztec_avm_staticCall(...inputs: ForeignCallArgs) {
1111
+ return callTxeHandler({
1112
+ oracle: 'aztec_avm_staticCall',
1113
+ inputs,
1114
+ handler: ([l2Gas, daGas, address, argsLength, args]) =>
1115
+ this.handlerAsAvm().staticCall(l2Gas, daGas, address, argsLength, args),
1116
+ });
1117
+ }
1118
+
1119
+ // eslint-disable-next-line camelcase
1120
+ aztec_avm_successCopy() {
1121
+ return callTxeHandler({
1122
+ oracle: 'aztec_avm_successCopy',
1123
+ inputs: [],
1124
+ handler: () => this.handlerAsAvm().successCopy(),
1125
+ });
1126
+ }
1127
+
1128
+ // eslint-disable-next-line camelcase
1129
+ aztec_txe_privateCallNewFlow(...inputs: ForeignCallArgs) {
1130
+ return callTxeHandler({
1131
+ oracle: 'aztec_txe_privateCallNewFlow',
1132
+ inputs,
1133
+ handler: ([
1134
+ from,
1135
+ targetContractAddress,
1136
+ functionSelector,
1137
+ args,
1138
+ argsHash,
1139
+ isStaticCall,
1140
+ additionalScopes,
1141
+ authorizedUtilityCallTargets,
1142
+ gasSettings,
1143
+ ]) =>
1144
+ this.stateHandler.executePrivateCall(
1145
+ from,
1146
+ targetContractAddress,
1147
+ functionSelector,
1148
+ args,
1149
+ argsHash,
1150
+ isStaticCall,
1151
+ additionalScopes,
1152
+ authorizedUtilityCallTargets,
1153
+ gasSettings,
1154
+ ),
1155
+ });
1156
+ }
1157
+
1158
+ // eslint-disable-next-line camelcase
1159
+ aztec_txe_executeUtilityFunction(...inputs: ForeignCallArgs) {
1160
+ return callTxeHandler({
1161
+ oracle: 'aztec_txe_executeUtilityFunction',
1162
+ inputs,
1163
+ handler: ([from, targetContractAddress, functionSelector, args, authorizedUtilityCallTargets]) =>
1164
+ this.stateHandler.executeUtilityFunction(
1165
+ from,
1166
+ targetContractAddress,
1167
+ functionSelector,
1168
+ args,
1169
+ authorizedUtilityCallTargets,
1170
+ ),
1171
+ });
1172
+ }
1173
+
1174
+ // eslint-disable-next-line camelcase
1175
+ aztec_txe_publicCallNewFlow(...inputs: ForeignCallArgs) {
1176
+ return callTxeHandler({
1177
+ oracle: 'aztec_txe_publicCallNewFlow',
1178
+ inputs,
1179
+ handler: ([from, address, calldata, isStaticCall, gasSettings]) =>
1180
+ this.stateHandler.executePublicCall(from, address, calldata, isStaticCall, gasSettings),
1181
+ });
1182
+ }
1183
+
1184
+ // eslint-disable-next-line camelcase
1185
+ aztec_prv_getSenderForTags() {
1186
+ return callTxeHandler({
1187
+ oracle: 'aztec_prv_getSenderForTags',
1188
+ inputs: [],
1189
+ handler: () => this.handlerAsPrivate().getSenderForTags(),
1190
+ });
1191
+ }
1192
+
1193
+ // eslint-disable-next-line camelcase
1194
+ aztec_prv_resolveTaggingStrategy(...inputs: ForeignCallArgs) {
1195
+ return callTxeHandler({
1196
+ oracle: 'aztec_prv_resolveTaggingStrategy',
1197
+ inputs,
1198
+ handler: ([sender, recipient, deliveryMode]) =>
1199
+ this.handlerAsPrivate().resolveTaggingStrategy(sender, recipient, deliveryMode),
1200
+ });
1201
+ }
1202
+
1203
+ // eslint-disable-next-line camelcase
1204
+ aztec_prv_resolveCustomRequest(...inputs: ForeignCallArgs) {
1205
+ return callTxeHandler({
1206
+ oracle: 'aztec_prv_resolveCustomRequest',
1207
+ inputs,
1208
+ handler: ([kind, payload]) => this.handlerAsPrivate().resolveCustomRequest(kind, payload),
1209
+ });
1210
+ }
1211
+
1212
+ // eslint-disable-next-line camelcase
1213
+ aztec_prv_getAppTaggingSecret(...inputs: ForeignCallArgs) {
1214
+ return callTxeHandler({
1215
+ oracle: 'aztec_prv_getAppTaggingSecret',
1216
+ inputs,
1217
+ handler: ([sender, recipient]) => this.handlerAsPrivate().getAppTaggingSecret(sender, recipient),
1218
+ });
1219
+ }
1220
+
1221
+ // eslint-disable-next-line camelcase
1222
+ aztec_prv_getNextTaggingIndex(...inputs: ForeignCallArgs) {
1223
+ return callTxeHandler({
1224
+ oracle: 'aztec_prv_getNextTaggingIndex',
1225
+ inputs,
1226
+ handler: ([secret, deliveryMode]) => this.handlerAsPrivate().getNextTaggingIndex(secret, deliveryMode),
1227
+ });
1228
+ }
1229
+ }