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