@aztec/txe 0.0.1-commit.343b43af6 → 0.0.1-commit.350e0a4d
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-2RDAZOGB.js +3 -0
- package/dest/AuthRegistry-2RDAZOGB.js.map +7 -0
- package/dest/ContractClassRegistry-L5F3G33N.js +3 -0
- package/dest/ContractClassRegistry-L5F3G33N.js.map +7 -0
- package/dest/ContractInstanceRegistry-IJOBAWAC.js +3 -0
- package/dest/ContractInstanceRegistry-IJOBAWAC.js.map +7 -0
- package/dest/FeeJuice-J3XDQPFS.js +3 -0
- package/dest/FeeJuice-J3XDQPFS.js.map +7 -0
- package/dest/HandshakeRegistry-QGWZJYVS.js +3 -0
- package/dest/HandshakeRegistry-QGWZJYVS.js.map +7 -0
- package/dest/MultiCallEntrypoint-WZHPRFJ6.js +3 -0
- package/dest/MultiCallEntrypoint-WZHPRFJ6.js.map +7 -0
- package/dest/SchnorrAccount-II4XD6MI.js +3 -0
- package/dest/SchnorrAccount-II4XD6MI.js.map +7 -0
- package/dest/SchnorrInitializerlessAccount-FXIOXUQQ.js +3 -0
- package/dest/SchnorrInitializerlessAccount-FXIOXUQQ.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-BJVAAXNA.js +3 -0
- package/dest/chunk-BJVAAXNA.js.map +7 -0
- package/dest/chunk-OMH3BDML.js +304 -0
- package/dest/chunk-OMH3BDML.js.map +7 -0
- package/dest/chunk-R3ZWQEFL.js +260 -0
- package/dest/chunk-R3ZWQEFL.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 +38140 -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 -16
- package/dest/oracle/txe_oracle_top_level_context.d.ts.map +1 -1
- package/dest/oracle/txe_oracle_top_level_context.js +233 -86
- 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 -227
- package/dest/rpc_translator.d.ts.map +1 -1
- package/dest/rpc_translator.js +769 -607
- 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 -5
- package/dest/state_machine/index.d.ts.map +1 -1
- package/dest/state_machine/index.js +50 -10
- 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 +9 -6
- package/dest/state_machine/synchronizer.d.ts.map +1 -1
- package/dest/state_machine/synchronizer.js +10 -6
- package/dest/txe_session.d.ts +89 -19
- package/dest/txe_session.d.ts.map +1 -1
- package/dest/txe_session.js +308 -60
- 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 +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 +307 -98
- 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 +858 -866
- 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 +63 -28
- package/src/state_machine/mock_epoch_cache.ts +38 -3
- package/src/state_machine/synchronizer.ts +13 -7
- package/src/txe_session.ts +539 -74
- 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 -720
- 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,723 +51,894 @@ 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])=>this.handlerAsTxe().createAccount(secret)
|
|
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_setTaggingSecretStrategy(...inputs) {
|
|
181
|
+
return callTxeHandler({
|
|
182
|
+
oracle: 'aztec_txe_setTaggingSecretStrategy',
|
|
183
|
+
inputs,
|
|
184
|
+
handler: ([strategy])=>this.handlerAsTxe().setTaggingSecretStrategy(strategy)
|
|
185
|
+
});
|
|
161
186
|
}
|
|
162
187
|
// PXE oracles
|
|
163
188
|
// eslint-disable-next-line camelcase
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
189
|
+
aztec_misc_assertCompatibleOracleVersion(...inputs) {
|
|
190
|
+
return callTxeHandler({
|
|
191
|
+
oracle: 'aztec_misc_assertCompatibleOracleVersion',
|
|
192
|
+
inputs,
|
|
193
|
+
handler: ([major, minor])=>this.handlerAsMisc().assertCompatibleOracleVersion(major, minor)
|
|
194
|
+
});
|
|
168
195
|
}
|
|
169
196
|
// eslint-disable-next-line camelcase
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
197
|
+
aztec_misc_getRandomField() {
|
|
198
|
+
return callTxeHandler({
|
|
199
|
+
oracle: 'aztec_misc_getRandomField',
|
|
200
|
+
inputs: [],
|
|
201
|
+
handler: ()=>this.handlerAsMisc().getRandomField()
|
|
202
|
+
});
|
|
175
203
|
}
|
|
176
204
|
// eslint-disable-next-line camelcase
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
205
|
+
aztec_txe_getLastBlockTimestamp() {
|
|
206
|
+
return callTxeHandler({
|
|
207
|
+
oracle: 'aztec_txe_getLastBlockTimestamp',
|
|
208
|
+
inputs: [],
|
|
209
|
+
handler: ()=>this.handlerAsTxe().getLastBlockTimestamp()
|
|
210
|
+
});
|
|
182
211
|
}
|
|
183
212
|
// eslint-disable-next-line camelcase
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
]);
|
|
213
|
+
aztec_txe_getLastTxEffects() {
|
|
214
|
+
return callTxeHandler({
|
|
215
|
+
oracle: 'aztec_txe_getLastTxEffects',
|
|
216
|
+
inputs: [],
|
|
217
|
+
handler: ()=>this.handlerAsTxe().getLastTxEffects()
|
|
218
|
+
});
|
|
191
219
|
}
|
|
192
220
|
// eslint-disable-next-line camelcase
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
await this.handlerAsTxe().syncContractNonOracleMethod(contractAddress, scope, this.stateHandler.getCurrentJob());
|
|
200
|
-
// We cycle job to commit the stores after the contract sync.
|
|
201
|
-
await this.stateHandler.cycleJob();
|
|
202
|
-
}
|
|
203
|
-
const events = await this.handlerAsTxe().getPrivateEvents(selector, contractAddress, scope);
|
|
204
|
-
if (events.length > MAX_PRIVATE_EVENTS_PER_TXE_QUERY) {
|
|
205
|
-
throw new Error(`Array of length ${events.length} larger than maxLen ${MAX_PRIVATE_EVENTS_PER_TXE_QUERY}`);
|
|
206
|
-
}
|
|
207
|
-
if (events.some((e)=>e.length > MAX_EVENT_LEN)) {
|
|
208
|
-
throw new Error(`Some private event has length larger than maxLen ${MAX_EVENT_LEN}`);
|
|
209
|
-
}
|
|
210
|
-
// This is a workaround as Noir does not currently let us return nested structs with arrays. We instead return a raw
|
|
211
|
-
// multidimensional array in get_private_events_oracle and create the BoundedVecs here.
|
|
212
|
-
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();
|
|
213
|
-
const eventLengths = events.map((e)=>new Fr(e.length)).concat(Array(MAX_PRIVATE_EVENTS_PER_TXE_QUERY - events.length).fill(new Fr(0)));
|
|
214
|
-
const queryLength = new Fr(events.length);
|
|
215
|
-
return toForeignCallResult([
|
|
216
|
-
toArray(rawArrayStorage),
|
|
217
|
-
toArray(eventLengths),
|
|
218
|
-
toSingle(queryLength)
|
|
219
|
-
]);
|
|
220
|
-
}
|
|
221
|
-
// eslint-disable-next-line camelcase
|
|
222
|
-
aztec_prv_storeInExecutionCache(foreignValues, foreignHash) {
|
|
223
|
-
const values = fromArray(foreignValues);
|
|
224
|
-
const hash = fromSingle(foreignHash);
|
|
225
|
-
this.handlerAsPrivate().storeInExecutionCache(values, hash);
|
|
226
|
-
return toForeignCallResult([]);
|
|
227
|
-
}
|
|
228
|
-
// eslint-disable-next-line camelcase
|
|
229
|
-
async aztec_prv_loadFromExecutionCache(foreignHash) {
|
|
230
|
-
const hash = fromSingle(foreignHash);
|
|
231
|
-
const returns = await this.handlerAsPrivate().loadFromExecutionCache(hash);
|
|
232
|
-
return toForeignCallResult([
|
|
233
|
-
toArray(returns)
|
|
234
|
-
]);
|
|
235
|
-
}
|
|
236
|
-
// When the argument is a slice, noir automatically adds a length field to oracle call.
|
|
237
|
-
// When the argument is an array, we add the field length manually to the signature.
|
|
238
|
-
// eslint-disable-next-line camelcase
|
|
239
|
-
async aztec_utl_log(foreignLevel, foreignMessage, _foreignLength, foreignFields) {
|
|
240
|
-
const level = fromSingle(foreignLevel).toNumber();
|
|
241
|
-
const message = fromArray(foreignMessage).map((field)=>String.fromCharCode(field.toNumber())).join('');
|
|
242
|
-
const fields = fromArray(foreignFields);
|
|
243
|
-
await this.handlerAsMisc().log(level, message, fields);
|
|
244
|
-
return toForeignCallResult([]);
|
|
245
|
-
}
|
|
246
|
-
// eslint-disable-next-line camelcase
|
|
247
|
-
async aztec_utl_storageRead(foreignBlockHash, foreignContractAddress, foreignStartStorageSlot, foreignNumberOfElements) {
|
|
248
|
-
const blockHash = new BlockHash(fromSingle(foreignBlockHash));
|
|
249
|
-
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
250
|
-
const startStorageSlot = fromSingle(foreignStartStorageSlot);
|
|
251
|
-
const numberOfElements = fromSingle(foreignNumberOfElements).toNumber();
|
|
252
|
-
const values = await this.handlerAsUtility().storageRead(blockHash, contractAddress, startStorageSlot, numberOfElements);
|
|
253
|
-
return toForeignCallResult([
|
|
254
|
-
toArray(values)
|
|
255
|
-
]);
|
|
256
|
-
}
|
|
257
|
-
// eslint-disable-next-line camelcase
|
|
258
|
-
async aztec_utl_getPublicDataWitness(foreignBlockHash, foreignLeafSlot) {
|
|
259
|
-
const blockHash = new BlockHash(fromSingle(foreignBlockHash));
|
|
260
|
-
const leafSlot = fromSingle(foreignLeafSlot);
|
|
261
|
-
const witness = await this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot);
|
|
262
|
-
if (!witness) {
|
|
263
|
-
throw new Error(`Public data witness not found for slot ${leafSlot} at block ${blockHash.toString()}.`);
|
|
264
|
-
}
|
|
265
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
266
|
-
}
|
|
267
|
-
// eslint-disable-next-line camelcase
|
|
268
|
-
async aztec_utl_getNotes(foreignOwnerIsSome, foreignOwnerValue, foreignStorageSlot, foreignNumSelects, foreignSelectByIndexes, foreignSelectByOffsets, foreignSelectByLengths, foreignSelectValues, foreignSelectComparators, foreignSortByIndexes, foreignSortByOffsets, foreignSortByLengths, foreignSortOrder, foreignLimit, foreignOffset, foreignStatus, foreignMaxNotes, foreignPackedHintedNoteLength) {
|
|
269
|
-
// Parse Option<AztecAddress>: ownerIsSome is 0 for None, 1 for Some
|
|
270
|
-
const owner = fromSingle(foreignOwnerIsSome).toBool() ? AztecAddress.fromField(fromSingle(foreignOwnerValue)) : undefined;
|
|
271
|
-
const storageSlot = fromSingle(foreignStorageSlot);
|
|
272
|
-
const numSelects = fromSingle(foreignNumSelects).toNumber();
|
|
273
|
-
const selectByIndexes = fromArray(foreignSelectByIndexes).map((fr)=>fr.toNumber());
|
|
274
|
-
const selectByOffsets = fromArray(foreignSelectByOffsets).map((fr)=>fr.toNumber());
|
|
275
|
-
const selectByLengths = fromArray(foreignSelectByLengths).map((fr)=>fr.toNumber());
|
|
276
|
-
const selectValues = fromArray(foreignSelectValues);
|
|
277
|
-
const selectComparators = fromArray(foreignSelectComparators).map((fr)=>fr.toNumber());
|
|
278
|
-
const sortByIndexes = fromArray(foreignSortByIndexes).map((fr)=>fr.toNumber());
|
|
279
|
-
const sortByOffsets = fromArray(foreignSortByOffsets).map((fr)=>fr.toNumber());
|
|
280
|
-
const sortByLengths = fromArray(foreignSortByLengths).map((fr)=>fr.toNumber());
|
|
281
|
-
const sortOrder = fromArray(foreignSortOrder).map((fr)=>fr.toNumber());
|
|
282
|
-
const limit = fromSingle(foreignLimit).toNumber();
|
|
283
|
-
const offset = fromSingle(foreignOffset).toNumber();
|
|
284
|
-
const status = fromSingle(foreignStatus).toNumber();
|
|
285
|
-
const maxNotes = fromSingle(foreignMaxNotes).toNumber();
|
|
286
|
-
const packedHintedNoteLength = fromSingle(foreignPackedHintedNoteLength).toNumber();
|
|
287
|
-
const noteDatas = await this.handlerAsUtility().getNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status);
|
|
288
|
-
const returnDataAsArrayOfArrays = noteDatas.map((noteData)=>packAsHintedNote({
|
|
289
|
-
contractAddress: noteData.contractAddress,
|
|
290
|
-
owner: noteData.owner,
|
|
291
|
-
randomness: noteData.randomness,
|
|
292
|
-
storageSlot: noteData.storageSlot,
|
|
293
|
-
noteNonce: noteData.noteNonce,
|
|
294
|
-
isPending: noteData.isPending,
|
|
295
|
-
note: noteData.note
|
|
296
|
-
}));
|
|
297
|
-
// Now we convert each sub-array to an array of ForeignCallSingles
|
|
298
|
-
const returnDataAsArrayOfForeignCallSingleArrays = returnDataAsArrayOfArrays.map((subArray)=>subArray.map(toSingle));
|
|
299
|
-
// At last we convert the array of arrays to a bounded vec of arrays
|
|
300
|
-
return toForeignCallResult(arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfForeignCallSingleArrays, maxNotes, packedHintedNoteLength));
|
|
301
|
-
}
|
|
302
|
-
// eslint-disable-next-line camelcase
|
|
303
|
-
aztec_prv_notifyCreatedNote(foreignOwner, foreignStorageSlot, foreignRandomness, foreignNoteTypeId, foreignNote, foreignNoteHash, foreignCounter) {
|
|
304
|
-
const owner = addressFromSingle(foreignOwner);
|
|
305
|
-
const storageSlot = fromSingle(foreignStorageSlot);
|
|
306
|
-
const randomness = fromSingle(foreignRandomness);
|
|
307
|
-
const noteTypeId = NoteSelector.fromField(fromSingle(foreignNoteTypeId));
|
|
308
|
-
const note = fromArray(foreignNote);
|
|
309
|
-
const noteHash = fromSingle(foreignNoteHash);
|
|
310
|
-
const counter = fromSingle(foreignCounter).toNumber();
|
|
311
|
-
this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter);
|
|
312
|
-
return toForeignCallResult([]);
|
|
313
|
-
}
|
|
314
|
-
// eslint-disable-next-line camelcase
|
|
315
|
-
async aztec_prv_notifyNullifiedNote(foreignInnerNullifier, foreignNoteHash, foreignCounter) {
|
|
316
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
317
|
-
const noteHash = fromSingle(foreignNoteHash);
|
|
318
|
-
const counter = fromSingle(foreignCounter).toNumber();
|
|
319
|
-
await this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter);
|
|
320
|
-
return toForeignCallResult([]);
|
|
321
|
-
}
|
|
322
|
-
// eslint-disable-next-line camelcase
|
|
323
|
-
async aztec_prv_notifyCreatedNullifier(foreignInnerNullifier) {
|
|
324
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
325
|
-
await this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier);
|
|
326
|
-
return toForeignCallResult([]);
|
|
327
|
-
}
|
|
328
|
-
// eslint-disable-next-line camelcase
|
|
329
|
-
async aztec_prv_isNullifierPending(foreignInnerNullifier, foreignContractAddress) {
|
|
330
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
331
|
-
const contractAddress = addressFromSingle(foreignContractAddress);
|
|
332
|
-
const isPending = await this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress);
|
|
333
|
-
return toForeignCallResult([
|
|
334
|
-
toSingle(new Fr(isPending))
|
|
335
|
-
]);
|
|
336
|
-
}
|
|
337
|
-
// eslint-disable-next-line camelcase
|
|
338
|
-
async aztec_utl_checkNullifierExists(foreignInnerNullifier) {
|
|
339
|
-
const innerNullifier = fromSingle(foreignInnerNullifier);
|
|
340
|
-
const exists = await this.handlerAsUtility().checkNullifierExists(innerNullifier);
|
|
341
|
-
return toForeignCallResult([
|
|
342
|
-
toSingle(new Fr(exists))
|
|
343
|
-
]);
|
|
344
|
-
}
|
|
345
|
-
// eslint-disable-next-line camelcase
|
|
346
|
-
async aztec_utl_getContractInstance(foreignAddress) {
|
|
347
|
-
const address = addressFromSingle(foreignAddress);
|
|
348
|
-
const instance = await this.handlerAsUtility().getContractInstance(address);
|
|
349
|
-
return toForeignCallResult([
|
|
350
|
-
instance.salt,
|
|
351
|
-
instance.deployer.toField(),
|
|
352
|
-
instance.currentContractClassId,
|
|
353
|
-
instance.initializationHash,
|
|
354
|
-
...instance.publicKeys.toFields()
|
|
355
|
-
].map(toSingle));
|
|
356
|
-
}
|
|
357
|
-
// eslint-disable-next-line camelcase
|
|
358
|
-
async aztec_utl_tryGetPublicKeysAndPartialAddress(foreignAddress) {
|
|
359
|
-
const address = addressFromSingle(foreignAddress);
|
|
360
|
-
const result = await this.handlerAsUtility().tryGetPublicKeysAndPartialAddress(address);
|
|
361
|
-
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
362
|
-
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
363
|
-
if (result === undefined) {
|
|
364
|
-
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
365
|
-
return toForeignCallResult([
|
|
366
|
-
toSingle(new Fr(0)),
|
|
367
|
-
toArray(Array(13).fill(new Fr(0)))
|
|
368
|
-
]);
|
|
369
|
-
} else {
|
|
370
|
-
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
371
|
-
return toForeignCallResult([
|
|
372
|
-
toSingle(new Fr(1)),
|
|
373
|
-
toArray([
|
|
374
|
-
...result.publicKeys.toFields(),
|
|
375
|
-
result.partialAddress
|
|
376
|
-
])
|
|
377
|
-
]);
|
|
378
|
-
}
|
|
221
|
+
aztec_txe_getLastCallOffchainEffects() {
|
|
222
|
+
return callTxeHandler({
|
|
223
|
+
oracle: 'aztec_txe_getLastCallOffchainEffects',
|
|
224
|
+
inputs: [],
|
|
225
|
+
handler: ()=>this.stateHandler.getLastCallOffchainEffects()
|
|
226
|
+
});
|
|
379
227
|
}
|
|
380
228
|
// eslint-disable-next-line camelcase
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
229
|
+
aztec_txe_getLastCallContext() {
|
|
230
|
+
return callTxeHandler({
|
|
231
|
+
oracle: 'aztec_txe_getLastCallContext',
|
|
232
|
+
inputs: [],
|
|
233
|
+
handler: ()=>this.stateHandler.getLastCallContext()
|
|
234
|
+
});
|
|
385
235
|
}
|
|
386
236
|
// eslint-disable-next-line camelcase
|
|
387
|
-
|
|
388
|
-
|
|
237
|
+
aztec_txe_getPrivateEvents(...inputs) {
|
|
238
|
+
return callTxeHandler({
|
|
239
|
+
oracle: 'aztec_txe_getPrivateEvents',
|
|
240
|
+
inputs,
|
|
241
|
+
handler: ([selector, contractAddress, scope])=>this.stateHandler.getPrivateEvents(selector, contractAddress, scope)
|
|
242
|
+
});
|
|
389
243
|
}
|
|
390
244
|
// eslint-disable-next-line camelcase
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
}
|
|
398
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
245
|
+
aztec_prv_setHashPreimage(...inputs) {
|
|
246
|
+
return callTxeHandler({
|
|
247
|
+
oracle: 'aztec_prv_setHashPreimage',
|
|
248
|
+
inputs,
|
|
249
|
+
handler: ([values, hash])=>this.handlerAsPrivate().setHashPreimage(values, hash)
|
|
250
|
+
});
|
|
399
251
|
}
|
|
400
252
|
// eslint-disable-next-line camelcase
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
253
|
+
aztec_prv_getHashPreimage(...inputs) {
|
|
254
|
+
return callTxeHandler({
|
|
255
|
+
oracle: 'aztec_prv_getHashPreimage',
|
|
256
|
+
inputs,
|
|
257
|
+
handler: ([hash])=>this.handlerAsPrivate().getHashPreimage(hash)
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
// eslint-disable-next-line camelcase
|
|
261
|
+
aztec_misc_log(...inputs) {
|
|
262
|
+
return callTxeHandler({
|
|
263
|
+
oracle: 'aztec_misc_log',
|
|
264
|
+
inputs,
|
|
265
|
+
handler: ([level, message, fieldsSize, fields])=>this.handlerAsMisc().log(level, message, fieldsSize, fields)
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
// eslint-disable-next-line camelcase
|
|
269
|
+
aztec_utl_getFromPublicStorage(...inputs) {
|
|
270
|
+
return callTxeHandler({
|
|
271
|
+
oracle: 'aztec_utl_getFromPublicStorage',
|
|
272
|
+
inputs,
|
|
273
|
+
handler: ([blockHash, contractAddress, startStorageSlot, numberOfElements])=>this.handlerAsUtility().getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements)
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
// eslint-disable-next-line camelcase
|
|
277
|
+
aztec_utl_getPublicDataWitness(...inputs) {
|
|
278
|
+
return callTxeHandler({
|
|
279
|
+
oracle: 'aztec_utl_getPublicDataWitness',
|
|
280
|
+
inputs,
|
|
281
|
+
handler: ([blockHash, leafSlot])=>this.handlerAsUtility().getPublicDataWitness(blockHash, leafSlot)
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
// eslint-disable-next-line camelcase
|
|
285
|
+
aztec_utl_getNotes(...inputs) {
|
|
286
|
+
return callTxeHandler({
|
|
287
|
+
oracle: 'aztec_utl_getNotes',
|
|
288
|
+
inputs,
|
|
289
|
+
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)
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
// eslint-disable-next-line camelcase
|
|
293
|
+
aztec_prv_notifyCreatedNote(...inputs) {
|
|
294
|
+
return callTxeHandler({
|
|
295
|
+
oracle: 'aztec_prv_notifyCreatedNote',
|
|
296
|
+
inputs,
|
|
297
|
+
handler: ([owner, storageSlot, randomness, noteTypeId, note, noteHash, counter])=>this.handlerAsPrivate().notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, note, noteHash, counter)
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
// eslint-disable-next-line camelcase
|
|
301
|
+
aztec_prv_notifyNullifiedNote(...inputs) {
|
|
302
|
+
return callTxeHandler({
|
|
303
|
+
oracle: 'aztec_prv_notifyNullifiedNote',
|
|
304
|
+
inputs,
|
|
305
|
+
handler: ([innerNullifier, noteHash, counter])=>this.handlerAsPrivate().notifyNullifiedNote(innerNullifier, noteHash, counter)
|
|
306
|
+
});
|
|
410
307
|
}
|
|
411
308
|
// eslint-disable-next-line camelcase
|
|
412
|
-
|
|
413
|
-
|
|
309
|
+
aztec_prv_notifyCreatedNullifier(...inputs) {
|
|
310
|
+
return callTxeHandler({
|
|
311
|
+
oracle: 'aztec_prv_notifyCreatedNullifier',
|
|
312
|
+
inputs,
|
|
313
|
+
handler: ([innerNullifier])=>this.handlerAsPrivate().notifyCreatedNullifier(innerNullifier)
|
|
314
|
+
});
|
|
414
315
|
}
|
|
415
316
|
// eslint-disable-next-line camelcase
|
|
416
|
-
|
|
417
|
-
|
|
317
|
+
aztec_prv_isNullifierPending(...inputs) {
|
|
318
|
+
return callTxeHandler({
|
|
319
|
+
oracle: 'aztec_prv_isNullifierPending',
|
|
320
|
+
inputs,
|
|
321
|
+
handler: ([innerNullifier, contractAddress])=>this.handlerAsPrivate().isNullifierPending(innerNullifier, contractAddress)
|
|
322
|
+
});
|
|
418
323
|
}
|
|
419
324
|
// eslint-disable-next-line camelcase
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
325
|
+
aztec_utl_doesNullifierExist(...inputs) {
|
|
326
|
+
return callTxeHandler({
|
|
327
|
+
oracle: 'aztec_utl_doesNullifierExist',
|
|
328
|
+
inputs,
|
|
329
|
+
handler: ([innerNullifier])=>this.handlerAsUtility().doesNullifierExist(innerNullifier)
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
// eslint-disable-next-line camelcase
|
|
333
|
+
aztec_utl_getContractInstance(...inputs) {
|
|
334
|
+
return callTxeHandler({
|
|
335
|
+
oracle: 'aztec_utl_getContractInstance',
|
|
336
|
+
inputs,
|
|
337
|
+
handler: ([address])=>this.handlerAsUtility().getContractInstance(address)
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
// eslint-disable-next-line camelcase
|
|
341
|
+
aztec_utl_getPublicKeysAndPartialAddress(...inputs) {
|
|
342
|
+
return callTxeHandler({
|
|
343
|
+
oracle: 'aztec_utl_getPublicKeysAndPartialAddress',
|
|
344
|
+
inputs,
|
|
345
|
+
handler: ([address])=>this.handlerAsUtility().getPublicKeysAndPartialAddress(address)
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
// eslint-disable-next-line camelcase
|
|
349
|
+
aztec_utl_getKeyValidationRequest(...inputs) {
|
|
350
|
+
return callTxeHandler({
|
|
351
|
+
oracle: 'aztec_utl_getKeyValidationRequest',
|
|
352
|
+
inputs,
|
|
353
|
+
handler: ([pkMHash, keyIndex])=>this.handlerAsUtility().getKeyValidationRequest(pkMHash, keyIndex)
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
// eslint-disable-next-line camelcase
|
|
357
|
+
aztec_prv_callPrivateFunction(...inputs) {
|
|
358
|
+
return callTxeHandler({
|
|
359
|
+
oracle: 'aztec_prv_callPrivateFunction',
|
|
360
|
+
inputs,
|
|
361
|
+
handler: ([contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall])=>this.handlerAsPrivate().callPrivateFunction(contractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall)
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
// eslint-disable-next-line camelcase
|
|
365
|
+
aztec_utl_getNullifierMembershipWitness(...inputs) {
|
|
366
|
+
return callTxeHandler({
|
|
367
|
+
oracle: 'aztec_utl_getNullifierMembershipWitness',
|
|
368
|
+
inputs,
|
|
369
|
+
handler: ([blockHash, nullifier])=>this.handlerAsUtility().getNullifierMembershipWitness(blockHash, nullifier)
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
// eslint-disable-next-line camelcase
|
|
373
|
+
aztec_utl_getL1ToL2MembershipWitness(...inputs) {
|
|
374
|
+
return callTxeHandler({
|
|
375
|
+
oracle: 'aztec_utl_getL1ToL2MembershipWitness',
|
|
376
|
+
inputs,
|
|
377
|
+
handler: ([contractAddress, messageHash, secret])=>this.handlerAsUtility().getL1ToL2MembershipWitness(contractAddress, messageHash, secret)
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
// eslint-disable-next-line camelcase
|
|
381
|
+
aztec_utl_getAuthWitness(...inputs) {
|
|
382
|
+
return callTxeHandler({
|
|
383
|
+
oracle: 'aztec_utl_getAuthWitness',
|
|
384
|
+
inputs,
|
|
385
|
+
handler: ([messageHash])=>this.handlerAsUtility().getAuthWitness(messageHash)
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
// eslint-disable-next-line camelcase
|
|
389
|
+
aztec_prv_assertValidPublicCalldata(...inputs) {
|
|
390
|
+
return callTxeHandler({
|
|
391
|
+
oracle: 'aztec_prv_assertValidPublicCalldata',
|
|
392
|
+
inputs,
|
|
393
|
+
handler: ([calldataHash])=>this.handlerAsPrivate().assertValidPublicCalldata(calldataHash)
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
// eslint-disable-next-line camelcase
|
|
397
|
+
aztec_prv_notifyRevertiblePhaseStart(...inputs) {
|
|
398
|
+
return callTxeHandler({
|
|
399
|
+
oracle: 'aztec_prv_notifyRevertiblePhaseStart',
|
|
400
|
+
inputs,
|
|
401
|
+
handler: ([minRevertibleSideEffectCounter])=>this.handlerAsPrivate().notifyRevertiblePhaseStart(minRevertibleSideEffectCounter)
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
// eslint-disable-next-line camelcase
|
|
405
|
+
aztec_prv_isExecutionInRevertiblePhase(...inputs) {
|
|
406
|
+
return callTxeHandler({
|
|
407
|
+
oracle: 'aztec_prv_isExecutionInRevertiblePhase',
|
|
408
|
+
inputs,
|
|
409
|
+
handler: ([sideEffectCounter])=>this.handlerAsPrivate().isExecutionInRevertiblePhase(sideEffectCounter)
|
|
410
|
+
});
|
|
426
411
|
}
|
|
427
412
|
// eslint-disable-next-line camelcase
|
|
428
413
|
aztec_utl_getUtilityContext() {
|
|
429
|
-
|
|
430
|
-
|
|
414
|
+
return callTxeHandler({
|
|
415
|
+
oracle: 'aztec_utl_getUtilityContext',
|
|
416
|
+
inputs: [],
|
|
417
|
+
handler: ()=>this.handlerAsUtility().getUtilityContext()
|
|
418
|
+
});
|
|
431
419
|
}
|
|
432
420
|
// eslint-disable-next-line camelcase
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
}
|
|
439
|
-
return toForeignCallResult(header.toFields().map(toSingle));
|
|
421
|
+
aztec_utl_getBlockHeader(...inputs) {
|
|
422
|
+
return callTxeHandler({
|
|
423
|
+
oracle: 'aztec_utl_getBlockHeader',
|
|
424
|
+
inputs,
|
|
425
|
+
handler: ([blockNumber])=>this.handlerAsUtility().getBlockHeader(blockNumber)
|
|
426
|
+
});
|
|
440
427
|
}
|
|
441
428
|
// eslint-disable-next-line camelcase
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
}
|
|
449
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
429
|
+
aztec_utl_getNoteHashMembershipWitness(...inputs) {
|
|
430
|
+
return callTxeHandler({
|
|
431
|
+
oracle: 'aztec_utl_getNoteHashMembershipWitness',
|
|
432
|
+
inputs,
|
|
433
|
+
handler: ([blockHash, noteHash])=>this.handlerAsUtility().getNoteHashMembershipWitness(blockHash, noteHash)
|
|
434
|
+
});
|
|
450
435
|
}
|
|
451
436
|
// eslint-disable-next-line camelcase
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
}
|
|
459
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
437
|
+
aztec_utl_getBlockHashMembershipWitness(...inputs) {
|
|
438
|
+
return callTxeHandler({
|
|
439
|
+
oracle: 'aztec_utl_getBlockHashMembershipWitness',
|
|
440
|
+
inputs,
|
|
441
|
+
handler: ([anchorBlockHash, blockHash])=>this.handlerAsUtility().getBlockHashMembershipWitness(anchorBlockHash, blockHash)
|
|
442
|
+
});
|
|
460
443
|
}
|
|
461
444
|
// eslint-disable-next-line camelcase
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
}
|
|
469
|
-
return toForeignCallResult(witness.toNoirRepresentation());
|
|
470
|
-
}
|
|
471
|
-
// eslint-disable-next-line camelcase
|
|
472
|
-
async aztec_utl_fetchTaggedLogs(foreignPendingTaggedLogArrayBaseSlot) {
|
|
473
|
-
const pendingTaggedLogArrayBaseSlot = fromSingle(foreignPendingTaggedLogArrayBaseSlot);
|
|
474
|
-
await this.handlerAsUtility().fetchTaggedLogs(pendingTaggedLogArrayBaseSlot);
|
|
475
|
-
return toForeignCallResult([]);
|
|
476
|
-
}
|
|
477
|
-
// eslint-disable-next-line camelcase
|
|
478
|
-
async aztec_utl_validateAndStoreEnqueuedNotesAndEvents(foreignContractAddress, foreignNoteValidationRequestsArrayBaseSlot, foreignEventValidationRequestsArrayBaseSlot, foreignMaxNotePackedLen, foreignMaxEventSerializedLen) {
|
|
479
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
480
|
-
const noteValidationRequestsArrayBaseSlot = fromSingle(foreignNoteValidationRequestsArrayBaseSlot);
|
|
481
|
-
const eventValidationRequestsArrayBaseSlot = fromSingle(foreignEventValidationRequestsArrayBaseSlot);
|
|
482
|
-
const maxNotePackedLen = fromSingle(foreignMaxNotePackedLen).toNumber();
|
|
483
|
-
const maxEventSerializedLen = fromSingle(foreignMaxEventSerializedLen).toNumber();
|
|
484
|
-
await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(contractAddress, noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot, maxNotePackedLen, maxEventSerializedLen);
|
|
485
|
-
return toForeignCallResult([]);
|
|
486
|
-
}
|
|
487
|
-
// eslint-disable-next-line camelcase
|
|
488
|
-
async aztec_utl_bulkRetrieveLogs(foreignContractAddress, foreignLogRetrievalRequestsArrayBaseSlot, foreignLogRetrievalResponsesArrayBaseSlot) {
|
|
489
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
490
|
-
const logRetrievalRequestsArrayBaseSlot = fromSingle(foreignLogRetrievalRequestsArrayBaseSlot);
|
|
491
|
-
const logRetrievalResponsesArrayBaseSlot = fromSingle(foreignLogRetrievalResponsesArrayBaseSlot);
|
|
492
|
-
await this.handlerAsUtility().bulkRetrieveLogs(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot);
|
|
493
|
-
return toForeignCallResult([]);
|
|
494
|
-
}
|
|
495
|
-
// eslint-disable-next-line camelcase
|
|
496
|
-
async aztec_utl_storeCapsule(foreignContractAddress, foreignSlot, foreignCapsule) {
|
|
497
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
498
|
-
const slot = fromSingle(foreignSlot);
|
|
499
|
-
const capsule = fromArray(foreignCapsule);
|
|
500
|
-
await this.handlerAsUtility().storeCapsule(contractAddress, slot, capsule);
|
|
501
|
-
return toForeignCallResult([]);
|
|
502
|
-
}
|
|
503
|
-
// eslint-disable-next-line camelcase
|
|
504
|
-
async aztec_utl_loadCapsule(foreignContractAddress, foreignSlot, foreignTSize) {
|
|
505
|
-
const contractAddress = AztecAddress.fromField(fromSingle(foreignContractAddress));
|
|
506
|
-
const slot = fromSingle(foreignSlot);
|
|
507
|
-
const tSize = fromSingle(foreignTSize).toNumber();
|
|
508
|
-
const values = await this.handlerAsUtility().loadCapsule(contractAddress, slot);
|
|
509
|
-
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
510
|
-
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
511
|
-
if (values === null) {
|
|
512
|
-
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
513
|
-
return toForeignCallResult([
|
|
514
|
-
toSingle(new Fr(0)),
|
|
515
|
-
toArray(Array(tSize).fill(new Fr(0)))
|
|
516
|
-
]);
|
|
517
|
-
} else {
|
|
518
|
-
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
519
|
-
return toForeignCallResult([
|
|
520
|
-
toSingle(new Fr(1)),
|
|
521
|
-
toArray(values)
|
|
522
|
-
]);
|
|
523
|
-
}
|
|
445
|
+
aztec_utl_getLowNullifierMembershipWitness(...inputs) {
|
|
446
|
+
return callTxeHandler({
|
|
447
|
+
oracle: 'aztec_utl_getLowNullifierMembershipWitness',
|
|
448
|
+
inputs,
|
|
449
|
+
handler: ([blockHash, nullifier])=>this.handlerAsUtility().getLowNullifierMembershipWitness(blockHash, nullifier)
|
|
450
|
+
});
|
|
524
451
|
}
|
|
525
452
|
// eslint-disable-next-line camelcase
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
453
|
+
aztec_utl_getPendingTaggedLogsV2(...inputs) {
|
|
454
|
+
return callTxeHandler({
|
|
455
|
+
oracle: 'aztec_utl_getPendingTaggedLogsV2',
|
|
456
|
+
inputs,
|
|
457
|
+
handler: ([scope, providedSecrets])=>this.handlerAsUtility().getPendingTaggedLogsV2(scope, providedSecrets)
|
|
458
|
+
});
|
|
531
459
|
}
|
|
532
460
|
// eslint-disable-next-line camelcase
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
return toForeignCallResult([]);
|
|
461
|
+
aztec_utl_validateAndStoreEnqueuedNotesAndEvents(...inputs) {
|
|
462
|
+
return callTxeHandler({
|
|
463
|
+
oracle: 'aztec_utl_validateAndStoreEnqueuedNotesAndEvents',
|
|
464
|
+
inputs,
|
|
465
|
+
handler: ([noteValidationRequests, eventValidationRequests, scope])=>this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(noteValidationRequests, eventValidationRequests, scope)
|
|
466
|
+
});
|
|
540
467
|
}
|
|
541
|
-
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
542
|
-
// 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
|
|
543
|
-
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
544
|
-
// existence of a txe_oracle method?
|
|
545
468
|
// eslint-disable-next-line camelcase
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
469
|
+
aztec_utl_getLogsByTagV2(...inputs) {
|
|
470
|
+
return callTxeHandler({
|
|
471
|
+
oracle: 'aztec_utl_getLogsByTagV2',
|
|
472
|
+
inputs,
|
|
473
|
+
handler: ([requestArrayBaseSlot])=>this.handlerAsUtility().getLogsByTagV2(requestArrayBaseSlot)
|
|
474
|
+
});
|
|
552
475
|
}
|
|
553
476
|
// eslint-disable-next-line camelcase
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
]);
|
|
561
|
-
const secret = await this.handlerAsUtility().getSharedSecret(address, ephPK);
|
|
562
|
-
return toForeignCallResult(secret.toFields().map(toSingle));
|
|
477
|
+
aztec_utl_getResolvedTxs(...inputs) {
|
|
478
|
+
return callTxeHandler({
|
|
479
|
+
oracle: 'aztec_utl_getResolvedTxs',
|
|
480
|
+
inputs,
|
|
481
|
+
handler: ([requestArrayBaseSlot])=>this.handlerAsUtility().getResolvedTxs(requestArrayBaseSlot)
|
|
482
|
+
});
|
|
563
483
|
}
|
|
564
484
|
// eslint-disable-next-line camelcase
|
|
565
|
-
|
|
566
|
-
|
|
485
|
+
aztec_utl_setCapsule(...inputs) {
|
|
486
|
+
return callTxeHandler({
|
|
487
|
+
oracle: 'aztec_utl_setCapsule',
|
|
488
|
+
inputs,
|
|
489
|
+
handler: ([contractAddress, slot, capsule, scope])=>this.handlerAsUtility().setCapsule(contractAddress, slot, capsule, scope)
|
|
490
|
+
});
|
|
567
491
|
}
|
|
568
|
-
// AVM opcodes
|
|
569
492
|
// eslint-disable-next-line camelcase
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
493
|
+
aztec_utl_getCapsule(...inputs) {
|
|
494
|
+
return callTxeHandler({
|
|
495
|
+
oracle: 'aztec_utl_getCapsule',
|
|
496
|
+
inputs,
|
|
497
|
+
handler: ([contractAddress, slot, tSize, scope])=>this.handlerAsUtility().getCapsule(contractAddress, slot, tSize, scope)
|
|
498
|
+
});
|
|
573
499
|
}
|
|
574
500
|
// eslint-disable-next-line camelcase
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
]);
|
|
501
|
+
aztec_utl_deleteCapsule(...inputs) {
|
|
502
|
+
return callTxeHandler({
|
|
503
|
+
oracle: 'aztec_utl_deleteCapsule',
|
|
504
|
+
inputs,
|
|
505
|
+
handler: ([contractAddress, slot, scope])=>this.handlerAsUtility().deleteCapsule(contractAddress, slot, scope)
|
|
506
|
+
});
|
|
582
507
|
}
|
|
583
508
|
// eslint-disable-next-line camelcase
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
509
|
+
aztec_utl_copyCapsule(...inputs) {
|
|
510
|
+
return callTxeHandler({
|
|
511
|
+
oracle: 'aztec_utl_copyCapsule',
|
|
512
|
+
inputs,
|
|
513
|
+
handler: ([contractAddress, srcSlot, dstSlot, numEntries, scope])=>this.handlerAsUtility().copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, scope)
|
|
514
|
+
});
|
|
589
515
|
}
|
|
590
516
|
// eslint-disable-next-line camelcase
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
toSingle(new Fr(1))
|
|
598
|
-
]);
|
|
517
|
+
aztec_utl_pushEphemeral(...inputs) {
|
|
518
|
+
return callTxeHandler({
|
|
519
|
+
oracle: 'aztec_utl_pushEphemeral',
|
|
520
|
+
inputs,
|
|
521
|
+
handler: ([slot, elements])=>this.handlerAsUtility().pushEphemeral(slot, elements)
|
|
522
|
+
});
|
|
599
523
|
}
|
|
600
524
|
// eslint-disable-next-line camelcase
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
toSingle(new Fr(1))
|
|
608
|
-
]);
|
|
525
|
+
aztec_utl_popEphemeral(...inputs) {
|
|
526
|
+
return callTxeHandler({
|
|
527
|
+
oracle: 'aztec_utl_popEphemeral',
|
|
528
|
+
inputs,
|
|
529
|
+
handler: ([slot])=>this.handlerAsUtility().popEphemeral(slot)
|
|
530
|
+
});
|
|
609
531
|
}
|
|
610
532
|
// eslint-disable-next-line camelcase
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
toSingle(new Fr(1))
|
|
618
|
-
]);
|
|
533
|
+
aztec_utl_getEphemeral(...inputs) {
|
|
534
|
+
return callTxeHandler({
|
|
535
|
+
oracle: 'aztec_utl_getEphemeral',
|
|
536
|
+
inputs,
|
|
537
|
+
handler: ([slot, index])=>this.handlerAsUtility().getEphemeral(slot, index)
|
|
538
|
+
});
|
|
619
539
|
}
|
|
620
540
|
// eslint-disable-next-line camelcase
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
541
|
+
aztec_utl_setEphemeral(...inputs) {
|
|
542
|
+
return callTxeHandler({
|
|
543
|
+
oracle: 'aztec_utl_setEphemeral',
|
|
544
|
+
inputs,
|
|
545
|
+
handler: ([slot, index, elements])=>this.handlerAsUtility().setEphemeral(slot, index, elements)
|
|
546
|
+
});
|
|
626
547
|
}
|
|
627
548
|
// eslint-disable-next-line camelcase
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
549
|
+
aztec_utl_getEphemeralLen(...inputs) {
|
|
550
|
+
return callTxeHandler({
|
|
551
|
+
oracle: 'aztec_utl_getEphemeralLen',
|
|
552
|
+
inputs,
|
|
553
|
+
handler: ([slot])=>this.handlerAsUtility().getEphemeralLen(slot)
|
|
554
|
+
});
|
|
632
555
|
}
|
|
633
556
|
// eslint-disable-next-line camelcase
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
557
|
+
aztec_utl_removeEphemeral(...inputs) {
|
|
558
|
+
return callTxeHandler({
|
|
559
|
+
oracle: 'aztec_utl_removeEphemeral',
|
|
560
|
+
inputs,
|
|
561
|
+
handler: ([slot, index])=>this.handlerAsUtility().removeEphemeral(slot, index)
|
|
562
|
+
});
|
|
638
563
|
}
|
|
639
564
|
// eslint-disable-next-line camelcase
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
565
|
+
aztec_utl_clearEphemeral(...inputs) {
|
|
566
|
+
return callTxeHandler({
|
|
567
|
+
oracle: 'aztec_utl_clearEphemeral',
|
|
568
|
+
inputs,
|
|
569
|
+
handler: ([slot])=>this.handlerAsUtility().clearEphemeral(slot)
|
|
570
|
+
});
|
|
646
571
|
}
|
|
647
572
|
// eslint-disable-next-line camelcase
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
573
|
+
aztec_utl_pushTransient(...inputs) {
|
|
574
|
+
return callTxeHandler({
|
|
575
|
+
oracle: 'aztec_utl_pushTransient',
|
|
576
|
+
inputs,
|
|
577
|
+
handler: ([slot, elements])=>this.handlerAsUtility().pushTransient(slot, elements)
|
|
578
|
+
});
|
|
653
579
|
}
|
|
654
580
|
// eslint-disable-next-line camelcase
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
581
|
+
aztec_utl_popTransient(...inputs) {
|
|
582
|
+
return callTxeHandler({
|
|
583
|
+
oracle: 'aztec_utl_popTransient',
|
|
584
|
+
inputs,
|
|
585
|
+
handler: ([slot])=>this.handlerAsUtility().popTransient(slot)
|
|
586
|
+
});
|
|
660
587
|
}
|
|
661
588
|
// eslint-disable-next-line camelcase
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
589
|
+
aztec_utl_getTransient(...inputs) {
|
|
590
|
+
return callTxeHandler({
|
|
591
|
+
oracle: 'aztec_utl_getTransient',
|
|
592
|
+
inputs,
|
|
593
|
+
handler: ([slot, index])=>this.handlerAsUtility().getTransient(slot, index)
|
|
594
|
+
});
|
|
667
595
|
}
|
|
668
596
|
// eslint-disable-next-line camelcase
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
597
|
+
aztec_utl_setTransient(...inputs) {
|
|
598
|
+
return callTxeHandler({
|
|
599
|
+
oracle: 'aztec_utl_setTransient',
|
|
600
|
+
inputs,
|
|
601
|
+
handler: ([slot, index, elements])=>this.handlerAsUtility().setTransient(slot, index, elements)
|
|
602
|
+
});
|
|
674
603
|
}
|
|
675
604
|
// eslint-disable-next-line camelcase
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
605
|
+
aztec_utl_getTransientLen(...inputs) {
|
|
606
|
+
return callTxeHandler({
|
|
607
|
+
oracle: 'aztec_utl_getTransientLen',
|
|
608
|
+
inputs,
|
|
609
|
+
handler: ([slot])=>this.handlerAsUtility().getTransientLen(slot)
|
|
610
|
+
});
|
|
681
611
|
}
|
|
682
612
|
// eslint-disable-next-line camelcase
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
613
|
+
aztec_utl_removeTransient(...inputs) {
|
|
614
|
+
return callTxeHandler({
|
|
615
|
+
oracle: 'aztec_utl_removeTransient',
|
|
616
|
+
inputs,
|
|
617
|
+
handler: ([slot, index])=>this.handlerAsUtility().removeTransient(slot, index)
|
|
618
|
+
});
|
|
688
619
|
}
|
|
689
620
|
// eslint-disable-next-line camelcase
|
|
690
|
-
|
|
691
|
-
|
|
621
|
+
aztec_utl_clearTransient(...inputs) {
|
|
622
|
+
return callTxeHandler({
|
|
623
|
+
oracle: 'aztec_utl_clearTransient',
|
|
624
|
+
inputs,
|
|
625
|
+
handler: ([slot])=>this.handlerAsUtility().clearTransient(slot)
|
|
626
|
+
});
|
|
692
627
|
}
|
|
628
|
+
// TODO: I forgot to add a corresponding function here, when I introduced an oracle method to txe_oracle.ts.
|
|
629
|
+
// 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
|
|
630
|
+
// to implement this function here. Isn't there a way to programmatically identify that this is missing, given the
|
|
631
|
+
// existence of a txe_oracle method?
|
|
693
632
|
// eslint-disable-next-line camelcase
|
|
694
|
-
|
|
695
|
-
|
|
633
|
+
aztec_utl_decryptAes128(...inputs) {
|
|
634
|
+
return callTxeHandler({
|
|
635
|
+
oracle: 'aztec_utl_decryptAes128',
|
|
636
|
+
inputs,
|
|
637
|
+
handler: ([ciphertext, iv, symKey])=>this.handlerAsUtility().decryptAes128(ciphertext, iv, symKey)
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
// eslint-disable-next-line camelcase
|
|
641
|
+
aztec_utl_getSharedSecrets(...inputs) {
|
|
642
|
+
return callTxeHandler({
|
|
643
|
+
oracle: 'aztec_utl_getSharedSecrets',
|
|
644
|
+
inputs,
|
|
645
|
+
handler: ([address, ephPksSlot, contractAddress])=>this.handlerAsUtility().getSharedSecrets(address, ephPksSlot, contractAddress)
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
// eslint-disable-next-line camelcase
|
|
649
|
+
aztec_utl_setContractSyncCacheInvalid(...inputs) {
|
|
650
|
+
return callTxeHandler({
|
|
651
|
+
oracle: 'aztec_utl_setContractSyncCacheInvalid',
|
|
652
|
+
inputs,
|
|
653
|
+
handler: ([contractAddress, scopes])=>this.handlerAsUtility().setContractSyncCacheInvalid(contractAddress, scopes)
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
// eslint-disable-next-line camelcase
|
|
657
|
+
aztec_utl_emitOffchainEffect(...inputs) {
|
|
658
|
+
return callTxeHandler({
|
|
659
|
+
oracle: 'aztec_utl_emitOffchainEffect',
|
|
660
|
+
inputs,
|
|
661
|
+
handler: ([data])=>{
|
|
662
|
+
// Record the raw payload against the currently-executing top-level call. The Noir side
|
|
663
|
+
// (via `env.offchain_messages()`) is responsible for decoding the protocol-reserved prefix
|
|
664
|
+
// (`OFFCHAIN_MESSAGE_IDENTIFIER`, recipient) and turning each payload into an `OffchainMessage` struct suitable
|
|
665
|
+
// for `offchain_receive`.
|
|
666
|
+
this.stateHandler.recordOffchainEffect(data);
|
|
667
|
+
}
|
|
668
|
+
});
|
|
669
|
+
}
|
|
670
|
+
// eslint-disable-next-line camelcase
|
|
671
|
+
aztec_utl_recordFact(...inputs) {
|
|
672
|
+
return callTxeHandler({
|
|
673
|
+
oracle: 'aztec_utl_recordFact',
|
|
674
|
+
inputs,
|
|
675
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId, factTypeId, payload, originBlock])=>this.handlerAsUtility().recordFact(contractAddress, scope, factCollectionTypeId, factCollectionId, factTypeId, payload, originBlock)
|
|
676
|
+
});
|
|
677
|
+
}
|
|
678
|
+
// eslint-disable-next-line camelcase
|
|
679
|
+
aztec_utl_deleteFactCollection(...inputs) {
|
|
680
|
+
return callTxeHandler({
|
|
681
|
+
oracle: 'aztec_utl_deleteFactCollection',
|
|
682
|
+
inputs,
|
|
683
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId])=>this.handlerAsUtility().deleteFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId)
|
|
684
|
+
});
|
|
685
|
+
}
|
|
686
|
+
// eslint-disable-next-line camelcase
|
|
687
|
+
aztec_utl_getFactCollection(...inputs) {
|
|
688
|
+
return callTxeHandler({
|
|
689
|
+
oracle: 'aztec_utl_getFactCollection',
|
|
690
|
+
inputs,
|
|
691
|
+
handler: ([contractAddress, scope, factCollectionTypeId, factCollectionId])=>this.handlerAsUtility().getFactCollection(contractAddress, scope, factCollectionTypeId, factCollectionId)
|
|
692
|
+
});
|
|
693
|
+
}
|
|
694
|
+
// eslint-disable-next-line camelcase
|
|
695
|
+
aztec_utl_getFactCollectionsByType(...inputs) {
|
|
696
|
+
return callTxeHandler({
|
|
697
|
+
oracle: 'aztec_utl_getFactCollectionsByType',
|
|
698
|
+
inputs,
|
|
699
|
+
handler: ([contractAddress, scope, factCollectionTypeId])=>this.handlerAsUtility().getFactCollectionsByType(contractAddress, scope, factCollectionTypeId)
|
|
700
|
+
});
|
|
696
701
|
}
|
|
702
|
+
// AVM opcodes
|
|
697
703
|
// eslint-disable-next-line camelcase
|
|
698
|
-
|
|
699
|
-
|
|
704
|
+
aztec_avm_emitPublicLog() {
|
|
705
|
+
return callTxeHandler({
|
|
706
|
+
oracle: 'aztec_avm_emitPublicLog',
|
|
707
|
+
inputs: [],
|
|
708
|
+
// TODO(#8811): Implement
|
|
709
|
+
handler: ()=>{}
|
|
710
|
+
});
|
|
700
711
|
}
|
|
701
712
|
// eslint-disable-next-line camelcase
|
|
702
|
-
|
|
703
|
-
|
|
713
|
+
aztec_avm_storageRead(...inputs) {
|
|
714
|
+
return callTxeHandler({
|
|
715
|
+
oracle: 'aztec_avm_storageRead',
|
|
716
|
+
inputs,
|
|
717
|
+
handler: ([slot, contractAddress])=>this.handlerAsAvm().storageRead(slot, contractAddress)
|
|
718
|
+
});
|
|
704
719
|
}
|
|
705
720
|
// eslint-disable-next-line camelcase
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
])
|
|
759
|
-
}
|
|
760
|
-
// Sender found, return Option with some=1 and value=sender address
|
|
761
|
-
return toForeignCallResult([
|
|
762
|
-
toSingle(1),
|
|
763
|
-
toSingle(sender)
|
|
764
|
-
]);
|
|
765
|
-
}
|
|
721
|
+
aztec_avm_storageWrite(...inputs) {
|
|
722
|
+
return callTxeHandler({
|
|
723
|
+
oracle: 'aztec_avm_storageWrite',
|
|
724
|
+
inputs,
|
|
725
|
+
handler: ([slot, value])=>this.handlerAsAvm().storageWrite(slot, value)
|
|
726
|
+
});
|
|
727
|
+
}
|
|
728
|
+
// eslint-disable-next-line camelcase
|
|
729
|
+
aztec_avm_getContractInstanceDeployer(...inputs) {
|
|
730
|
+
return callTxeHandler({
|
|
731
|
+
oracle: 'aztec_avm_getContractInstanceDeployer',
|
|
732
|
+
inputs,
|
|
733
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceDeployer(address)
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
// eslint-disable-next-line camelcase
|
|
737
|
+
aztec_avm_getContractInstanceClassId(...inputs) {
|
|
738
|
+
return callTxeHandler({
|
|
739
|
+
oracle: 'aztec_avm_getContractInstanceClassId',
|
|
740
|
+
inputs,
|
|
741
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceClassId(address)
|
|
742
|
+
});
|
|
743
|
+
}
|
|
744
|
+
// eslint-disable-next-line camelcase
|
|
745
|
+
aztec_avm_getContractInstanceInitializationHash(...inputs) {
|
|
746
|
+
return callTxeHandler({
|
|
747
|
+
oracle: 'aztec_avm_getContractInstanceInitializationHash',
|
|
748
|
+
inputs,
|
|
749
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceInitializationHash(address)
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
// eslint-disable-next-line camelcase
|
|
753
|
+
aztec_avm_getContractInstanceImmutablesHash(...inputs) {
|
|
754
|
+
return callTxeHandler({
|
|
755
|
+
oracle: 'aztec_avm_getContractInstanceImmutablesHash',
|
|
756
|
+
inputs,
|
|
757
|
+
handler: ([address])=>this.handlerAsAvm().getContractInstanceImmutablesHash(address)
|
|
758
|
+
});
|
|
759
|
+
}
|
|
760
|
+
// eslint-disable-next-line camelcase
|
|
761
|
+
aztec_avm_sender() {
|
|
762
|
+
return callTxeHandler({
|
|
763
|
+
oracle: 'aztec_avm_sender',
|
|
764
|
+
inputs: [],
|
|
765
|
+
handler: ()=>this.handlerAsAvm().sender()
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
// eslint-disable-next-line camelcase
|
|
769
|
+
aztec_avm_emitNullifier(...inputs) {
|
|
770
|
+
return callTxeHandler({
|
|
771
|
+
oracle: 'aztec_avm_emitNullifier',
|
|
772
|
+
inputs,
|
|
773
|
+
handler: ([nullifier])=>this.handlerAsAvm().emitNullifier(nullifier)
|
|
774
|
+
});
|
|
766
775
|
}
|
|
767
776
|
// eslint-disable-next-line camelcase
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
777
|
+
aztec_avm_emitNoteHash(...inputs) {
|
|
778
|
+
return callTxeHandler({
|
|
779
|
+
oracle: 'aztec_avm_emitNoteHash',
|
|
780
|
+
inputs,
|
|
781
|
+
handler: ([noteHash])=>this.handlerAsAvm().emitNoteHash(noteHash)
|
|
782
|
+
});
|
|
772
783
|
}
|
|
773
784
|
// eslint-disable-next-line camelcase
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
785
|
+
aztec_avm_nullifierExists(...inputs) {
|
|
786
|
+
return callTxeHandler({
|
|
787
|
+
oracle: 'aztec_avm_nullifierExists',
|
|
788
|
+
inputs,
|
|
789
|
+
handler: ([siloedNullifier])=>this.handlerAsAvm().nullifierExists(siloedNullifier)
|
|
790
|
+
});
|
|
791
|
+
}
|
|
792
|
+
// eslint-disable-next-line camelcase
|
|
793
|
+
aztec_avm_address() {
|
|
794
|
+
return callTxeHandler({
|
|
795
|
+
oracle: 'aztec_avm_address',
|
|
796
|
+
inputs: [],
|
|
797
|
+
handler: ()=>this.handlerAsAvm().address()
|
|
798
|
+
});
|
|
799
|
+
}
|
|
800
|
+
// eslint-disable-next-line camelcase
|
|
801
|
+
aztec_avm_blockNumber() {
|
|
802
|
+
return callTxeHandler({
|
|
803
|
+
oracle: 'aztec_avm_blockNumber',
|
|
804
|
+
inputs: [],
|
|
805
|
+
handler: ()=>this.handlerAsAvm().blockNumber()
|
|
806
|
+
});
|
|
807
|
+
}
|
|
808
|
+
// eslint-disable-next-line camelcase
|
|
809
|
+
aztec_avm_timestamp() {
|
|
810
|
+
return callTxeHandler({
|
|
811
|
+
oracle: 'aztec_avm_timestamp',
|
|
812
|
+
inputs: [],
|
|
813
|
+
handler: ()=>this.handlerAsAvm().timestamp()
|
|
814
|
+
});
|
|
815
|
+
}
|
|
816
|
+
// eslint-disable-next-line camelcase
|
|
817
|
+
aztec_avm_isStaticCall() {
|
|
818
|
+
return callTxeHandler({
|
|
819
|
+
oracle: 'aztec_avm_isStaticCall',
|
|
820
|
+
inputs: [],
|
|
821
|
+
handler: ()=>this.handlerAsAvm().isStaticCall()
|
|
822
|
+
});
|
|
823
|
+
}
|
|
824
|
+
// eslint-disable-next-line camelcase
|
|
825
|
+
aztec_avm_chainId() {
|
|
826
|
+
return callTxeHandler({
|
|
827
|
+
oracle: 'aztec_avm_chainId',
|
|
828
|
+
inputs: [],
|
|
829
|
+
handler: ()=>this.handlerAsAvm().chainId()
|
|
830
|
+
});
|
|
831
|
+
}
|
|
832
|
+
// eslint-disable-next-line camelcase
|
|
833
|
+
aztec_avm_version() {
|
|
834
|
+
return callTxeHandler({
|
|
835
|
+
oracle: 'aztec_avm_version',
|
|
836
|
+
inputs: [],
|
|
837
|
+
handler: ()=>this.handlerAsAvm().version()
|
|
838
|
+
});
|
|
839
|
+
}
|
|
840
|
+
// eslint-disable-next-line camelcase
|
|
841
|
+
aztec_avm_returndataSize() {
|
|
842
|
+
return callTxeHandler({
|
|
843
|
+
oracle: 'aztec_avm_returndataSize',
|
|
844
|
+
inputs: [],
|
|
845
|
+
handler: ()=>this.handlerAsAvm().returndataSize()
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
// eslint-disable-next-line camelcase
|
|
849
|
+
aztec_avm_returndataCopy(...inputs) {
|
|
850
|
+
return callTxeHandler({
|
|
851
|
+
oracle: 'aztec_avm_returndataCopy',
|
|
852
|
+
inputs,
|
|
853
|
+
handler: ([rdOffset, copySize])=>this.handlerAsAvm().returndataCopy(rdOffset, copySize)
|
|
854
|
+
});
|
|
855
|
+
}
|
|
856
|
+
// eslint-disable-next-line camelcase
|
|
857
|
+
aztec_avm_call(...inputs) {
|
|
858
|
+
return callTxeHandler({
|
|
859
|
+
oracle: 'aztec_avm_call',
|
|
860
|
+
inputs,
|
|
861
|
+
handler: ([l2Gas, daGas, address, argsLength, args])=>this.handlerAsAvm().call(l2Gas, daGas, address, argsLength, args)
|
|
862
|
+
});
|
|
863
|
+
}
|
|
864
|
+
// eslint-disable-next-line camelcase
|
|
865
|
+
aztec_avm_staticCall(...inputs) {
|
|
866
|
+
return callTxeHandler({
|
|
867
|
+
oracle: 'aztec_avm_staticCall',
|
|
868
|
+
inputs,
|
|
869
|
+
handler: ([l2Gas, daGas, address, argsLength, args])=>this.handlerAsAvm().staticCall(l2Gas, daGas, address, argsLength, args)
|
|
870
|
+
});
|
|
871
|
+
}
|
|
872
|
+
// eslint-disable-next-line camelcase
|
|
873
|
+
aztec_avm_successCopy() {
|
|
874
|
+
return callTxeHandler({
|
|
875
|
+
oracle: 'aztec_avm_successCopy',
|
|
876
|
+
inputs: [],
|
|
877
|
+
handler: ()=>this.handlerAsAvm().successCopy()
|
|
878
|
+
});
|
|
879
|
+
}
|
|
880
|
+
// eslint-disable-next-line camelcase
|
|
881
|
+
aztec_txe_privateCallNewFlow(...inputs) {
|
|
882
|
+
return callTxeHandler({
|
|
883
|
+
oracle: 'aztec_txe_privateCallNewFlow',
|
|
884
|
+
inputs,
|
|
885
|
+
handler: ([from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, additionalScopes, authorizedUtilityCallTargets, gasSettings])=>this.stateHandler.executePrivateCall(from, targetContractAddress, functionSelector, args, argsHash, isStaticCall, additionalScopes, authorizedUtilityCallTargets, gasSettings)
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
// eslint-disable-next-line camelcase
|
|
889
|
+
aztec_txe_executeUtilityFunction(...inputs) {
|
|
890
|
+
return callTxeHandler({
|
|
891
|
+
oracle: 'aztec_txe_executeUtilityFunction',
|
|
892
|
+
inputs,
|
|
893
|
+
handler: ([from, targetContractAddress, functionSelector, args, authorizedUtilityCallTargets])=>this.stateHandler.executeUtilityFunction(from, targetContractAddress, functionSelector, args, authorizedUtilityCallTargets)
|
|
894
|
+
});
|
|
895
|
+
}
|
|
896
|
+
// eslint-disable-next-line camelcase
|
|
897
|
+
aztec_txe_publicCallNewFlow(...inputs) {
|
|
898
|
+
return callTxeHandler({
|
|
899
|
+
oracle: 'aztec_txe_publicCallNewFlow',
|
|
900
|
+
inputs,
|
|
901
|
+
handler: ([from, address, calldata, isStaticCall, gasSettings])=>this.stateHandler.executePublicCall(from, address, calldata, isStaticCall, gasSettings)
|
|
902
|
+
});
|
|
903
|
+
}
|
|
904
|
+
// eslint-disable-next-line camelcase
|
|
905
|
+
aztec_prv_getSenderForTags() {
|
|
906
|
+
return callTxeHandler({
|
|
907
|
+
oracle: 'aztec_prv_getSenderForTags',
|
|
908
|
+
inputs: [],
|
|
909
|
+
handler: ()=>this.handlerAsPrivate().getSenderForTags()
|
|
910
|
+
});
|
|
911
|
+
}
|
|
912
|
+
// eslint-disable-next-line camelcase
|
|
913
|
+
aztec_prv_resolveTaggingStrategy(...inputs) {
|
|
914
|
+
return callTxeHandler({
|
|
915
|
+
oracle: 'aztec_prv_resolveTaggingStrategy',
|
|
916
|
+
inputs,
|
|
917
|
+
handler: ([sender, recipient, deliveryMode])=>this.handlerAsPrivate().resolveTaggingStrategy(sender, recipient, deliveryMode)
|
|
918
|
+
});
|
|
919
|
+
}
|
|
920
|
+
// eslint-disable-next-line camelcase
|
|
921
|
+
aztec_prv_resolveCustomRequest(...inputs) {
|
|
922
|
+
return callTxeHandler({
|
|
923
|
+
oracle: 'aztec_prv_resolveCustomRequest',
|
|
924
|
+
inputs,
|
|
925
|
+
handler: ([kind, payload])=>this.handlerAsPrivate().resolveCustomRequest(kind, payload)
|
|
926
|
+
});
|
|
927
|
+
}
|
|
928
|
+
// eslint-disable-next-line camelcase
|
|
929
|
+
aztec_prv_getAppTaggingSecret(...inputs) {
|
|
930
|
+
return callTxeHandler({
|
|
931
|
+
oracle: 'aztec_prv_getAppTaggingSecret',
|
|
932
|
+
inputs,
|
|
933
|
+
handler: ([sender, recipient])=>this.handlerAsPrivate().getAppTaggingSecret(sender, recipient)
|
|
934
|
+
});
|
|
935
|
+
}
|
|
936
|
+
// eslint-disable-next-line camelcase
|
|
937
|
+
aztec_prv_getNextTaggingIndex(...inputs) {
|
|
938
|
+
return callTxeHandler({
|
|
939
|
+
oracle: 'aztec_prv_getNextTaggingIndex',
|
|
940
|
+
inputs,
|
|
941
|
+
handler: ([secret, deliveryMode])=>this.handlerAsPrivate().getNextTaggingIndex(secret, deliveryMode)
|
|
942
|
+
});
|
|
781
943
|
}
|
|
782
944
|
}
|