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