@aztec/txe 0.0.0-test.1 → 0.0.1-commit.017a351

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 (182) hide show
  1. package/dest/ContractClassRegistry-PII7Q556.js +3 -0
  2. package/dest/ContractClassRegistry-PII7Q556.js.map +7 -0
  3. package/dest/ContractInstanceRegistry-3MHLGFNZ.js +3 -0
  4. package/dest/ContractInstanceRegistry-3MHLGFNZ.js.map +7 -0
  5. package/dest/FeeJuice-TQV5AQK7.js +3 -0
  6. package/dest/FeeJuice-TQV5AQK7.js.map +7 -0
  7. package/dest/MultiCallEntrypoint-SBJUIJY7.js +3 -0
  8. package/dest/MultiCallEntrypoint-SBJUIJY7.js.map +7 -0
  9. package/dest/SchnorrAccount-MQXPIZ44.js +3 -0
  10. package/dest/SchnorrAccount-MQXPIZ44.js.map +7 -0
  11. package/dest/bin/check_txe_oracle_version.d.ts +2 -0
  12. package/dest/bin/check_txe_oracle_version.d.ts.map +1 -0
  13. package/dest/bin/check_txe_oracle_version.js +61 -0
  14. package/dest/bin/index.d.ts +1 -1
  15. package/dest/bin/index.js +3 -29
  16. package/dest/bin/index.js.map +7 -0
  17. package/dest/bin/oracle_test_server.d.ts +3 -0
  18. package/dest/bin/oracle_test_server.d.ts.map +1 -0
  19. package/dest/bin/oracle_test_server.js +41 -0
  20. package/dest/chunk-BA54BEZH.js +265 -0
  21. package/dest/chunk-BA54BEZH.js.map +7 -0
  22. package/dest/chunk-BJVAAXNA.js +3 -0
  23. package/dest/chunk-BJVAAXNA.js.map +7 -0
  24. package/dest/chunk-ZKW35DT6.js +304 -0
  25. package/dest/chunk-ZKW35DT6.js.map +7 -0
  26. package/dest/constants.d.ts +7 -0
  27. package/dest/constants.d.ts.map +1 -0
  28. package/dest/constants.js +10 -0
  29. package/dest/dispatcher_pool.d.ts +67 -0
  30. package/dest/dispatcher_pool.d.ts.map +1 -0
  31. package/dest/dispatcher_pool.js +284 -0
  32. package/dest/index.d.ts +185 -7
  33. package/dest/index.d.ts.map +1 -1
  34. package/dest/index.js +76 -132
  35. package/dest/metafile.json +38691 -0
  36. package/dest/msgpackr_fr_extension.d.ts +2 -0
  37. package/dest/msgpackr_fr_extension.d.ts.map +1 -0
  38. package/dest/msgpackr_fr_extension.js +21 -0
  39. package/dest/oracle/interfaces.d.ts +83 -0
  40. package/dest/oracle/interfaces.d.ts.map +1 -0
  41. package/dest/oracle/interfaces.js +3 -0
  42. package/dest/oracle/test-resolver/fixtures.d.ts +43 -0
  43. package/dest/oracle/test-resolver/fixtures.d.ts.map +1 -0
  44. package/dest/oracle/test-resolver/fixtures.js +39 -0
  45. package/dest/oracle/test-resolver/index.d.ts +9 -0
  46. package/dest/oracle/test-resolver/index.d.ts.map +1 -0
  47. package/dest/oracle/test-resolver/index.js +33 -0
  48. package/dest/oracle/test-resolver/resolver.d.ts +34 -0
  49. package/dest/oracle/test-resolver/resolver.d.ts.map +1 -0
  50. package/dest/oracle/test-resolver/resolver.js +114 -0
  51. package/dest/oracle/txe_oracle_public_context.d.ts +58 -0
  52. package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -0
  53. package/dest/oracle/txe_oracle_public_context.js +164 -0
  54. package/dest/oracle/txe_oracle_registry.d.ts +147 -0
  55. package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
  56. package/dest/oracle/txe_oracle_registry.js +562 -0
  57. package/dest/oracle/txe_oracle_top_level_context.d.ts +85 -0
  58. package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -0
  59. package/dest/oracle/txe_oracle_top_level_context.js +634 -0
  60. package/dest/oracle/txe_oracle_version.d.ts +17 -0
  61. package/dest/oracle/txe_oracle_version.d.ts.map +1 -0
  62. package/dest/oracle/txe_oracle_version.js +14 -0
  63. package/dest/oracle/txe_private_execution_oracle.d.ts +17 -0
  64. package/dest/oracle/txe_private_execution_oracle.d.ts.map +1 -0
  65. package/dest/oracle/txe_private_execution_oracle.js +15 -0
  66. package/dest/rpc_server.d.ts +14 -0
  67. package/dest/rpc_server.d.ts.map +1 -0
  68. package/dest/rpc_server.js +78 -0
  69. package/dest/rpc_translator.d.ts +120 -0
  70. package/dest/rpc_translator.d.ts.map +1 -0
  71. package/dest/rpc_translator.js +882 -0
  72. package/dest/server.bundle.js +3 -0
  73. package/dest/server.bundle.js.map +7 -0
  74. package/dest/state_machine/archiver.d.ts +32 -0
  75. package/dest/state_machine/archiver.d.ts.map +1 -0
  76. package/dest/state_machine/archiver.js +96 -0
  77. package/dest/state_machine/dummy_p2p_client.d.ts +65 -0
  78. package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -0
  79. package/dest/state_machine/dummy_p2p_client.js +165 -0
  80. package/dest/state_machine/global_variable_builder.d.ts +16 -0
  81. package/dest/state_machine/global_variable_builder.d.ts.map +1 -0
  82. package/dest/state_machine/global_variable_builder.js +28 -0
  83. package/dest/state_machine/index.d.ts +20 -0
  84. package/dest/state_machine/index.d.ts.map +1 -0
  85. package/dest/state_machine/index.js +86 -0
  86. package/dest/state_machine/mock_epoch_cache.d.ts +42 -0
  87. package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -0
  88. package/dest/state_machine/mock_epoch_cache.js +85 -0
  89. package/dest/state_machine/synchronizer.d.ts +33 -0
  90. package/dest/state_machine/synchronizer.d.ts.map +1 -0
  91. package/dest/state_machine/synchronizer.js +59 -0
  92. package/dest/txe_session.d.ts +140 -0
  93. package/dest/txe_session.d.ts.map +1 -0
  94. package/dest/txe_session.js +499 -0
  95. package/dest/utils/block_creation.d.ts +28 -0
  96. package/dest/utils/block_creation.d.ts.map +1 -0
  97. package/dest/utils/block_creation.js +58 -0
  98. package/dest/utils/encoding.d.ts +191 -0
  99. package/dest/utils/encoding.d.ts.map +1 -0
  100. package/dest/utils/encoding.js +136 -0
  101. package/dest/utils/expected_failure_error.d.ts +4 -0
  102. package/dest/utils/expected_failure_error.d.ts.map +1 -0
  103. package/dest/utils/tx_effect_creation.d.ts +5 -0
  104. package/dest/utils/tx_effect_creation.d.ts.map +1 -0
  105. package/dest/utils/tx_effect_creation.js +13 -0
  106. package/dest/utils/txe_account_store.d.ts +10 -0
  107. package/dest/utils/txe_account_store.d.ts.map +1 -0
  108. package/dest/{util/txe_account_data_provider.js → utils/txe_account_store.js} +1 -1
  109. package/dest/utils/txe_artifact_resolver.d.ts +37 -0
  110. package/dest/utils/txe_artifact_resolver.d.ts.map +1 -0
  111. package/dest/utils/txe_artifact_resolver.js +161 -0
  112. package/dest/utils/txe_public_contract_data_source.d.ts +20 -0
  113. package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -0
  114. package/dest/utils/txe_public_contract_data_source.js +48 -0
  115. package/dest/worker.bundle.js +3 -0
  116. package/dest/worker.bundle.js.map +7 -0
  117. package/dest/worker.d.ts +2 -0
  118. package/dest/worker.d.ts.map +1 -0
  119. package/dest/worker.js +92 -0
  120. package/package.json +52 -29
  121. package/src/bin/check_txe_oracle_version.ts +70 -0
  122. package/src/bin/index.ts +14 -4
  123. package/src/bin/oracle_test_server.ts +51 -0
  124. package/src/constants.ts +13 -0
  125. package/src/dispatcher_pool.ts +316 -0
  126. package/src/index.ts +113 -175
  127. package/src/msgpackr_fr_extension.ts +23 -0
  128. package/src/oracle/interfaces.ts +109 -0
  129. package/src/oracle/test-resolver/fixtures.ts +84 -0
  130. package/src/oracle/test-resolver/index.ts +45 -0
  131. package/src/oracle/test-resolver/resolver.ts +165 -0
  132. package/src/oracle/txe_oracle_public_context.ts +218 -0
  133. package/src/oracle/txe_oracle_registry.ts +401 -0
  134. package/src/oracle/txe_oracle_top_level_context.ts +898 -0
  135. package/src/oracle/txe_oracle_version.ts +17 -0
  136. package/src/oracle/txe_private_execution_oracle.ts +30 -0
  137. package/src/rpc_server.ts +87 -0
  138. package/src/rpc_translator.ts +1103 -0
  139. package/src/state_machine/archiver.ts +119 -0
  140. package/src/state_machine/dummy_p2p_client.ts +247 -0
  141. package/src/state_machine/global_variable_builder.ts +53 -0
  142. package/src/state_machine/index.ts +135 -0
  143. package/src/state_machine/mock_epoch_cache.ts +107 -0
  144. package/src/state_machine/synchronizer.ts +88 -0
  145. package/src/txe_session.ts +799 -0
  146. package/src/utils/block_creation.ts +97 -0
  147. package/src/utils/encoding.ts +172 -0
  148. package/src/utils/tx_effect_creation.ts +30 -0
  149. package/src/{util/txe_account_data_provider.ts → utils/txe_account_store.ts} +1 -1
  150. package/src/utils/txe_artifact_resolver.ts +217 -0
  151. package/src/utils/txe_public_contract_data_source.ts +58 -0
  152. package/src/worker.ts +98 -0
  153. package/dest/node/txe_node.d.ts +0 -358
  154. package/dest/node/txe_node.d.ts.map +0 -1
  155. package/dest/node/txe_node.js +0 -504
  156. package/dest/oracle/txe_oracle.d.ts +0 -152
  157. package/dest/oracle/txe_oracle.d.ts.map +0 -1
  158. package/dest/oracle/txe_oracle.js +0 -833
  159. package/dest/txe_service/txe_service.d.ts +0 -212
  160. package/dest/txe_service/txe_service.d.ts.map +0 -1
  161. package/dest/txe_service/txe_service.js +0 -572
  162. package/dest/util/encoding.d.ts +0 -103
  163. package/dest/util/encoding.d.ts.map +0 -1
  164. package/dest/util/encoding.js +0 -76
  165. package/dest/util/expected_failure_error.d.ts +0 -4
  166. package/dest/util/expected_failure_error.d.ts.map +0 -1
  167. package/dest/util/txe_account_data_provider.d.ts +0 -10
  168. package/dest/util/txe_account_data_provider.d.ts.map +0 -1
  169. package/dest/util/txe_public_contract_data_source.d.ts +0 -20
  170. package/dest/util/txe_public_contract_data_source.d.ts.map +0 -1
  171. package/dest/util/txe_public_contract_data_source.js +0 -88
  172. package/dest/util/txe_world_state_db.d.ts +0 -14
  173. package/dest/util/txe_world_state_db.d.ts.map +0 -1
  174. package/dest/util/txe_world_state_db.js +0 -27
  175. package/src/node/txe_node.ts +0 -725
  176. package/src/oracle/txe_oracle.ts +0 -1241
  177. package/src/txe_service/txe_service.ts +0 -749
  178. package/src/util/encoding.ts +0 -92
  179. package/src/util/txe_public_contract_data_source.ts +0 -101
  180. package/src/util/txe_world_state_db.ts +0 -38
  181. /package/dest/{util → utils}/expected_failure_error.js +0 -0
  182. /package/src/{util → utils}/expected_failure_error.ts +0 -0
