@aztec/txe 0.0.1-commit.b2a5d0dd1 → 0.0.1-commit.b3d3157a
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.
- package/dest/ContractClassRegistry-PII7Q556.js +3 -0
- package/dest/ContractClassRegistry-PII7Q556.js.map +7 -0
- package/dest/ContractInstanceRegistry-3MHLGFNZ.js +3 -0
- package/dest/ContractInstanceRegistry-3MHLGFNZ.js.map +7 -0
- package/dest/FeeJuice-TQV5AQK7.js +3 -0
- package/dest/FeeJuice-TQV5AQK7.js.map +7 -0
- package/dest/MultiCallEntrypoint-SBJUIJY7.js +3 -0
- package/dest/MultiCallEntrypoint-SBJUIJY7.js.map +7 -0
- package/dest/SchnorrAccount-MQXPIZ44.js +3 -0
- package/dest/SchnorrAccount-MQXPIZ44.js.map +7 -0
- package/dest/bin/check_txe_oracle_version.d.ts +2 -0
- package/dest/bin/check_txe_oracle_version.d.ts.map +1 -0
- package/dest/bin/check_txe_oracle_version.js +61 -0
- package/dest/bin/index.js +3 -30
- package/dest/bin/index.js.map +7 -0
- package/dest/bin/oracle_test_server.d.ts +3 -0
- package/dest/bin/oracle_test_server.d.ts.map +1 -0
- package/dest/bin/oracle_test_server.js +41 -0
- package/dest/chunk-2FGZE6YL.js +265 -0
- package/dest/chunk-2FGZE6YL.js.map +7 -0
- package/dest/chunk-6HRVNWJU.js +304 -0
- package/dest/chunk-6HRVNWJU.js.map +7 -0
- package/dest/chunk-BJVAAXNA.js +3 -0
- package/dest/chunk-BJVAAXNA.js.map +7 -0
- package/dest/constants.d.ts +5 -1
- package/dest/constants.d.ts.map +1 -1
- package/dest/constants.js +8 -0
- package/dest/dispatcher_pool.d.ts +67 -0
- package/dest/dispatcher_pool.d.ts.map +1 -0
- package/dest/dispatcher_pool.js +284 -0
- package/dest/index.d.ts +185 -7
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +70 -190
- package/dest/metafile.json +38642 -0
- package/dest/msgpackr_fr_extension.d.ts +2 -0
- package/dest/msgpackr_fr_extension.d.ts.map +1 -0
- package/dest/msgpackr_fr_extension.js +21 -0
- package/dest/oracle/interfaces.d.ts +33 -8
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/test-resolver/fixtures.d.ts +43 -0
- package/dest/oracle/test-resolver/fixtures.d.ts.map +1 -0
- package/dest/oracle/test-resolver/fixtures.js +39 -0
- package/dest/oracle/test-resolver/index.d.ts +9 -0
- package/dest/oracle/test-resolver/index.d.ts.map +1 -0
- package/dest/oracle/test-resolver/index.js +33 -0
- package/dest/oracle/test-resolver/resolver.d.ts +34 -0
- package/dest/oracle/test-resolver/resolver.d.ts.map +1 -0
- package/dest/oracle/test-resolver/resolver.js +114 -0
- package/dest/oracle/txe_oracle_public_context.d.ts +26 -2
- package/dest/oracle/txe_oracle_public_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_public_context.js +43 -1
- package/dest/oracle/txe_oracle_registry.d.ts +147 -0
- package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
- package/dest/oracle/txe_oracle_registry.js +562 -0
- package/dest/oracle/txe_oracle_top_level_context.d.ts +27 -13
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +129 -52
- package/dest/oracle/txe_oracle_version.d.ts +17 -0
- package/dest/oracle/txe_oracle_version.d.ts.map +1 -0
- package/dest/oracle/txe_oracle_version.js +14 -0
- package/dest/oracle/txe_private_execution_oracle.d.ts +17 -0
- package/dest/oracle/txe_private_execution_oracle.d.ts.map +1 -0
- package/dest/oracle/txe_private_execution_oracle.js +15 -0
- package/dest/rpc_server.d.ts +14 -0
- package/dest/rpc_server.d.ts.map +1 -0
- package/dest/rpc_server.js +78 -0
- package/dest/rpc_translator.d.ts +96 -266
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +699 -730
- package/dest/server.bundle.js +3 -0
- package/dest/server.bundle.js.map +7 -0
- package/dest/state_machine/archiver.d.ts +4 -3
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +24 -14
- package/dest/state_machine/dummy_p2p_client.d.ts +11 -6
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +11 -2
- package/dest/state_machine/index.d.ts +4 -2
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +16 -2
- package/dest/state_machine/mock_epoch_cache.d.ts +1 -3
- package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
- package/dest/state_machine/mock_epoch_cache.js +0 -6
- package/dest/state_machine/synchronizer.js +1 -1
- package/dest/txe_session.d.ts +75 -14
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +164 -38
- package/dest/utils/encoding.d.ts +191 -0
- package/dest/utils/encoding.d.ts.map +1 -0
- package/dest/{util → utils}/encoding.js +3 -2
- package/dest/{util → utils}/expected_failure_error.d.ts +1 -1
- package/dest/utils/expected_failure_error.d.ts.map +1 -0
- package/dest/{util → utils}/txe_account_store.d.ts +1 -1
- package/dest/utils/txe_account_store.d.ts.map +1 -0
- package/dest/utils/txe_artifact_resolver.d.ts +37 -0
- package/dest/utils/txe_artifact_resolver.d.ts.map +1 -0
- package/dest/utils/txe_artifact_resolver.js +161 -0
- package/dest/utils/txe_public_contract_data_source.d.ts +20 -0
- package/dest/utils/txe_public_contract_data_source.d.ts.map +1 -0
- package/dest/worker.bundle.js +3 -0
- package/dest/worker.bundle.js.map +7 -0
- package/dest/worker.d.ts +2 -0
- package/dest/worker.d.ts.map +1 -0
- package/dest/worker.js +92 -0
- package/package.json +38 -21
- package/src/bin/check_txe_oracle_version.ts +70 -0
- package/src/bin/index.ts +11 -2
- package/src/bin/oracle_test_server.ts +51 -0
- package/src/constants.ts +10 -0
- package/src/dispatcher_pool.ts +316 -0
- package/src/index.ts +97 -227
- package/src/msgpackr_fr_extension.ts +23 -0
- package/src/oracle/interfaces.ts +29 -7
- package/src/oracle/test-resolver/fixtures.ts +84 -0
- package/src/oracle/test-resolver/index.ts +45 -0
- package/src/oracle/test-resolver/resolver.ts +165 -0
- package/src/oracle/txe_oracle_public_context.ts +60 -0
- package/src/oracle/txe_oracle_registry.ts +401 -0
- package/src/oracle/txe_oracle_top_level_context.ts +157 -62
- package/src/oracle/txe_oracle_version.ts +17 -0
- package/src/oracle/txe_private_execution_oracle.ts +30 -0
- package/src/rpc_server.ts +87 -0
- package/src/rpc_translator.ts +774 -1043
- package/src/state_machine/archiver.ts +37 -16
- package/src/state_machine/dummy_p2p_client.ts +25 -9
- package/src/state_machine/index.ts +17 -4
- package/src/state_machine/mock_epoch_cache.ts +0 -8
- package/src/state_machine/synchronizer.ts +1 -1
- package/src/txe_session.ts +269 -39
- package/src/{util → utils}/encoding.ts +3 -2
- package/src/utils/txe_artifact_resolver.ts +217 -0
- package/src/worker.ts +98 -0
- package/dest/util/encoding.d.ts +0 -790
- package/dest/util/encoding.d.ts.map +0 -1
- package/dest/util/expected_failure_error.d.ts.map +0 -1
- package/dest/util/txe_account_store.d.ts.map +0 -1
- package/dest/util/txe_public_contract_data_source.d.ts +0 -20
- package/dest/util/txe_public_contract_data_source.d.ts.map +0 -1
- /package/dest/{util → utils}/expected_failure_error.js +0 -0
- /package/dest/{util → utils}/txe_account_store.js +0 -0
- /package/dest/{util → utils}/txe_public_contract_data_source.js +0 -0
- /package/src/{util → utils}/expected_failure_error.ts +0 -0
- /package/src/{util → utils}/txe_account_store.ts +0 -0
- /package/src/{util → utils}/txe_public_contract_data_source.ts +0 -0
package/dest/rpc_translator.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX } from '@aztec/constants';
|
|
3
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
|
-
import { packAsHintedNote } from '@aztec/pxe/simulator';
|
|
5
|
-
import { EventSelector, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
6
|
-
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import { addressFromSingle, arrayOfArraysToBoundedVecOfArrays, arrayToBoundedVec, blockHashFromSingle, bufferToU8Array, fromArray, fromSingle, fromUintArray, fromUintBoundedVec, toArray, toForeignCallResult, toSingle } from './util/encoding.js';
|
|
8
|
-
const MAX_EVENT_LEN = 10; // This is MAX_MESSAGE_CONTENT_LEN - PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN
|
|
9
|
-
const MAX_PRIVATE_EVENTS_PER_TXE_QUERY = 5;
|
|
1
|
+
import { callTxeHandler } from './oracle/txe_oracle_registry.js';
|
|
10
2
|
export class UnavailableOracleError extends Error {
|
|
11
3
|
constructor(oracleName){
|
|
12
4
|
super(`${oracleName} oracles not available with the current handler`);
|
|
@@ -59,855 +51,832 @@ export class RPCTranslator {
|
|
|
59
51
|
}
|
|
60
52
|
return this.oracleHandler;
|
|
61
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
|
+
}
|
|
62
64
|
// TXE session state transition functions - these get handled by the state handler
|
|
63
65
|
// eslint-disable-next-line camelcase
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
aztec_txe_setTopLevelTXEContext() {
|
|
67
|
+
return callTxeHandler({
|
|
68
|
+
oracle: 'aztec_txe_setTopLevelTXEContext',
|
|
69
|
+
inputs: [],
|
|
70
|
+
handler: ()=>this.stateHandler.enterTopLevelState()
|
|
71
|
+
});
|
|
67
72
|
}
|
|
68
73
|
// eslint-disable-next-line camelcase
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
+
});
|
|
74
80
|
}
|
|
75
81
|
// eslint-disable-next-line camelcase
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
82
|
+
aztec_txe_setPublicTXEContext(...inputs) {
|
|
83
|
+
return callTxeHandler({
|
|
84
|
+
oracle: 'aztec_txe_setPublicTXEContext',
|
|
85
|
+
inputs,
|
|
86
|
+
handler: ([contractAddress])=>this.stateHandler.enterPublicState(contractAddress)
|
|
87
|
+
});
|
|
80
88
|
}
|
|
81
89
|
// eslint-disable-next-line camelcase
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
aztec_txe_setUtilityTXEContext(...inputs) {
|
|
91
|
+
return callTxeHandler({
|
|
92
|
+
oracle: 'aztec_txe_setUtilityTXEContext',
|
|
93
|
+
inputs,
|
|
94
|
+
handler: ([contractAddress])=>this.stateHandler.enterUtilityState(contractAddress)
|
|
95
|
+
});
|
|
86
96
|
}
|
|
87
97
|
// Other oracles - these get handled by the oracle handler
|
|
88
98
|
// TXE-specific oracles
|
|
89
99
|
// eslint-disable-next-line camelcase
|
|
90
100
|
aztec_txe_getDefaultAddress() {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
101
|
+
return callTxeHandler({
|
|
102
|
+
oracle: 'aztec_txe_getDefaultAddress',
|
|
103
|
+
inputs: [],
|
|
104
|
+
handler: ()=>this.handlerAsTxe().getDefaultAddress()
|
|
105
|
+
});
|
|
95
106
|
}
|
|
96
107
|
// eslint-disable-next-line camelcase
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
aztec_txe_getNextBlockNumber() {
|
|
109
|
+
return callTxeHandler({
|
|
110
|
+
oracle: 'aztec_txe_getNextBlockNumber',
|
|
111
|
+
inputs: [],
|
|
112
|
+
handler: ()=>this.handlerAsTxe().getNextBlockNumber()
|
|
113
|
+
});
|
|
102
114
|
}
|
|
103
115
|
// eslint-disable-next-line camelcase
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
aztec_txe_getNextBlockTimestamp() {
|
|
117
|
+
return callTxeHandler({
|
|
118
|
+
oracle: 'aztec_txe_getNextBlockTimestamp',
|
|
119
|
+
inputs: [],
|
|
120
|
+
handler: ()=>this.handlerAsTxe().getNextBlockTimestamp()
|
|
121
|
+
});
|
|
109
122
|
}
|
|
110
123
|
// eslint-disable-next-line camelcase
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
124
|
+
aztec_txe_advanceBlocksBy(...inputs) {
|
|
125
|
+
return callTxeHandler({
|
|
126
|
+
oracle: 'aztec_txe_advanceBlocksBy',
|
|
127
|
+
inputs,
|
|
128
|
+
handler: ([blocks])=>this.handlerAsTxe().advanceBlocksBy(blocks)
|
|
129
|
+
});
|
|
115
130
|
}
|
|
116
131
|
// eslint-disable-next-line camelcase
|
|
117
|
-
aztec_txe_advanceTimestampBy(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
132
|
+
aztec_txe_advanceTimestampBy(...inputs) {
|
|
133
|
+
return callTxeHandler({
|
|
134
|
+
oracle: 'aztec_txe_advanceTimestampBy',
|
|
135
|
+
inputs,
|
|
136
|
+
handler: ([duration])=>this.handlerAsTxe().advanceTimestampBy(duration)
|
|
137
|
+
});
|
|
121
138
|
}
|
|
122
139
|
// eslint-disable-next-line camelcase
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
instance.deployer.toField(),
|
|
130
|
-
instance.currentContractClassId,
|
|
131
|
-
instance.initializationHash,
|
|
132
|
-
...instance.publicKeys.toFields()
|
|
133
|
-
])
|
|
134
|
-
]);
|
|
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
|
+
});
|
|
135
146
|
}
|
|
136
147
|
// eslint-disable-next-line camelcase
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
]);
|
|
148
|
+
aztec_txe_createAccount(...inputs) {
|
|
149
|
+
return callTxeHandler({
|
|
150
|
+
oracle: 'aztec_txe_createAccount',
|
|
151
|
+
inputs,
|
|
152
|
+
handler: ([secret])=>this.handlerAsTxe().createAccount(secret)
|
|
153
|
+
});
|
|
144
154
|
}
|
|
145
155
|
// eslint-disable-next-line camelcase
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
]);
|
|
156
|
+
aztec_txe_addAccount(...inputs) {
|
|
157
|
+
return callTxeHandler({
|
|
158
|
+
oracle: 'aztec_txe_addAccount',
|
|
159
|
+
inputs,
|
|
160
|
+
handler: ([secret])=>this.handlerAsTxe().addAccount(secret)
|
|
161
|
+
});
|
|
153
162
|
}
|
|
154
163
|
// eslint-disable-next-line camelcase
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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
|
+
});
|
|
160
170
|
}
|
|
161
171
|
// PXE oracles
|
|
162
172
|
// eslint-disable-next-line camelcase
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
return
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
return
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
return
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
// eslint-disable-next-line camelcase
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
}
|
|
322
|
-
// eslint-disable-next-line camelcase
|
|
323
|
-
async aztec_prv_notifyCreatedNullifier(foreignInnerNullifier) {
|
|
324
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
325
|
-
await this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier);
|
|
326
|
-
return toForeignCallResult([]);
|
|
327
|
-
}
|
|
328
|
-
// eslint-disable-next-line camelcase
|
|
329
|
-
async aztec_prv_isNullifierPending(foreignInnerNullifier, foreignContractAddress) {
|
|
330
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
331
|
-
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
332
|
-
const isPending = await this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress);
|
|
333
|
-
return toForeignCallResult([
|
|
334
|
-
toSingle(new Fr(isPending))
|
|
335
|
-
]);
|
|
336
|
-
}
|
|
337
|
-
// eslint-disable-next-line camelcase
|
|
338
|
-
async aztec_utl_doesNullifierExist(foreignInnerNullifier) {
|
|
339
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
340
|
-
const exists = await this.handlerAsUtility().doesNullifierExist(innerNullifier);
|
|
341
|
-
return toForeignCallResult([
|
|
342
|
-
toSingle(new Fr(exists))
|
|
343
|
-
]);
|
|
344
|
-
}
|
|
345
|
-
// eslint-disable-next-line camelcase
|
|
346
|
-
async aztec_utl_getContractInstance(foreignAddress) {
|
|
347
|
-
const address = addressFromSingle(foreignAddress);
|
|
348
|
-
const instance = await this.handlerAsUtility().getContractInstance(address);
|
|
349
|
-
return toForeignCallResult([
|
|
350
|
-
instance.salt,
|
|
351
|
-
instance.deployer.toField(),
|
|
352
|
-
instance.currentContractClassId,
|
|
353
|
-
instance.initializationHash,
|
|
354
|
-
...instance.publicKeys.toFields()
|
|
355
|
-
].map(toSingle));
|
|
356
|
-
}
|
|
357
|
-
// eslint-disable-next-line camelcase
|
|
358
|
-
async aztec_utl_getPublicKeysAndPartialAddress(foreignAddress) {
|
|
359
|
-
const address = addressFromSingle(foreignAddress);
|
|
360
|
-
const result = await this.handlerAsUtility().getPublicKeysAndPartialAddress(address);
|
|
361
|
-
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
362
|
-
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
363
|
-
if (result === undefined) {
|
|
364
|
-
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
365
|
-
return toForeignCallResult([
|
|
366
|
-
toSingle(new Fr(0)),
|
|
367
|
-
toArray(Array(13).fill(new Fr(0)))
|
|
368
|
-
]);
|
|
369
|
-
} else {
|
|
370
|
-
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
371
|
-
return toForeignCallResult([
|
|
372
|
-
toSingle(new Fr(1)),
|
|
373
|
-
toArray([
|
|
374
|
-
...result.publicKeys.toFields(),
|
|
375
|
-
result.partialAddress
|
|
376
|
-
])
|
|
377
|
-
]);
|
|
378
|
-
}
|
|
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
|
+
});
|
|
379
331
|
}
|
|
380
332
|
// eslint-disable-next-line camelcase
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
333
|
+
aztec_utl_getPublicKeysAndPartialAddress(...inputs) {
|
|
334
|
+
return callTxeHandler({
|
|
335
|
+
oracle: 'aztec_utl_getPublicKeysAndPartialAddress',
|
|
336
|
+
inputs,
|
|
337
|
+
handler: ([address])=>this.handlerAsUtility().getPublicKeysAndPartialAddress(address)
|
|
338
|
+
});
|
|
385
339
|
}
|
|
386
340
|
// eslint-disable-next-line camelcase
|
|
387
|
-
|
|
388
|
-
|
|
341
|
+
aztec_utl_getKeyValidationRequest(...inputs) {
|
|
342
|
+
return callTxeHandler({
|
|
343
|
+
oracle: 'aztec_utl_getKeyValidationRequest',
|
|
344
|
+
inputs,
|
|
345
|
+
handler: ([pkMHash])=>this.handlerAsUtility().getKeyValidationRequest(pkMHash)
|
|
346
|
+
});
|
|
389
347
|
}
|
|
390
348
|
// eslint-disable-next-line camelcase
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
}
|
|
398
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
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
|
+
});
|
|
399
355
|
}
|
|
400
356
|
// eslint-disable-next-line camelcase
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
}
|
|
407
|
-
return toForeignCallResult([
|
|
408
|
-
toArray(authWitness)
|
|
409
|
-
]);
|
|
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
|
+
});
|
|
410
363
|
}
|
|
411
364
|
// eslint-disable-next-line camelcase
|
|
412
|
-
|
|
413
|
-
|
|
365
|
+
aztec_utl_getAuthWitness(...inputs) {
|
|
366
|
+
return callTxeHandler({
|
|
367
|
+
oracle: 'aztec_utl_getAuthWitness',
|
|
368
|
+
inputs,
|
|
369
|
+
handler: ([messageHash])=>this.handlerAsUtility().getAuthWitness(messageHash)
|
|
370
|
+
});
|
|
414
371
|
}
|
|
415
372
|
// eslint-disable-next-line camelcase
|
|
416
|
-
|
|
417
|
-
|
|
373
|
+
aztec_prv_assertValidPublicCalldata(...inputs) {
|
|
374
|
+
return callTxeHandler({
|
|
375
|
+
oracle: 'aztec_prv_assertValidPublicCalldata',
|
|
376
|
+
inputs,
|
|
377
|
+
handler: ([calldataHash])=>this.handlerAsPrivate().assertValidPublicCalldata(calldataHash)
|
|
378
|
+
});
|
|
418
379
|
}
|
|
419
380
|
// eslint-disable-next-line camelcase
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
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
|
+
});
|
|
426
395
|
}
|
|
427
396
|
// eslint-disable-next-line camelcase
|
|
428
397
|
aztec_utl_getUtilityContext() {
|
|
429
|
-
|
|
430
|
-
|
|
398
|
+
return callTxeHandler({
|
|
399
|
+
oracle: 'aztec_utl_getUtilityContext',
|
|
400
|
+
inputs: [],
|
|
401
|
+
handler: ()=>this.handlerAsUtility().getUtilityContext()
|
|
402
|
+
});
|
|
431
403
|
}
|
|
432
404
|
// eslint-disable-next-line camelcase
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
}
|
|
439
|
-
return toForeignCallResult(header.toFields().map(toSingle));
|
|
405
|
+
aztec_utl_getBlockHeader(...inputs) {
|
|
406
|
+
return callTxeHandler({
|
|
407
|
+
oracle: 'aztec_utl_getBlockHeader',
|
|
408
|
+
inputs,
|
|
409
|
+
handler: ([blockNumber])=>this.handlerAsUtility().getBlockHeader(blockNumber)
|
|
410
|
+
});
|
|
440
411
|
}
|
|
441
412
|
// eslint-disable-next-line camelcase
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
}
|
|
449
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
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
|
+
});
|
|
450
419
|
}
|
|
451
420
|
// eslint-disable-next-line camelcase
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
}
|
|
459
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
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
|
+
});
|
|
460
427
|
}
|
|
461
428
|
// eslint-disable-next-line camelcase
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
}
|
|
469
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
470
|
-
}
|
|
471
|
-
// eslint-disable-next-line camelcase
|
|
472
|
-
async aztec_utl_getPendingTaggedLogs(foreignPendingTaggedLogArrayBaseSlot, foreignScope) {
|
|
473
|
-
const pendingTaggedLogArrayBaseSlot = fromSingle(foreignPendingTaggedLogArrayBaseSlot);
|
|
474
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
475
|
-
await this.handlerAsUtility().getPendingTaggedLogs(pendingTaggedLogArrayBaseSlot, scope);
|
|
476
|
-
return toForeignCallResult([]);
|
|
477
|
-
}
|
|
478
|
-
// eslint-disable-next-line camelcase
|
|
479
|
-
async aztec_utl_getPendingTaggedLogs_v2(foreignScope) {
|
|
480
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
481
|
-
const slot = await this.handlerAsUtility().getPendingTaggedLogsV2(scope);
|
|
482
|
-
return toForeignCallResult([
|
|
483
|
-
toSingle(slot)
|
|
484
|
-
]);
|
|
485
|
-
}
|
|
486
|
-
// eslint-disable-next-line camelcase
|
|
487
|
-
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents(foreignContractAddress, foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen, foreignScope) {
|
|
488
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
489
|
-
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
490
|
-
const eventValidationRequestsArrayBaseSlot = fromSingle(foreignEventValidationRequestsArrayBaseSlot);
|
|
491
|
-
const maxNotePackedLen = fromSingle(foreignMaxNotePackedLen).toNumber();
|
|
492
|
-
const maxEventSerializedLen = fromSingle(foreignMaxEventSerializedLen).toNumber();
|
|
493
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
494
|
-
await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(contractAddress, noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, maxNotePackedLen, maxEventSerializedLen, scope);
|
|
495
|
-
return toForeignCallResult([]);
|
|
496
|
-
}
|
|
497
|
-
// eslint-disable-next-line camelcase
|
|
498
|
-
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents_v2(foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen, foreignScope) {
|
|
499
|
-
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
500
|
-
const eventValidationRequestsArrayBaseSlot = fromSingle(foreignEventValidationRequestsArrayBaseSlot);
|
|
501
|
-
const maxNotePackedLen = fromSingle(foreignMaxNotePackedLen).toNumber();
|
|
502
|
-
const maxEventSerializedLen = fromSingle(foreignMaxEventSerializedLen).toNumber();
|
|
503
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
504
|
-
await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEventsV2(noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, maxNotePackedLen, maxEventSerializedLen, scope);
|
|
505
|
-
return toForeignCallResult([]);
|
|
506
|
-
}
|
|
507
|
-
// eslint-disable-next-line camelcase
|
|
508
|
-
async aztec_utl_getLogsByTag(foreignContractAddress, foreignLogRetrievalRequestsArrayBaseSlot, foreignLogRetrievalResponsesArrayBaseSlot, foreignScope) {
|
|
509
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
510
|
-
const logRetrievalRequestsArrayBaseSlot = fromSingle(foreignLogRetrievalRequestsArrayBaseSlot);
|
|
511
|
-
const logRetrievalResponsesArrayBaseSlot = fromSingle(foreignLogRetrievalResponsesArrayBaseSlot);
|
|
512
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
513
|
-
await this.handlerAsUtility().getLogsByTag(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot, scope);
|
|
514
|
-
return toForeignCallResult([]);
|
|
515
|
-
}
|
|
516
|
-
// eslint-disable-next-line camelcase
|
|
517
|
-
async aztec_utl_getMessageContextsByTxHash(foreignContractAddress, foreignMessageContextRequestsArrayBaseSlot, foreignMessageContextResponsesArrayBaseSlot, foreignScope) {
|
|
518
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
519
|
-
const messageContextRequestsArrayBaseSlot = fromSingle(foreignMessageContextRequestsArrayBaseSlot);
|
|
520
|
-
const messageContextResponsesArrayBaseSlot = fromSingle(foreignMessageContextResponsesArrayBaseSlot);
|
|
521
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
522
|
-
await this.handlerAsUtility().getMessageContextsByTxHash(contractAddress, messageContextRequestsArrayBaseSlot, messageContextResponsesArrayBaseSlot, scope);
|
|
523
|
-
return toForeignCallResult([]);
|
|
524
|
-
}
|
|
525
|
-
// eslint-disable-next-line camelcase
|
|
526
|
-
async aztec_utl_getLogsByTag_v2(foreignRequestArrayBaseSlot) {
|
|
527
|
-
const requestArrayBaseSlot = fromSingle(foreignRequestArrayBaseSlot);
|
|
528
|
-
const responseSlot = await this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot);
|
|
529
|
-
return toForeignCallResult([
|
|
530
|
-
toSingle(responseSlot)
|
|
531
|
-
]);
|
|
532
|
-
}
|
|
533
|
-
// eslint-disable-next-line camelcase
|
|
534
|
-
async aztec_utl_getMessageContextsByTxHash_v2(foreignRequestArrayBaseSlot) {
|
|
535
|
-
const requestArrayBaseSlot = fromSingle(foreignRequestArrayBaseSlot);
|
|
536
|
-
const responseSlot = await this.handlerAsUtility().getMessageContextsByTxHashV2(requestArrayBaseSlot);
|
|
537
|
-
return toForeignCallResult([
|
|
538
|
-
toSingle(responseSlot)
|
|
539
|
-
]);
|
|
540
|
-
}
|
|
541
|
-
// eslint-disable-next-line camelcase
|
|
542
|
-
aztec_utl_setCapsule(foreignContractAddress, foreignSlot, foreignCapsule, foreignScope) {
|
|
543
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
544
|
-
const slot = fromSingle(foreignSlot);
|
|
545
|
-
const capsule = fromArray(foreignCapsule);
|
|
546
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
547
|
-
this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope);
|
|
548
|
-
return toForeignCallResult([]);
|
|
549
|
-
}
|
|
550
|
-
// eslint-disable-next-line camelcase
|
|
551
|
-
async aztec_utl_getCapsule(foreignContractAddress, foreignSlot, foreignTSize, foreignScope) {
|
|
552
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
553
|
-
const slot = fromSingle(foreignSlot);
|
|
554
|
-
const tSize = fromSingle(foreignTSize).toNumber();
|
|
555
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
556
|
-
const values = await this.handlerAsUtility().getCapsule(contractAddress, slot, scope);
|
|
557
|
-
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
558
|
-
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
559
|
-
if (values === null) {
|
|
560
|
-
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
561
|
-
return toForeignCallResult([
|
|
562
|
-
toSingle(new Fr(0)),
|
|
563
|
-
toArray(Array(tSize).fill(new Fr(0)))
|
|
564
|
-
]);
|
|
565
|
-
} else {
|
|
566
|
-
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
567
|
-
return toForeignCallResult([
|
|
568
|
-
toSingle(new Fr(1)),
|
|
569
|
-
toArray(values)
|
|
570
|
-
]);
|
|
571
|
-
}
|
|
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
|
+
});
|
|
572
435
|
}
|
|
573
436
|
// eslint-disable-next-line camelcase
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
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
|
+
});
|
|
580
443
|
}
|
|
581
444
|
// eslint-disable-next-line camelcase
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
await this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope);
|
|
589
|
-
return toForeignCallResult([]);
|
|
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
|
+
});
|
|
590
451
|
}
|
|
591
452
|
// eslint-disable-next-line camelcase
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
]);
|
|
453
|
+
aztec_utl_getLogsByTag(...inputs) {
|
|
454
|
+
return callTxeHandler({
|
|
455
|
+
oracle: 'aztec_utl_getLogsByTag',
|
|
456
|
+
inputs,
|
|
457
|
+
handler: ([requestArrayBaseSlot])=>this.handlerAsUtility().getLogsByTag(requestArrayBaseSlot)
|
|
458
|
+
});
|
|
599
459
|
}
|
|
600
460
|
// eslint-disable-next-line camelcase
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
461
|
+
aztec_utl_getMessageContextsByTxHash(...inputs) {
|
|
462
|
+
return callTxeHandler({
|
|
463
|
+
oracle: 'aztec_utl_getMessageContextsByTxHash',
|
|
464
|
+
inputs,
|
|
465
|
+
handler: ([requestArrayBaseSlot])=>this.handlerAsUtility().getMessageContextsByTxHash(requestArrayBaseSlot)
|
|
466
|
+
});
|
|
607
467
|
}
|
|
608
468
|
// eslint-disable-next-line camelcase
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
]);
|
|
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
|
+
});
|
|
616
475
|
}
|
|
617
476
|
// eslint-disable-next-line camelcase
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
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
|
+
});
|
|
624
483
|
}
|
|
625
484
|
// eslint-disable-next-line camelcase
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
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
|
+
});
|
|
632
491
|
}
|
|
633
492
|
// eslint-disable-next-line camelcase
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
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
|
+
});
|
|
639
499
|
}
|
|
640
500
|
// eslint-disable-next-line camelcase
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
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
|
+
});
|
|
645
507
|
}
|
|
646
|
-
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
647
|
-
// 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
|
|
648
|
-
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
649
|
-
// existence of a txe_oracle method?
|
|
650
508
|
// eslint-disable-next-line camelcase
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
const plaintextBuffer = await this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey);
|
|
658
|
-
const [storage, length] = arrayToBoundedVec(bufferToU8Array(plaintextBuffer), foreignCiphertextBVecStorage.length);
|
|
659
|
-
return toForeignCallResult([
|
|
660
|
-
toSingle(new Fr(1)),
|
|
661
|
-
storage,
|
|
662
|
-
length
|
|
663
|
-
]);
|
|
664
|
-
} catch {
|
|
665
|
-
const zeroStorage = toArray(Array(foreignCiphertextBVecStorage.length).fill(new Fr(0)));
|
|
666
|
-
return toForeignCallResult([
|
|
667
|
-
toSingle(new Fr(0)),
|
|
668
|
-
zeroStorage,
|
|
669
|
-
toSingle(new Fr(0))
|
|
670
|
-
]);
|
|
671
|
-
}
|
|
509
|
+
aztec_utl_popEphemeral(...inputs) {
|
|
510
|
+
return callTxeHandler({
|
|
511
|
+
oracle: 'aztec_utl_popEphemeral',
|
|
512
|
+
inputs,
|
|
513
|
+
handler: ([slot])=>this.handlerAsUtility().popEphemeral(slot)
|
|
514
|
+
});
|
|
672
515
|
}
|
|
673
516
|
// eslint-disable-next-line camelcase
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
]);
|
|
681
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
682
|
-
const secret = await this.handlerAsUtility().getSharedSecret(address, ephPK, contractAddress);
|
|
683
|
-
return toForeignCallResult([
|
|
684
|
-
toSingle(secret)
|
|
685
|
-
]);
|
|
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
|
+
});
|
|
686
523
|
}
|
|
687
524
|
// eslint-disable-next-line camelcase
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
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
|
+
});
|
|
694
531
|
}
|
|
695
532
|
// eslint-disable-next-line camelcase
|
|
696
|
-
|
|
697
|
-
|
|
533
|
+
aztec_utl_getEphemeralLen(...inputs) {
|
|
534
|
+
return callTxeHandler({
|
|
535
|
+
oracle: 'aztec_utl_getEphemeralLen',
|
|
536
|
+
inputs,
|
|
537
|
+
handler: ([slot])=>this.handlerAsUtility().getEphemeralLen(slot)
|
|
538
|
+
});
|
|
698
539
|
}
|
|
699
|
-
// AVM opcodes
|
|
700
540
|
// eslint-disable-next-line camelcase
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
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
|
+
});
|
|
704
597
|
}
|
|
598
|
+
// AVM opcodes
|
|
705
599
|
// eslint-disable-next-line camelcase
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
600
|
+
aztec_avm_emitPublicLog() {
|
|
601
|
+
return callTxeHandler({
|
|
602
|
+
oracle: 'aztec_avm_emitPublicLog',
|
|
603
|
+
inputs: [],
|
|
604
|
+
// TODO(#8811): Implement
|
|
605
|
+
handler: ()=>{}
|
|
606
|
+
});
|
|
713
607
|
}
|
|
714
608
|
// eslint-disable-next-line camelcase
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
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
|
+
});
|
|
720
615
|
}
|
|
721
616
|
// eslint-disable-next-line camelcase
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
toSingle(new Fr(1))
|
|
729
|
-
]);
|
|
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
|
+
});
|
|
730
623
|
}
|
|
731
624
|
// eslint-disable-next-line camelcase
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
toSingle(new Fr(1))
|
|
739
|
-
]);
|
|
625
|
+
aztec_avm_getContractInstanceDeployer(...inputs) {
|
|
626
|
+
return callTxeHandler({
|
|
627
|
+
oracle: 'aztec_avm_getContractInstanceDeployer',
|
|
628
|
+
inputs,
|
|
629
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceDeployer(address)
|
|
630
|
+
});
|
|
740
631
|
}
|
|
741
632
|
// eslint-disable-next-line camelcase
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
toSingle(new Fr(1))
|
|
749
|
-
]);
|
|
633
|
+
aztec_avm_getContractInstanceClassId(...inputs) {
|
|
634
|
+
return callTxeHandler({
|
|
635
|
+
oracle: 'aztec_avm_getContractInstanceClassId',
|
|
636
|
+
inputs,
|
|
637
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceClassId(address)
|
|
638
|
+
});
|
|
750
639
|
}
|
|
751
640
|
// eslint-disable-next-line camelcase
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
641
|
+
aztec_avm_getContractInstanceInitializationHash(...inputs) {
|
|
642
|
+
return callTxeHandler({
|
|
643
|
+
oracle: 'aztec_avm_getContractInstanceInitializationHash',
|
|
644
|
+
inputs,
|
|
645
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceInitializationHash(address)
|
|
646
|
+
});
|
|
757
647
|
}
|
|
758
648
|
// eslint-disable-next-line camelcase
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
649
|
+
aztec_avm_getContractInstanceImmutablesHash(...inputs) {
|
|
650
|
+
return callTxeHandler({
|
|
651
|
+
oracle: 'aztec_avm_getContractInstanceImmutablesHash',
|
|
652
|
+
inputs,
|
|
653
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceImmutablesHash(address)
|
|
654
|
+
});
|
|
763
655
|
}
|
|
764
656
|
// eslint-disable-next-line camelcase
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
657
|
+
aztec_avm_sender() {
|
|
658
|
+
return callTxeHandler({
|
|
659
|
+
oracle: 'aztec_avm_sender',
|
|
660
|
+
inputs: [],
|
|
661
|
+
handler: ()=>this.handlerAsAvm().sender()
|
|
662
|
+
});
|
|
769
663
|
}
|
|
770
664
|
// eslint-disable-next-line camelcase
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
665
|
+
aztec_avm_emitNullifier(...inputs) {
|
|
666
|
+
return callTxeHandler({
|
|
667
|
+
oracle: 'aztec_avm_emitNullifier',
|
|
668
|
+
inputs,
|
|
669
|
+
handler: ([nullifier])=>this.handlerAsAvm().emitNullifier(nullifier)
|
|
670
|
+
});
|
|
777
671
|
}
|
|
778
672
|
// eslint-disable-next-line camelcase
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
673
|
+
aztec_avm_emitNoteHash(...inputs) {
|
|
674
|
+
return callTxeHandler({
|
|
675
|
+
oracle: 'aztec_avm_emitNoteHash',
|
|
676
|
+
inputs,
|
|
677
|
+
handler: ([noteHash])=>this.handlerAsAvm().emitNoteHash(noteHash)
|
|
678
|
+
});
|
|
784
679
|
}
|
|
785
680
|
// eslint-disable-next-line camelcase
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
681
|
+
aztec_avm_nullifierExists(...inputs) {
|
|
682
|
+
return callTxeHandler({
|
|
683
|
+
oracle: 'aztec_avm_nullifierExists',
|
|
684
|
+
inputs,
|
|
685
|
+
handler: ([siloedNullifier])=>this.handlerAsAvm().nullifierExists(siloedNullifier)
|
|
686
|
+
});
|
|
791
687
|
}
|
|
792
688
|
// eslint-disable-next-line camelcase
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
689
|
+
aztec_avm_address() {
|
|
690
|
+
return callTxeHandler({
|
|
691
|
+
oracle: 'aztec_avm_address',
|
|
692
|
+
inputs: [],
|
|
693
|
+
handler: ()=>this.handlerAsAvm().address()
|
|
694
|
+
});
|
|
798
695
|
}
|
|
799
696
|
// eslint-disable-next-line camelcase
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
697
|
+
aztec_avm_blockNumber() {
|
|
698
|
+
return callTxeHandler({
|
|
699
|
+
oracle: 'aztec_avm_blockNumber',
|
|
700
|
+
inputs: [],
|
|
701
|
+
handler: ()=>this.handlerAsAvm().blockNumber()
|
|
702
|
+
});
|
|
805
703
|
}
|
|
806
704
|
// eslint-disable-next-line camelcase
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
705
|
+
aztec_avm_timestamp() {
|
|
706
|
+
return callTxeHandler({
|
|
707
|
+
oracle: 'aztec_avm_timestamp',
|
|
708
|
+
inputs: [],
|
|
709
|
+
handler: ()=>this.handlerAsAvm().timestamp()
|
|
710
|
+
});
|
|
812
711
|
}
|
|
813
712
|
// eslint-disable-next-line camelcase
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
713
|
+
aztec_avm_isStaticCall() {
|
|
714
|
+
return callTxeHandler({
|
|
715
|
+
oracle: 'aztec_avm_isStaticCall',
|
|
716
|
+
inputs: [],
|
|
717
|
+
handler: ()=>this.handlerAsAvm().isStaticCall()
|
|
718
|
+
});
|
|
819
719
|
}
|
|
820
720
|
// eslint-disable-next-line camelcase
|
|
821
|
-
|
|
822
|
-
|
|
721
|
+
aztec_avm_chainId() {
|
|
722
|
+
return callTxeHandler({
|
|
723
|
+
oracle: 'aztec_avm_chainId',
|
|
724
|
+
inputs: [],
|
|
725
|
+
handler: ()=>this.handlerAsAvm().chainId()
|
|
726
|
+
});
|
|
823
727
|
}
|
|
824
728
|
// eslint-disable-next-line camelcase
|
|
825
|
-
|
|
826
|
-
|
|
729
|
+
aztec_avm_version() {
|
|
730
|
+
return callTxeHandler({
|
|
731
|
+
oracle: 'aztec_avm_version',
|
|
732
|
+
inputs: [],
|
|
733
|
+
handler: ()=>this.handlerAsAvm().version()
|
|
734
|
+
});
|
|
827
735
|
}
|
|
828
736
|
// eslint-disable-next-line camelcase
|
|
829
|
-
|
|
830
|
-
|
|
737
|
+
aztec_avm_returndataSize() {
|
|
738
|
+
return callTxeHandler({
|
|
739
|
+
oracle: 'aztec_avm_returndataSize',
|
|
740
|
+
inputs: [],
|
|
741
|
+
handler: ()=>this.handlerAsAvm().returndataSize()
|
|
742
|
+
});
|
|
831
743
|
}
|
|
832
744
|
// eslint-disable-next-line camelcase
|
|
833
|
-
|
|
834
|
-
|
|
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
|
+
});
|
|
835
751
|
}
|
|
836
752
|
// eslint-disable-next-line camelcase
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
844
|
-
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
845
|
-
const args = fromArray(foreignArgs);
|
|
846
|
-
const argsHash = fromSingle(foreignArgsHash);
|
|
847
|
-
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
848
|
-
const returnValues = await this.handlerAsTxe().privateCallNewFlow(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, this.stateHandler.getCurrentJob());
|
|
849
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
850
|
-
await this.stateHandler.cycleJob();
|
|
851
|
-
return toForeignCallResult([
|
|
852
|
-
toArray(returnValues)
|
|
853
|
-
]);
|
|
854
|
-
}
|
|
855
|
-
// eslint-disable-next-line camelcase
|
|
856
|
-
async aztec_txe_executeUtilityFunction(foreignTargetContractAddress, foreignFunctionSelector, foreignArgs) {
|
|
857
|
-
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
858
|
-
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
859
|
-
const args = fromArray(foreignArgs);
|
|
860
|
-
const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob());
|
|
861
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
862
|
-
await this.stateHandler.cycleJob();
|
|
863
|
-
return toForeignCallResult([
|
|
864
|
-
toArray(returnValues)
|
|
865
|
-
]);
|
|
866
|
-
}
|
|
867
|
-
// eslint-disable-next-line camelcase
|
|
868
|
-
async aztec_txe_publicCallNewFlow(foreignFrom, foreignAddress, foreignCalldata, foreignIsStaticCall) {
|
|
869
|
-
const from = addressFromSingle(foreignFrom);
|
|
870
|
-
const address = addressFromSingle(foreignAddress);
|
|
871
|
-
const calldata = fromArray(foreignCalldata);
|
|
872
|
-
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
873
|
-
const returnValues = await this.handlerAsTxe().publicCallNewFlow(from, address, calldata, isStaticCall);
|
|
874
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
875
|
-
await this.stateHandler.cycleJob();
|
|
876
|
-
return toForeignCallResult([
|
|
877
|
-
toArray(returnValues)
|
|
878
|
-
]);
|
|
879
|
-
}
|
|
880
|
-
// eslint-disable-next-line camelcase
|
|
881
|
-
async aztec_prv_getSenderForTags() {
|
|
882
|
-
const sender = await this.handlerAsPrivate().getSenderForTags();
|
|
883
|
-
// Return a Noir Option struct with `some` and `value` fields
|
|
884
|
-
if (sender === undefined) {
|
|
885
|
-
// No sender found, return Option with some=0 and value=0
|
|
886
|
-
return toForeignCallResult([
|
|
887
|
-
toSingle(0),
|
|
888
|
-
toSingle(0)
|
|
889
|
-
]);
|
|
890
|
-
} else {
|
|
891
|
-
// Sender found, return Option with some=1 and value=sender address
|
|
892
|
-
return toForeignCallResult([
|
|
893
|
-
toSingle(1),
|
|
894
|
-
toSingle(sender)
|
|
895
|
-
]);
|
|
896
|
-
}
|
|
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
|
+
});
|
|
897
759
|
}
|
|
898
760
|
// eslint-disable-next-line camelcase
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
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
|
+
});
|
|
903
767
|
}
|
|
904
768
|
// eslint-disable-next-line camelcase
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
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
|
+
});
|
|
912
881
|
}
|
|
913
882
|
}
|