@aztec/txe 0.0.1-commit.a89ec08 → 0.0.1-commit.aa0c64f
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-2XE2OXLY.js +260 -0
- package/dest/chunk-2XE2OXLY.js.map +7 -0
- package/dest/chunk-32UHX7YY.js +3 -0
- package/dest/chunk-32UHX7YY.js.map +7 -0
- package/dest/chunk-543AD4I4.js +304 -0
- package/dest/chunk-543AD4I4.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 +52 -17
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +542 -299
- 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 -266
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +785 -731
- package/dest/server.bundle.js +3 -0
- package/dest/server.bundle.js.map +7 -0
- package/dest/state_machine/archiver.d.ts +4 -3
- package/dest/state_machine/archiver.d.ts.map +1 -1
- package/dest/state_machine/archiver.js +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 +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 +16 -3
- package/dest/state_machine/mock_epoch_cache.d.ts.map +1 -1
- package/dest/state_machine/mock_epoch_cache.js +29 -2
- package/dest/state_machine/synchronizer.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 -66
- 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 +8 -7
- 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 +344 -114
- 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 +867 -1020
- 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 -31
- package/src/state_machine/mock_epoch_cache.ts +38 -3
- package/src/state_machine/synchronizer.ts +27 -6
- package/src/txe_session.ts +548 -79
- 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 -6
- package/src/worker.ts +98 -0
- package/dest/util/encoding.d.ts +0 -719
- package/dest/util/encoding.d.ts.map +0 -1
- package/dest/util/expected_failure_error.d.ts.map +0 -1
- package/dest/util/txe_account_store.d.ts.map +0 -1
- package/dest/util/txe_public_contract_data_source.d.ts +0 -20
- package/dest/util/txe_public_contract_data_source.d.ts.map +0 -1
- /package/dest/{util → utils}/expected_failure_error.js +0 -0
- /package/dest/{util → utils}/txe_account_store.js +0 -0
- /package/src/{util → utils}/expected_failure_error.ts +0 -0
- /package/src/{util → utils}/txe_account_store.ts +0 -0
package/dest/rpc_translator.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX } from '@aztec/constants';
|
|
3
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
|
-
import { packAsHintedNote } from '@aztec/pxe/simulator';
|
|
5
|
-
import { EventSelector, FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
6
|
-
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import { BlockHash } from '@aztec/stdlib/block';
|
|
8
|
-
import { addressFromSingle, arrayOfArraysToBoundedVecOfArrays, arrayToBoundedVec, bufferToU8Array, fromArray, fromSingle, fromUintArray, fromUintBoundedVec, toArray, toForeignCallResult, toSingle } from './util/encoding.js';
|
|
9
|
-
const MAX_EVENT_LEN = 10; // This is MAX_MESSAGE_CONTENT_LEN - PRIVATE_EVENT_MSG_PLAINTEXT_RESERVED_FIELDS_LEN
|
|
10
|
-
const MAX_PRIVATE_EVENTS_PER_TXE_QUERY = 5;
|
|
1
|
+
import { callTxeHandler } from './oracle/txe_oracle_registry.js';
|
|
11
2
|
export class UnavailableOracleError extends Error {
|
|
12
3
|
constructor(oracleName){
|
|
13
4
|
super(`${oracleName} oracles not available with the current handler`);
|
|
@@ -60,855 +51,918 @@ export class RPCTranslator {
|
|
|
60
51
|
}
|
|
61
52
|
return this.oracleHandler;
|
|
62
53
|
}
|
|
54
|
+
// eslint-disable-next-line camelcase
|
|
55
|
+
aztec_txe_assertCompatibleOracleVersion(...inputs) {
|
|
56
|
+
return callTxeHandler({
|
|
57
|
+
oracle: 'aztec_txe_assertCompatibleOracleVersion',
|
|
58
|
+
inputs,
|
|
59
|
+
handler: ([major, minor])=>{
|
|
60
|
+
this.stateHandler.setTxeOracleVersion(major, minor);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
63
64
|
// TXE session state transition functions - these get handled by the state handler
|
|
64
65
|
// eslint-disable-next-line camelcase
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
aztec_txe_setTopLevelTXEContext() {
|
|
67
|
+
return callTxeHandler({
|
|
68
|
+
oracle: 'aztec_txe_setTopLevelTXEContext',
|
|
69
|
+
inputs: [],
|
|
70
|
+
handler: ()=>this.stateHandler.enterTopLevelState()
|
|
71
|
+
});
|
|
68
72
|
}
|
|
69
73
|
// eslint-disable-next-line camelcase
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
aztec_txe_setPrivateTXEContext(...inputs) {
|
|
75
|
+
return callTxeHandler({
|
|
76
|
+
oracle: 'aztec_txe_setPrivateTXEContext',
|
|
77
|
+
inputs,
|
|
78
|
+
handler: ([contractAddress, anchorBlockNumber, gasSettings])=>this.stateHandler.enterPrivateState(contractAddress, anchorBlockNumber, gasSettings)
|
|
79
|
+
});
|
|
75
80
|
}
|
|
76
81
|
// eslint-disable-next-line camelcase
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
aztec_txe_setPublicTXEContext(...inputs) {
|
|
83
|
+
return callTxeHandler({
|
|
84
|
+
oracle: 'aztec_txe_setPublicTXEContext',
|
|
85
|
+
inputs,
|
|
86
|
+
handler: ([contractAddress])=>this.stateHandler.enterPublicState(contractAddress)
|
|
87
|
+
});
|
|
81
88
|
}
|
|
82
89
|
// eslint-disable-next-line camelcase
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
90
|
+
aztec_txe_setUtilityTXEContext(...inputs) {
|
|
91
|
+
return callTxeHandler({
|
|
92
|
+
oracle: 'aztec_txe_setUtilityTXEContext',
|
|
93
|
+
inputs,
|
|
94
|
+
handler: ([contractAddress])=>this.stateHandler.enterUtilityState(contractAddress)
|
|
95
|
+
});
|
|
87
96
|
}
|
|
88
97
|
// Other oracles - these get handled by the oracle handler
|
|
89
98
|
// TXE-specific oracles
|
|
90
99
|
// eslint-disable-next-line camelcase
|
|
91
100
|
aztec_txe_getDefaultAddress() {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
return callTxeHandler({
|
|
102
|
+
oracle: 'aztec_txe_getDefaultAddress',
|
|
103
|
+
inputs: [],
|
|
104
|
+
handler: ()=>this.handlerAsTxe().getDefaultAddress()
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
// eslint-disable-next-line camelcase
|
|
108
|
+
aztec_txe_getNextBlockNumber() {
|
|
109
|
+
return callTxeHandler({
|
|
110
|
+
oracle: 'aztec_txe_getNextBlockNumber',
|
|
111
|
+
inputs: [],
|
|
112
|
+
handler: ()=>this.handlerAsTxe().getNextBlockNumber()
|
|
113
|
+
});
|
|
96
114
|
}
|
|
97
115
|
// eslint-disable-next-line camelcase
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
116
|
+
aztec_txe_getNextBlockTimestamp() {
|
|
117
|
+
return callTxeHandler({
|
|
118
|
+
oracle: 'aztec_txe_getNextBlockTimestamp',
|
|
119
|
+
inputs: [],
|
|
120
|
+
handler: ()=>this.handlerAsTxe().getNextBlockTimestamp()
|
|
121
|
+
});
|
|
103
122
|
}
|
|
104
123
|
// eslint-disable-next-line camelcase
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
124
|
+
aztec_txe_advanceBlocksBy(...inputs) {
|
|
125
|
+
return callTxeHandler({
|
|
126
|
+
oracle: 'aztec_txe_advanceBlocksBy',
|
|
127
|
+
inputs,
|
|
128
|
+
handler: ([blocks])=>this.handlerAsTxe().advanceBlocksBy(blocks)
|
|
129
|
+
});
|
|
110
130
|
}
|
|
111
131
|
// eslint-disable-next-line camelcase
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
132
|
+
aztec_txe_advanceTimestampBy(...inputs) {
|
|
133
|
+
return callTxeHandler({
|
|
134
|
+
oracle: 'aztec_txe_advanceTimestampBy',
|
|
135
|
+
inputs,
|
|
136
|
+
handler: ([duration])=>this.handlerAsTxe().advanceTimestampBy(duration)
|
|
137
|
+
});
|
|
116
138
|
}
|
|
117
139
|
// eslint-disable-next-line camelcase
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
140
|
+
aztec_txe_deploy(...inputs) {
|
|
141
|
+
return callTxeHandler({
|
|
142
|
+
oracle: 'aztec_txe_deploy',
|
|
143
|
+
inputs,
|
|
144
|
+
handler: ([contractPath, initializer, _, args, secret, salt, deployer])=>this.handlerAsTxe().deploy(contractPath, initializer, args, secret, salt, deployer)
|
|
145
|
+
});
|
|
122
146
|
}
|
|
123
147
|
// eslint-disable-next-line camelcase
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
instance.deployer.toField(),
|
|
131
|
-
instance.currentContractClassId,
|
|
132
|
-
instance.initializationHash,
|
|
133
|
-
...instance.publicKeys.toFields()
|
|
134
|
-
])
|
|
135
|
-
]);
|
|
148
|
+
aztec_txe_createAccount(...inputs) {
|
|
149
|
+
return callTxeHandler({
|
|
150
|
+
oracle: 'aztec_txe_createAccount',
|
|
151
|
+
inputs,
|
|
152
|
+
handler: ([secret, partialAddress])=>this.handlerAsTxe().createAccount(secret, partialAddress)
|
|
153
|
+
});
|
|
136
154
|
}
|
|
137
155
|
// eslint-disable-next-line camelcase
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
]);
|
|
156
|
+
aztec_txe_addAccount(...inputs) {
|
|
157
|
+
return callTxeHandler({
|
|
158
|
+
oracle: 'aztec_txe_addAccount',
|
|
159
|
+
inputs,
|
|
160
|
+
handler: ([secret])=>this.handlerAsTxe().addAccount(secret)
|
|
161
|
+
});
|
|
145
162
|
}
|
|
146
163
|
// eslint-disable-next-line camelcase
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
]);
|
|
164
|
+
aztec_txe_addAuthWitness(...inputs) {
|
|
165
|
+
return callTxeHandler({
|
|
166
|
+
oracle: 'aztec_txe_addAuthWitness',
|
|
167
|
+
inputs,
|
|
168
|
+
handler: ([address, messageHash])=>this.handlerAsTxe().addAuthWitness(address, messageHash)
|
|
169
|
+
});
|
|
154
170
|
}
|
|
155
171
|
// eslint-disable-next-line camelcase
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
172
|
+
aztec_txe_sendL1ToL2Message(...inputs) {
|
|
173
|
+
return callTxeHandler({
|
|
174
|
+
oracle: 'aztec_txe_sendL1ToL2Message',
|
|
175
|
+
inputs,
|
|
176
|
+
handler: ([content, secretHash, sender, recipient])=>this.handlerAsTxe().sendL1ToL2Message(content, secretHash, sender, recipient)
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
// eslint-disable-next-line camelcase
|
|
180
|
+
aztec_txe_setTaggingSecretStrategies(...inputs) {
|
|
181
|
+
return callTxeHandler({
|
|
182
|
+
oracle: 'aztec_txe_setTaggingSecretStrategies',
|
|
183
|
+
inputs,
|
|
184
|
+
handler: ([unconstrainedStrategy, constrainedStrategy])=>this.handlerAsTxe().setTaggingSecretStrategies(unconstrainedStrategy, constrainedStrategy)
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
// eslint-disable-next-line camelcase
|
|
188
|
+
aztec_txe_setAuthorizeAllUtilityCallTargets(...inputs) {
|
|
189
|
+
return callTxeHandler({
|
|
190
|
+
oracle: 'aztec_txe_setAuthorizeAllUtilityCallTargets',
|
|
191
|
+
inputs,
|
|
192
|
+
handler: ([authorizeAll])=>this.handlerAsTxe().setAuthorizeAllUtilityCallTargets(authorizeAll)
|
|
193
|
+
});
|
|
161
194
|
}
|
|
162
195
|
// PXE oracles
|
|
163
196
|
// eslint-disable-next-line camelcase
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
// eslint-disable-next-line camelcase
|
|
171
|
-
aztec_utl_getRandomField() {
|
|
172
|
-
const randomField = this.handlerAsMisc().getRandomField();
|
|
173
|
-
return toForeignCallResult([
|
|
174
|
-
toSingle(randomField)
|
|
175
|
-
]);
|
|
176
|
-
}
|
|
177
|
-
// eslint-disable-next-line camelcase
|
|
178
|
-
async aztec_txe_getLastBlockTimestamp() {
|
|
179
|
-
const timestamp = await this.handlerAsTxe().getLastBlockTimestamp();
|
|
180
|
-
return toForeignCallResult([
|
|
181
|
-
toSingle(new Fr(timestamp))
|
|
182
|
-
]);
|
|
183
|
-
}
|
|
184
|
-
// eslint-disable-next-line camelcase
|
|
185
|
-
async aztec_txe_getLastTxEffects() {
|
|
186
|
-
const { txHash, noteHashes, nullifiers } = await this.handlerAsTxe().getLastTxEffects();
|
|
187
|
-
return toForeignCallResult([
|
|
188
|
-
toSingle(txHash.hash),
|
|
189
|
-
...arrayToBoundedVec(toArray(noteHashes), MAX_NOTE_HASHES_PER_TX),
|
|
190
|
-
...arrayToBoundedVec(toArray(nullifiers), MAX_NULLIFIERS_PER_TX)
|
|
191
|
-
]);
|
|
192
|
-
}
|
|
193
|
-
// eslint-disable-next-line camelcase
|
|
194
|
-
async aztec_txe_getPrivateEvents(foreignSelector, foreignContractAddress, foreignScope) {
|
|
195
|
-
const selector = EventSelector.fromField(fromSingle(foreignSelector));
|
|
196
|
-
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
197
|
-
const scope = addressFromSingle(foreignScope);
|
|
198
|
-
// TODO(F-335): Avoid doing the following 2 calls here.
|
|
199
|
-
{
|
|
200
|
-
await this.handlerAsTxe().syncContractNonOracleMethod(contractAddress, scope, this.stateHandler.getCurrentJob());
|
|
201
|
-
// We cycle job to commit the stores after the contract sync.
|
|
202
|
-
await this.stateHandler.cycleJob();
|
|
203
|
-
}
|
|
204
|
-
const events = await this.handlerAsTxe().getPrivateEvents(selector, contractAddress, scope);
|
|
205
|
-
if (events.length > MAX_PRIVATE_EVENTS_PER_TXE_QUERY) {
|
|
206
|
-
throw new Error(`Array of length ${events.length} larger than maxLen ${MAX_PRIVATE_EVENTS_PER_TXE_QUERY}`);
|
|
207
|
-
}
|
|
208
|
-
if (events.some((e)=>e.length > MAX_EVENT_LEN)) {
|
|
209
|
-
throw new Error(`Some private event has length larger than maxLen ${MAX_EVENT_LEN}`);
|
|
210
|
-
}
|
|
211
|
-
// This is a workaround as Noir does not currently let us return nested structs with arrays. We instead return a raw
|
|
212
|
-
// multidimensional array in get_private_events_oracle and create the BoundedVecs here.
|
|
213
|
-
const rawArrayStorage = events.map((e)=>e.concat(Array(MAX_EVENT_LEN - e.length).fill(new Fr(0)))).concat(Array(MAX_PRIVATE_EVENTS_PER_TXE_QUERY - events.length).fill(Array(MAX_EVENT_LEN).fill(new Fr(0)))).flat();
|
|
214
|
-
const eventLengths = events.map((e)=>new Fr(e.length)).concat(Array(MAX_PRIVATE_EVENTS_PER_TXE_QUERY - events.length).fill(new Fr(0)));
|
|
215
|
-
const queryLength = new Fr(events.length);
|
|
216
|
-
return toForeignCallResult([
|
|
217
|
-
toArray(rawArrayStorage),
|
|
218
|
-
toArray(eventLengths),
|
|
219
|
-
toSingle(queryLength)
|
|
220
|
-
]);
|
|
221
|
-
}
|
|
222
|
-
// eslint-disable-next-line camelcase
|
|
223
|
-
aztec_prv_setHashPreimage(foreignValues, foreignHash) {
|
|
224
|
-
const values = fromArray(foreignValues);
|
|
225
|
-
const hash = fromSingle(foreignHash);
|
|
226
|
-
this.handlerAsPrivate().setHashPreimage(values, hash);
|
|
227
|
-
return toForeignCallResult([]);
|
|
228
|
-
}
|
|
229
|
-
// eslint-disable-next-line camelcase
|
|
230
|
-
async aztec_prv_getHashPreimage(foreignHash) {
|
|
231
|
-
const hash = fromSingle(foreignHash);
|
|
232
|
-
const returns = await this.handlerAsPrivate().getHashPreimage(hash);
|
|
233
|
-
return toForeignCallResult([
|
|
234
|
-
toArray(returns)
|
|
235
|
-
]);
|
|
236
|
-
}
|
|
237
|
-
// When the argument is a slice, noir automatically adds a length field to oracle call.
|
|
238
|
-
// When the argument is an array, we add the field length manually to the signature.
|
|
239
|
-
// eslint-disable-next-line camelcase
|
|
240
|
-
async aztec_utl_log(foreignLevel, foreignMessage, _foreignLength, foreignFields) {
|
|
241
|
-
const level = fromSingle(foreignLevel).toNumber();
|
|
242
|
-
const message = fromArray(foreignMessage).map((field)=>String.fromCharCode(field.toNumber())).join('');
|
|
243
|
-
const fields = fromArray(foreignFields);
|
|
244
|
-
await this.handlerAsMisc().log(level, message, fields);
|
|
245
|
-
return toForeignCallResult([]);
|
|
246
|
-
}
|
|
247
|
-
// eslint-disable-next-line camelcase
|
|
248
|
-
async aztec_utl_getFromPublicStorage(foreignBlockHash, foreignContractAddress, foreignStartStorageSlot, foreignNumberOfElements) {
|
|
249
|
-
const blockHash = new BlockHash(fromSingle(foreignBlockHash));
|
|
250
|
-
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
251
|
-
const startStorageSlot = fromSingle(foreignStartStorageSlot);
|
|
252
|
-
const numberOfElements = fromSingle(foreignNumberOfElements).toNumber();
|
|
253
|
-
const values = await this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements);
|
|
254
|
-
return toForeignCallResult([
|
|
255
|
-
toArray(values)
|
|
256
|
-
]);
|
|
257
|
-
}
|
|
258
|
-
// eslint-disable-next-line camelcase
|
|
259
|
-
async aztec_utl_getPublicDataWitness(foreignBlockHash, foreignLeafSlot) {
|
|
260
|
-
const blockHash = new BlockHash(fromSingle(foreignBlockHash));
|
|
261
|
-
const leafSlot = fromSingle(foreignLeafSlot);
|
|
262
|
-
const witness = await this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot);
|
|
263
|
-
if (!witness) {
|
|
264
|
-
throw new Error(`Public data witness not found for slot ${leafSlot} at block ${blockHash.toString()}.`);
|
|
265
|
-
}
|
|
266
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
267
|
-
}
|
|
268
|
-
// eslint-disable-next-line camelcase
|
|
269
|
-
async aztec_utl_getNotes(foreignOwnerIsSome, foreignOwnerValue, foreignStorageSlot, foreignNumSelects, foreignSelectByIndexes, foreignSelectByOffsets, foreignSelectByLengths, foreignSelectValues, foreignSelectComparators, foreignSortByIndexes, foreignSortByOffsets, foreignSortByLengths, foreignSortOrder, foreignLimit, foreignOffset, foreignStatus, foreignMaxNotes, foreignPackedHintedNoteLength) {
|
|
270
|
-
// Parse Option<AztecAddress>: ownerIsSome is 0 for None, 1 for Some
|
|
271
|
-
const owner = fromSingle(foreignOwnerIsSome).toBool() ? AztecAddress.fromField(fromSingle(foreignOwnerValue)) : undefined;
|
|
272
|
-
const storageSlot = fromSingle(foreignStorageSlot);
|
|
273
|
-
const numSelects = fromSingle(foreignNumSelects).toNumber();
|
|
274
|
-
const selectByIndexes = fromArray(foreignSelectByIndexes).map((fr)=>fr.toNumber());
|
|
275
|
-
const selectByOffsets = fromArray(foreignSelectByOffsets).map((fr)=>fr.toNumber());
|
|
276
|
-
const selectByLengths = fromArray(foreignSelectByLengths).map((fr)=>fr.toNumber());
|
|
277
|
-
const selectValues = fromArray(foreignSelectValues);
|
|
278
|
-
const selectComparators = fromArray(foreignSelectComparators).map((fr)=>fr.toNumber());
|
|
279
|
-
const sortByIndexes = fromArray(foreignSortByIndexes).map((fr)=>fr.toNumber());
|
|
280
|
-
const sortByOffsets = fromArray(foreignSortByOffsets).map((fr)=>fr.toNumber());
|
|
281
|
-
const sortByLengths = fromArray(foreignSortByLengths).map((fr)=>fr.toNumber());
|
|
282
|
-
const sortOrder = fromArray(foreignSortOrder).map((fr)=>fr.toNumber());
|
|
283
|
-
const limit = fromSingle(foreignLimit).toNumber();
|
|
284
|
-
const offset = fromSingle(foreignOffset).toNumber();
|
|
285
|
-
const status = fromSingle(foreignStatus).toNumber();
|
|
286
|
-
const maxNotes = fromSingle(foreignMaxNotes).toNumber();
|
|
287
|
-
const packedHintedNoteLength = fromSingle(foreignPackedHintedNoteLength).toNumber();
|
|
288
|
-
const noteDatas = await this.handlerAsUtility().getNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status);
|
|
289
|
-
const returnDataAsArrayOfArrays = noteDatas.map((noteData)=>packAsHintedNote({
|
|
290
|
-
contractAddress: noteData.contractAddress,
|
|
291
|
-
owner: noteData.owner,
|
|
292
|
-
randomness: noteData.randomness,
|
|
293
|
-
storageSlot: noteData.storageSlot,
|
|
294
|
-
noteNonce: noteData.noteNonce,
|
|
295
|
-
isPending: noteData.isPending,
|
|
296
|
-
note: noteData.note
|
|
297
|
-
}));
|
|
298
|
-
// Now we convert each sub-array to an array of ForeignCallSingles
|
|
299
|
-
const returnDataAsArrayOfForeignCallSingleArrays = returnDataAsArrayOfArrays.map((subArray)=>subArray.map(toSingle));
|
|
300
|
-
// At last we convert the array of arrays to a bounded vec of arrays
|
|
301
|
-
return toForeignCallResult(arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfForeignCallSingleArrays, maxNotes, packedHintedNoteLength));
|
|
302
|
-
}
|
|
303
|
-
// eslint-disable-next-line camelcase
|
|
304
|
-
aztec_prv_notifyCreatedNote(foreignOwner, foreignStorageSlot, foreignRandomness, foreignNoteTypeId, foreignNote, foreignNoteHash, foreignCounter) {
|
|
305
|
-
const owner = addressFromSingle(foreignOwner);
|
|
306
|
-
const storageSlot = fromSingle(foreignStorageSlot);
|
|
307
|
-
const randomness = fromSingle(foreignRandomness);
|
|
308
|
-
const noteTypeId = NoteSelector.fromField(fromSingle(foreignNoteTypeId));
|
|
309
|
-
const note = fromArray(foreignNote);
|
|
310
|
-
const noteHash = fromSingle(foreignNoteHash);
|
|
311
|
-
const counter = fromSingle(foreignCounter).toNumber();
|
|
312
|
-
this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter);
|
|
313
|
-
return toForeignCallResult([]);
|
|
314
|
-
}
|
|
315
|
-
// eslint-disable-next-line camelcase
|
|
316
|
-
async aztec_prv_notifyNullifiedNote(foreignInnerNullifier, foreignNoteHash, foreignCounter) {
|
|
317
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
318
|
-
const noteHash = fromSingle(foreignNoteHash);
|
|
319
|
-
const counter = fromSingle(foreignCounter).toNumber();
|
|
320
|
-
await this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter);
|
|
321
|
-
return toForeignCallResult([]);
|
|
322
|
-
}
|
|
323
|
-
// eslint-disable-next-line camelcase
|
|
324
|
-
async aztec_prv_notifyCreatedNullifier(foreignInnerNullifier) {
|
|
325
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
326
|
-
await this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier);
|
|
327
|
-
return toForeignCallResult([]);
|
|
328
|
-
}
|
|
329
|
-
// eslint-disable-next-line camelcase
|
|
330
|
-
async aztec_prv_isNullifierPending(foreignInnerNullifier, foreignContractAddress) {
|
|
331
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
332
|
-
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
333
|
-
const isPending = await this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress);
|
|
334
|
-
return toForeignCallResult([
|
|
335
|
-
toSingle(new Fr(isPending))
|
|
336
|
-
]);
|
|
337
|
-
}
|
|
338
|
-
// eslint-disable-next-line camelcase
|
|
339
|
-
async aztec_utl_doesNullifierExist(foreignInnerNullifier) {
|
|
340
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
341
|
-
const exists = await this.handlerAsUtility().doesNullifierExist(innerNullifier);
|
|
342
|
-
return toForeignCallResult([
|
|
343
|
-
toSingle(new Fr(exists))
|
|
344
|
-
]);
|
|
345
|
-
}
|
|
346
|
-
// eslint-disable-next-line camelcase
|
|
347
|
-
async aztec_utl_getContractInstance(foreignAddress) {
|
|
348
|
-
const address = addressFromSingle(foreignAddress);
|
|
349
|
-
const instance = await this.handlerAsUtility().getContractInstance(address);
|
|
350
|
-
return toForeignCallResult([
|
|
351
|
-
instance.salt,
|
|
352
|
-
instance.deployer.toField(),
|
|
353
|
-
instance.currentContractClassId,
|
|
354
|
-
instance.initializationHash,
|
|
355
|
-
...instance.publicKeys.toFields()
|
|
356
|
-
].map(toSingle));
|
|
357
|
-
}
|
|
358
|
-
// eslint-disable-next-line camelcase
|
|
359
|
-
async aztec_utl_getPublicKeysAndPartialAddress(foreignAddress) {
|
|
360
|
-
const address = addressFromSingle(foreignAddress);
|
|
361
|
-
const result = await this.handlerAsUtility().getPublicKeysAndPartialAddress(address);
|
|
362
|
-
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
363
|
-
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
364
|
-
if (result === undefined) {
|
|
365
|
-
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
366
|
-
return toForeignCallResult([
|
|
367
|
-
toSingle(new Fr(0)),
|
|
368
|
-
toArray(Array(13).fill(new Fr(0)))
|
|
369
|
-
]);
|
|
370
|
-
} else {
|
|
371
|
-
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
372
|
-
return toForeignCallResult([
|
|
373
|
-
toSingle(new Fr(1)),
|
|
374
|
-
toArray([
|
|
375
|
-
...result.publicKeys.toFields(),
|
|
376
|
-
result.partialAddress
|
|
377
|
-
])
|
|
378
|
-
]);
|
|
379
|
-
}
|
|
197
|
+
aztec_misc_assertCompatibleOracleVersion(...inputs) {
|
|
198
|
+
return callTxeHandler({
|
|
199
|
+
oracle: 'aztec_misc_assertCompatibleOracleVersion',
|
|
200
|
+
inputs,
|
|
201
|
+
handler: ([major, minor])=>this.handlerAsMisc().assertCompatibleOracleVersion(major, minor)
|
|
202
|
+
});
|
|
380
203
|
}
|
|
381
204
|
// eslint-disable-next-line camelcase
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
205
|
+
aztec_misc_getRandomField() {
|
|
206
|
+
return callTxeHandler({
|
|
207
|
+
oracle: 'aztec_misc_getRandomField',
|
|
208
|
+
inputs: [],
|
|
209
|
+
handler: ()=>this.handlerAsMisc().getRandomField()
|
|
210
|
+
});
|
|
386
211
|
}
|
|
387
212
|
// eslint-disable-next-line camelcase
|
|
388
|
-
|
|
389
|
-
|
|
213
|
+
aztec_txe_getLastBlockTimestamp() {
|
|
214
|
+
return callTxeHandler({
|
|
215
|
+
oracle: 'aztec_txe_getLastBlockTimestamp',
|
|
216
|
+
inputs: [],
|
|
217
|
+
handler: ()=>this.handlerAsTxe().getLastBlockTimestamp()
|
|
218
|
+
});
|
|
390
219
|
}
|
|
391
220
|
// eslint-disable-next-line camelcase
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
}
|
|
399
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
221
|
+
aztec_txe_getLastTxEffects() {
|
|
222
|
+
return callTxeHandler({
|
|
223
|
+
oracle: 'aztec_txe_getLastTxEffects',
|
|
224
|
+
inputs: [],
|
|
225
|
+
handler: ()=>this.handlerAsTxe().getLastTxEffects()
|
|
226
|
+
});
|
|
400
227
|
}
|
|
401
228
|
// eslint-disable-next-line camelcase
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
229
|
+
aztec_txe_getLastCallOffchainEffects() {
|
|
230
|
+
return callTxeHandler({
|
|
231
|
+
oracle: 'aztec_txe_getLastCallOffchainEffects',
|
|
232
|
+
inputs: [],
|
|
233
|
+
handler: ()=>this.stateHandler.getLastCallOffchainEffects()
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
// eslint-disable-next-line camelcase
|
|
237
|
+
aztec_txe_getLastCallContext() {
|
|
238
|
+
return callTxeHandler({
|
|
239
|
+
oracle: 'aztec_txe_getLastCallContext',
|
|
240
|
+
inputs: [],
|
|
241
|
+
handler: ()=>this.stateHandler.getLastCallContext()
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
// eslint-disable-next-line camelcase
|
|
245
|
+
aztec_txe_getPrivateEvents(...inputs) {
|
|
246
|
+
return callTxeHandler({
|
|
247
|
+
oracle: 'aztec_txe_getPrivateEvents',
|
|
248
|
+
inputs,
|
|
249
|
+
handler: ([selector, contractAddress, scope])=>this.stateHandler.getPrivateEvents(selector, contractAddress, scope)
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
// eslint-disable-next-line camelcase
|
|
253
|
+
aztec_prv_setHashPreimage(...inputs) {
|
|
254
|
+
return callTxeHandler({
|
|
255
|
+
oracle: 'aztec_prv_setHashPreimage',
|
|
256
|
+
inputs,
|
|
257
|
+
handler: ([values, hash])=>this.handlerAsPrivate().setHashPreimage(values, hash)
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
// eslint-disable-next-line camelcase
|
|
261
|
+
aztec_prv_getHashPreimage(...inputs) {
|
|
262
|
+
return callTxeHandler({
|
|
263
|
+
oracle: 'aztec_prv_getHashPreimage',
|
|
264
|
+
inputs,
|
|
265
|
+
handler: ([hash])=>this.handlerAsPrivate().getHashPreimage(hash)
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
// eslint-disable-next-line camelcase
|
|
269
|
+
aztec_misc_log(...inputs) {
|
|
270
|
+
return callTxeHandler({
|
|
271
|
+
oracle: 'aztec_misc_log',
|
|
272
|
+
inputs,
|
|
273
|
+
handler: ([level, message, fieldsSize, fields])=>this.handlerAsMisc().log(level, message, fieldsSize, fields)
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
// eslint-disable-next-line camelcase
|
|
277
|
+
aztec_utl_getFromPublicStorage(...inputs) {
|
|
278
|
+
return callTxeHandler({
|
|
279
|
+
oracle: 'aztec_utl_getFromPublicStorage',
|
|
280
|
+
inputs,
|
|
281
|
+
handler: ([blockHash, contractAddress, startStorageSlot, numberOfElements])=>this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements)
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
// eslint-disable-next-line camelcase
|
|
285
|
+
aztec_utl_getPublicDataWitness(...inputs) {
|
|
286
|
+
return callTxeHandler({
|
|
287
|
+
oracle: 'aztec_utl_getPublicDataWitness',
|
|
288
|
+
inputs,
|
|
289
|
+
handler: ([blockHash, leafSlot])=>this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot)
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
// eslint-disable-next-line camelcase
|
|
293
|
+
aztec_utl_getNotes(...inputs) {
|
|
294
|
+
return callTxeHandler({
|
|
295
|
+
oracle: 'aztec_utl_getNotes',
|
|
296
|
+
inputs,
|
|
297
|
+
handler: ([owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status, maxNotes, packedHintedNoteLength])=>this.handlerAsUtility().getNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status, maxNotes, packedHintedNoteLength)
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
// eslint-disable-next-line camelcase
|
|
301
|
+
aztec_prv_notifyCreatedNote(...inputs) {
|
|
302
|
+
return callTxeHandler({
|
|
303
|
+
oracle: 'aztec_prv_notifyCreatedNote',
|
|
304
|
+
inputs,
|
|
305
|
+
handler: ([owner, storageSlot, randomness, noteTypeId, note, noteHash, counter])=>this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter)
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
// eslint-disable-next-line camelcase
|
|
309
|
+
aztec_prv_notifyNullifiedNote(...inputs) {
|
|
310
|
+
return callTxeHandler({
|
|
311
|
+
oracle: 'aztec_prv_notifyNullifiedNote',
|
|
312
|
+
inputs,
|
|
313
|
+
handler: ([innerNullifier, noteHash, counter])=>this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter)
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
// eslint-disable-next-line camelcase
|
|
317
|
+
aztec_prv_notifyCreatedNullifier(...inputs) {
|
|
318
|
+
return callTxeHandler({
|
|
319
|
+
oracle: 'aztec_prv_notifyCreatedNullifier',
|
|
320
|
+
inputs,
|
|
321
|
+
handler: ([innerNullifier])=>this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier)
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
// eslint-disable-next-line camelcase
|
|
325
|
+
aztec_prv_isNullifierPending(...inputs) {
|
|
326
|
+
return callTxeHandler({
|
|
327
|
+
oracle: 'aztec_prv_isNullifierPending',
|
|
328
|
+
inputs,
|
|
329
|
+
handler: ([innerNullifier, contractAddress])=>this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress)
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
// eslint-disable-next-line camelcase
|
|
333
|
+
aztec_utl_doesNullifierExist(...inputs) {
|
|
334
|
+
return callTxeHandler({
|
|
335
|
+
oracle: 'aztec_utl_doesNullifierExist',
|
|
336
|
+
inputs,
|
|
337
|
+
handler: ([innerNullifier])=>this.handlerAsUtility().doesNullifierExist(innerNullifier)
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
// eslint-disable-next-line camelcase
|
|
341
|
+
aztec_utl_getContractInstance(...inputs) {
|
|
342
|
+
return callTxeHandler({
|
|
343
|
+
oracle: 'aztec_utl_getContractInstance',
|
|
344
|
+
inputs,
|
|
345
|
+
handler: ([address])=>this.handlerAsUtility().getContractInstance(address)
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
// eslint-disable-next-line camelcase
|
|
349
|
+
aztec_utl_getPublicKeysAndPartialAddress(...inputs) {
|
|
350
|
+
return callTxeHandler({
|
|
351
|
+
oracle: 'aztec_utl_getPublicKeysAndPartialAddress',
|
|
352
|
+
inputs,
|
|
353
|
+
handler: ([address])=>this.handlerAsUtility().getPublicKeysAndPartialAddress(address)
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
// eslint-disable-next-line camelcase
|
|
357
|
+
aztec_utl_getKeyValidationRequest(...inputs) {
|
|
358
|
+
return callTxeHandler({
|
|
359
|
+
oracle: 'aztec_utl_getKeyValidationRequest',
|
|
360
|
+
inputs,
|
|
361
|
+
handler: ([pkMHash, keyIndex])=>this.handlerAsUtility().getKeyValidationRequest(pkMHash, keyIndex)
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
// eslint-disable-next-line camelcase
|
|
365
|
+
aztec_prv_callPrivateFunction(...inputs) {
|
|
366
|
+
return callTxeHandler({
|
|
367
|
+
oracle: 'aztec_prv_callPrivateFunction',
|
|
368
|
+
inputs,
|
|
369
|
+
handler: ([contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall])=>this.handlerAsPrivate().callPrivateFunction(contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall)
|
|
370
|
+
});
|
|
411
371
|
}
|
|
412
372
|
// eslint-disable-next-line camelcase
|
|
413
|
-
|
|
414
|
-
|
|
373
|
+
aztec_utl_getNullifierMembershipWitness(...inputs) {
|
|
374
|
+
return callTxeHandler({
|
|
375
|
+
oracle: 'aztec_utl_getNullifierMembershipWitness',
|
|
376
|
+
inputs,
|
|
377
|
+
handler: ([blockHash, nullifier])=>this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier)
|
|
378
|
+
});
|
|
415
379
|
}
|
|
416
380
|
// eslint-disable-next-line camelcase
|
|
417
|
-
|
|
418
|
-
|
|
381
|
+
aztec_utl_getL1ToL2MembershipWitnessV2(...inputs) {
|
|
382
|
+
return callTxeHandler({
|
|
383
|
+
oracle: 'aztec_utl_getL1ToL2MembershipWitnessV2',
|
|
384
|
+
inputs,
|
|
385
|
+
handler: ([messageHash, nullifier])=>this.handlerAsUtility().getL1ToL2MembershipWitnessV2(messageHash, nullifier)
|
|
386
|
+
});
|
|
419
387
|
}
|
|
420
388
|
// eslint-disable-next-line camelcase
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
389
|
+
aztec_utl_getAuthWitness(...inputs) {
|
|
390
|
+
return callTxeHandler({
|
|
391
|
+
oracle: 'aztec_utl_getAuthWitness',
|
|
392
|
+
inputs,
|
|
393
|
+
handler: ([messageHash])=>this.handlerAsUtility().getAuthWitness(messageHash)
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
// eslint-disable-next-line camelcase
|
|
397
|
+
aztec_prv_assertValidPublicCalldata(...inputs) {
|
|
398
|
+
return callTxeHandler({
|
|
399
|
+
oracle: 'aztec_prv_assertValidPublicCalldata',
|
|
400
|
+
inputs,
|
|
401
|
+
handler: ([calldataHash])=>this.handlerAsPrivate().assertValidPublicCalldata(calldataHash)
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
// eslint-disable-next-line camelcase
|
|
405
|
+
aztec_prv_notifyRevertiblePhaseStart(...inputs) {
|
|
406
|
+
return callTxeHandler({
|
|
407
|
+
oracle: 'aztec_prv_notifyRevertiblePhaseStart',
|
|
408
|
+
inputs,
|
|
409
|
+
handler: ([minRevertibleSideEffectCounter])=>this.handlerAsPrivate().notifyRevertiblePhaseStart(minRevertibleSideEffectCounter)
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
// eslint-disable-next-line camelcase
|
|
413
|
+
aztec_prv_isExecutionInRevertiblePhase(...inputs) {
|
|
414
|
+
return callTxeHandler({
|
|
415
|
+
oracle: 'aztec_prv_isExecutionInRevertiblePhase',
|
|
416
|
+
inputs,
|
|
417
|
+
handler: ([sideEffectCounter])=>this.handlerAsPrivate().isExecutionInRevertiblePhase(sideEffectCounter)
|
|
418
|
+
});
|
|
427
419
|
}
|
|
428
420
|
// eslint-disable-next-line camelcase
|
|
429
421
|
aztec_utl_getUtilityContext() {
|
|
430
|
-
|
|
431
|
-
|
|
422
|
+
return callTxeHandler({
|
|
423
|
+
oracle: 'aztec_utl_getUtilityContext',
|
|
424
|
+
inputs: [],
|
|
425
|
+
handler: ()=>this.handlerAsUtility().getUtilityContext()
|
|
426
|
+
});
|
|
432
427
|
}
|
|
433
428
|
// eslint-disable-next-line camelcase
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
}
|
|
440
|
-
return toForeignCallResult(header.toFields().map(toSingle));
|
|
429
|
+
aztec_utl_getBlockHeader(...inputs) {
|
|
430
|
+
return callTxeHandler({
|
|
431
|
+
oracle: 'aztec_utl_getBlockHeader',
|
|
432
|
+
inputs,
|
|
433
|
+
handler: ([blockNumber])=>this.handlerAsUtility().getBlockHeader(blockNumber)
|
|
434
|
+
});
|
|
441
435
|
}
|
|
442
436
|
// eslint-disable-next-line camelcase
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
}
|
|
450
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
437
|
+
aztec_utl_getNoteHashMembershipWitness(...inputs) {
|
|
438
|
+
return callTxeHandler({
|
|
439
|
+
oracle: 'aztec_utl_getNoteHashMembershipWitness',
|
|
440
|
+
inputs,
|
|
441
|
+
handler: ([blockHash, noteHash])=>this.handlerAsUtility().getNoteHashMembershipWitness(blockHash, noteHash)
|
|
442
|
+
});
|
|
451
443
|
}
|
|
452
444
|
// eslint-disable-next-line camelcase
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
}
|
|
460
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
445
|
+
aztec_utl_getBlockHashMembershipWitness(...inputs) {
|
|
446
|
+
return callTxeHandler({
|
|
447
|
+
oracle: 'aztec_utl_getBlockHashMembershipWitness',
|
|
448
|
+
inputs,
|
|
449
|
+
handler: ([anchorBlockHash, blockHash])=>this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash)
|
|
450
|
+
});
|
|
461
451
|
}
|
|
462
452
|
// eslint-disable-next-line camelcase
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
471
|
-
}
|
|
472
|
-
// eslint-disable-next-line camelcase
|
|
473
|
-
async aztec_utl_getPendingTaggedLogs(foreignPendingTaggedLogArrayBaseSlot, foreignScope) {
|
|
474
|
-
const pendingTaggedLogArrayBaseSlot = fromSingle(foreignPendingTaggedLogArrayBaseSlot);
|
|
475
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
476
|
-
await this.handlerAsUtility().getPendingTaggedLogs(pendingTaggedLogArrayBaseSlot, scope);
|
|
477
|
-
return toForeignCallResult([]);
|
|
478
|
-
}
|
|
479
|
-
// eslint-disable-next-line camelcase
|
|
480
|
-
async aztec_utl_getPendingTaggedLogs_v2(foreignScope) {
|
|
481
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
482
|
-
const slot = await this.handlerAsUtility().getPendingTaggedLogsV2(scope);
|
|
483
|
-
return toForeignCallResult([
|
|
484
|
-
toSingle(slot)
|
|
485
|
-
]);
|
|
486
|
-
}
|
|
487
|
-
// eslint-disable-next-line camelcase
|
|
488
|
-
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents(foreignContractAddress, foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen, foreignScope) {
|
|
489
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
490
|
-
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
491
|
-
const eventValidationRequestsArrayBaseSlot = fromSingle(foreignEventValidationRequestsArrayBaseSlot);
|
|
492
|
-
const maxNotePackedLen = fromSingle(foreignMaxNotePackedLen).toNumber();
|
|
493
|
-
const maxEventSerializedLen = fromSingle(foreignMaxEventSerializedLen).toNumber();
|
|
494
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
495
|
-
await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(contractAddress, noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, maxNotePackedLen, maxEventSerializedLen, scope);
|
|
496
|
-
return toForeignCallResult([]);
|
|
497
|
-
}
|
|
498
|
-
// eslint-disable-next-line camelcase
|
|
499
|
-
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents_v2(foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen, foreignScope) {
|
|
500
|
-
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
501
|
-
const eventValidationRequestsArrayBaseSlot = fromSingle(foreignEventValidationRequestsArrayBaseSlot);
|
|
502
|
-
const maxNotePackedLen = fromSingle(foreignMaxNotePackedLen).toNumber();
|
|
503
|
-
const maxEventSerializedLen = fromSingle(foreignMaxEventSerializedLen).toNumber();
|
|
504
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
505
|
-
await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEventsV2(noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, maxNotePackedLen, maxEventSerializedLen, scope);
|
|
506
|
-
return toForeignCallResult([]);
|
|
507
|
-
}
|
|
508
|
-
// eslint-disable-next-line camelcase
|
|
509
|
-
async aztec_utl_getLogsByTag(foreignContractAddress, foreignLogRetrievalRequestsArrayBaseSlot, foreignLogRetrievalResponsesArrayBaseSlot, foreignScope) {
|
|
510
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
511
|
-
const logRetrievalRequestsArrayBaseSlot = fromSingle(foreignLogRetrievalRequestsArrayBaseSlot);
|
|
512
|
-
const logRetrievalResponsesArrayBaseSlot = fromSingle(foreignLogRetrievalResponsesArrayBaseSlot);
|
|
513
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
514
|
-
await this.handlerAsUtility().getLogsByTag(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot, scope);
|
|
515
|
-
return toForeignCallResult([]);
|
|
516
|
-
}
|
|
517
|
-
// eslint-disable-next-line camelcase
|
|
518
|
-
async aztec_utl_getMessageContextsByTxHash(foreignContractAddress, foreignMessageContextRequestsArrayBaseSlot, foreignMessageContextResponsesArrayBaseSlot, foreignScope) {
|
|
519
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
520
|
-
const messageContextRequestsArrayBaseSlot = fromSingle(foreignMessageContextRequestsArrayBaseSlot);
|
|
521
|
-
const messageContextResponsesArrayBaseSlot = fromSingle(foreignMessageContextResponsesArrayBaseSlot);
|
|
522
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
523
|
-
await this.handlerAsUtility().getMessageContextsByTxHash(contractAddress, messageContextRequestsArrayBaseSlot, messageContextResponsesArrayBaseSlot, scope);
|
|
524
|
-
return toForeignCallResult([]);
|
|
525
|
-
}
|
|
526
|
-
// eslint-disable-next-line camelcase
|
|
527
|
-
async aztec_utl_getLogsByTag_v2(foreignRequestArrayBaseSlot) {
|
|
528
|
-
const requestArrayBaseSlot = fromSingle(foreignRequestArrayBaseSlot);
|
|
529
|
-
const responseSlot = await this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot);
|
|
530
|
-
return toForeignCallResult([
|
|
531
|
-
toSingle(responseSlot)
|
|
532
|
-
]);
|
|
533
|
-
}
|
|
534
|
-
// eslint-disable-next-line camelcase
|
|
535
|
-
async aztec_utl_getMessageContextsByTxHash_v2(foreignRequestArrayBaseSlot) {
|
|
536
|
-
const requestArrayBaseSlot = fromSingle(foreignRequestArrayBaseSlot);
|
|
537
|
-
const responseSlot = await this.handlerAsUtility().getMessageContextsByTxHashV2(requestArrayBaseSlot);
|
|
538
|
-
return toForeignCallResult([
|
|
539
|
-
toSingle(responseSlot)
|
|
540
|
-
]);
|
|
541
|
-
}
|
|
542
|
-
// eslint-disable-next-line camelcase
|
|
543
|
-
aztec_utl_setCapsule(foreignContractAddress, foreignSlot, foreignCapsule, foreignScope) {
|
|
544
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
545
|
-
const slot = fromSingle(foreignSlot);
|
|
546
|
-
const capsule = fromArray(foreignCapsule);
|
|
547
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
548
|
-
this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope);
|
|
549
|
-
return toForeignCallResult([]);
|
|
550
|
-
}
|
|
551
|
-
// eslint-disable-next-line camelcase
|
|
552
|
-
async aztec_utl_getCapsule(foreignContractAddress, foreignSlot, foreignTSize, foreignScope) {
|
|
553
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
554
|
-
const slot = fromSingle(foreignSlot);
|
|
555
|
-
const tSize = fromSingle(foreignTSize).toNumber();
|
|
556
|
-
const scope = AztecAddress.fromField(fromSingle(foreignScope));
|
|
557
|
-
const values = await this.handlerAsUtility().getCapsule(contractAddress, slot, scope);
|
|
558
|
-
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
559
|
-
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
560
|
-
if (values === null) {
|
|
561
|
-
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
562
|
-
return toForeignCallResult([
|
|
563
|
-
toSingle(new Fr(0)),
|
|
564
|
-
toArray(Array(tSize).fill(new Fr(0)))
|
|
565
|
-
]);
|
|
566
|
-
} else {
|
|
567
|
-
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
568
|
-
return toForeignCallResult([
|
|
569
|
-
toSingle(new Fr(1)),
|
|
570
|
-
toArray(values)
|
|
571
|
-
]);
|
|
572
|
-
}
|
|
453
|
+
aztec_utl_areBlockHashesInArchive(...inputs) {
|
|
454
|
+
return callTxeHandler({
|
|
455
|
+
oracle: 'aztec_utl_areBlockHashesInArchive',
|
|
456
|
+
inputs,
|
|
457
|
+
handler: ([anchorBlockHash, blockHashes])=>this.handlerAsUtility().areBlockHashesInArchive(anchorBlockHash, blockHashes)
|
|
458
|
+
});
|
|
573
459
|
}
|
|
574
460
|
// eslint-disable-next-line camelcase
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
461
|
+
aztec_utl_getLowNullifierMembershipWitness(...inputs) {
|
|
462
|
+
return callTxeHandler({
|
|
463
|
+
oracle: 'aztec_utl_getLowNullifierMembershipWitness',
|
|
464
|
+
inputs,
|
|
465
|
+
handler: ([blockHash, nullifier])=>this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier)
|
|
466
|
+
});
|
|
581
467
|
}
|
|
582
468
|
// eslint-disable-next-line camelcase
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
await this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope);
|
|
590
|
-
return toForeignCallResult([]);
|
|
469
|
+
aztec_utl_getPendingTaggedLogsV2(...inputs) {
|
|
470
|
+
return callTxeHandler({
|
|
471
|
+
oracle: 'aztec_utl_getPendingTaggedLogsV2',
|
|
472
|
+
inputs,
|
|
473
|
+
handler: ([scope, providedSecrets])=>this.handlerAsUtility().getPendingTaggedLogsV2(scope, providedSecrets)
|
|
474
|
+
});
|
|
591
475
|
}
|
|
592
476
|
// eslint-disable-next-line camelcase
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
]);
|
|
477
|
+
aztec_utl_validateAndStoreEnqueuedNotesAndEvents(...inputs) {
|
|
478
|
+
return callTxeHandler({
|
|
479
|
+
oracle: 'aztec_utl_validateAndStoreEnqueuedNotesAndEvents',
|
|
480
|
+
inputs,
|
|
481
|
+
handler: ([noteValidationRequests, eventValidationRequests, scope])=>this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(noteValidationRequests, eventValidationRequests, scope)
|
|
482
|
+
});
|
|
600
483
|
}
|
|
601
484
|
// eslint-disable-next-line camelcase
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
485
|
+
aztec_utl_getLogsByTagV2(...inputs) {
|
|
486
|
+
return callTxeHandler({
|
|
487
|
+
oracle: 'aztec_utl_getLogsByTagV2',
|
|
488
|
+
inputs,
|
|
489
|
+
handler: ([requestArrayBaseSlot])=>this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot)
|
|
490
|
+
});
|
|
608
491
|
}
|
|
609
492
|
// eslint-disable-next-line camelcase
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
]);
|
|
493
|
+
aztec_utl_getResolvedTxs(...inputs) {
|
|
494
|
+
return callTxeHandler({
|
|
495
|
+
oracle: 'aztec_utl_getResolvedTxs',
|
|
496
|
+
inputs,
|
|
497
|
+
handler: ([requestArrayBaseSlot])=>this.handlerAsUtility().getResolvedTxs(requestArrayBaseSlot)
|
|
498
|
+
});
|
|
617
499
|
}
|
|
618
500
|
// eslint-disable-next-line camelcase
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
501
|
+
aztec_utl_getTxEffects(...inputs) {
|
|
502
|
+
return callTxeHandler({
|
|
503
|
+
oracle: 'aztec_utl_getTxEffects',
|
|
504
|
+
inputs,
|
|
505
|
+
handler: ([txHashes])=>this.handlerAsUtility().getTxEffects(txHashes)
|
|
506
|
+
});
|
|
625
507
|
}
|
|
626
508
|
// eslint-disable-next-line camelcase
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
509
|
+
aztec_utl_setCapsule(...inputs) {
|
|
510
|
+
return callTxeHandler({
|
|
511
|
+
oracle: 'aztec_utl_setCapsule',
|
|
512
|
+
inputs,
|
|
513
|
+
handler: ([contractAddress, slot, capsule, scope])=>this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope)
|
|
514
|
+
});
|
|
633
515
|
}
|
|
634
516
|
// eslint-disable-next-line camelcase
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
517
|
+
aztec_utl_getCapsule(...inputs) {
|
|
518
|
+
return callTxeHandler({
|
|
519
|
+
oracle: 'aztec_utl_getCapsule',
|
|
520
|
+
inputs,
|
|
521
|
+
handler: ([contractAddress, slot, tSize, scope])=>this.handlerAsUtility().getCapsule(contractAddress, slot, tSize, scope)
|
|
522
|
+
});
|
|
640
523
|
}
|
|
641
524
|
// eslint-disable-next-line camelcase
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
525
|
+
aztec_utl_deleteCapsule(...inputs) {
|
|
526
|
+
return callTxeHandler({
|
|
527
|
+
oracle: 'aztec_utl_deleteCapsule',
|
|
528
|
+
inputs,
|
|
529
|
+
handler: ([contractAddress, slot, scope])=>this.handlerAsUtility().deleteCapsule(contractAddress, slot, scope)
|
|
530
|
+
});
|
|
646
531
|
}
|
|
647
|
-
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
648
|
-
// The compiler didn't throw an error, so it took me a while to learn of the existence of this file, and that I need
|
|
649
|
-
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
650
|
-
// existence of a txe_oracle method?
|
|
651
532
|
// eslint-disable-next-line camelcase
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
const plaintextBuffer = await this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey);
|
|
659
|
-
const [storage, length] = arrayToBoundedVec(bufferToU8Array(plaintextBuffer), foreignCiphertextBVecStorage.length);
|
|
660
|
-
return toForeignCallResult([
|
|
661
|
-
toSingle(new Fr(1)),
|
|
662
|
-
storage,
|
|
663
|
-
length
|
|
664
|
-
]);
|
|
665
|
-
} catch {
|
|
666
|
-
const zeroStorage = toArray(Array(foreignCiphertextBVecStorage.length).fill(new Fr(0)));
|
|
667
|
-
return toForeignCallResult([
|
|
668
|
-
toSingle(new Fr(0)),
|
|
669
|
-
zeroStorage,
|
|
670
|
-
toSingle(new Fr(0))
|
|
671
|
-
]);
|
|
672
|
-
}
|
|
533
|
+
aztec_utl_copyCapsule(...inputs) {
|
|
534
|
+
return callTxeHandler({
|
|
535
|
+
oracle: 'aztec_utl_copyCapsule',
|
|
536
|
+
inputs,
|
|
537
|
+
handler: ([contractAddress, srcSlot, dstSlot, numEntries, scope])=>this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope)
|
|
538
|
+
});
|
|
673
539
|
}
|
|
674
540
|
// eslint-disable-next-line camelcase
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
]);
|
|
682
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
683
|
-
const secret = await this.handlerAsUtility().getSharedSecret(address, ephPK, contractAddress);
|
|
684
|
-
return toForeignCallResult([
|
|
685
|
-
toSingle(secret)
|
|
686
|
-
]);
|
|
541
|
+
aztec_utl_pushEphemeral(...inputs) {
|
|
542
|
+
return callTxeHandler({
|
|
543
|
+
oracle: 'aztec_utl_pushEphemeral',
|
|
544
|
+
inputs,
|
|
545
|
+
handler: ([slot, elements])=>this.handlerAsUtility().pushEphemeral(slot, elements)
|
|
546
|
+
});
|
|
687
547
|
}
|
|
688
548
|
// eslint-disable-next-line camelcase
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
549
|
+
aztec_utl_popEphemeral(...inputs) {
|
|
550
|
+
return callTxeHandler({
|
|
551
|
+
oracle: 'aztec_utl_popEphemeral',
|
|
552
|
+
inputs,
|
|
553
|
+
handler: ([slot])=>this.handlerAsUtility().popEphemeral(slot)
|
|
554
|
+
});
|
|
695
555
|
}
|
|
696
556
|
// eslint-disable-next-line camelcase
|
|
697
|
-
|
|
698
|
-
|
|
557
|
+
aztec_utl_getEphemeral(...inputs) {
|
|
558
|
+
return callTxeHandler({
|
|
559
|
+
oracle: 'aztec_utl_getEphemeral',
|
|
560
|
+
inputs,
|
|
561
|
+
handler: ([slot, index])=>this.handlerAsUtility().getEphemeral(slot, index)
|
|
562
|
+
});
|
|
699
563
|
}
|
|
700
|
-
// AVM opcodes
|
|
701
564
|
// eslint-disable-next-line camelcase
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
565
|
+
aztec_utl_setEphemeral(...inputs) {
|
|
566
|
+
return callTxeHandler({
|
|
567
|
+
oracle: 'aztec_utl_setEphemeral',
|
|
568
|
+
inputs,
|
|
569
|
+
handler: ([slot, index, elements])=>this.handlerAsUtility().setEphemeral(slot, index, elements)
|
|
570
|
+
});
|
|
705
571
|
}
|
|
706
572
|
// eslint-disable-next-line camelcase
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
]);
|
|
573
|
+
aztec_utl_getEphemeralLen(...inputs) {
|
|
574
|
+
return callTxeHandler({
|
|
575
|
+
oracle: 'aztec_utl_getEphemeralLen',
|
|
576
|
+
inputs,
|
|
577
|
+
handler: ([slot])=>this.handlerAsUtility().getEphemeralLen(slot)
|
|
578
|
+
});
|
|
714
579
|
}
|
|
715
580
|
// eslint-disable-next-line camelcase
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
581
|
+
aztec_utl_removeEphemeral(...inputs) {
|
|
582
|
+
return callTxeHandler({
|
|
583
|
+
oracle: 'aztec_utl_removeEphemeral',
|
|
584
|
+
inputs,
|
|
585
|
+
handler: ([slot, index])=>this.handlerAsUtility().removeEphemeral(slot, index)
|
|
586
|
+
});
|
|
721
587
|
}
|
|
722
588
|
// eslint-disable-next-line camelcase
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
toSingle(new Fr(1))
|
|
730
|
-
]);
|
|
589
|
+
aztec_utl_clearEphemeral(...inputs) {
|
|
590
|
+
return callTxeHandler({
|
|
591
|
+
oracle: 'aztec_utl_clearEphemeral',
|
|
592
|
+
inputs,
|
|
593
|
+
handler: ([slot])=>this.handlerAsUtility().clearEphemeral(slot)
|
|
594
|
+
});
|
|
731
595
|
}
|
|
732
596
|
// eslint-disable-next-line camelcase
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
toSingle(new Fr(1))
|
|
740
|
-
]);
|
|
597
|
+
aztec_utl_pushTransient(...inputs) {
|
|
598
|
+
return callTxeHandler({
|
|
599
|
+
oracle: 'aztec_utl_pushTransient',
|
|
600
|
+
inputs,
|
|
601
|
+
handler: ([slot, elements])=>this.handlerAsUtility().pushTransient(slot, elements)
|
|
602
|
+
});
|
|
741
603
|
}
|
|
742
604
|
// eslint-disable-next-line camelcase
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
toSingle(new Fr(1))
|
|
750
|
-
]);
|
|
605
|
+
aztec_utl_popTransient(...inputs) {
|
|
606
|
+
return callTxeHandler({
|
|
607
|
+
oracle: 'aztec_utl_popTransient',
|
|
608
|
+
inputs,
|
|
609
|
+
handler: ([slot])=>this.handlerAsUtility().popTransient(slot)
|
|
610
|
+
});
|
|
751
611
|
}
|
|
752
612
|
// eslint-disable-next-line camelcase
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
613
|
+
aztec_utl_getTransient(...inputs) {
|
|
614
|
+
return callTxeHandler({
|
|
615
|
+
oracle: 'aztec_utl_getTransient',
|
|
616
|
+
inputs,
|
|
617
|
+
handler: ([slot, index])=>this.handlerAsUtility().getTransient(slot, index)
|
|
618
|
+
});
|
|
758
619
|
}
|
|
759
620
|
// eslint-disable-next-line camelcase
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
621
|
+
aztec_utl_setTransient(...inputs) {
|
|
622
|
+
return callTxeHandler({
|
|
623
|
+
oracle: 'aztec_utl_setTransient',
|
|
624
|
+
inputs,
|
|
625
|
+
handler: ([slot, index, elements])=>this.handlerAsUtility().setTransient(slot, index, elements)
|
|
626
|
+
});
|
|
764
627
|
}
|
|
765
628
|
// eslint-disable-next-line camelcase
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
629
|
+
aztec_utl_getTransientLen(...inputs) {
|
|
630
|
+
return callTxeHandler({
|
|
631
|
+
oracle: 'aztec_utl_getTransientLen',
|
|
632
|
+
inputs,
|
|
633
|
+
handler: ([slot])=>this.handlerAsUtility().getTransientLen(slot)
|
|
634
|
+
});
|
|
770
635
|
}
|
|
771
636
|
// eslint-disable-next-line camelcase
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
637
|
+
aztec_utl_removeTransient(...inputs) {
|
|
638
|
+
return callTxeHandler({
|
|
639
|
+
oracle: 'aztec_utl_removeTransient',
|
|
640
|
+
inputs,
|
|
641
|
+
handler: ([slot, index])=>this.handlerAsUtility().removeTransient(slot, index)
|
|
642
|
+
});
|
|
778
643
|
}
|
|
779
644
|
// eslint-disable-next-line camelcase
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
645
|
+
aztec_utl_clearTransient(...inputs) {
|
|
646
|
+
return callTxeHandler({
|
|
647
|
+
oracle: 'aztec_utl_clearTransient',
|
|
648
|
+
inputs,
|
|
649
|
+
handler: ([slot])=>this.handlerAsUtility().clearTransient(slot)
|
|
650
|
+
});
|
|
785
651
|
}
|
|
652
|
+
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
653
|
+
// The compiler didn't throw an error, so it took me a while to learn of the existence of this file, and that I need
|
|
654
|
+
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
655
|
+
// existence of a txe_oracle method?
|
|
786
656
|
// eslint-disable-next-line camelcase
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
657
|
+
aztec_utl_decryptAes128(...inputs) {
|
|
658
|
+
return callTxeHandler({
|
|
659
|
+
oracle: 'aztec_utl_decryptAes128',
|
|
660
|
+
inputs,
|
|
661
|
+
handler: ([ciphertext, iv, symKey])=>this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey)
|
|
662
|
+
});
|
|
663
|
+
}
|
|
664
|
+
// eslint-disable-next-line camelcase
|
|
665
|
+
aztec_utl_getSharedSecrets(...inputs) {
|
|
666
|
+
return callTxeHandler({
|
|
667
|
+
oracle: 'aztec_utl_getSharedSecrets',
|
|
668
|
+
inputs,
|
|
669
|
+
handler: ([address, ephPksSlot, contractAddress])=>this.handlerAsUtility().getSharedSecrets(address, ephPksSlot, contractAddress)
|
|
670
|
+
});
|
|
671
|
+
}
|
|
672
|
+
// eslint-disable-next-line camelcase
|
|
673
|
+
aztec_utl_setContractSyncCacheInvalid(...inputs) {
|
|
674
|
+
return callTxeHandler({
|
|
675
|
+
oracle: 'aztec_utl_setContractSyncCacheInvalid',
|
|
676
|
+
inputs,
|
|
677
|
+
handler: ([contractAddress, scopes])=>this.handlerAsUtility().setContractSyncCacheInvalid(contractAddress, scopes)
|
|
678
|
+
});
|
|
679
|
+
}
|
|
680
|
+
// eslint-disable-next-line camelcase
|
|
681
|
+
aztec_utl_emitOffchainEffect(...inputs) {
|
|
682
|
+
return callTxeHandler({
|
|
683
|
+
oracle: 'aztec_utl_emitOffchainEffect',
|
|
684
|
+
inputs,
|
|
685
|
+
handler: ([data])=>{
|
|
686
|
+
// Record the raw payload against the currently-executing top-level call. The Noir side
|
|
687
|
+
// (via `env.offchain_messages()`) is responsible for decoding the protocol-reserved prefix
|
|
688
|
+
// (`OFFCHAIN_MESSAGE_IDENTIFIER`, recipient) and turning each payload into an `OffchainMessage` struct suitable
|
|
689
|
+
// for `offchain_receive`.
|
|
690
|
+
this.stateHandler.recordOffchainEffect(data);
|
|
691
|
+
}
|
|
692
|
+
});
|
|
693
|
+
}
|
|
694
|
+
// eslint-disable-next-line camelcase
|
|
695
|
+
aztec_utl_recordFact(...inputs) {
|
|
696
|
+
return callTxeHandler({
|
|
697
|
+
oracle: 'aztec_utl_recordFact',
|
|
698
|
+
inputs,
|
|
699
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId, factTypeId, payload, originBlock])=>this.handlerAsUtility().recordFact(contractAddress, scope, factCollectionTypeId, factCollectionId, factTypeId, payload, originBlock)
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
// eslint-disable-next-line camelcase
|
|
703
|
+
aztec_utl_deleteFactCollection(...inputs) {
|
|
704
|
+
return callTxeHandler({
|
|
705
|
+
oracle: 'aztec_utl_deleteFactCollection',
|
|
706
|
+
inputs,
|
|
707
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId])=>this.handlerAsUtility().deleteFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId)
|
|
708
|
+
});
|
|
709
|
+
}
|
|
710
|
+
// eslint-disable-next-line camelcase
|
|
711
|
+
aztec_utl_getFactCollection(...inputs) {
|
|
712
|
+
return callTxeHandler({
|
|
713
|
+
oracle: 'aztec_utl_getFactCollection',
|
|
714
|
+
inputs,
|
|
715
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId])=>this.handlerAsUtility().getFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId)
|
|
716
|
+
});
|
|
717
|
+
}
|
|
718
|
+
// eslint-disable-next-line camelcase
|
|
719
|
+
aztec_utl_getFactCollectionsByType(...inputs) {
|
|
720
|
+
return callTxeHandler({
|
|
721
|
+
oracle: 'aztec_utl_getFactCollectionsByType',
|
|
722
|
+
inputs,
|
|
723
|
+
handler: ([contractAddress, scope, factCollectionTypeId])=>this.handlerAsUtility().getFactCollectionsByType(contractAddress, scope, factCollectionTypeId)
|
|
724
|
+
});
|
|
792
725
|
}
|
|
726
|
+
// AVM opcodes
|
|
793
727
|
// eslint-disable-next-line camelcase
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
728
|
+
aztec_avm_emitPublicLog() {
|
|
729
|
+
return callTxeHandler({
|
|
730
|
+
oracle: 'aztec_avm_emitPublicLog',
|
|
731
|
+
inputs: [],
|
|
732
|
+
// TODO(#8811): Implement
|
|
733
|
+
handler: ()=>{}
|
|
734
|
+
});
|
|
799
735
|
}
|
|
800
736
|
// eslint-disable-next-line camelcase
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
737
|
+
aztec_avm_storageRead(...inputs) {
|
|
738
|
+
return callTxeHandler({
|
|
739
|
+
oracle: 'aztec_avm_storageRead',
|
|
740
|
+
inputs,
|
|
741
|
+
handler: ([slot, contractAddress])=>this.handlerAsAvm().storageRead(slot, contractAddress)
|
|
742
|
+
});
|
|
806
743
|
}
|
|
807
744
|
// eslint-disable-next-line camelcase
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
745
|
+
aztec_avm_storageWrite(...inputs) {
|
|
746
|
+
return callTxeHandler({
|
|
747
|
+
oracle: 'aztec_avm_storageWrite',
|
|
748
|
+
inputs,
|
|
749
|
+
handler: ([slot, value])=>this.handlerAsAvm().storageWrite(slot, value)
|
|
750
|
+
});
|
|
813
751
|
}
|
|
814
752
|
// eslint-disable-next-line camelcase
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
753
|
+
aztec_avm_getContractInstanceDeployer(...inputs) {
|
|
754
|
+
return callTxeHandler({
|
|
755
|
+
oracle: 'aztec_avm_getContractInstanceDeployer',
|
|
756
|
+
inputs,
|
|
757
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceDeployer(address)
|
|
758
|
+
});
|
|
820
759
|
}
|
|
821
760
|
// eslint-disable-next-line camelcase
|
|
822
|
-
|
|
823
|
-
|
|
761
|
+
aztec_avm_getContractInstanceClassId(...inputs) {
|
|
762
|
+
return callTxeHandler({
|
|
763
|
+
oracle: 'aztec_avm_getContractInstanceClassId',
|
|
764
|
+
inputs,
|
|
765
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceClassId(address)
|
|
766
|
+
});
|
|
824
767
|
}
|
|
825
768
|
// eslint-disable-next-line camelcase
|
|
826
|
-
|
|
827
|
-
|
|
769
|
+
aztec_avm_getContractInstanceInitializationHash(...inputs) {
|
|
770
|
+
return callTxeHandler({
|
|
771
|
+
oracle: 'aztec_avm_getContractInstanceInitializationHash',
|
|
772
|
+
inputs,
|
|
773
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceInitializationHash(address)
|
|
774
|
+
});
|
|
828
775
|
}
|
|
829
776
|
// eslint-disable-next-line camelcase
|
|
830
|
-
|
|
831
|
-
|
|
777
|
+
aztec_avm_getContractInstanceImmutablesHash(...inputs) {
|
|
778
|
+
return callTxeHandler({
|
|
779
|
+
oracle: 'aztec_avm_getContractInstanceImmutablesHash',
|
|
780
|
+
inputs,
|
|
781
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceImmutablesHash(address)
|
|
782
|
+
});
|
|
832
783
|
}
|
|
833
784
|
// eslint-disable-next-line camelcase
|
|
834
|
-
|
|
835
|
-
|
|
785
|
+
aztec_avm_sender() {
|
|
786
|
+
return callTxeHandler({
|
|
787
|
+
oracle: 'aztec_avm_sender',
|
|
788
|
+
inputs: [],
|
|
789
|
+
handler: ()=>this.handlerAsAvm().sender()
|
|
790
|
+
});
|
|
836
791
|
}
|
|
837
792
|
// eslint-disable-next-line camelcase
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
845
|
-
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
846
|
-
const args = fromArray(foreignArgs);
|
|
847
|
-
const argsHash = fromSingle(foreignArgsHash);
|
|
848
|
-
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
849
|
-
const returnValues = await this.handlerAsTxe().privateCallNewFlow(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, this.stateHandler.getCurrentJob());
|
|
850
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
851
|
-
await this.stateHandler.cycleJob();
|
|
852
|
-
return toForeignCallResult([
|
|
853
|
-
toArray(returnValues)
|
|
854
|
-
]);
|
|
855
|
-
}
|
|
856
|
-
// eslint-disable-next-line camelcase
|
|
857
|
-
async aztec_txe_executeUtilityFunction(foreignTargetContractAddress, foreignFunctionSelector, foreignArgs) {
|
|
858
|
-
const targetContractAddress = addressFromSingle(foreignTargetContractAddress);
|
|
859
|
-
const functionSelector = FunctionSelector.fromField(fromSingle(foreignFunctionSelector));
|
|
860
|
-
const args = fromArray(foreignArgs);
|
|
861
|
-
const returnValues = await this.handlerAsTxe().executeUtilityFunction(targetContractAddress, functionSelector, args, this.stateHandler.getCurrentJob());
|
|
862
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
863
|
-
await this.stateHandler.cycleJob();
|
|
864
|
-
return toForeignCallResult([
|
|
865
|
-
toArray(returnValues)
|
|
866
|
-
]);
|
|
867
|
-
}
|
|
868
|
-
// eslint-disable-next-line camelcase
|
|
869
|
-
async aztec_txe_publicCallNewFlow(foreignFrom, foreignAddress, foreignCalldata, foreignIsStaticCall) {
|
|
870
|
-
const from = addressFromSingle(foreignFrom);
|
|
871
|
-
const address = addressFromSingle(foreignAddress);
|
|
872
|
-
const calldata = fromArray(foreignCalldata);
|
|
873
|
-
const isStaticCall = fromSingle(foreignIsStaticCall).toBool();
|
|
874
|
-
const returnValues = await this.handlerAsTxe().publicCallNewFlow(from, address, calldata, isStaticCall);
|
|
875
|
-
// TODO(F-335): Avoid doing the following call here.
|
|
876
|
-
await this.stateHandler.cycleJob();
|
|
877
|
-
return toForeignCallResult([
|
|
878
|
-
toArray(returnValues)
|
|
879
|
-
]);
|
|
880
|
-
}
|
|
881
|
-
// eslint-disable-next-line camelcase
|
|
882
|
-
async aztec_prv_getSenderForTags() {
|
|
883
|
-
const sender = await this.handlerAsPrivate().getSenderForTags();
|
|
884
|
-
// Return a Noir Option struct with `some` and `value` fields
|
|
885
|
-
if (sender === undefined) {
|
|
886
|
-
// No sender found, return Option with some=0 and value=0
|
|
887
|
-
return toForeignCallResult([
|
|
888
|
-
toSingle(0),
|
|
889
|
-
toSingle(0)
|
|
890
|
-
]);
|
|
891
|
-
} else {
|
|
892
|
-
// Sender found, return Option with some=1 and value=sender address
|
|
893
|
-
return toForeignCallResult([
|
|
894
|
-
toSingle(1),
|
|
895
|
-
toSingle(sender)
|
|
896
|
-
]);
|
|
897
|
-
}
|
|
793
|
+
aztec_avm_emitNullifier(...inputs) {
|
|
794
|
+
return callTxeHandler({
|
|
795
|
+
oracle: 'aztec_avm_emitNullifier',
|
|
796
|
+
inputs,
|
|
797
|
+
handler: ([nullifier])=>this.handlerAsAvm().emitNullifier(nullifier)
|
|
798
|
+
});
|
|
898
799
|
}
|
|
899
800
|
// eslint-disable-next-line camelcase
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
801
|
+
aztec_avm_emitNoteHash(...inputs) {
|
|
802
|
+
return callTxeHandler({
|
|
803
|
+
oracle: 'aztec_avm_emitNoteHash',
|
|
804
|
+
inputs,
|
|
805
|
+
handler: ([noteHash])=>this.handlerAsAvm().emitNoteHash(noteHash)
|
|
806
|
+
});
|
|
904
807
|
}
|
|
905
808
|
// eslint-disable-next-line camelcase
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
809
|
+
aztec_avm_nullifierExists(...inputs) {
|
|
810
|
+
return callTxeHandler({
|
|
811
|
+
oracle: 'aztec_avm_nullifierExists',
|
|
812
|
+
inputs,
|
|
813
|
+
handler: ([siloedNullifier])=>this.handlerAsAvm().nullifierExists(siloedNullifier)
|
|
814
|
+
});
|
|
815
|
+
}
|
|
816
|
+
// eslint-disable-next-line camelcase
|
|
817
|
+
aztec_avm_address() {
|
|
818
|
+
return callTxeHandler({
|
|
819
|
+
oracle: 'aztec_avm_address',
|
|
820
|
+
inputs: [],
|
|
821
|
+
handler: ()=>this.handlerAsAvm().address()
|
|
822
|
+
});
|
|
823
|
+
}
|
|
824
|
+
// eslint-disable-next-line camelcase
|
|
825
|
+
aztec_avm_blockNumber() {
|
|
826
|
+
return callTxeHandler({
|
|
827
|
+
oracle: 'aztec_avm_blockNumber',
|
|
828
|
+
inputs: [],
|
|
829
|
+
handler: ()=>this.handlerAsAvm().blockNumber()
|
|
830
|
+
});
|
|
831
|
+
}
|
|
832
|
+
// eslint-disable-next-line camelcase
|
|
833
|
+
aztec_avm_timestamp() {
|
|
834
|
+
return callTxeHandler({
|
|
835
|
+
oracle: 'aztec_avm_timestamp',
|
|
836
|
+
inputs: [],
|
|
837
|
+
handler: ()=>this.handlerAsAvm().timestamp()
|
|
838
|
+
});
|
|
839
|
+
}
|
|
840
|
+
// eslint-disable-next-line camelcase
|
|
841
|
+
aztec_avm_isStaticCall() {
|
|
842
|
+
return callTxeHandler({
|
|
843
|
+
oracle: 'aztec_avm_isStaticCall',
|
|
844
|
+
inputs: [],
|
|
845
|
+
handler: ()=>this.handlerAsAvm().isStaticCall()
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
// eslint-disable-next-line camelcase
|
|
849
|
+
aztec_avm_chainId() {
|
|
850
|
+
return callTxeHandler({
|
|
851
|
+
oracle: 'aztec_avm_chainId',
|
|
852
|
+
inputs: [],
|
|
853
|
+
handler: ()=>this.handlerAsAvm().chainId()
|
|
854
|
+
});
|
|
855
|
+
}
|
|
856
|
+
// eslint-disable-next-line camelcase
|
|
857
|
+
aztec_avm_version() {
|
|
858
|
+
return callTxeHandler({
|
|
859
|
+
oracle: 'aztec_avm_version',
|
|
860
|
+
inputs: [],
|
|
861
|
+
handler: ()=>this.handlerAsAvm().version()
|
|
862
|
+
});
|
|
863
|
+
}
|
|
864
|
+
// eslint-disable-next-line camelcase
|
|
865
|
+
aztec_avm_returndataSize() {
|
|
866
|
+
return callTxeHandler({
|
|
867
|
+
oracle: 'aztec_avm_returndataSize',
|
|
868
|
+
inputs: [],
|
|
869
|
+
handler: ()=>this.handlerAsAvm().returndataSize()
|
|
870
|
+
});
|
|
871
|
+
}
|
|
872
|
+
// eslint-disable-next-line camelcase
|
|
873
|
+
aztec_avm_returndataCopy(...inputs) {
|
|
874
|
+
return callTxeHandler({
|
|
875
|
+
oracle: 'aztec_avm_returndataCopy',
|
|
876
|
+
inputs,
|
|
877
|
+
handler: ([rdOffset, copySize])=>this.handlerAsAvm().returndataCopy(rdOffset, copySize)
|
|
878
|
+
});
|
|
879
|
+
}
|
|
880
|
+
// eslint-disable-next-line camelcase
|
|
881
|
+
aztec_avm_call(...inputs) {
|
|
882
|
+
return callTxeHandler({
|
|
883
|
+
oracle: 'aztec_avm_call',
|
|
884
|
+
inputs,
|
|
885
|
+
handler: ([l2Gas, daGas, address, argsLength, args])=>this.handlerAsAvm().call(l2Gas, daGas, address, argsLength, args)
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
// eslint-disable-next-line camelcase
|
|
889
|
+
aztec_avm_staticCall(...inputs) {
|
|
890
|
+
return callTxeHandler({
|
|
891
|
+
oracle: 'aztec_avm_staticCall',
|
|
892
|
+
inputs,
|
|
893
|
+
handler: ([l2Gas, daGas, address, argsLength, args])=>this.handlerAsAvm().staticCall(l2Gas, daGas, address, argsLength, args)
|
|
894
|
+
});
|
|
895
|
+
}
|
|
896
|
+
// eslint-disable-next-line camelcase
|
|
897
|
+
aztec_avm_successCopy() {
|
|
898
|
+
return callTxeHandler({
|
|
899
|
+
oracle: 'aztec_avm_successCopy',
|
|
900
|
+
inputs: [],
|
|
901
|
+
handler: ()=>this.handlerAsAvm().successCopy()
|
|
902
|
+
});
|
|
903
|
+
}
|
|
904
|
+
// eslint-disable-next-line camelcase
|
|
905
|
+
aztec_txe_privateCallNewFlow(...inputs) {
|
|
906
|
+
return callTxeHandler({
|
|
907
|
+
oracle: 'aztec_txe_privateCallNewFlow',
|
|
908
|
+
inputs,
|
|
909
|
+
handler: ([from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, additionalScopes, authorizedUtilityCallTargets, gasSettings])=>this.stateHandler.executePrivateCall(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, additionalScopes, authorizedUtilityCallTargets, gasSettings)
|
|
910
|
+
});
|
|
911
|
+
}
|
|
912
|
+
// eslint-disable-next-line camelcase
|
|
913
|
+
aztec_txe_executeUtilityFunction(...inputs) {
|
|
914
|
+
return callTxeHandler({
|
|
915
|
+
oracle: 'aztec_txe_executeUtilityFunction',
|
|
916
|
+
inputs,
|
|
917
|
+
handler: ([from, targetContractAddress, functionSelector, args, authorizedUtilityCallTargets])=>this.stateHandler.executeUtilityFunction(from, targetContractAddress, functionSelector, args, authorizedUtilityCallTargets)
|
|
918
|
+
});
|
|
919
|
+
}
|
|
920
|
+
// eslint-disable-next-line camelcase
|
|
921
|
+
aztec_txe_publicCallNewFlow(...inputs) {
|
|
922
|
+
return callTxeHandler({
|
|
923
|
+
oracle: 'aztec_txe_publicCallNewFlow',
|
|
924
|
+
inputs,
|
|
925
|
+
handler: ([from, address, calldata, isStaticCall, gasSettings])=>this.stateHandler.executePublicCall(from, address, calldata, isStaticCall, gasSettings)
|
|
926
|
+
});
|
|
927
|
+
}
|
|
928
|
+
// eslint-disable-next-line camelcase
|
|
929
|
+
aztec_prv_getSenderForTags() {
|
|
930
|
+
return callTxeHandler({
|
|
931
|
+
oracle: 'aztec_prv_getSenderForTags',
|
|
932
|
+
inputs: [],
|
|
933
|
+
handler: ()=>this.handlerAsPrivate().getSenderForTags()
|
|
934
|
+
});
|
|
935
|
+
}
|
|
936
|
+
// eslint-disable-next-line camelcase
|
|
937
|
+
aztec_prv_resolveTaggingStrategy(...inputs) {
|
|
938
|
+
return callTxeHandler({
|
|
939
|
+
oracle: 'aztec_prv_resolveTaggingStrategy',
|
|
940
|
+
inputs,
|
|
941
|
+
handler: ([sender, recipient, deliveryMode])=>this.handlerAsPrivate().resolveTaggingStrategy(sender, recipient, deliveryMode)
|
|
942
|
+
});
|
|
943
|
+
}
|
|
944
|
+
// eslint-disable-next-line camelcase
|
|
945
|
+
aztec_prv_resolveCustomRequest(...inputs) {
|
|
946
|
+
return callTxeHandler({
|
|
947
|
+
oracle: 'aztec_prv_resolveCustomRequest',
|
|
948
|
+
inputs,
|
|
949
|
+
handler: ([kind, payload])=>this.handlerAsPrivate().resolveCustomRequest(kind, payload)
|
|
950
|
+
});
|
|
951
|
+
}
|
|
952
|
+
// eslint-disable-next-line camelcase
|
|
953
|
+
aztec_prv_getAppTaggingSecret(...inputs) {
|
|
954
|
+
return callTxeHandler({
|
|
955
|
+
oracle: 'aztec_prv_getAppTaggingSecret',
|
|
956
|
+
inputs,
|
|
957
|
+
handler: ([sender, recipient])=>this.handlerAsPrivate().getAppTaggingSecret(sender, recipient)
|
|
958
|
+
});
|
|
959
|
+
}
|
|
960
|
+
// eslint-disable-next-line camelcase
|
|
961
|
+
aztec_prv_getNextTaggingIndex(...inputs) {
|
|
962
|
+
return callTxeHandler({
|
|
963
|
+
oracle: 'aztec_prv_getNextTaggingIndex',
|
|
964
|
+
inputs,
|
|
965
|
+
handler: ([secret, deliveryMode])=>this.handlerAsPrivate().getNextTaggingIndex(secret, deliveryMode)
|
|
966
|
+
});
|
|
913
967
|
}
|
|
914
968
|
}
|