@aztec/txe 0.0.1-commit.9ef841308 → 0.0.1-commit.a4600f49
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-HMC7WEOJ.js +3 -0
- package/dest/AuthRegistry-HMC7WEOJ.js.map +7 -0
- package/dest/ContractClassRegistry-TXCDCFNC.js +3 -0
- package/dest/ContractClassRegistry-TXCDCFNC.js.map +7 -0
- package/dest/ContractInstanceRegistry-2TZHWOTT.js +3 -0
- package/dest/ContractInstanceRegistry-2TZHWOTT.js.map +7 -0
- package/dest/FeeJuice-FDF3J2Q5.js +3 -0
- package/dest/FeeJuice-FDF3J2Q5.js.map +7 -0
- package/dest/HandshakeRegistry-C7JF4R54.js +3 -0
- package/dest/HandshakeRegistry-C7JF4R54.js.map +7 -0
- package/dest/MultiCallEntrypoint-IGLO227K.js +3 -0
- package/dest/MultiCallEntrypoint-IGLO227K.js.map +7 -0
- package/dest/SchnorrAccount-KCIHUCXS.js +3 -0
- package/dest/SchnorrAccount-KCIHUCXS.js.map +7 -0
- package/dest/SchnorrInitializerlessAccount-PVR6XUSN.js +3 -0
- package/dest/SchnorrInitializerlessAccount-PVR6XUSN.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-32UHX7YY.js +3 -0
- package/dest/chunk-32UHX7YY.js.map +7 -0
- package/dest/chunk-6AVNR3XX.js +304 -0
- package/dest/chunk-6AVNR3XX.js.map +7 -0
- package/dest/chunk-CJEH2W44.js +260 -0
- package/dest/chunk-CJEH2W44.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 +38497 -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 +38 -8
- package/dest/oracle/interfaces.d.ts.map +1 -1
- package/dest/oracle/test-resolver/default_fixtures.d.ts +9 -0
- package/dest/oracle/test-resolver/default_fixtures.d.ts.map +1 -0
- package/dest/oracle/test-resolver/default_fixtures.js +207 -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 +169 -0
- package/dest/oracle/txe_oracle_registry.d.ts.map +1 -0
- package/dest/oracle/txe_oracle_registry.js +745 -0
- package/dest/oracle/txe_oracle_top_level_context.d.ts +43 -17
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +529 -297
- 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 +112 -233
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +767 -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 +24 -14
- package/dest/state_machine/dummy_p2p_client.d.ts +16 -7
- package/dest/state_machine/dummy_p2p_client.d.ts.map +1 -1
- package/dest/state_machine/dummy_p2p_client.js +25 -4
- 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 +12 -9
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +51 -15
- 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 +89 -20
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +315 -68
- 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 +70 -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 +35 -7
- package/src/oracle/test-resolver/default_fixtures.ts +282 -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 +536 -0
- package/src/oracle/txe_oracle_top_level_context.ts +321 -113
- 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 +864 -941
- package/src/state_machine/archiver.ts +37 -16
- package/src/state_machine/dummy_p2p_client.ts +44 -11
- package/src/state_machine/global_variable_builder.ts +12 -11
- package/src/state_machine/index.ts +62 -35
- package/src/state_machine/mock_epoch_cache.ts +0 -4
- package/src/state_machine/synchronizer.ts +27 -6
- package/src/txe_session.ts +543 -90
- 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,661 @@ 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]) => this.handlerAsTxe().createAccount(secret),
|
|
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);
|
|
247
|
-
|
|
248
|
-
return toForeignCallResult([
|
|
249
|
-
toSingle(completeAddress.address),
|
|
250
|
-
...completeAddress.publicKeys.toFields().map(toSingle),
|
|
251
|
-
]);
|
|
196
|
+
aztec_txe_addAccount(...inputs: ForeignCallArgs) {
|
|
197
|
+
return callTxeHandler({
|
|
198
|
+
oracle: 'aztec_txe_addAccount',
|
|
199
|
+
inputs,
|
|
200
|
+
handler: ([secret]) => this.handlerAsTxe().addAccount(secret),
|
|
201
|
+
});
|
|
252
202
|
}
|
|
253
203
|
|
|
254
204
|
// eslint-disable-next-line camelcase
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
205
|
+
aztec_txe_addAuthWitness(...inputs: ForeignCallArgs) {
|
|
206
|
+
return callTxeHandler({
|
|
207
|
+
oracle: 'aztec_txe_addAuthWitness',
|
|
208
|
+
inputs,
|
|
209
|
+
handler: ([address, messageHash]) => this.handlerAsTxe().addAuthWitness(address, messageHash),
|
|
210
|
+
});
|
|
211
|
+
}
|
|
258
212
|
|
|
259
|
-
|
|
213
|
+
// eslint-disable-next-line camelcase
|
|
214
|
+
aztec_txe_sendL1ToL2Message(...inputs: ForeignCallArgs) {
|
|
215
|
+
return callTxeHandler({
|
|
216
|
+
oracle: 'aztec_txe_sendL1ToL2Message',
|
|
217
|
+
inputs,
|
|
218
|
+
handler: ([content, secretHash, sender, recipient]) =>
|
|
219
|
+
this.handlerAsTxe().sendL1ToL2Message(content, secretHash, sender, recipient),
|
|
220
|
+
});
|
|
221
|
+
}
|
|
260
222
|
|
|
261
|
-
|
|
223
|
+
// eslint-disable-next-line camelcase
|
|
224
|
+
aztec_txe_setTaggingSecretStrategy(...inputs: ForeignCallArgs) {
|
|
225
|
+
return callTxeHandler({
|
|
226
|
+
oracle: 'aztec_txe_setTaggingSecretStrategy',
|
|
227
|
+
inputs,
|
|
228
|
+
handler: ([strategy]) => this.handlerAsTxe().setTaggingSecretStrategy(strategy),
|
|
229
|
+
});
|
|
262
230
|
}
|
|
263
231
|
|
|
264
232
|
// PXE oracles
|
|
265
233
|
|
|
266
234
|
// eslint-disable-next-line camelcase
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
235
|
+
aztec_misc_assertCompatibleOracleVersion(...inputs: ForeignCallArgs) {
|
|
236
|
+
return callTxeHandler({
|
|
237
|
+
oracle: 'aztec_misc_assertCompatibleOracleVersion',
|
|
238
|
+
inputs,
|
|
239
|
+
handler: ([major, minor]) => this.handlerAsMisc().assertCompatibleOracleVersion(major, minor),
|
|
240
|
+
});
|
|
273
241
|
}
|
|
274
242
|
|
|
275
243
|
// eslint-disable-next-line camelcase
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
244
|
+
aztec_misc_getRandomField() {
|
|
245
|
+
return callTxeHandler({
|
|
246
|
+
oracle: 'aztec_misc_getRandomField',
|
|
247
|
+
inputs: [],
|
|
248
|
+
handler: () => this.handlerAsMisc().getRandomField(),
|
|
249
|
+
});
|
|
280
250
|
}
|
|
281
251
|
|
|
282
252
|
// eslint-disable-next-line camelcase
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
253
|
+
aztec_txe_getLastBlockTimestamp() {
|
|
254
|
+
return callTxeHandler({
|
|
255
|
+
oracle: 'aztec_txe_getLastBlockTimestamp',
|
|
256
|
+
inputs: [],
|
|
257
|
+
handler: () => this.handlerAsTxe().getLastBlockTimestamp(),
|
|
258
|
+
});
|
|
287
259
|
}
|
|
288
260
|
|
|
289
261
|
// eslint-disable-next-line camelcase
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX),
|
|
297
|
-
]);
|
|
262
|
+
aztec_txe_getLastTxEffects() {
|
|
263
|
+
return callTxeHandler({
|
|
264
|
+
oracle: 'aztec_txe_getLastTxEffects',
|
|
265
|
+
inputs: [],
|
|
266
|
+
handler: () => this.handlerAsTxe().getLastTxEffects(),
|
|
267
|
+
});
|
|
298
268
|
}
|
|
299
269
|
|
|
300
270
|
// 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)]);
|
|
271
|
+
aztec_txe_getLastCallOffchainEffects() {
|
|
272
|
+
return callTxeHandler({
|
|
273
|
+
oracle: 'aztec_txe_getLastCallOffchainEffects',
|
|
274
|
+
inputs: [],
|
|
275
|
+
handler: () => this.stateHandler.getLastCallOffchainEffects(),
|
|
276
|
+
});
|
|
339
277
|
}
|
|
340
278
|
|
|
341
279
|
// eslint-disable-next-line camelcase
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
return toForeignCallResult([]);
|
|
280
|
+
aztec_txe_getLastCallContext() {
|
|
281
|
+
return callTxeHandler({
|
|
282
|
+
oracle: 'aztec_txe_getLastCallContext',
|
|
283
|
+
inputs: [],
|
|
284
|
+
handler: () => this.stateHandler.getLastCallContext(),
|
|
285
|
+
});
|
|
349
286
|
}
|
|
350
287
|
|
|
351
288
|
// eslint-disable-next-line camelcase
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
289
|
+
aztec_txe_getPrivateEvents(...inputs: ForeignCallArgs) {
|
|
290
|
+
return callTxeHandler({
|
|
291
|
+
oracle: 'aztec_txe_getPrivateEvents',
|
|
292
|
+
inputs,
|
|
293
|
+
handler: ([selector, contractAddress, scope]) =>
|
|
294
|
+
this.stateHandler.getPrivateEvents(selector, contractAddress, scope),
|
|
295
|
+
});
|
|
358
296
|
}
|
|
359
297
|
|
|
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
298
|
// 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([]);
|
|
299
|
+
aztec_prv_setHashPreimage(...inputs: ForeignCallArgs) {
|
|
300
|
+
return callTxeHandler({
|
|
301
|
+
oracle: 'aztec_prv_setHashPreimage',
|
|
302
|
+
inputs,
|
|
303
|
+
handler: ([values, hash]) => this.handlerAsPrivate().setHashPreimage(values, hash),
|
|
304
|
+
});
|
|
378
305
|
}
|
|
379
306
|
|
|
380
307
|
// 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)]);
|
|
308
|
+
aztec_prv_getHashPreimage(...inputs: ForeignCallArgs) {
|
|
309
|
+
return callTxeHandler({
|
|
310
|
+
oracle: 'aztec_prv_getHashPreimage',
|
|
311
|
+
inputs,
|
|
312
|
+
handler: ([hash]) => this.handlerAsPrivate().getHashPreimage(hash),
|
|
313
|
+
});
|
|
400
314
|
}
|
|
401
315
|
|
|
402
316
|
// 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([]);
|
|
317
|
+
aztec_misc_log(...inputs: ForeignCallArgs) {
|
|
318
|
+
return callTxeHandler({
|
|
319
|
+
oracle: 'aztec_misc_log',
|
|
320
|
+
inputs,
|
|
321
|
+
handler: ([level, message, fieldsSize, fields]) => this.handlerAsMisc().log(level, message, fieldsSize, fields),
|
|
322
|
+
});
|
|
543
323
|
}
|
|
544
324
|
|
|
545
325
|
// 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))]);
|
|
326
|
+
aztec_utl_getFromPublicStorage(...inputs: ForeignCallArgs) {
|
|
327
|
+
return callTxeHandler({
|
|
328
|
+
oracle: 'aztec_utl_getFromPublicStorage',
|
|
329
|
+
inputs,
|
|
330
|
+
handler: ([blockHash, contractAddress, startStorageSlot, numberOfElements]) =>
|
|
331
|
+
this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements),
|
|
332
|
+
});
|
|
556
333
|
}
|
|
557
334
|
|
|
558
335
|
// eslint-disable-next-line camelcase
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
336
|
+
aztec_utl_getPublicDataWitness(...inputs: ForeignCallArgs) {
|
|
337
|
+
return callTxeHandler({
|
|
338
|
+
oracle: 'aztec_utl_getPublicDataWitness',
|
|
339
|
+
inputs,
|
|
340
|
+
handler: ([blockHash, leafSlot]) => this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot),
|
|
341
|
+
});
|
|
565
342
|
}
|
|
566
343
|
|
|
567
344
|
// eslint-disable-next-line camelcase
|
|
568
|
-
|
|
569
|
-
|
|
345
|
+
aztec_utl_getNotes(...inputs: ForeignCallArgs) {
|
|
346
|
+
return callTxeHandler({
|
|
347
|
+
oracle: 'aztec_utl_getNotes',
|
|
348
|
+
inputs,
|
|
349
|
+
handler: ([
|
|
350
|
+
owner,
|
|
351
|
+
storageSlot,
|
|
352
|
+
numSelects,
|
|
353
|
+
selectByIndexes,
|
|
354
|
+
selectByOffsets,
|
|
355
|
+
selectByLengths,
|
|
356
|
+
selectValues,
|
|
357
|
+
selectComparators,
|
|
358
|
+
sortByIndexes,
|
|
359
|
+
sortByOffsets,
|
|
360
|
+
sortByLengths,
|
|
361
|
+
sortOrder,
|
|
362
|
+
limit,
|
|
363
|
+
offset,
|
|
364
|
+
status,
|
|
365
|
+
maxNotes,
|
|
366
|
+
packedHintedNoteLength,
|
|
367
|
+
]) =>
|
|
368
|
+
this.handlerAsUtility().getNotes(
|
|
369
|
+
owner,
|
|
370
|
+
storageSlot,
|
|
371
|
+
numSelects,
|
|
372
|
+
selectByIndexes,
|
|
373
|
+
selectByOffsets,
|
|
374
|
+
selectByLengths,
|
|
375
|
+
selectValues,
|
|
376
|
+
selectComparators,
|
|
377
|
+
sortByIndexes,
|
|
378
|
+
sortByOffsets,
|
|
379
|
+
sortByLengths,
|
|
380
|
+
sortOrder,
|
|
381
|
+
limit,
|
|
382
|
+
offset,
|
|
383
|
+
status,
|
|
384
|
+
maxNotes,
|
|
385
|
+
packedHintedNoteLength,
|
|
386
|
+
),
|
|
387
|
+
});
|
|
388
|
+
}
|
|
570
389
|
|
|
571
|
-
|
|
390
|
+
// eslint-disable-next-line camelcase
|
|
391
|
+
aztec_prv_notifyCreatedNote(...inputs: ForeignCallArgs) {
|
|
392
|
+
return callTxeHandler({
|
|
393
|
+
oracle: 'aztec_prv_notifyCreatedNote',
|
|
394
|
+
inputs,
|
|
395
|
+
handler: ([owner, storageSlot, randomness, noteTypeId, note, noteHash, counter]) =>
|
|
396
|
+
this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter),
|
|
397
|
+
});
|
|
398
|
+
}
|
|
572
399
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
);
|
|
400
|
+
// eslint-disable-next-line camelcase
|
|
401
|
+
aztec_prv_notifyNullifiedNote(...inputs: ForeignCallArgs) {
|
|
402
|
+
return callTxeHandler({
|
|
403
|
+
oracle: 'aztec_prv_notifyNullifiedNote',
|
|
404
|
+
inputs,
|
|
405
|
+
handler: ([innerNullifier, noteHash, counter]) =>
|
|
406
|
+
this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter),
|
|
407
|
+
});
|
|
582
408
|
}
|
|
583
409
|
|
|
584
410
|
// eslint-disable-next-line camelcase
|
|
585
|
-
|
|
586
|
-
|
|
411
|
+
aztec_prv_notifyCreatedNullifier(...inputs: ForeignCallArgs) {
|
|
412
|
+
return callTxeHandler({
|
|
413
|
+
oracle: 'aztec_prv_notifyCreatedNullifier',
|
|
414
|
+
inputs,
|
|
415
|
+
handler: ([innerNullifier]) => this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier),
|
|
416
|
+
});
|
|
417
|
+
}
|
|
587
418
|
|
|
588
|
-
|
|
419
|
+
// eslint-disable-next-line camelcase
|
|
420
|
+
aztec_prv_isNullifierPending(...inputs: ForeignCallArgs) {
|
|
421
|
+
return callTxeHandler({
|
|
422
|
+
oracle: 'aztec_prv_isNullifierPending',
|
|
423
|
+
inputs,
|
|
424
|
+
handler: ([innerNullifier, contractAddress]) =>
|
|
425
|
+
this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress),
|
|
426
|
+
});
|
|
427
|
+
}
|
|
589
428
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
return toForeignCallResult([
|
|
598
|
-
toSingle(new Fr(1)),
|
|
599
|
-
toArray([...result.publicKeys.toFields(), result.partialAddress]),
|
|
600
|
-
]);
|
|
601
|
-
}
|
|
429
|
+
// eslint-disable-next-line camelcase
|
|
430
|
+
aztec_utl_doesNullifierExist(...inputs: ForeignCallArgs) {
|
|
431
|
+
return callTxeHandler({
|
|
432
|
+
oracle: 'aztec_utl_doesNullifierExist',
|
|
433
|
+
inputs,
|
|
434
|
+
handler: ([innerNullifier]) => this.handlerAsUtility().doesNullifierExist(innerNullifier),
|
|
435
|
+
});
|
|
602
436
|
}
|
|
603
437
|
|
|
604
438
|
// eslint-disable-next-line camelcase
|
|
605
|
-
|
|
606
|
-
|
|
439
|
+
aztec_utl_getContractInstance(...inputs: ForeignCallArgs) {
|
|
440
|
+
return callTxeHandler({
|
|
441
|
+
oracle: 'aztec_utl_getContractInstance',
|
|
442
|
+
inputs,
|
|
443
|
+
handler: ([address]) => this.handlerAsUtility().getContractInstance(address),
|
|
444
|
+
});
|
|
445
|
+
}
|
|
607
446
|
|
|
608
|
-
|
|
447
|
+
// eslint-disable-next-line camelcase
|
|
448
|
+
aztec_utl_getPublicKeysAndPartialAddress(...inputs: ForeignCallArgs) {
|
|
449
|
+
return callTxeHandler({
|
|
450
|
+
oracle: 'aztec_utl_getPublicKeysAndPartialAddress',
|
|
451
|
+
inputs,
|
|
452
|
+
handler: ([address]) => this.handlerAsUtility().getPublicKeysAndPartialAddress(address),
|
|
453
|
+
});
|
|
454
|
+
}
|
|
609
455
|
|
|
610
|
-
|
|
456
|
+
// eslint-disable-next-line camelcase
|
|
457
|
+
aztec_utl_getKeyValidationRequest(...inputs: ForeignCallArgs) {
|
|
458
|
+
return callTxeHandler({
|
|
459
|
+
oracle: 'aztec_utl_getKeyValidationRequest',
|
|
460
|
+
inputs,
|
|
461
|
+
handler: ([pkMHash, keyIndex]) => this.handlerAsUtility().getKeyValidationRequest(pkMHash, keyIndex),
|
|
462
|
+
});
|
|
611
463
|
}
|
|
612
464
|
|
|
613
465
|
// eslint-disable-next-line camelcase
|
|
614
|
-
aztec_prv_callPrivateFunction(
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
466
|
+
aztec_prv_callPrivateFunction(...inputs: ForeignCallArgs) {
|
|
467
|
+
return callTxeHandler({
|
|
468
|
+
oracle: 'aztec_prv_callPrivateFunction',
|
|
469
|
+
inputs,
|
|
470
|
+
handler: ([contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall]) =>
|
|
471
|
+
this.handlerAsPrivate().callPrivateFunction(
|
|
472
|
+
contractAddress,
|
|
473
|
+
functionSelector,
|
|
474
|
+
argsHash,
|
|
475
|
+
sideEffectCounter,
|
|
476
|
+
isStaticCall,
|
|
477
|
+
),
|
|
478
|
+
});
|
|
624
479
|
}
|
|
625
480
|
|
|
626
481
|
// eslint-disable-next-line camelcase
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
482
|
+
aztec_utl_getNullifierMembershipWitness(...inputs: ForeignCallArgs) {
|
|
483
|
+
return callTxeHandler({
|
|
484
|
+
oracle: 'aztec_utl_getNullifierMembershipWitness',
|
|
485
|
+
inputs,
|
|
486
|
+
handler: ([blockHash, nullifier]) => this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier),
|
|
487
|
+
});
|
|
488
|
+
}
|
|
633
489
|
|
|
634
|
-
|
|
490
|
+
// eslint-disable-next-line camelcase
|
|
491
|
+
aztec_utl_getL1ToL2MembershipWitness(...inputs: ForeignCallArgs) {
|
|
492
|
+
return callTxeHandler({
|
|
493
|
+
oracle: 'aztec_utl_getL1ToL2MembershipWitness',
|
|
494
|
+
inputs,
|
|
495
|
+
handler: ([contractAddress, messageHash, secret]) =>
|
|
496
|
+
this.handlerAsUtility().getL1ToL2MembershipWitness(contractAddress, messageHash, secret),
|
|
497
|
+
});
|
|
498
|
+
}
|
|
635
499
|
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
500
|
+
// eslint-disable-next-line camelcase
|
|
501
|
+
aztec_utl_getAuthWitness(...inputs: ForeignCallArgs) {
|
|
502
|
+
return callTxeHandler({
|
|
503
|
+
oracle: 'aztec_utl_getAuthWitness',
|
|
504
|
+
inputs,
|
|
505
|
+
handler: ([messageHash]) => this.handlerAsUtility().getAuthWitness(messageHash),
|
|
506
|
+
});
|
|
640
507
|
}
|
|
641
508
|
|
|
642
509
|
// eslint-disable-next-line camelcase
|
|
643
|
-
|
|
644
|
-
|
|
510
|
+
aztec_prv_assertValidPublicCalldata(...inputs: ForeignCallArgs) {
|
|
511
|
+
return callTxeHandler({
|
|
512
|
+
oracle: 'aztec_prv_assertValidPublicCalldata',
|
|
513
|
+
inputs,
|
|
514
|
+
handler: ([calldataHash]) => this.handlerAsPrivate().assertValidPublicCalldata(calldataHash),
|
|
515
|
+
});
|
|
516
|
+
}
|
|
645
517
|
|
|
646
|
-
|
|
518
|
+
// eslint-disable-next-line camelcase
|
|
519
|
+
aztec_prv_notifyRevertiblePhaseStart(...inputs: ForeignCallArgs) {
|
|
520
|
+
return callTxeHandler({
|
|
521
|
+
oracle: 'aztec_prv_notifyRevertiblePhaseStart',
|
|
522
|
+
inputs,
|
|
523
|
+
handler: ([minRevertibleSideEffectCounter]) =>
|
|
524
|
+
this.handlerAsPrivate().notifyRevertiblePhaseStart(minRevertibleSideEffectCounter),
|
|
525
|
+
});
|
|
526
|
+
}
|
|
647
527
|
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
528
|
+
// eslint-disable-next-line camelcase
|
|
529
|
+
aztec_prv_isExecutionInRevertiblePhase(...inputs: ForeignCallArgs) {
|
|
530
|
+
return callTxeHandler({
|
|
531
|
+
oracle: 'aztec_prv_isExecutionInRevertiblePhase',
|
|
532
|
+
inputs,
|
|
533
|
+
handler: ([sideEffectCounter]) => this.handlerAsPrivate().isExecutionInRevertiblePhase(sideEffectCounter),
|
|
534
|
+
});
|
|
652
535
|
}
|
|
653
536
|
|
|
654
537
|
// eslint-disable-next-line camelcase
|
|
655
|
-
|
|
656
|
-
|
|
538
|
+
aztec_utl_getUtilityContext() {
|
|
539
|
+
return callTxeHandler({
|
|
540
|
+
oracle: 'aztec_utl_getUtilityContext',
|
|
541
|
+
inputs: [],
|
|
542
|
+
handler: () => this.handlerAsUtility().getUtilityContext(),
|
|
543
|
+
});
|
|
657
544
|
}
|
|
658
545
|
|
|
659
546
|
// eslint-disable-next-line camelcase
|
|
660
|
-
|
|
661
|
-
|
|
547
|
+
aztec_utl_getBlockHeader(...inputs: ForeignCallArgs) {
|
|
548
|
+
return callTxeHandler({
|
|
549
|
+
oracle: 'aztec_utl_getBlockHeader',
|
|
550
|
+
inputs,
|
|
551
|
+
handler: ([blockNumber]) => this.handlerAsUtility().getBlockHeader(blockNumber),
|
|
552
|
+
});
|
|
662
553
|
}
|
|
663
554
|
|
|
664
555
|
// eslint-disable-next-line camelcase
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
556
|
+
aztec_utl_getNoteHashMembershipWitness(...inputs: ForeignCallArgs) {
|
|
557
|
+
return callTxeHandler({
|
|
558
|
+
oracle: 'aztec_utl_getNoteHashMembershipWitness',
|
|
559
|
+
inputs,
|
|
560
|
+
handler: ([blockHash, noteHash]) => this.handlerAsUtility().getNoteHashMembershipWitness(blockHash, noteHash),
|
|
561
|
+
});
|
|
669
562
|
}
|
|
670
563
|
|
|
671
564
|
// eslint-disable-next-line camelcase
|
|
672
|
-
|
|
673
|
-
|
|
565
|
+
aztec_utl_getBlockHashMembershipWitness(...inputs: ForeignCallArgs) {
|
|
566
|
+
return callTxeHandler({
|
|
567
|
+
oracle: 'aztec_utl_getBlockHashMembershipWitness',
|
|
568
|
+
inputs,
|
|
569
|
+
handler: ([anchorBlockHash, blockHash]) =>
|
|
570
|
+
this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash),
|
|
571
|
+
});
|
|
572
|
+
}
|
|
674
573
|
|
|
675
|
-
|
|
574
|
+
// eslint-disable-next-line camelcase
|
|
575
|
+
aztec_utl_getLowNullifierMembershipWitness(...inputs: ForeignCallArgs) {
|
|
576
|
+
return callTxeHandler({
|
|
577
|
+
oracle: 'aztec_utl_getLowNullifierMembershipWitness',
|
|
578
|
+
inputs,
|
|
579
|
+
handler: ([blockHash, nullifier]) =>
|
|
580
|
+
this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier),
|
|
581
|
+
});
|
|
676
582
|
}
|
|
677
583
|
|
|
678
584
|
// eslint-disable-next-line camelcase
|
|
679
|
-
|
|
680
|
-
|
|
585
|
+
aztec_utl_getPendingTaggedLogsV2(...inputs: ForeignCallArgs) {
|
|
586
|
+
return callTxeHandler({
|
|
587
|
+
oracle: 'aztec_utl_getPendingTaggedLogsV2',
|
|
588
|
+
inputs,
|
|
589
|
+
handler: ([scope, providedSecrets]) => this.handlerAsUtility().getPendingTaggedLogsV2(scope, providedSecrets),
|
|
590
|
+
});
|
|
591
|
+
}
|
|
681
592
|
|
|
682
|
-
|
|
593
|
+
// eslint-disable-next-line camelcase
|
|
594
|
+
aztec_utl_validateAndStoreEnqueuedNotesAndEvents(...inputs: ForeignCallArgs) {
|
|
595
|
+
return callTxeHandler({
|
|
596
|
+
oracle: 'aztec_utl_validateAndStoreEnqueuedNotesAndEvents',
|
|
597
|
+
inputs,
|
|
598
|
+
handler: ([noteValidationRequests, eventValidationRequests, scope]) =>
|
|
599
|
+
this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(
|
|
600
|
+
noteValidationRequests,
|
|
601
|
+
eventValidationRequests,
|
|
602
|
+
scope,
|
|
603
|
+
),
|
|
604
|
+
});
|
|
605
|
+
}
|
|
683
606
|
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
607
|
+
// eslint-disable-next-line camelcase
|
|
608
|
+
aztec_utl_getLogsByTagV2(...inputs: ForeignCallArgs) {
|
|
609
|
+
return callTxeHandler({
|
|
610
|
+
oracle: 'aztec_utl_getLogsByTagV2',
|
|
611
|
+
inputs,
|
|
612
|
+
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot),
|
|
613
|
+
});
|
|
688
614
|
}
|
|
689
615
|
|
|
690
616
|
// eslint-disable-next-line camelcase
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
617
|
+
aztec_utl_getResolvedTxs(...inputs: ForeignCallArgs) {
|
|
618
|
+
return callTxeHandler({
|
|
619
|
+
oracle: 'aztec_utl_getResolvedTxs',
|
|
620
|
+
inputs,
|
|
621
|
+
handler: ([requestArrayBaseSlot]) => this.handlerAsUtility().getResolvedTxs(requestArrayBaseSlot),
|
|
622
|
+
});
|
|
623
|
+
}
|
|
697
624
|
|
|
698
|
-
|
|
625
|
+
// eslint-disable-next-line camelcase
|
|
626
|
+
aztec_utl_setCapsule(...inputs: ForeignCallArgs) {
|
|
627
|
+
return callTxeHandler({
|
|
628
|
+
oracle: 'aztec_utl_setCapsule',
|
|
629
|
+
inputs,
|
|
630
|
+
handler: ([contractAddress, slot, capsule, scope]) =>
|
|
631
|
+
this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope),
|
|
632
|
+
});
|
|
633
|
+
}
|
|
699
634
|
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
635
|
+
// eslint-disable-next-line camelcase
|
|
636
|
+
aztec_utl_getCapsule(...inputs: ForeignCallArgs) {
|
|
637
|
+
return callTxeHandler({
|
|
638
|
+
oracle: 'aztec_utl_getCapsule',
|
|
639
|
+
inputs,
|
|
640
|
+
handler: ([contractAddress, slot, tSize, scope]) =>
|
|
641
|
+
this.handlerAsUtility().getCapsule(contractAddress, slot, tSize, scope),
|
|
642
|
+
});
|
|
704
643
|
}
|
|
705
644
|
|
|
706
645
|
// eslint-disable-next-line camelcase
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
646
|
+
aztec_utl_deleteCapsule(...inputs: ForeignCallArgs) {
|
|
647
|
+
return callTxeHandler({
|
|
648
|
+
oracle: 'aztec_utl_deleteCapsule',
|
|
649
|
+
inputs,
|
|
650
|
+
handler: ([contractAddress, slot, scope]) => this.handlerAsUtility().deleteCapsule(contractAddress, slot, scope),
|
|
651
|
+
});
|
|
652
|
+
}
|
|
713
653
|
|
|
714
|
-
|
|
654
|
+
// eslint-disable-next-line camelcase
|
|
655
|
+
aztec_utl_copyCapsule(...inputs: ForeignCallArgs) {
|
|
656
|
+
return callTxeHandler({
|
|
657
|
+
oracle: 'aztec_utl_copyCapsule',
|
|
658
|
+
inputs,
|
|
659
|
+
handler: ([contractAddress, srcSlot, dstSlot, numEntries, scope]) =>
|
|
660
|
+
this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope),
|
|
661
|
+
});
|
|
662
|
+
}
|
|
715
663
|
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
664
|
+
// eslint-disable-next-line camelcase
|
|
665
|
+
aztec_utl_pushEphemeral(...inputs: ForeignCallArgs) {
|
|
666
|
+
return callTxeHandler({
|
|
667
|
+
oracle: 'aztec_utl_pushEphemeral',
|
|
668
|
+
inputs,
|
|
669
|
+
handler: ([slot, elements]) => this.handlerAsUtility().pushEphemeral(slot, elements),
|
|
670
|
+
});
|
|
722
671
|
}
|
|
723
672
|
|
|
724
673
|
// eslint-disable-next-line camelcase
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
674
|
+
aztec_utl_popEphemeral(...inputs: ForeignCallArgs) {
|
|
675
|
+
return callTxeHandler({
|
|
676
|
+
oracle: 'aztec_utl_popEphemeral',
|
|
677
|
+
inputs,
|
|
678
|
+
handler: ([slot]) => this.handlerAsUtility().popEphemeral(slot),
|
|
679
|
+
});
|
|
680
|
+
}
|
|
731
681
|
|
|
732
|
-
|
|
682
|
+
// eslint-disable-next-line camelcase
|
|
683
|
+
aztec_utl_getEphemeral(...inputs: ForeignCallArgs) {
|
|
684
|
+
return callTxeHandler({
|
|
685
|
+
oracle: 'aztec_utl_getEphemeral',
|
|
686
|
+
inputs,
|
|
687
|
+
handler: ([slot, index]) => this.handlerAsUtility().getEphemeral(slot, index),
|
|
688
|
+
});
|
|
689
|
+
}
|
|
733
690
|
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
691
|
+
// eslint-disable-next-line camelcase
|
|
692
|
+
aztec_utl_setEphemeral(...inputs: ForeignCallArgs) {
|
|
693
|
+
return callTxeHandler({
|
|
694
|
+
oracle: 'aztec_utl_setEphemeral',
|
|
695
|
+
inputs,
|
|
696
|
+
handler: ([slot, index, elements]) => this.handlerAsUtility().setEphemeral(slot, index, elements),
|
|
697
|
+
});
|
|
738
698
|
}
|
|
739
699
|
|
|
740
700
|
// eslint-disable-next-line camelcase
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
701
|
+
aztec_utl_getEphemeralLen(...inputs: ForeignCallArgs) {
|
|
702
|
+
return callTxeHandler({
|
|
703
|
+
oracle: 'aztec_utl_getEphemeralLen',
|
|
704
|
+
inputs,
|
|
705
|
+
handler: ([slot]) => this.handlerAsUtility().getEphemeralLen(slot),
|
|
706
|
+
});
|
|
707
|
+
}
|
|
747
708
|
|
|
748
|
-
|
|
709
|
+
// eslint-disable-next-line camelcase
|
|
710
|
+
aztec_utl_removeEphemeral(...inputs: ForeignCallArgs) {
|
|
711
|
+
return callTxeHandler({
|
|
712
|
+
oracle: 'aztec_utl_removeEphemeral',
|
|
713
|
+
inputs,
|
|
714
|
+
handler: ([slot, index]) => this.handlerAsUtility().removeEphemeral(slot, index),
|
|
715
|
+
});
|
|
716
|
+
}
|
|
749
717
|
|
|
750
|
-
|
|
718
|
+
// eslint-disable-next-line camelcase
|
|
719
|
+
aztec_utl_clearEphemeral(...inputs: ForeignCallArgs) {
|
|
720
|
+
return callTxeHandler({
|
|
721
|
+
oracle: 'aztec_utl_clearEphemeral',
|
|
722
|
+
inputs,
|
|
723
|
+
handler: ([slot]) => this.handlerAsUtility().clearEphemeral(slot),
|
|
724
|
+
});
|
|
751
725
|
}
|
|
752
|
-
|
|
726
|
+
|
|
753
727
|
// 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
|
-
}
|
|
728
|
+
aztec_utl_pushTransient(...inputs: ForeignCallArgs) {
|
|
729
|
+
return callTxeHandler({
|
|
730
|
+
oracle: 'aztec_utl_pushTransient',
|
|
731
|
+
inputs,
|
|
732
|
+
handler: ([slot, elements]) => this.handlerAsUtility().pushTransient(slot, elements),
|
|
733
|
+
});
|
|
865
734
|
}
|
|
866
735
|
|
|
867
736
|
// eslint-disable-next-line camelcase
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
737
|
+
aztec_utl_popTransient(...inputs: ForeignCallArgs) {
|
|
738
|
+
return callTxeHandler({
|
|
739
|
+
oracle: 'aztec_utl_popTransient',
|
|
740
|
+
inputs,
|
|
741
|
+
handler: ([slot]) => this.handlerAsUtility().popTransient(slot),
|
|
742
|
+
});
|
|
743
|
+
}
|
|
876
744
|
|
|
877
|
-
|
|
745
|
+
// eslint-disable-next-line camelcase
|
|
746
|
+
aztec_utl_getTransient(...inputs: ForeignCallArgs) {
|
|
747
|
+
return callTxeHandler({
|
|
748
|
+
oracle: 'aztec_utl_getTransient',
|
|
749
|
+
inputs,
|
|
750
|
+
handler: ([slot, index]) => this.handlerAsUtility().getTransient(slot, index),
|
|
751
|
+
});
|
|
752
|
+
}
|
|
878
753
|
|
|
879
|
-
|
|
754
|
+
// eslint-disable-next-line camelcase
|
|
755
|
+
aztec_utl_setTransient(...inputs: ForeignCallArgs) {
|
|
756
|
+
return callTxeHandler({
|
|
757
|
+
oracle: 'aztec_utl_setTransient',
|
|
758
|
+
inputs,
|
|
759
|
+
handler: ([slot, index, elements]) => this.handlerAsUtility().setTransient(slot, index, elements),
|
|
760
|
+
});
|
|
880
761
|
}
|
|
881
762
|
|
|
882
763
|
// 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));
|
|
764
|
+
aztec_utl_getTransientLen(...inputs: ForeignCallArgs) {
|
|
765
|
+
return callTxeHandler({
|
|
766
|
+
oracle: 'aztec_utl_getTransientLen',
|
|
767
|
+
inputs,
|
|
768
|
+
handler: ([slot]) => this.handlerAsUtility().getTransientLen(slot),
|
|
769
|
+
});
|
|
770
|
+
}
|
|
895
771
|
|
|
896
|
-
|
|
772
|
+
// eslint-disable-next-line camelcase
|
|
773
|
+
aztec_utl_removeTransient(...inputs: ForeignCallArgs) {
|
|
774
|
+
return callTxeHandler({
|
|
775
|
+
oracle: 'aztec_utl_removeTransient',
|
|
776
|
+
inputs,
|
|
777
|
+
handler: ([slot, index]) => this.handlerAsUtility().removeTransient(slot, index),
|
|
778
|
+
});
|
|
779
|
+
}
|
|
897
780
|
|
|
898
|
-
|
|
781
|
+
// eslint-disable-next-line camelcase
|
|
782
|
+
aztec_utl_clearTransient(...inputs: ForeignCallArgs) {
|
|
783
|
+
return callTxeHandler({
|
|
784
|
+
oracle: 'aztec_utl_clearTransient',
|
|
785
|
+
inputs,
|
|
786
|
+
handler: ([slot]) => this.handlerAsUtility().clearTransient(slot),
|
|
787
|
+
});
|
|
899
788
|
}
|
|
900
789
|
|
|
901
790
|
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
@@ -903,365 +792,399 @@ export class RPCTranslator {
|
|
|
903
792
|
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
904
793
|
// existence of a txe_oracle method?
|
|
905
794
|
// 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
|
-
}
|
|
795
|
+
aztec_utl_decryptAes128(...inputs: ForeignCallArgs) {
|
|
796
|
+
return callTxeHandler({
|
|
797
|
+
oracle: 'aztec_utl_decryptAes128',
|
|
798
|
+
inputs,
|
|
799
|
+
handler: ([ciphertext, iv, symKey]) => this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey),
|
|
800
|
+
});
|
|
928
801
|
}
|
|
929
802
|
|
|
930
803
|
// 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)]);
|
|
804
|
+
aztec_utl_getSharedSecrets(...inputs: ForeignCallArgs) {
|
|
805
|
+
return callTxeHandler({
|
|
806
|
+
oracle: 'aztec_utl_getSharedSecrets',
|
|
807
|
+
inputs,
|
|
808
|
+
handler: ([address, ephPksSlot, contractAddress]) =>
|
|
809
|
+
this.handlerAsUtility().getSharedSecrets(address, ephPksSlot, contractAddress),
|
|
810
|
+
});
|
|
949
811
|
}
|
|
950
812
|
|
|
951
813
|
// 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([]));
|
|
814
|
+
aztec_utl_setContractSyncCacheInvalid(...inputs: ForeignCallArgs) {
|
|
815
|
+
return callTxeHandler({
|
|
816
|
+
oracle: 'aztec_utl_setContractSyncCacheInvalid',
|
|
817
|
+
inputs,
|
|
818
|
+
handler: ([contractAddress, scopes]) =>
|
|
819
|
+
this.handlerAsUtility().setContractSyncCacheInvalid(contractAddress, scopes),
|
|
820
|
+
});
|
|
966
821
|
}
|
|
967
822
|
|
|
968
823
|
// eslint-disable-next-line camelcase
|
|
969
|
-
aztec_utl_emitOffchainEffect(
|
|
970
|
-
|
|
824
|
+
aztec_utl_emitOffchainEffect(...inputs: ForeignCallArgs) {
|
|
825
|
+
return callTxeHandler({
|
|
826
|
+
oracle: 'aztec_utl_emitOffchainEffect',
|
|
827
|
+
inputs,
|
|
828
|
+
handler: ([data]) => {
|
|
829
|
+
// Record the raw payload against the currently-executing top-level call. The Noir side
|
|
830
|
+
// (via `env.offchain_messages()`) is responsible for decoding the protocol-reserved prefix
|
|
831
|
+
// (`OFFCHAIN_MESSAGE_IDENTIFIER`, recipient) and turning each payload into an `OffchainMessage` struct suitable
|
|
832
|
+
// for `offchain_receive`.
|
|
833
|
+
this.stateHandler.recordOffchainEffect(data);
|
|
834
|
+
},
|
|
835
|
+
});
|
|
971
836
|
}
|
|
972
837
|
|
|
973
|
-
// AVM opcodes
|
|
974
|
-
|
|
975
838
|
// eslint-disable-next-line camelcase
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
839
|
+
aztec_utl_recordFact(...inputs: ForeignCallArgs) {
|
|
840
|
+
return callTxeHandler({
|
|
841
|
+
oracle: 'aztec_utl_recordFact',
|
|
842
|
+
inputs,
|
|
843
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId, factTypeId, payload, originBlock]) =>
|
|
844
|
+
this.handlerAsUtility().recordFact(
|
|
845
|
+
contractAddress,
|
|
846
|
+
scope,
|
|
847
|
+
factCollectionTypeId,
|
|
848
|
+
factCollectionId,
|
|
849
|
+
factTypeId,
|
|
850
|
+
payload,
|
|
851
|
+
originBlock,
|
|
852
|
+
),
|
|
853
|
+
});
|
|
979
854
|
}
|
|
980
855
|
|
|
981
856
|
// eslint-disable-next-line camelcase
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
857
|
+
aztec_utl_deleteFactCollection(...inputs: ForeignCallArgs) {
|
|
858
|
+
return callTxeHandler({
|
|
859
|
+
oracle: 'aztec_utl_deleteFactCollection',
|
|
860
|
+
inputs,
|
|
861
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId]) =>
|
|
862
|
+
this.handlerAsUtility().deleteFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId),
|
|
863
|
+
});
|
|
989
864
|
}
|
|
990
865
|
|
|
991
866
|
// eslint-disable-next-line camelcase
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
867
|
+
aztec_utl_getFactCollection(...inputs: ForeignCallArgs) {
|
|
868
|
+
return callTxeHandler({
|
|
869
|
+
oracle: 'aztec_utl_getFactCollection',
|
|
870
|
+
inputs,
|
|
871
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId]) =>
|
|
872
|
+
this.handlerAsUtility().getFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId),
|
|
873
|
+
});
|
|
999
874
|
}
|
|
1000
875
|
|
|
1001
876
|
// eslint-disable-next-line camelcase
|
|
1002
|
-
|
|
1003
|
-
|
|
877
|
+
aztec_utl_getFactCollectionsByType(...inputs: ForeignCallArgs) {
|
|
878
|
+
return callTxeHandler({
|
|
879
|
+
oracle: 'aztec_utl_getFactCollectionsByType',
|
|
880
|
+
inputs,
|
|
881
|
+
handler: ([contractAddress, scope, factCollectionTypeId]) =>
|
|
882
|
+
this.handlerAsUtility().getFactCollectionsByType(contractAddress, scope, factCollectionTypeId),
|
|
883
|
+
});
|
|
884
|
+
}
|
|
1004
885
|
|
|
1005
|
-
|
|
886
|
+
// AVM opcodes
|
|
1006
887
|
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
888
|
+
// eslint-disable-next-line camelcase
|
|
889
|
+
aztec_avm_emitPublicLog() {
|
|
890
|
+
return callTxeHandler({
|
|
891
|
+
oracle: 'aztec_avm_emitPublicLog',
|
|
892
|
+
inputs: [],
|
|
893
|
+
// TODO(#8811): Implement
|
|
894
|
+
handler: () => {},
|
|
895
|
+
});
|
|
1012
896
|
}
|
|
1013
897
|
|
|
1014
898
|
// 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
|
-
]);
|
|
899
|
+
aztec_avm_storageRead(...inputs: ForeignCallArgs) {
|
|
900
|
+
return callTxeHandler({
|
|
901
|
+
oracle: 'aztec_avm_storageRead',
|
|
902
|
+
inputs,
|
|
903
|
+
handler: ([slot, contractAddress]) => this.handlerAsAvm().storageRead(slot, contractAddress),
|
|
904
|
+
});
|
|
1025
905
|
}
|
|
1026
906
|
|
|
1027
907
|
// 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
|
-
]);
|
|
908
|
+
aztec_avm_storageWrite(...inputs: ForeignCallArgs) {
|
|
909
|
+
return callTxeHandler({
|
|
910
|
+
oracle: 'aztec_avm_storageWrite',
|
|
911
|
+
inputs,
|
|
912
|
+
handler: ([slot, value]) => this.handlerAsAvm().storageWrite(slot, value),
|
|
913
|
+
});
|
|
1038
914
|
}
|
|
1039
915
|
|
|
1040
916
|
// eslint-disable-next-line camelcase
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
917
|
+
aztec_avm_getContractInstanceDeployer(...inputs: ForeignCallArgs) {
|
|
918
|
+
return callTxeHandler({
|
|
919
|
+
oracle: 'aztec_avm_getContractInstanceDeployer',
|
|
920
|
+
inputs,
|
|
921
|
+
handler: ([address]) => this.handlerAsAvm().getContractInstanceDeployer(address),
|
|
922
|
+
});
|
|
1045
923
|
}
|
|
1046
924
|
|
|
1047
925
|
// eslint-disable-next-line camelcase
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
926
|
+
aztec_avm_getContractInstanceClassId(...inputs: ForeignCallArgs) {
|
|
927
|
+
return callTxeHandler({
|
|
928
|
+
oracle: 'aztec_avm_getContractInstanceClassId',
|
|
929
|
+
inputs,
|
|
930
|
+
handler: ([address]) => this.handlerAsAvm().getContractInstanceClassId(address),
|
|
931
|
+
});
|
|
1054
932
|
}
|
|
1055
933
|
|
|
1056
934
|
// eslint-disable-next-line camelcase
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
935
|
+
aztec_avm_getContractInstanceInitializationHash(...inputs: ForeignCallArgs) {
|
|
936
|
+
return callTxeHandler({
|
|
937
|
+
oracle: 'aztec_avm_getContractInstanceInitializationHash',
|
|
938
|
+
inputs,
|
|
939
|
+
handler: ([address]) => this.handlerAsAvm().getContractInstanceInitializationHash(address),
|
|
940
|
+
});
|
|
1063
941
|
}
|
|
1064
942
|
|
|
1065
943
|
// eslint-disable-next-line camelcase
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
944
|
+
aztec_avm_getContractInstanceImmutablesHash(...inputs: ForeignCallArgs) {
|
|
945
|
+
return callTxeHandler({
|
|
946
|
+
oracle: 'aztec_avm_getContractInstanceImmutablesHash',
|
|
947
|
+
inputs,
|
|
948
|
+
handler: ([address]) => this.handlerAsAvm().getContractInstanceImmutablesHash(address),
|
|
949
|
+
});
|
|
1072
950
|
}
|
|
1073
951
|
|
|
1074
952
|
// eslint-disable-next-line camelcase
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
953
|
+
aztec_avm_sender() {
|
|
954
|
+
return callTxeHandler({
|
|
955
|
+
oracle: 'aztec_avm_sender',
|
|
956
|
+
inputs: [],
|
|
957
|
+
handler: () => this.handlerAsAvm().sender(),
|
|
958
|
+
});
|
|
1079
959
|
}
|
|
1080
960
|
|
|
1081
961
|
// eslint-disable-next-line camelcase
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
962
|
+
aztec_avm_emitNullifier(...inputs: ForeignCallArgs) {
|
|
963
|
+
return callTxeHandler({
|
|
964
|
+
oracle: 'aztec_avm_emitNullifier',
|
|
965
|
+
inputs,
|
|
966
|
+
handler: ([nullifier]) => this.handlerAsAvm().emitNullifier(nullifier),
|
|
967
|
+
});
|
|
1086
968
|
}
|
|
1087
969
|
|
|
1088
970
|
// eslint-disable-next-line camelcase
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
971
|
+
aztec_avm_emitNoteHash(...inputs: ForeignCallArgs) {
|
|
972
|
+
return callTxeHandler({
|
|
973
|
+
oracle: 'aztec_avm_emitNoteHash',
|
|
974
|
+
inputs,
|
|
975
|
+
handler: ([noteHash]) => this.handlerAsAvm().emitNoteHash(noteHash),
|
|
976
|
+
});
|
|
1093
977
|
}
|
|
1094
978
|
|
|
1095
979
|
// eslint-disable-next-line camelcase
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
980
|
+
aztec_avm_nullifierExists(...inputs: ForeignCallArgs) {
|
|
981
|
+
return callTxeHandler({
|
|
982
|
+
oracle: 'aztec_avm_nullifierExists',
|
|
983
|
+
inputs,
|
|
984
|
+
handler: ([siloedNullifier]) => this.handlerAsAvm().nullifierExists(siloedNullifier),
|
|
985
|
+
});
|
|
1100
986
|
}
|
|
1101
987
|
|
|
1102
988
|
// eslint-disable-next-line camelcase
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
989
|
+
aztec_avm_address() {
|
|
990
|
+
return callTxeHandler({
|
|
991
|
+
oracle: 'aztec_avm_address',
|
|
992
|
+
inputs: [],
|
|
993
|
+
handler: () => this.handlerAsAvm().address(),
|
|
994
|
+
});
|
|
1107
995
|
}
|
|
1108
996
|
|
|
1109
997
|
// eslint-disable-next-line camelcase
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
998
|
+
aztec_avm_blockNumber() {
|
|
999
|
+
return callTxeHandler({
|
|
1000
|
+
oracle: 'aztec_avm_blockNumber',
|
|
1001
|
+
inputs: [],
|
|
1002
|
+
handler: () => this.handlerAsAvm().blockNumber(),
|
|
1003
|
+
});
|
|
1114
1004
|
}
|
|
1115
1005
|
|
|
1116
1006
|
// eslint-disable-next-line camelcase
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1007
|
+
aztec_avm_timestamp() {
|
|
1008
|
+
return callTxeHandler({
|
|
1009
|
+
oracle: 'aztec_avm_timestamp',
|
|
1010
|
+
inputs: [],
|
|
1011
|
+
handler: () => this.handlerAsAvm().timestamp(),
|
|
1012
|
+
});
|
|
1121
1013
|
}
|
|
1122
1014
|
|
|
1123
1015
|
// eslint-disable-next-line camelcase
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1016
|
+
aztec_avm_isStaticCall() {
|
|
1017
|
+
return callTxeHandler({
|
|
1018
|
+
oracle: 'aztec_avm_isStaticCall',
|
|
1019
|
+
inputs: [],
|
|
1020
|
+
handler: () => this.handlerAsAvm().isStaticCall(),
|
|
1021
|
+
});
|
|
1128
1022
|
}
|
|
1129
1023
|
|
|
1130
1024
|
// 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
|
-
);
|
|
1025
|
+
aztec_avm_chainId() {
|
|
1026
|
+
return callTxeHandler({
|
|
1027
|
+
oracle: 'aztec_avm_chainId',
|
|
1028
|
+
inputs: [],
|
|
1029
|
+
handler: () => this.handlerAsAvm().chainId(),
|
|
1030
|
+
});
|
|
1141
1031
|
}
|
|
1142
1032
|
|
|
1143
1033
|
// 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
|
-
);
|
|
1034
|
+
aztec_avm_version() {
|
|
1035
|
+
return callTxeHandler({
|
|
1036
|
+
oracle: 'aztec_avm_version',
|
|
1037
|
+
inputs: [],
|
|
1038
|
+
handler: () => this.handlerAsAvm().version(),
|
|
1039
|
+
});
|
|
1154
1040
|
}
|
|
1155
1041
|
|
|
1156
1042
|
// 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
|
-
}
|
|
1043
|
+
aztec_avm_returndataSize() {
|
|
1044
|
+
return callTxeHandler({
|
|
1045
|
+
oracle: 'aztec_avm_returndataSize',
|
|
1046
|
+
inputs: [],
|
|
1047
|
+
handler: () => this.handlerAsAvm().returndataSize(),
|
|
1048
|
+
});
|
|
1247
1049
|
}
|
|
1248
1050
|
|
|
1249
1051
|
// eslint-disable-next-line camelcase
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1052
|
+
aztec_avm_returndataCopy(...inputs: ForeignCallArgs) {
|
|
1053
|
+
return callTxeHandler({
|
|
1054
|
+
oracle: 'aztec_avm_returndataCopy',
|
|
1055
|
+
inputs,
|
|
1056
|
+
handler: ([rdOffset, copySize]) => this.handlerAsAvm().returndataCopy(rdOffset, copySize),
|
|
1057
|
+
});
|
|
1256
1058
|
}
|
|
1257
1059
|
|
|
1258
1060
|
// eslint-disable-next-line camelcase
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1061
|
+
aztec_avm_call(...inputs: ForeignCallArgs) {
|
|
1062
|
+
return callTxeHandler({
|
|
1063
|
+
oracle: 'aztec_avm_call',
|
|
1064
|
+
inputs,
|
|
1065
|
+
handler: ([l2Gas, daGas, address, argsLength, args]) =>
|
|
1066
|
+
this.handlerAsAvm().call(l2Gas, daGas, address, argsLength, args),
|
|
1067
|
+
});
|
|
1068
|
+
}
|
|
1262
1069
|
|
|
1263
|
-
|
|
1070
|
+
// eslint-disable-next-line camelcase
|
|
1071
|
+
aztec_avm_staticCall(...inputs: ForeignCallArgs) {
|
|
1072
|
+
return callTxeHandler({
|
|
1073
|
+
oracle: 'aztec_avm_staticCall',
|
|
1074
|
+
inputs,
|
|
1075
|
+
handler: ([l2Gas, daGas, address, argsLength, args]) =>
|
|
1076
|
+
this.handlerAsAvm().staticCall(l2Gas, daGas, address, argsLength, args),
|
|
1077
|
+
});
|
|
1078
|
+
}
|
|
1264
1079
|
|
|
1265
|
-
|
|
1080
|
+
// eslint-disable-next-line camelcase
|
|
1081
|
+
aztec_avm_successCopy() {
|
|
1082
|
+
return callTxeHandler({
|
|
1083
|
+
oracle: 'aztec_avm_successCopy',
|
|
1084
|
+
inputs: [],
|
|
1085
|
+
handler: () => this.handlerAsAvm().successCopy(),
|
|
1086
|
+
});
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
// eslint-disable-next-line camelcase
|
|
1090
|
+
aztec_txe_privateCallNewFlow(...inputs: ForeignCallArgs) {
|
|
1091
|
+
return callTxeHandler({
|
|
1092
|
+
oracle: 'aztec_txe_privateCallNewFlow',
|
|
1093
|
+
inputs,
|
|
1094
|
+
handler: ([
|
|
1095
|
+
from,
|
|
1096
|
+
targetContractAddress,
|
|
1097
|
+
functionSelector,
|
|
1098
|
+
args,
|
|
1099
|
+
argsHash,
|
|
1100
|
+
isStaticCall,
|
|
1101
|
+
additionalScopes,
|
|
1102
|
+
authorizedUtilityCallTargets,
|
|
1103
|
+
gasSettings,
|
|
1104
|
+
]) =>
|
|
1105
|
+
this.stateHandler.executePrivateCall(
|
|
1106
|
+
from,
|
|
1107
|
+
targetContractAddress,
|
|
1108
|
+
functionSelector,
|
|
1109
|
+
args,
|
|
1110
|
+
argsHash,
|
|
1111
|
+
isStaticCall,
|
|
1112
|
+
additionalScopes,
|
|
1113
|
+
authorizedUtilityCallTargets,
|
|
1114
|
+
gasSettings,
|
|
1115
|
+
),
|
|
1116
|
+
});
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
// eslint-disable-next-line camelcase
|
|
1120
|
+
aztec_txe_executeUtilityFunction(...inputs: ForeignCallArgs) {
|
|
1121
|
+
return callTxeHandler({
|
|
1122
|
+
oracle: 'aztec_txe_executeUtilityFunction',
|
|
1123
|
+
inputs,
|
|
1124
|
+
handler: ([from, targetContractAddress, functionSelector, args, authorizedUtilityCallTargets]) =>
|
|
1125
|
+
this.stateHandler.executeUtilityFunction(
|
|
1126
|
+
from,
|
|
1127
|
+
targetContractAddress,
|
|
1128
|
+
functionSelector,
|
|
1129
|
+
args,
|
|
1130
|
+
authorizedUtilityCallTargets,
|
|
1131
|
+
),
|
|
1132
|
+
});
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
// eslint-disable-next-line camelcase
|
|
1136
|
+
aztec_txe_publicCallNewFlow(...inputs: ForeignCallArgs) {
|
|
1137
|
+
return callTxeHandler({
|
|
1138
|
+
oracle: 'aztec_txe_publicCallNewFlow',
|
|
1139
|
+
inputs,
|
|
1140
|
+
handler: ([from, address, calldata, isStaticCall, gasSettings]) =>
|
|
1141
|
+
this.stateHandler.executePublicCall(from, address, calldata, isStaticCall, gasSettings),
|
|
1142
|
+
});
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
// eslint-disable-next-line camelcase
|
|
1146
|
+
aztec_prv_getSenderForTags() {
|
|
1147
|
+
return callTxeHandler({
|
|
1148
|
+
oracle: 'aztec_prv_getSenderForTags',
|
|
1149
|
+
inputs: [],
|
|
1150
|
+
handler: () => this.handlerAsPrivate().getSenderForTags(),
|
|
1151
|
+
});
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
// eslint-disable-next-line camelcase
|
|
1155
|
+
aztec_prv_resolveTaggingStrategy(...inputs: ForeignCallArgs) {
|
|
1156
|
+
return callTxeHandler({
|
|
1157
|
+
oracle: 'aztec_prv_resolveTaggingStrategy',
|
|
1158
|
+
inputs,
|
|
1159
|
+
handler: ([sender, recipient, deliveryMode]) =>
|
|
1160
|
+
this.handlerAsPrivate().resolveTaggingStrategy(sender, recipient, deliveryMode),
|
|
1161
|
+
});
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
// eslint-disable-next-line camelcase
|
|
1165
|
+
aztec_prv_resolveCustomRequest(...inputs: ForeignCallArgs) {
|
|
1166
|
+
return callTxeHandler({
|
|
1167
|
+
oracle: 'aztec_prv_resolveCustomRequest',
|
|
1168
|
+
inputs,
|
|
1169
|
+
handler: ([kind, payload]) => this.handlerAsPrivate().resolveCustomRequest(kind, payload),
|
|
1170
|
+
});
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
// eslint-disable-next-line camelcase
|
|
1174
|
+
aztec_prv_getAppTaggingSecret(...inputs: ForeignCallArgs) {
|
|
1175
|
+
return callTxeHandler({
|
|
1176
|
+
oracle: 'aztec_prv_getAppTaggingSecret',
|
|
1177
|
+
inputs,
|
|
1178
|
+
handler: ([sender, recipient]) => this.handlerAsPrivate().getAppTaggingSecret(sender, recipient),
|
|
1179
|
+
});
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
// eslint-disable-next-line camelcase
|
|
1183
|
+
aztec_prv_getNextTaggingIndex(...inputs: ForeignCallArgs) {
|
|
1184
|
+
return callTxeHandler({
|
|
1185
|
+
oracle: 'aztec_prv_getNextTaggingIndex',
|
|
1186
|
+
inputs,
|
|
1187
|
+
handler: ([secret, deliveryMode]) => this.handlerAsPrivate().getNextTaggingIndex(secret, deliveryMode),
|
|
1188
|
+
});
|
|
1266
1189
|
}
|
|
1267
1190
|
}
|