@@ -0,0 +1,882 @@
1
+ import { callTxeHandler } from './oracle/txe_oracle_registry.js';
2
+ export class UnavailableOracleError extends Error {
3
+ constructor(oracleName){
4
+ super(`${oracleName} oracles not available with the current handler`);
5
+ }
6
+ }
7
+ export class RPCTranslator {
8
+ stateHandler;
9
+ oracleHandler;
10
+ /**
11
+ * Create a new instance of `RPCTranslator` that will translate all TXE RPC calls to and from the foreign
12
+ * (`ForeignCallSingle`, `ForeignCallResult`, etc.) and native TS types, delegating actual execution of the oracles
13
+ * to the different handlers.
14
+ * @param stateHandler The handler that will process TXE session state transitions, such as entering a private or
15
+ * public context.
16
+ * @param oracleHandler The handler that will process all other oracle calls that are not directly related to session
17
+ * state.
18
+ */ constructor(stateHandler, oracleHandler){
19
+ this.stateHandler = stateHandler;
20
+ this.oracleHandler = oracleHandler;
21
+ }
22
+ // Note: If you rename the following functions to not start with "handlerAs", you must also update the validation
23
+ // check in `TXESession.processFunction`.
24
+ handlerAsMisc() {
25
+ if (!('isMisc' in this.oracleHandler)) {
26
+ throw new UnavailableOracleError('Misc');
27
+ }
28
+ return this.oracleHandler;
29
+ }
30
+ handlerAsUtility() {
31
+ if (!('isUtility' in this.oracleHandler)) {
32
+ throw new UnavailableOracleError('Utility');
33
+ }
34
+ return this.oracleHandler;
35
+ }
36
+ handlerAsPrivate() {
37
+ if (!('isPrivate' in this.oracleHandler)) {
38
+ throw new UnavailableOracleError('Private');
39
+ }
40
+ return this.oracleHandler;
41
+ }
42
+ handlerAsAvm() {
43
+ if (!('isAvm' in this.oracleHandler)) {
44
+ throw new UnavailableOracleError('Avm');
45
+ }
46
+ return this.oracleHandler;
47
+ }
48
+ handlerAsTxe() {
49
+ if (!('isTxe' in this.oracleHandler)) {
50
+ throw new UnavailableOracleError('Txe');
51
+ }
52
+ return this.oracleHandler;
53
+ }
54
+ // eslint-disable-next-line camelcase
55
+ aztec_txe_assertCompatibleOracleVersion(...inputs) {
56
+ return callTxeHandler({
57
+ oracle: 'aztec_txe_assertCompatibleOracleVersion',
58
+ inputs,
59
+ handler: ([major, minor])=>{
60
+ this.stateHandler.setTxeOracleVersion(major, minor);
61
+ }
62
+ });
63
+ }
64
+ // TXE session state transition functions - these get handled by the state handler
65
+ // eslint-disable-next-line camelcase
66
+ aztec_txe_setTopLevelTXEContext() {
67
+ return callTxeHandler({
68
+ oracle: 'aztec_txe_setTopLevelTXEContext',
69
+ inputs: [],
70
+ handler: ()=>this.stateHandler.enterTopLevelState()
71
+ });
72
+ }
73
+ // eslint-disable-next-line camelcase
74
+ aztec_txe_setPrivateTXEContext(...inputs) {
75
+ return callTxeHandler({
76
+ oracle: 'aztec_txe_setPrivateTXEContext',
77
+ inputs,
78
+ handler: ([contractAddress, anchorBlockNumber, gasSettings])=>this.stateHandler.enterPrivateState(contractAddress, anchorBlockNumber, gasSettings)
79
+ });
80
+ }
81
+ // eslint-disable-next-line camelcase
82
+ aztec_txe_setPublicTXEContext(...inputs) {
83
+ return callTxeHandler({
84
+ oracle: 'aztec_txe_setPublicTXEContext',
85
+ inputs,
86
+ handler: ([contractAddress])=>this.stateHandler.enterPublicState(contractAddress)
87
+ });
88
+ }
89
+ // eslint-disable-next-line camelcase
90
+ aztec_txe_setUtilityTXEContext(...inputs) {
91
+ return callTxeHandler({
92
+ oracle: 'aztec_txe_setUtilityTXEContext',
93
+ inputs,
94
+ handler: ([contractAddress])=>this.stateHandler.enterUtilityState(contractAddress)
95
+ });
96
+ }
97
+ // Other oracles - these get handled by the oracle handler
98
+ // TXE-specific oracles
99
+ // eslint-disable-next-line camelcase
100
+ aztec_txe_getDefaultAddress() {
101
+ return callTxeHandler({
102
+ oracle: 'aztec_txe_getDefaultAddress',
103
+ inputs: [],
104
+ handler: ()=>this.handlerAsTxe().getDefaultAddress()
105
+ });
106
+ }
107
+ // eslint-disable-next-line camelcase
108
+ aztec_txe_getNextBlockNumber() {
109
+ return callTxeHandler({
110
+ oracle: 'aztec_txe_getNextBlockNumber',
111
+ inputs: [],
112
+ handler: ()=>this.handlerAsTxe().getNextBlockNumber()
113
+ });
114
+ }
115
+ // eslint-disable-next-line camelcase
116
+ aztec_txe_getNextBlockTimestamp() {
117
+ return callTxeHandler({
118
+ oracle: 'aztec_txe_getNextBlockTimestamp',
119
+ inputs: [],
120
+ handler: ()=>this.handlerAsTxe().getNextBlockTimestamp()
121
+ });
122
+ }
123
+ // eslint-disable-next-line camelcase
124
+ aztec_txe_advanceBlocksBy(...inputs) {
125
+ return callTxeHandler({
126
+ oracle: 'aztec_txe_advanceBlocksBy',
127
+ inputs,
128
+ handler: ([blocks])=>this.handlerAsTxe().advanceBlocksBy(blocks)
129
+ });
130
+ }
131
+ // eslint-disable-next-line camelcase
132
+ aztec_txe_advanceTimestampBy(...inputs) {
133
+ return callTxeHandler({
134
+ oracle: 'aztec_txe_advanceTimestampBy',
135
+ inputs,
136
+ handler: ([duration])=>this.handlerAsTxe().advanceTimestampBy(duration)
137
+ });
138
+ }
139
+ // eslint-disable-next-line camelcase
140
+ aztec_txe_deploy(...inputs) {
141
+ return callTxeHandler({
142
+ oracle: 'aztec_txe_deploy',
143
+ inputs,
144
+ handler: ([contractPath, initializer, _, args, secret, salt, deployer])=>this.handlerAsTxe().deploy(contractPath, initializer, args, secret, salt, deployer)
145
+ });
146
+ }
147
+ // eslint-disable-next-line camelcase
148
+ aztec_txe_createAccount(...inputs) {
149
+ return callTxeHandler({
150
+ oracle: 'aztec_txe_createAccount',
151
+ inputs,
152
+ handler: ([secret])=>this.handlerAsTxe().createAccount(secret)
153
+ });
154
+ }
155
+ // eslint-disable-next-line camelcase
156
+ aztec_txe_addAccount(...inputs) {
157
+ return callTxeHandler({
158
+ oracle: 'aztec_txe_addAccount',
159
+ inputs,
160
+ handler: ([secret])=>this.handlerAsTxe().addAccount(secret)
161
+ });
162
+ }
163
+ // eslint-disable-next-line camelcase
164
+ aztec_txe_addAuthWitness(...inputs) {
165
+ return callTxeHandler({
166
+ oracle: 'aztec_txe_addAuthWitness',
167
+ inputs,
168
+ handler: ([address, messageHash])=>this.handlerAsTxe().addAuthWitness(address, messageHash)
169
+ });
170
+ }
171
+ // PXE oracles
172
+ // eslint-disable-next-line camelcase
173
+ aztec_misc_assertCompatibleOracleVersion(...inputs) {
174
+ return callTxeHandler({
175
+ oracle: 'aztec_misc_assertCompatibleOracleVersion',
176
+ inputs,
177
+ handler: ([major, minor])=>this.handlerAsMisc().assertCompatibleOracleVersion(major, minor)
178
+ });
179
+ }
180
+ // eslint-disable-next-line camelcase
181
+ aztec_misc_getRandomField() {
182
+ return callTxeHandler({
183
+ oracle: 'aztec_misc_getRandomField',
184
+ inputs: [],
185
+ handler: ()=>this.handlerAsMisc().getRandomField()
186
+ });
187
+ }
188
+ // eslint-disable-next-line camelcase
189
+ aztec_txe_getLastBlockTimestamp() {
190
+ return callTxeHandler({
191
+ oracle: 'aztec_txe_getLastBlockTimestamp',
192
+ inputs: [],
193
+ handler: ()=>this.handlerAsTxe().getLastBlockTimestamp()
194
+ });
195
+ }
196
+ // eslint-disable-next-line camelcase
197
+ aztec_txe_getLastTxEffects() {
198
+ return callTxeHandler({
199
+ oracle: 'aztec_txe_getLastTxEffects',
200
+ inputs: [],
201
+ handler: ()=>this.handlerAsTxe().getLastTxEffects()
202
+ });
203
+ }
204
+ // eslint-disable-next-line camelcase
205
+ aztec_txe_getLastCallOffchainEffects() {
206
+ return callTxeHandler({
207
+ oracle: 'aztec_txe_getLastCallOffchainEffects',
208
+ inputs: [],
209
+ handler: ()=>this.stateHandler.getLastCallOffchainEffects()
210
+ });
211
+ }
212
+ // eslint-disable-next-line camelcase
213
+ aztec_txe_getLastCallContext() {
214
+ return callTxeHandler({
215
+ oracle: 'aztec_txe_getLastCallContext',
216
+ inputs: [],
217
+ handler: ()=>this.stateHandler.getLastCallContext()
218
+ });
219
+ }
220
+ // eslint-disable-next-line camelcase
221
+ aztec_txe_getPrivateEvents(...inputs) {
222
+ return callTxeHandler({
223
+ oracle: 'aztec_txe_getPrivateEvents',
224
+ inputs,
225
+ handler: async ([selector, contractAddress, scope])=>{
226
+ // TODO(F-335): Avoid doing the following 2 calls here.
227
+ {
228
+ await this.handlerAsTxe().syncContractNonOracleMethod(contractAddress, scope, this.stateHandler.getCurrentJob());
229
+ // We cycle job to commit the stores after the contract sync.
230
+ await this.stateHandler.cycleJob();
231
+ }
232
+ return this.handlerAsTxe().getPrivateEvents(selector, contractAddress, scope);
233
+ }
234
+ });
235
+ }
236
+ // eslint-disable-next-line camelcase
237
+ aztec_prv_setHashPreimage(...inputs) {
238
+ return callTxeHandler({
239
+ oracle: 'aztec_prv_setHashPreimage',
240
+ inputs,
241
+ handler: ([values, hash])=>this.handlerAsPrivate().setHashPreimage(values, hash)
242
+ });
243
+ }
244
+ // eslint-disable-next-line camelcase
245
+ aztec_prv_getHashPreimage(...inputs) {
246
+ return callTxeHandler({
247
+ oracle: 'aztec_prv_getHashPreimage',
248
+ inputs,
249
+ handler: ([hash])=>this.handlerAsPrivate().getHashPreimage(hash)
250
+ });
251
+ }
252
+ // eslint-disable-next-line camelcase
253
+ aztec_misc_log(...inputs) {
254
+ return callTxeHandler({
255
+ oracle: 'aztec_misc_log',
256
+ inputs,
257
+ handler: ([level, message, fieldsSize, fields])=>this.handlerAsMisc().log(level, message, fieldsSize, fields)
258
+ });
259
+ }
260
+ // eslint-disable-next-line camelcase
261
+ aztec_utl_getFromPublicStorage(...inputs) {
262
+ return callTxeHandler({
263
+ oracle: 'aztec_utl_getFromPublicStorage',
264
+ inputs,
265
+ handler: ([blockHash, contractAddress, startStorageSlot, numberOfElements])=>this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements)
266
+ });
267
+ }
268
+ // eslint-disable-next-line camelcase
269
+ aztec_utl_getPublicDataWitness(...inputs) {
270
+ return callTxeHandler({
271
+ oracle: 'aztec_utl_getPublicDataWitness',
272
+ inputs,
273
+ handler: ([blockHash, leafSlot])=>this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot)
274
+ });
275
+ }
276
+ // eslint-disable-next-line camelcase
277
+ aztec_utl_getNotes(...inputs) {
278
+ return callTxeHandler({
279
+ oracle: 'aztec_utl_getNotes',
280
+ inputs,
281
+ handler: ([owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status, maxNotes, packedHintedNoteLength])=>this.handlerAsUtility().getNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status, maxNotes, packedHintedNoteLength)
282
+ });
283
+ }
284
+ // eslint-disable-next-line camelcase
285
+ aztec_prv_notifyCreatedNote(...inputs) {
286
+ return callTxeHandler({
287
+ oracle: 'aztec_prv_notifyCreatedNote',
288
+ inputs,
289
+ handler: ([owner, storageSlot, randomness, noteTypeId, note, noteHash, counter])=>this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter)
290
+ });
291
+ }
292
+ // eslint-disable-next-line camelcase
293
+ aztec_prv_notifyNullifiedNote(...inputs) {
294
+ return callTxeHandler({
295
+ oracle: 'aztec_prv_notifyNullifiedNote',
296
+ inputs,
297
+ handler: ([innerNullifier, noteHash, counter])=>this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter)
298
+ });
299
+ }
300
+ // eslint-disable-next-line camelcase
301
+ aztec_prv_notifyCreatedNullifier(...inputs) {
302
+ return callTxeHandler({
303
+ oracle: 'aztec_prv_notifyCreatedNullifier',
304
+ inputs,
305
+ handler: ([innerNullifier])=>this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier)
306
+ });
307
+ }
308
+ // eslint-disable-next-line camelcase
309
+ aztec_prv_isNullifierPending(...inputs) {
310
+ return callTxeHandler({
311
+ oracle: 'aztec_prv_isNullifierPending',
312
+ inputs,
313
+ handler: ([innerNullifier, contractAddress])=>this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress)
314
+ });
315
+ }
316
+ // eslint-disable-next-line camelcase
317
+ aztec_utl_doesNullifierExist(...inputs) {
318
+ return callTxeHandler({
319
+ oracle: 'aztec_utl_doesNullifierExist',
320
+ inputs,
321
+ handler: ([innerNullifier])=>this.handlerAsUtility().doesNullifierExist(innerNullifier)
322
+ });
323
+ }
324
+ // eslint-disable-next-line camelcase
325
+ aztec_utl_getContractInstance(...inputs) {
326
+ return callTxeHandler({
327
+ oracle: 'aztec_utl_getContractInstance',
328
+ inputs,
329
+ handler: ([address])=>this.handlerAsUtility().getContractInstance(address)
330
+ });
331
+ }
332
+ // eslint-disable-next-line camelcase
333
+ aztec_utl_getPublicKeysAndPartialAddress(...inputs) {
334
+ return callTxeHandler({
335
+ oracle: 'aztec_utl_getPublicKeysAndPartialAddress',
336
+ inputs,
337
+ handler: ([address])=>this.handlerAsUtility().getPublicKeysAndPartialAddress(address)
338
+ });
339
+ }
340
+ // eslint-disable-next-line camelcase
341
+ aztec_utl_getKeyValidationRequest(...inputs) {
342
+ return callTxeHandler({
343
+ oracle: 'aztec_utl_getKeyValidationRequest',
344
+ inputs,
345
+ handler: ([pkMHash])=>this.handlerAsUtility().getKeyValidationRequest(pkMHash)
346
+ });
347
+ }
348
+ // eslint-disable-next-line camelcase
349
+ aztec_prv_callPrivateFunction(...inputs) {
350
+ return callTxeHandler({
351
+ oracle: 'aztec_prv_callPrivateFunction',
352
+ inputs,
353
+ handler: ([contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall])=>this.handlerAsPrivate().callPrivateFunction(contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall)
354
+ });
355
+ }
356
+ // eslint-disable-next-line camelcase
357
+ aztec_utl_getNullifierMembershipWitness(...inputs) {
358
+ return callTxeHandler({
359
+ oracle: 'aztec_utl_getNullifierMembershipWitness',
360
+ inputs,
361
+ handler: ([blockHash, nullifier])=>this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier)
362
+ });
363
+ }
364
+ // eslint-disable-next-line camelcase
365
+ aztec_utl_getAuthWitness(...inputs) {
366
+ return callTxeHandler({
367
+ oracle: 'aztec_utl_getAuthWitness',
368
+ inputs,
369
+ handler: ([messageHash])=>this.handlerAsUtility().getAuthWitness(messageHash)
370
+ });
371
+ }
372
+ // eslint-disable-next-line camelcase
373
+ aztec_prv_assertValidPublicCalldata(...inputs) {
374
+ return callTxeHandler({
375
+ oracle: 'aztec_prv_assertValidPublicCalldata',
376
+ inputs,
377
+ handler: ([calldataHash])=>this.handlerAsPrivate().assertValidPublicCalldata(calldataHash)
378
+ });
379
+ }
380
+ // eslint-disable-next-line camelcase
381
+ aztec_prv_notifyRevertiblePhaseStart(...inputs) {
382
+ return callTxeHandler({
383
+ oracle: 'aztec_prv_notifyRevertiblePhaseStart',
384
+ inputs,
385
+ handler: ([minRevertibleSideEffectCounter])=>this.handlerAsPrivate().notifyRevertiblePhaseStart(minRevertibleSideEffectCounter)
386
+ });
387
+ }
388
+ // eslint-disable-next-line camelcase
389
+ aztec_prv_isExecutionInRevertiblePhase(...inputs) {
390
+ return callTxeHandler({
391
+ oracle: 'aztec_prv_isExecutionInRevertiblePhase',
392
+ inputs,
393
+ handler: ([sideEffectCounter])=>this.handlerAsPrivate().isExecutionInRevertiblePhase(sideEffectCounter)
394
+ });
395
+ }
396
+ // eslint-disable-next-line camelcase
397
+ aztec_utl_getUtilityContext() {
398
+ return callTxeHandler({
399
+ oracle: 'aztec_utl_getUtilityContext',
400
+ inputs: [],
401
+ handler: ()=>this.handlerAsUtility().getUtilityContext()
402
+ });
403
+ }
404
+ // eslint-disable-next-line camelcase
405
+ aztec_utl_getBlockHeader(...inputs) {
406
+ return callTxeHandler({
407
+ oracle: 'aztec_utl_getBlockHeader',
408
+ inputs,
409
+ handler: ([blockNumber])=>this.handlerAsUtility().getBlockHeader(blockNumber)
410
+ });
411
+ }
412
+ // eslint-disable-next-line camelcase
413
+ aztec_utl_getNoteHashMembershipWitness(...inputs) {
414
+ return callTxeHandler({
415
+ oracle: 'aztec_utl_getNoteHashMembershipWitness',
416
+ inputs,
417
+ handler: ([blockHash, noteHash])=>this.handlerAsUtility().getNoteHashMembershipWitness(blockHash, noteHash)
418
+ });
419
+ }
420
+ // eslint-disable-next-line camelcase
421
+ aztec_utl_getBlockHashMembershipWitness(...inputs) {
422
+ return callTxeHandler({
423
+ oracle: 'aztec_utl_getBlockHashMembershipWitness',
424
+ inputs,
425
+ handler: ([anchorBlockHash, blockHash])=>this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash)
426
+ });
427
+ }
428
+ // eslint-disable-next-line camelcase
429
+ aztec_utl_getLowNullifierMembershipWitness(...inputs) {
430
+ return callTxeHandler({
431
+ oracle: 'aztec_utl_getLowNullifierMembershipWitness',
432
+ inputs,
433
+ handler: ([blockHash, nullifier])=>this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier)
434
+ });
435
+ }
436
+ // eslint-disable-next-line camelcase
437
+ aztec_utl_getPendingTaggedLogs(...inputs) {
438
+ return callTxeHandler({
439
+ oracle: 'aztec_utl_getPendingTaggedLogs',
440
+ inputs,
441
+ handler: ([scope, providedSecrets])=>this.handlerAsUtility().getPendingTaggedLogs(scope, providedSecrets)
442
+ });
443
+ }
444
+ // eslint-disable-next-line camelcase
445
+ aztec_utl_validateAndStoreEnqueuedNotesAndEvents(...inputs) {
446
+ return callTxeHandler({
447
+ oracle: 'aztec_utl_validateAndStoreEnqueuedNotesAndEvents',
448
+ inputs,
449
+ handler: ([noteValidationRequests, eventValidationRequests, scope])=>this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(noteValidationRequests, eventValidationRequests, scope)
450
+ });
451
+ }
452
+ // eslint-disable-next-line camelcase
453
+ aztec_utl_getLogsByTag(...inputs) {
454
+ return callTxeHandler({
455
+ oracle: 'aztec_utl_getLogsByTag',
456
+ inputs,
457
+ handler: ([requestArrayBaseSlot])=>this.handlerAsUtility().getLogsByTag(requestArrayBaseSlot)
458
+ });
459
+ }
460
+ // eslint-disable-next-line camelcase
461
+ aztec_utl_getMessageContextsByTxHash(...inputs) {
462
+ return callTxeHandler({
463
+ oracle: 'aztec_utl_getMessageContextsByTxHash',
464
+ inputs,
465
+ handler: ([requestArrayBaseSlot])=>this.handlerAsUtility().getMessageContextsByTxHash(requestArrayBaseSlot)
466
+ });
467
+ }
468
+ // eslint-disable-next-line camelcase
469
+ aztec_utl_setCapsule(...inputs) {
470
+ return callTxeHandler({
471
+ oracle: 'aztec_utl_setCapsule',
472
+ inputs,
473
+ handler: ([contractAddress, slot, capsule, scope])=>this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope)
474
+ });
475
+ }
476
+ // eslint-disable-next-line camelcase
477
+ aztec_utl_getCapsule(...inputs) {
478
+ return callTxeHandler({
479
+ oracle: 'aztec_utl_getCapsule',
480
+ inputs,
481
+ handler: ([contractAddress, slot, tSize, scope])=>this.handlerAsUtility().getCapsule(contractAddress, slot, tSize, scope)
482
+ });
483
+ }
484
+ // eslint-disable-next-line camelcase
485
+ aztec_utl_deleteCapsule(...inputs) {
486
+ return callTxeHandler({
487
+ oracle: 'aztec_utl_deleteCapsule',
488
+ inputs,
489
+ handler: ([contractAddress, slot, scope])=>this.handlerAsUtility().deleteCapsule(contractAddress, slot, scope)
490
+ });
491
+ }
492
+ // eslint-disable-next-line camelcase
493
+ aztec_utl_copyCapsule(...inputs) {
494
+ return callTxeHandler({
495
+ oracle: 'aztec_utl_copyCapsule',
496
+ inputs,
497
+ handler: ([contractAddress, srcSlot, dstSlot, numEntries, scope])=>this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope)
498
+ });
499
+ }
500
+ // eslint-disable-next-line camelcase
501
+ aztec_utl_pushEphemeral(...inputs) {
502
+ return callTxeHandler({
503
+ oracle: 'aztec_utl_pushEphemeral',
504
+ inputs,
505
+ handler: ([slot, elements])=>this.handlerAsUtility().pushEphemeral(slot, elements)
506
+ });
507
+ }
508
+ // eslint-disable-next-line camelcase
509
+ aztec_utl_popEphemeral(...inputs) {
510
+ return callTxeHandler({
511
+ oracle: 'aztec_utl_popEphemeral',
512
+ inputs,
513
+ handler: ([slot])=>this.handlerAsUtility().popEphemeral(slot)
514
+ });
515
+ }
516
+ // eslint-disable-next-line camelcase
517
+ aztec_utl_getEphemeral(...inputs) {
518
+ return callTxeHandler({
519
+ oracle: 'aztec_utl_getEphemeral',
520
+ inputs,
521
+ handler: ([slot, index])=>this.handlerAsUtility().getEphemeral(slot, index)
522
+ });
523
+ }
524
+ // eslint-disable-next-line camelcase
525
+ aztec_utl_setEphemeral(...inputs) {
526
+ return callTxeHandler({
527
+ oracle: 'aztec_utl_setEphemeral',
528
+ inputs,
529
+ handler: ([slot, index, elements])=>this.handlerAsUtility().setEphemeral(slot, index, elements)
530
+ });
531
+ }
532
+ // eslint-disable-next-line camelcase
533
+ aztec_utl_getEphemeralLen(...inputs) {
534
+ return callTxeHandler({
535
+ oracle: 'aztec_utl_getEphemeralLen',
536
+ inputs,
537
+ handler: ([slot])=>this.handlerAsUtility().getEphemeralLen(slot)
538
+ });
539
+ }
540
+ // eslint-disable-next-line camelcase
541
+ aztec_utl_removeEphemeral(...inputs) {
542
+ return callTxeHandler({
543
+ oracle: 'aztec_utl_removeEphemeral',
544
+ inputs,
545
+ handler: ([slot, index])=>this.handlerAsUtility().removeEphemeral(slot, index)
546
+ });
547
+ }
548
+ // eslint-disable-next-line camelcase
549
+ aztec_utl_clearEphemeral(...inputs) {
550
+ return callTxeHandler({
551
+ oracle: 'aztec_utl_clearEphemeral',
552
+ inputs,
553
+ handler: ([slot])=>this.handlerAsUtility().clearEphemeral(slot)
554
+ });
555
+ }
556
+ // TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
557
+ // 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
558
+ // to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
559
+ // existence of a txe_oracle method?
560
+ // eslint-disable-next-line camelcase
561
+ aztec_utl_decryptAes128(...inputs) {
562
+ return callTxeHandler({
563
+ oracle: 'aztec_utl_decryptAes128',
564
+ inputs,
565
+ handler: ([ciphertext, iv, symKey])=>this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey)
566
+ });
567
+ }
568
+ // eslint-disable-next-line camelcase
569
+ aztec_utl_getSharedSecrets(...inputs) {
570
+ return callTxeHandler({
571
+ oracle: 'aztec_utl_getSharedSecrets',
572
+ inputs,
573
+ handler: ([address, ephPksSlot, contractAddress])=>this.handlerAsUtility().getSharedSecrets(address, ephPksSlot, contractAddress)
574
+ });
575
+ }
576
+ // eslint-disable-next-line camelcase
577
+ aztec_utl_setContractSyncCacheInvalid(...inputs) {
578
+ return callTxeHandler({
579
+ oracle: 'aztec_utl_setContractSyncCacheInvalid',
580
+ inputs,
581
+ handler: ([contractAddress, scopes])=>this.handlerAsUtility().setContractSyncCacheInvalid(contractAddress, scopes)
582
+ });
583
+ }
584
+ // eslint-disable-next-line camelcase
585
+ aztec_utl_emitOffchainEffect(...inputs) {
586
+ return callTxeHandler({
587
+ oracle: 'aztec_utl_emitOffchainEffect',
588
+ inputs,
589
+ handler: ([data])=>{
590
+ // Record the raw payload against the currently-executing top-level call. The Noir side
591
+ // (via `env.offchain_messages()`) is responsible for decoding the protocol-reserved prefix
592
+ // (`OFFCHAIN_MESSAGE_IDENTIFIER`, recipient) and turning each payload into an `OffchainMessage` struct suitable
593
+ // for `offchain_receive`.
594
+ this.stateHandler.recordOffchainEffect(data);
595
+ }
596
+ });
597
+ }
598
+ // AVM opcodes
599
+ // eslint-disable-next-line camelcase
600
+ aztec_avm_emitPublicLog() {
601
+ return callTxeHandler({
602
+ oracle: 'aztec_avm_emitPublicLog',
603
+ inputs: [],
604
+ // TODO(#8811): Implement
605
+ handler: ()=>{}
606
+ });
607
+ }
608
+ // eslint-disable-next-line camelcase
609
+ aztec_avm_storageRead(...inputs) {
610
+ return callTxeHandler({
611
+ oracle: 'aztec_avm_storageRead',
612
+ inputs,
613
+ handler: ([slot, contractAddress])=>this.handlerAsAvm().storageRead(slot, contractAddress)
614
+ });
615
+ }
616
+ // eslint-disable-next-line camelcase
617
+ aztec_avm_storageWrite(...inputs) {
618
+ return callTxeHandler({
619
+ oracle: 'aztec_avm_storageWrite',
620
+ inputs,
621
+ handler: ([slot, value])=>this.handlerAsAvm().storageWrite(slot, value)
622
+ });
623
+ }
624
+ // eslint-disable-next-line camelcase
625
+ aztec_avm_getContractInstanceDeployer(...inputs) {
626
+ return callTxeHandler({
627
+ oracle: 'aztec_avm_getContractInstanceDeployer',
628
+ inputs,
629
+ handler: ([address])=>this.handlerAsAvm().getContractInstanceDeployer(address)
630
+ });
631
+ }
632
+ // eslint-disable-next-line camelcase
633
+ aztec_avm_getContractInstanceClassId(...inputs) {
634
+ return callTxeHandler({
635
+ oracle: 'aztec_avm_getContractInstanceClassId',
636
+ inputs,
637
+ handler: ([address])=>this.handlerAsAvm().getContractInstanceClassId(address)
638
+ });
639
+ }
640
+ // eslint-disable-next-line camelcase
641
+ aztec_avm_getContractInstanceInitializationHash(...inputs) {
642
+ return callTxeHandler({
643
+ oracle: 'aztec_avm_getContractInstanceInitializationHash',
644
+ inputs,
645
+ handler: ([address])=>this.handlerAsAvm().getContractInstanceInitializationHash(address)
646
+ });
647
+ }
648
+ // eslint-disable-next-line camelcase
649
+ aztec_avm_getContractInstanceImmutablesHash(...inputs) {
650
+ return callTxeHandler({
651
+ oracle: 'aztec_avm_getContractInstanceImmutablesHash',
652
+ inputs,
653
+ handler: ([address])=>this.handlerAsAvm().getContractInstanceImmutablesHash(address)
654
+ });
655
+ }
656
+ // eslint-disable-next-line camelcase
657
+ aztec_avm_sender() {
658
+ return callTxeHandler({
659
+ oracle: 'aztec_avm_sender',
660
+ inputs: [],
661
+ handler: ()=>this.handlerAsAvm().sender()
662
+ });
663
+ }
664
+ // eslint-disable-next-line camelcase
665
+ aztec_avm_emitNullifier(...inputs) {
666
+ return callTxeHandler({
667
+ oracle: 'aztec_avm_emitNullifier',
668
+ inputs,
669
+ handler: ([nullifier])=>this.handlerAsAvm().emitNullifier(nullifier)
670
+ });
671
+ }
672
+ // eslint-disable-next-line camelcase
673
+ aztec_avm_emitNoteHash(...inputs) {
674
+ return callTxeHandler({
675
+ oracle: 'aztec_avm_emitNoteHash',
676
+ inputs,
677
+ handler: ([noteHash])=>this.handlerAsAvm().emitNoteHash(noteHash)
678
+ });
679
+ }
680
+ // eslint-disable-next-line camelcase
681
+ aztec_avm_nullifierExists(...inputs) {
682
+ return callTxeHandler({
683
+ oracle: 'aztec_avm_nullifierExists',
684
+ inputs,
685
+ handler: ([siloedNullifier])=>this.handlerAsAvm().nullifierExists(siloedNullifier)
686
+ });
687
+ }
688
+ // eslint-disable-next-line camelcase
689
+ aztec_avm_address() {
690
+ return callTxeHandler({
691
+ oracle: 'aztec_avm_address',
692
+ inputs: [],
693
+ handler: ()=>this.handlerAsAvm().address()
694
+ });
695
+ }
696
+ // eslint-disable-next-line camelcase
697
+ aztec_avm_blockNumber() {
698
+ return callTxeHandler({
699
+ oracle: 'aztec_avm_blockNumber',
700
+ inputs: [],
701
+ handler: ()=>this.handlerAsAvm().blockNumber()
702
+ });
703
+ }
704
+ // eslint-disable-next-line camelcase
705
+ aztec_avm_timestamp() {
706
+ return callTxeHandler({
707
+ oracle: 'aztec_avm_timestamp',
708
+ inputs: [],
709
+ handler: ()=>this.handlerAsAvm().timestamp()
710
+ });
711
+ }
712
+ // eslint-disable-next-line camelcase
713
+ aztec_avm_isStaticCall() {
714
+ return callTxeHandler({
715
+ oracle: 'aztec_avm_isStaticCall',
716
+ inputs: [],
717
+ handler: ()=>this.handlerAsAvm().isStaticCall()
718
+ });
719
+ }
720
+ // eslint-disable-next-line camelcase
721
+ aztec_avm_chainId() {
722
+ return callTxeHandler({
723
+ oracle: 'aztec_avm_chainId',
724
+ inputs: [],
725
+ handler: ()=>this.handlerAsAvm().chainId()
726
+ });
727
+ }
728
+ // eslint-disable-next-line camelcase
729
+ aztec_avm_version() {
730
+ return callTxeHandler({
731
+ oracle: 'aztec_avm_version',
732
+ inputs: [],
733
+ handler: ()=>this.handlerAsAvm().version()
734
+ });
735
+ }
736
+ // eslint-disable-next-line camelcase
737
+ aztec_avm_returndataSize() {
738
+ return callTxeHandler({
739
+ oracle: 'aztec_avm_returndataSize',
740
+ inputs: [],
741
+ handler: ()=>this.handlerAsAvm().returndataSize()
742
+ });
743
+ }
744
+ // eslint-disable-next-line camelcase
745
+ aztec_avm_returndataCopy(...inputs) {
746
+ return callTxeHandler({
747
+ oracle: 'aztec_avm_returndataCopy',
748
+ inputs,
749
+ handler: ([rdOffset, copySize])=>this.handlerAsAvm().returndataCopy(rdOffset, copySize)
750
+ });
751
+ }
752
+ // eslint-disable-next-line camelcase
753
+ aztec_avm_call(...inputs) {
754
+ return callTxeHandler({
755
+ oracle: 'aztec_avm_call',
756
+ inputs,
757
+ handler: ([l2Gas, daGas, address, argsLength, args])=>this.handlerAsAvm().call(l2Gas, daGas, address, argsLength, args)
758
+ });
759
+ }
760
+ // eslint-disable-next-line camelcase
761
+ aztec_avm_staticCall(...inputs) {
762
+ return callTxeHandler({
763
+ oracle: 'aztec_avm_staticCall',
764
+ inputs,
765
+ handler: ([l2Gas, daGas, address, argsLength, args])=>this.handlerAsAvm().staticCall(l2Gas, daGas, address, argsLength, args)
766
+ });
767
+ }
768
+ // eslint-disable-next-line camelcase
769
+ aztec_avm_successCopy() {
770
+ return callTxeHandler({
771
+ oracle: 'aztec_avm_successCopy',
772
+ inputs: [],
773
+ handler: ()=>this.handlerAsAvm().successCopy()
774
+ });
775
+ }
776
+ // TODO(F-674): Move orchestration logic into the handler so the transport layer is pure serialize->delegate->deserialize.
777
+ // eslint-disable-next-line camelcase
778
+ aztec_txe_privateCallNewFlow(...inputs) {
779
+ return callTxeHandler({
780
+ oracle: 'aztec_txe_privateCallNewFlow',
781
+ inputs,
782
+ handler: async ([from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, additionalScopes, authorizedUtilityCallTargets, gasSettings])=>{
783
+ const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
784
+ const { returnValues, offchainEffects } = await this.handlerAsTxe().privateCallNewFlow(from?.value, targetContractAddress, functionSelector, args, argsHash, isStaticCall, additionalScopes, this.stateHandler.getCurrentJob(), authorizedUtilityCallTargets, gasSettings);
785
+ // Private execution collects offchain effects inside PXE's PrivateExecutionOracle rather than
786
+ // round-tripping them through `aztec_utl_emitOffchainEffect`, so the session buffer is empty
787
+ // at this point. Drain the effects from the execution tree into the session buffer so the
788
+ // next `env.offchain_messages()` call in the test sees them.
789
+ for (const data of offchainEffects){
790
+ this.stateHandler.recordOffchainEffect(data);
791
+ }
792
+ // TODO(F-335): Avoid doing the following call here.
793
+ await this.stateHandler.cycleJob();
794
+ if (isStaticCall) {
795
+ // Static calls revert their checkpoint and mine no block, so there is no tx hash to tag
796
+ // offchain effects with. Querying `getLastTxEffects()` here would return an unrelated
797
+ // predecessor tx.
798
+ return {
799
+ result: returnValues
800
+ };
801
+ }
802
+ const { txHash } = await this.handlerAsTxe().getLastTxEffects();
803
+ return {
804
+ result: returnValues,
805
+ txHash: txHash.hash
806
+ };
807
+ });
808
+ return returnValues;
809
+ }
810
+ });
811
+ }
812
+ // TODO(F-674): Move orchestration logic into the handler so the transport layer is pure serialize->delegate->deserialize.
813
+ // eslint-disable-next-line camelcase
814
+ aztec_txe_executeUtilityFunction(...inputs) {
815
+ return callTxeHandler({
816
+ oracle: 'aztec_txe_executeUtilityFunction',
817
+ inputs,
818
+ handler: async ([targetContractAddress, functionSelector, args, authorizedUtilityCallTargets])=>{
819
+ const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
820
+ const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob(), authorizedUtilityCallTargets);
821
+ // TODO(F-335): Avoid doing the following call here.
822
+ await this.stateHandler.cycleJob();
823
+ return {
824
+ result: returnValues
825
+ };
826
+ });
827
+ return returnValues;
828
+ }
829
+ });
830
+ }
831
+ // TODO(F-674): Move orchestration logic into the handler so the transport layer is pure serialize->delegate->deserialize.
832
+ // eslint-disable-next-line camelcase
833
+ aztec_txe_publicCallNewFlow(...inputs) {
834
+ return callTxeHandler({
835
+ oracle: 'aztec_txe_publicCallNewFlow',
836
+ inputs,
837
+ handler: async ([from, address, calldata, isStaticCall, gasSettings])=>{
838
+ const returnValues = await this.stateHandler.withTopLevelCallTracking(async ()=>{
839
+ const returnValues = await this.handlerAsTxe().publicCallNewFlow(from?.value, address, calldata, isStaticCall, gasSettings);
840
+ // TODO(F-335): Avoid doing the following call here.
841
+ await this.stateHandler.cycleJob();
842
+ if (isStaticCall) {
843
+ // See equivalent branch in `aztec_txe_privateCallNewFlow`.
844
+ return {
845
+ result: returnValues
846
+ };
847
+ }
848
+ const { txHash } = await this.handlerAsTxe().getLastTxEffects();
849
+ return {
850
+ result: returnValues,
851
+ txHash: txHash.hash
852
+ };
853
+ });
854
+ return returnValues;
855
+ }
856
+ });
857
+ }
858
+ // eslint-disable-next-line camelcase
859
+ aztec_prv_getSenderForTags() {
860
+ return callTxeHandler({
861
+ oracle: 'aztec_prv_getSenderForTags',
862
+ inputs: [],
863
+ handler: ()=>this.handlerAsPrivate().getSenderForTags()
864
+ });
865
+ }
866
+ // eslint-disable-next-line camelcase
867
+ aztec_prv_getAppTaggingSecret(...inputs) {
868
+ return callTxeHandler({
869
+ oracle: 'aztec_prv_getAppTaggingSecret',
870
+ inputs,
871
+ handler: ([sender, recipient])=>this.handlerAsPrivate().getAppTaggingSecret(sender, recipient)
872
+ });
873
+ }
874
+ // eslint-disable-next-line camelcase
875
+ aztec_prv_getNextTaggingIndex(...inputs) {
876
+ return callTxeHandler({
877
+ oracle: 'aztec_prv_getNextTaggingIndex',
878
+ inputs,
879
+ handler: ([secret, deliveryMode])=>this.handlerAsPrivate().getNextTaggingIndex(secret, deliveryMode)
880
+ });
881
+ }
882
+ }