@aztec/simulator 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2
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/acvm/acvm.js +18 -21
- package/dest/acvm/acvm_types.js +3 -2
- package/dest/acvm/deserialize.js +9 -13
- package/dest/acvm/index.js +0 -1
- package/dest/acvm/oracle/index.js +0 -1
- package/dest/acvm/oracle/oracle.js +42 -23
- package/dest/acvm/oracle/typed_oracle.js +36 -38
- package/dest/acvm/serialize.js +7 -14
- package/dest/avm/avm_context.js +24 -27
- package/dest/avm/avm_contract_call_result.js +12 -7
- package/dest/avm/avm_execution_environment.js +10 -7
- package/dest/avm/avm_gas.js +93 -56
- package/dest/avm/avm_machine_state.js +60 -61
- package/dest/avm/avm_memory_types.js +166 -255
- package/dest/avm/avm_simulator.js +68 -47
- package/dest/avm/avm_tree.js +282 -276
- package/dest/avm/bytecode_utils.js +8 -6
- package/dest/avm/errors.js +46 -63
- package/dest/avm/fixtures/avm_simulation_tester.js +18 -17
- package/dest/avm/fixtures/base_avm_simulation_tester.js +21 -16
- package/dest/avm/fixtures/index.js +27 -26
- package/dest/avm/fixtures/simple_contract_data_source.js +9 -13
- package/dest/avm/index.js +0 -1
- package/dest/avm/journal/index.js +0 -1
- package/dest/avm/journal/journal.js +147 -200
- package/dest/avm/journal/nullifiers.js +43 -46
- package/dest/avm/journal/public_storage.js +73 -87
- package/dest/avm/opcodes/accrued_substate.js +140 -110
- package/dest/avm/opcodes/addressing_mode.js +29 -31
- package/dest/avm/opcodes/arithmetic.js +17 -15
- package/dest/avm/opcodes/bitwise.js +40 -26
- package/dest/avm/opcodes/comparators.js +12 -10
- package/dest/avm/opcodes/contract.js +31 -29
- package/dest/avm/opcodes/control_flow.js +47 -43
- package/dest/avm/opcodes/conversion.js +30 -26
- package/dest/avm/opcodes/ec_add.js +35 -34
- package/dest/avm/opcodes/environment_getters.js +33 -33
- package/dest/avm/opcodes/external_calls.js +83 -74
- package/dest/avm/opcodes/hashing.js +69 -61
- package/dest/avm/opcodes/index.js +0 -1
- package/dest/avm/opcodes/instruction.js +31 -40
- package/dest/avm/opcodes/instruction_impl.js +12 -15
- package/dest/avm/opcodes/memory.js +177 -156
- package/dest/avm/opcodes/misc.js +27 -25
- package/dest/avm/opcodes/multi_scalar_mul.js +43 -41
- package/dest/avm/opcodes/storage.js +28 -25
- package/dest/avm/serialization/buffer_cursor.js +4 -4
- package/dest/avm/serialization/bytecode_serialization.js +292 -89
- package/dest/avm/serialization/instruction_serialization.js +67 -28
- package/dest/avm/test_utils.js +6 -9
- package/dest/client/client_execution_context.js +197 -219
- package/dest/client/db_oracle.js +4 -7
- package/dest/client/execution_note_cache.js +80 -81
- package/dest/client/index.js +0 -1
- package/dest/client/pick_notes.js +27 -30
- package/dest/client/private_execution.js +13 -14
- package/dest/client/simulator.js +44 -48
- package/dest/client/unconstrained_execution.js +8 -11
- package/dest/client/view_data_oracle.js +130 -139
- package/dest/common/debug_fn_name.js +1 -4
- package/dest/common/errors.js +30 -39
- package/dest/common/hashed_values_cache.js +16 -20
- package/dest/common/index.js +0 -1
- package/dest/common/message_load_oracle_inputs.js +7 -7
- package/dest/common/simulation_provider.js +3 -6
- package/dest/common.js +0 -1
- package/dest/providers/acvm_native.js +46 -32
- package/dest/providers/acvm_wasm.js +18 -10
- package/dest/providers/acvm_wasm_with_blobs.js +2 -5
- package/dest/providers/factory.js +5 -5
- package/dest/providers/index.js +0 -1
- package/dest/public/bytecode_errors.js +1 -2
- package/dest/public/db_interfaces.js +1 -2
- package/dest/public/execution.js +2 -4
- package/dest/public/executor_metrics.js +16 -12
- package/dest/public/fee_payment.js +2 -5
- package/dest/public/fixtures/index.js +0 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +13 -17
- package/dest/public/fixtures/utils.js +11 -14
- package/dest/public/index.js +0 -1
- package/dest/public/public_db_sources.js +79 -87
- package/dest/public/public_processor.js +310 -306
- package/dest/public/public_processor_metrics.js +46 -27
- package/dest/public/public_tx_context.js +97 -118
- package/dest/public/public_tx_simulator.js +299 -314
- package/dest/public/side_effect_errors.js +1 -2
- package/dest/public/side_effect_trace.js +44 -71
- package/dest/public/side_effect_trace_interface.js +1 -2
- package/dest/public/unique_class_ids.js +22 -27
- package/dest/public/utils.js +16 -11
- package/dest/server.js +0 -1
- package/dest/stats/index.js +0 -1
- package/dest/stats/stats.js +1 -2
- package/dest/test/utils.js +5 -4
- package/package.json +11 -11
- package/src/acvm/oracle/typed_oracle.ts +34 -34
- package/src/avm/avm_machine_state.ts +18 -14
- package/src/avm/avm_memory_types.ts +43 -183
- package/src/avm/avm_simulator.ts +37 -11
- package/src/avm/opcodes/accrued_substate.ts +7 -21
- package/src/avm/opcodes/addressing_mode.ts +9 -2
- package/src/avm/opcodes/arithmetic.ts +1 -3
- package/src/avm/opcodes/bitwise.ts +2 -6
- package/src/avm/opcodes/comparators.ts +1 -3
- package/src/avm/opcodes/contract.ts +1 -3
- package/src/avm/opcodes/control_flow.ts +1 -9
- package/src/avm/opcodes/conversion.ts +1 -3
- package/src/avm/opcodes/ec_add.ts +1 -3
- package/src/avm/opcodes/environment_getters.ts +1 -3
- package/src/avm/opcodes/external_calls.ts +3 -6
- package/src/avm/opcodes/hashing.ts +3 -9
- package/src/avm/opcodes/memory.ts +6 -20
- package/src/avm/opcodes/misc.ts +1 -3
- package/src/avm/opcodes/multi_scalar_mul.ts +1 -7
- package/src/avm/opcodes/storage.ts +2 -6
- package/src/client/index.ts +2 -2
- package/dest/acvm/acvm.d.ts +0 -35
- package/dest/acvm/acvm.d.ts.map +0 -1
- package/dest/acvm/acvm_types.d.ts +0 -10
- package/dest/acvm/acvm_types.d.ts.map +0 -1
- package/dest/acvm/deserialize.d.ts +0 -36
- package/dest/acvm/deserialize.d.ts.map +0 -1
- package/dest/acvm/index.d.ts +0 -6
- package/dest/acvm/index.d.ts.map +0 -1
- package/dest/acvm/oracle/index.d.ts +0 -14
- package/dest/acvm/oracle/index.d.ts.map +0 -1
- package/dest/acvm/oracle/oracle.d.ts +0 -49
- package/dest/acvm/oracle/oracle.d.ts.map +0 -1
- package/dest/acvm/oracle/typed_oracle.d.ts +0 -75
- package/dest/acvm/oracle/typed_oracle.d.ts.map +0 -1
- package/dest/acvm/serialize.d.ts +0 -20
- package/dest/acvm/serialize.d.ts.map +0 -1
- package/dest/avm/avm_context.d.ts +0 -39
- package/dest/avm/avm_context.d.ts.map +0 -1
- package/dest/avm/avm_contract_call_result.d.ts +0 -30
- package/dest/avm/avm_contract_call_result.d.ts.map +0 -1
- package/dest/avm/avm_execution_environment.d.ts +0 -21
- package/dest/avm/avm_execution_environment.d.ts.map +0 -1
- package/dest/avm/avm_gas.d.ts +0 -60
- package/dest/avm/avm_gas.d.ts.map +0 -1
- package/dest/avm/avm_machine_state.d.ts +0 -93
- package/dest/avm/avm_machine_state.d.ts.map +0 -1
- package/dest/avm/avm_memory_types.d.ts +0 -310
- package/dest/avm/avm_memory_types.d.ts.map +0 -1
- package/dest/avm/avm_simulator.d.ts +0 -37
- package/dest/avm/avm_simulator.d.ts.map +0 -1
- package/dest/avm/avm_tree.d.ts +0 -281
- package/dest/avm/avm_tree.d.ts.map +0 -1
- package/dest/avm/bytecode_utils.d.ts +0 -5
- package/dest/avm/bytecode_utils.d.ts.map +0 -1
- package/dest/avm/errors.d.ts +0 -121
- package/dest/avm/errors.d.ts.map +0 -1
- package/dest/avm/fixtures/avm_simulation_tester.d.ts +0 -21
- package/dest/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
- package/dest/avm/fixtures/base_avm_simulation_tester.d.ts +0 -35
- package/dest/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
- package/dest/avm/fixtures/index.d.ts +0 -67
- package/dest/avm/fixtures/index.d.ts.map +0 -1
- package/dest/avm/fixtures/simple_contract_data_source.d.ts +0 -31
- package/dest/avm/fixtures/simple_contract_data_source.d.ts.map +0 -1
- package/dest/avm/index.d.ts +0 -4
- package/dest/avm/index.d.ts.map +0 -1
- package/dest/avm/journal/index.d.ts +0 -2
- package/dest/avm/journal/index.d.ts.map +0 -1
- package/dest/avm/journal/journal.d.ts +0 -176
- package/dest/avm/journal/journal.d.ts.map +0 -1
- package/dest/avm/journal/nullifiers.d.ts +0 -62
- package/dest/avm/journal/nullifiers.d.ts.map +0 -1
- package/dest/avm/journal/public_storage.d.ts +0 -66
- package/dest/avm/journal/public_storage.d.ts.map +0 -1
- package/dest/avm/opcodes/accrued_substate.d.ts +0 -75
- package/dest/avm/opcodes/accrued_substate.d.ts.map +0 -1
- package/dest/avm/opcodes/addressing_mode.d.ts +0 -27
- package/dest/avm/opcodes/addressing_mode.d.ts.map +0 -1
- package/dest/avm/opcodes/arithmetic.d.ts +0 -37
- package/dest/avm/opcodes/arithmetic.d.ts.map +0 -1
- package/dest/avm/opcodes/bitwise.d.ts +0 -50
- package/dest/avm/opcodes/bitwise.d.ts.map +0 -1
- package/dest/avm/opcodes/comparators.d.ts +0 -25
- package/dest/avm/opcodes/comparators.d.ts.map +0 -1
- package/dest/avm/opcodes/contract.d.ts +0 -21
- package/dest/avm/opcodes/contract.d.ts.map +0 -1
- package/dest/avm/opcodes/control_flow.d.ts +0 -41
- package/dest/avm/opcodes/control_flow.d.ts.map +0 -1
- package/dest/avm/opcodes/conversion.d.ts +0 -17
- package/dest/avm/opcodes/conversion.d.ts.map +0 -1
- package/dest/avm/opcodes/ec_add.d.ts +0 -19
- package/dest/avm/opcodes/ec_add.d.ts.map +0 -1
- package/dest/avm/opcodes/environment_getters.d.ts +0 -28
- package/dest/avm/opcodes/environment_getters.d.ts.map +0 -1
- package/dest/avm/opcodes/external_calls.d.ts +0 -50
- package/dest/avm/opcodes/external_calls.d.ts.map +0 -1
- package/dest/avm/opcodes/hashing.d.ts +0 -36
- package/dest/avm/opcodes/hashing.d.ts.map +0 -1
- package/dest/avm/opcodes/index.d.ts +0 -16
- package/dest/avm/opcodes/index.d.ts.map +0 -1
- package/dest/avm/opcodes/instruction.d.ts +0 -70
- package/dest/avm/opcodes/instruction.d.ts.map +0 -1
- package/dest/avm/opcodes/instruction_impl.d.ts +0 -19
- package/dest/avm/opcodes/instruction_impl.d.ts.map +0 -1
- package/dest/avm/opcodes/memory.d.ts +0 -74
- package/dest/avm/opcodes/memory.d.ts.map +0 -1
- package/dest/avm/opcodes/misc.d.ts +0 -17
- package/dest/avm/opcodes/misc.d.ts.map +0 -1
- package/dest/avm/opcodes/multi_scalar_mul.d.ts +0 -16
- package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +0 -1
- package/dest/avm/opcodes/storage.d.ts +0 -24
- package/dest/avm/opcodes/storage.d.ts.map +0 -1
- package/dest/avm/serialization/buffer_cursor.d.ts +0 -28
- package/dest/avm/serialization/buffer_cursor.d.ts.map +0 -1
- package/dest/avm/serialization/bytecode_serialization.d.ts +0 -21
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +0 -1
- package/dest/avm/serialization/instruction_serialization.d.ts +0 -105
- package/dest/avm/serialization/instruction_serialization.d.ts.map +0 -1
- package/dest/avm/test_utils.d.ts +0 -16
- package/dest/avm/test_utils.d.ts.map +0 -1
- package/dest/client/client_execution_context.d.ts +0 -214
- package/dest/client/client_execution_context.d.ts.map +0 -1
- package/dest/client/db_oracle.d.ts +0 -229
- package/dest/client/db_oracle.d.ts.map +0 -1
- package/dest/client/execution_note_cache.d.ts +0 -93
- package/dest/client/execution_note_cache.d.ts.map +0 -1
- package/dest/client/index.d.ts +0 -15
- package/dest/client/index.d.ts.map +0 -1
- package/dest/client/pick_notes.d.ts +0 -85
- package/dest/client/pick_notes.d.ts.map +0 -1
- package/dest/client/private_execution.d.ts +0 -19
- package/dest/client/private_execution.d.ts.map +0 -1
- package/dest/client/simulator.d.ts +0 -60
- package/dest/client/simulator.d.ts.map +0 -1
- package/dest/client/unconstrained_execution.d.ts +0 -10
- package/dest/client/unconstrained_execution.d.ts.map +0 -1
- package/dest/client/view_data_oracle.d.ts +0 -159
- package/dest/client/view_data_oracle.d.ts.map +0 -1
- package/dest/common/debug_fn_name.d.ts +0 -4
- package/dest/common/debug_fn_name.d.ts.map +0 -1
- package/dest/common/errors.d.ts +0 -54
- package/dest/common/errors.d.ts.map +0 -1
- package/dest/common/hashed_values_cache.d.ts +0 -28
- package/dest/common/hashed_values_cache.d.ts.map +0 -1
- package/dest/common/index.d.ts +0 -3
- package/dest/common/index.d.ts.map +0 -1
- package/dest/common/message_load_oracle_inputs.d.ts +0 -15
- package/dest/common/message_load_oracle_inputs.d.ts.map +0 -1
- package/dest/common/simulation_provider.d.ts +0 -19
- package/dest/common/simulation_provider.d.ts.map +0 -1
- package/dest/common.d.ts +0 -2
- package/dest/common.d.ts.map +0 -1
- package/dest/providers/acvm_native.d.ts +0 -40
- package/dest/providers/acvm_native.d.ts.map +0 -1
- package/dest/providers/acvm_wasm.d.ts +0 -15
- package/dest/providers/acvm_wasm.d.ts.map +0 -1
- package/dest/providers/acvm_wasm_with_blobs.d.ts +0 -19
- package/dest/providers/acvm_wasm_with_blobs.d.ts.map +0 -1
- package/dest/providers/factory.d.ts +0 -12
- package/dest/providers/factory.d.ts.map +0 -1
- package/dest/providers/index.d.ts +0 -5
- package/dest/providers/index.d.ts.map +0 -1
- package/dest/public/bytecode_errors.d.ts +0 -4
- package/dest/public/bytecode_errors.d.ts.map +0 -1
- package/dest/public/db_interfaces.d.ts +0 -105
- package/dest/public/db_interfaces.d.ts.map +0 -1
- package/dest/public/execution.d.ts +0 -102
- package/dest/public/execution.d.ts.map +0 -1
- package/dest/public/executor_metrics.d.ts +0 -13
- package/dest/public/executor_metrics.d.ts.map +0 -1
- package/dest/public/fee_payment.d.ts +0 -11
- package/dest/public/fee_payment.d.ts.map +0 -1
- package/dest/public/fixtures/index.d.ts +0 -3
- package/dest/public/fixtures/index.d.ts.map +0 -1
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +0 -21
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +0 -1
- package/dest/public/fixtures/utils.d.ts +0 -17
- package/dest/public/fixtures/utils.d.ts.map +0 -1
- package/dest/public/index.d.ts +0 -9
- package/dest/public/index.d.ts.map +0 -1
- package/dest/public/public_db_sources.d.ts +0 -81
- package/dest/public/public_db_sources.d.ts.map +0 -1
- package/dest/public/public_processor.d.ts +0 -72
- package/dest/public/public_processor.d.ts.map +0 -1
- package/dest/public/public_processor_metrics.d.ts +0 -27
- package/dest/public/public_processor_metrics.d.ts.map +0 -1
- package/dest/public/public_tx_context.d.ts +0 -131
- package/dest/public/public_tx_context.d.ts.map +0 -1
- package/dest/public/public_tx_simulator.d.ts +0 -99
- package/dest/public/public_tx_simulator.d.ts.map +0 -1
- package/dest/public/side_effect_errors.d.ts +0 -4
- package/dest/public/side_effect_errors.d.ts.map +0 -1
- package/dest/public/side_effect_trace.d.ts +0 -126
- package/dest/public/side_effect_trace.d.ts.map +0 -1
- package/dest/public/side_effect_trace_interface.d.ts +0 -32
- package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
- package/dest/public/unique_class_ids.d.ts +0 -37
- package/dest/public/unique_class_ids.d.ts.map +0 -1
- package/dest/public/utils.d.ts +0 -5
- package/dest/public/utils.d.ts.map +0 -1
- package/dest/server.d.ts +0 -6
- package/dest/server.d.ts.map +0 -1
- package/dest/stats/index.d.ts +0 -2
- package/dest/stats/index.d.ts.map +0 -1
- package/dest/stats/stats.d.ts +0 -4
- package/dest/stats/stats.d.ts.map +0 -1
- package/dest/test/utils.d.ts +0 -12
- package/dest/test/utils.d.ts.map +0 -1
package/dest/acvm/acvm.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
-
import { executeCircuitWithReturnWitness
|
|
2
|
+
import { executeCircuitWithReturnWitness } from '@noir-lang/acvm_js';
|
|
3
3
|
import { resolveOpcodeLocations, traverseCauseChain } from '../common/errors.js';
|
|
4
4
|
/**
|
|
5
5
|
* The function call that executes an ACIR.
|
|
6
|
-
*/
|
|
7
|
-
export async function acvm(acir, initialWitness, callback) {
|
|
6
|
+
*/ export async function acvm(acir, initialWitness, callback) {
|
|
8
7
|
const logger = createLogger('simulator:acvm');
|
|
9
|
-
const solvedAndReturnWitness = await executeCircuitWithReturnWitness(acir, initialWitness, async (name, args)
|
|
8
|
+
const solvedAndReturnWitness = await executeCircuitWithReturnWitness(acir, initialWitness, async (name, args)=>{
|
|
10
9
|
try {
|
|
11
10
|
logger.debug(`Oracle callback ${name}`);
|
|
12
11
|
const oracleFunction = callback[name];
|
|
@@ -16,46 +15,46 @@ export async function acvm(acir, initialWitness, callback) {
|
|
|
16
15
|
const result = await oracleFunction.call(callback, ...args);
|
|
17
16
|
if (typeof result === 'undefined') {
|
|
18
17
|
return [];
|
|
19
|
-
}
|
|
20
|
-
else if (result instanceof Array && !result.every(item => typeof item === 'string')) {
|
|
18
|
+
} else if (result instanceof Array && !result.every((item)=>typeof item === 'string')) {
|
|
21
19
|
// We are dealing with a nested array which means that we do not need it wrap it in another array as to have
|
|
22
20
|
// the nested array structure it is already "wrapped".
|
|
23
21
|
return result;
|
|
22
|
+
} else {
|
|
23
|
+
return [
|
|
24
|
+
result
|
|
25
|
+
];
|
|
24
26
|
}
|
|
25
|
-
|
|
26
|
-
return [result];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
catch (err) {
|
|
27
|
+
} catch (err) {
|
|
30
28
|
let typedError;
|
|
31
29
|
if (err instanceof Error) {
|
|
32
30
|
typedError = err;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
31
|
+
} else {
|
|
35
32
|
typedError = new Error(`Error in oracle callback ${err}`);
|
|
36
33
|
}
|
|
37
34
|
logger.error(`Error in oracle callback ${name}: ${typedError.message}`);
|
|
38
35
|
throw typedError;
|
|
39
36
|
}
|
|
40
|
-
}).catch((err)
|
|
37
|
+
}).catch((err)=>{
|
|
41
38
|
// Wasm callbacks act as a boundary for stack traces, so we capture it here and complete the error if it happens.
|
|
42
39
|
const stack = new Error().stack;
|
|
43
|
-
traverseCauseChain(err, cause
|
|
40
|
+
traverseCauseChain(err, (cause)=>{
|
|
44
41
|
if (cause.stack) {
|
|
45
42
|
cause.stack += stack;
|
|
46
43
|
}
|
|
47
44
|
});
|
|
48
45
|
throw err;
|
|
49
46
|
});
|
|
50
|
-
return {
|
|
47
|
+
return {
|
|
48
|
+
partialWitness: solvedAndReturnWitness.solvedWitness,
|
|
49
|
+
returnWitness: solvedAndReturnWitness.returnWitness
|
|
50
|
+
};
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
53
|
* Extracts the call stack from an thrown by the acvm.
|
|
54
54
|
* @param error - The error to extract from.
|
|
55
55
|
* @param debug - The debug metadata of the function called.
|
|
56
56
|
* @returns The call stack, if available.
|
|
57
|
-
*/
|
|
58
|
-
export function extractCallStack(error, debug) {
|
|
57
|
+
*/ export function extractCallStack(error, debug) {
|
|
59
58
|
if (!('callStack' in error) || !error.callStack) {
|
|
60
59
|
return undefined;
|
|
61
60
|
}
|
|
@@ -65,9 +64,7 @@ export function extractCallStack(error, debug) {
|
|
|
65
64
|
}
|
|
66
65
|
try {
|
|
67
66
|
return resolveOpcodeLocations(callStack, debug, brilligFunctionId);
|
|
68
|
-
}
|
|
69
|
-
catch (err) {
|
|
67
|
+
} catch (err) {
|
|
70
68
|
return callStack;
|
|
71
69
|
}
|
|
72
70
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3ZtL2Fjdm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFJTCwrQkFBK0IsR0FDaEMsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlDakY7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLElBQUksQ0FDeEIsSUFBWSxFQUNaLGNBQTJCLEVBQzNCLFFBQXNCO0lBRXRCLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTlDLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSwrQkFBK0IsQ0FDbEUsSUFBSSxFQUNKLGNBQWMsRUFDZCxLQUFLLEVBQUUsSUFBWSxFQUFFLElBQXdCLEVBQUUsRUFBRTtRQUMvQyxJQUFJLENBQUM7WUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFvQixDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixJQUFJLFlBQVksQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFFNUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDbEMsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO2lCQUFNLElBQUksTUFBTSxZQUFZLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUN0Riw0R0FBNEc7Z0JBQzVHLHNEQUFzRDtnQkFDdEQsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxNQUFNLENBQXdCLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxVQUFpQixDQUFDO1lBQ3RCLElBQUksR0FBRyxZQUFZLEtBQUssRUFBRSxDQUFDO2dCQUN6QixVQUFVLEdBQUcsR0FBRyxDQUFDO1lBQ25CLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsNEJBQTRCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLElBQUksS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RSxNQUFNLFVBQVUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQyxDQUNGLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBVSxFQUFFLEVBQUU7UUFDckIsaUhBQWlIO1FBQ2pILE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBRWhDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxHQUFHLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sRUFBRSxjQUFjLEVBQUUsc0JBQXNCLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztBQUN2SCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQTZCLEVBQzdCLEtBQTZCO0lBRTdCLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUMvQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyJ9
|
package/dest/acvm/acvm_types.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The format for witnesses of the ACVM.
|
|
3
|
+
*/ export { };
|
package/dest/acvm/deserialize.js
CHANGED
|
@@ -3,8 +3,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
3
3
|
* Converts an ACVM field to a Fr.
|
|
4
4
|
* @param field - The ACVM field to convert.
|
|
5
5
|
* @returns The Fr.
|
|
6
|
-
*/
|
|
7
|
-
export function fromACVMField(field) {
|
|
6
|
+
*/ export function fromACVMField(field) {
|
|
8
7
|
return Fr.fromBuffer(Buffer.from(field.slice(2), 'hex'));
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
@@ -12,15 +11,13 @@ export function fromACVMField(field) {
|
|
|
12
11
|
* @param fr - The field to convert.
|
|
13
12
|
* @returns The number.
|
|
14
13
|
* TODO(#4102): Nuke this once block number is big int.
|
|
15
|
-
*/
|
|
16
|
-
export function frToNumber(fr) {
|
|
14
|
+
*/ export function frToNumber(fr) {
|
|
17
15
|
return Number(fr.value);
|
|
18
16
|
}
|
|
19
17
|
/**
|
|
20
18
|
* Converts a field to a boolean.
|
|
21
19
|
* @param fr - The field to convert.
|
|
22
|
-
*/
|
|
23
|
-
export function frToBoolean(fr) {
|
|
20
|
+
*/ export function frToBoolean(fr) {
|
|
24
21
|
return fr.toBigInt() === BigInt(1);
|
|
25
22
|
}
|
|
26
23
|
/**
|
|
@@ -30,17 +27,16 @@ export function frToBoolean(fr) {
|
|
|
30
27
|
* @param storage The array with the BoundedVec's storage (i.e. BoundedVec::storage())
|
|
31
28
|
* @param length The length of the BoundedVec (i.e. BoundedVec::len())
|
|
32
29
|
* @returns An array with the same content as the Noir version. Elements past the length are discarded.
|
|
33
|
-
*/
|
|
34
|
-
export function fromBoundedVec(storage, length) {
|
|
30
|
+
*/ export function fromBoundedVec(storage, length) {
|
|
35
31
|
return storage.slice(0, frToNumber(fromACVMField(length))).map(fromACVMField);
|
|
36
32
|
}
|
|
37
33
|
/**
|
|
38
34
|
* Transforms a witness map to its field elements.
|
|
39
35
|
* @param witness - The witness to extract from.
|
|
40
36
|
* @returns The return values.
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
*/ export function witnessMapToFields(witness) {
|
|
38
|
+
const sortedKeys = [
|
|
39
|
+
...witness.keys()
|
|
40
|
+
].sort((a, b)=>a - b);
|
|
41
|
+
return sortedKeys.map((key)=>witness.get(key)).map(fromACVMField);
|
|
45
42
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN2bS9kZXNlcmlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJOUM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBZ0I7SUFDNUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsRUFBTTtJQUMvQixPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsRUFBTTtJQUNoQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9CLEVBQUUsTUFBaUI7SUFDcEUsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBb0I7SUFDckQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3JFLENBQUMifQ==
|
package/dest/acvm/index.js
CHANGED
|
@@ -3,4 +3,3 @@ export * from './acvm_types.js';
|
|
|
3
3
|
export * from './deserialize.js';
|
|
4
4
|
export * from './oracle/index.js';
|
|
5
5
|
export * from './serialize.js';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN2bS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQStDLE1BQU0sV0FBVyxDQUFDO0FBQzFGLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUMifQ==
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
export * from './oracle.js';
|
|
2
2
|
export * from './typed_oracle.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWN2bS9vcmFjbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQyJ9
|
|
@@ -6,9 +6,9 @@ import { frToBoolean, frToNumber, fromACVMField, fromBoundedVec } from '../deser
|
|
|
6
6
|
import { toACVMField } from '../serialize.js';
|
|
7
7
|
/**
|
|
8
8
|
* A data source that has all the apis required by Aztec.nr.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
constructor(typedOracle)
|
|
9
|
+
*/ export class Oracle {
|
|
10
|
+
typedOracle;
|
|
11
|
+
constructor(typedOracle){
|
|
12
12
|
this.typedOracle = typedOracle;
|
|
13
13
|
}
|
|
14
14
|
getRandomField() {
|
|
@@ -38,7 +38,12 @@ export class Oracle {
|
|
|
38
38
|
}
|
|
39
39
|
async getKeyValidationRequest([pkMHash]) {
|
|
40
40
|
const { pkM, skApp } = await this.typedOracle.getKeyValidationRequest(fromACVMField(pkMHash));
|
|
41
|
-
return [
|
|
41
|
+
return [
|
|
42
|
+
toACVMField(pkM.x),
|
|
43
|
+
toACVMField(pkM.y),
|
|
44
|
+
toACVMField(pkM.isInfinite),
|
|
45
|
+
toACVMField(skApp)
|
|
46
|
+
];
|
|
42
47
|
}
|
|
43
48
|
async getContractInstance([address]) {
|
|
44
49
|
const instance = await this.typedOracle.getContractInstance(AztecAddress.fromField(fromACVMField(address)));
|
|
@@ -47,7 +52,7 @@ export class Oracle {
|
|
|
47
52
|
instance.deployer,
|
|
48
53
|
instance.contractClassId,
|
|
49
54
|
instance.initializationHash,
|
|
50
|
-
...instance.publicKeys.toFields()
|
|
55
|
+
...instance.publicKeys.toFields()
|
|
51
56
|
].map(toACVMField);
|
|
52
57
|
}
|
|
53
58
|
async getMembershipWitness([blockNumber], [treeId], [leafValue]) {
|
|
@@ -113,27 +118,34 @@ export class Oracle {
|
|
|
113
118
|
async getPublicKeysAndPartialAddress([address]) {
|
|
114
119
|
const parsedAddress = AztecAddress.fromField(fromACVMField(address));
|
|
115
120
|
const { publicKeys, partialAddress } = await this.typedOracle.getCompleteAddress(parsedAddress);
|
|
116
|
-
return [
|
|
121
|
+
return [
|
|
122
|
+
...publicKeys.toFields(),
|
|
123
|
+
partialAddress
|
|
124
|
+
].map(toACVMField);
|
|
117
125
|
}
|
|
118
126
|
async getNotes([storageSlot], [numSelects], selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, [limit], [offset], [status], [returnSize]) {
|
|
119
|
-
const noteDatas = await this.typedOracle.getNotes(fromACVMField(storageSlot), +numSelects, selectByIndexes.map(s
|
|
127
|
+
const noteDatas = await this.typedOracle.getNotes(fromACVMField(storageSlot), +numSelects, selectByIndexes.map((s)=>+s), selectByOffsets.map((s)=>+s), selectByLengths.map((s)=>+s), selectValues.map(fromACVMField), selectComparators.map((s)=>+s), sortByIndexes.map((s)=>+s), sortByOffsets.map((s)=>+s), sortByLengths.map((s)=>+s), sortOrder.map((s)=>+s), +limit, +offset, +status);
|
|
120
128
|
const noteLength = noteDatas?.[0]?.note.items.length ?? 0;
|
|
121
|
-
if (!noteDatas.every(({ note })
|
|
129
|
+
if (!noteDatas.every(({ note })=>noteLength === note.items.length)) {
|
|
122
130
|
throw new Error('Notes should all be the same length.');
|
|
123
131
|
}
|
|
124
132
|
const contractAddress = noteDatas[0]?.contractAddress ?? Fr.ZERO;
|
|
125
133
|
// Values indicates whether the note is settled or transient.
|
|
126
134
|
const noteTypes = {
|
|
127
135
|
isSettled: new Fr(0),
|
|
128
|
-
isTransient: new Fr(1)
|
|
136
|
+
isTransient: new Fr(1)
|
|
129
137
|
};
|
|
130
|
-
const flattenData = noteDatas.flatMap(({ nonce, note, index })
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
138
|
+
const flattenData = noteDatas.flatMap(({ nonce, note, index })=>[
|
|
139
|
+
nonce,
|
|
140
|
+
index === undefined ? noteTypes.isTransient : noteTypes.isSettled,
|
|
141
|
+
...note.items
|
|
142
|
+
]);
|
|
135
143
|
const returnFieldSize = +returnSize;
|
|
136
|
-
const returnData = [
|
|
144
|
+
const returnData = [
|
|
145
|
+
noteDatas.length,
|
|
146
|
+
contractAddress,
|
|
147
|
+
...flattenData
|
|
148
|
+
].map((v)=>toACVMField(v));
|
|
137
149
|
if (returnData.length > returnFieldSize) {
|
|
138
150
|
throw new Error(`Return data size too big. Maximum ${returnFieldSize} fields. Got ${flattenData.length}.`);
|
|
139
151
|
}
|
|
@@ -169,19 +181,22 @@ export class Oracle {
|
|
|
169
181
|
return newValues.map(toACVMField);
|
|
170
182
|
}
|
|
171
183
|
emitContractClassLog([contractAddress], message, [counter]) {
|
|
172
|
-
const logPayload = Buffer.concat(message.map(fromACVMField).map(f
|
|
184
|
+
const logPayload = Buffer.concat(message.map(fromACVMField).map((f)=>f.toBuffer()));
|
|
173
185
|
const log = new UnencryptedL2Log(AztecAddress.fromString(contractAddress), logPayload);
|
|
174
186
|
const logHash = this.typedOracle.emitContractClassLog(log, +counter);
|
|
175
187
|
return toACVMField(logHash);
|
|
176
188
|
}
|
|
177
189
|
debugLog(message, _ignoredFieldsSize, fields) {
|
|
178
|
-
const messageStr = message.map(acvmField
|
|
190
|
+
const messageStr = message.map((acvmField)=>String.fromCharCode(fromACVMField(acvmField).toNumber())).join('');
|
|
179
191
|
const fieldsFr = fields.map(fromACVMField);
|
|
180
192
|
this.typedOracle.debugLog(messageStr, fieldsFr);
|
|
181
193
|
}
|
|
182
194
|
async callPrivateFunction([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
|
|
183
195
|
const { endSideEffectCounter, returnsHash } = await this.typedOracle.callPrivateFunction(AztecAddress.fromField(fromACVMField(contractAddress)), FunctionSelector.fromField(fromACVMField(functionSelector)), fromACVMField(argsHash), frToNumber(fromACVMField(sideEffectCounter)), frToBoolean(fromACVMField(isStaticCall)));
|
|
184
|
-
return [
|
|
196
|
+
return [
|
|
197
|
+
endSideEffectCounter,
|
|
198
|
+
returnsHash
|
|
199
|
+
].map(toACVMField);
|
|
185
200
|
}
|
|
186
201
|
async enqueuePublicFunctionCall([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
|
|
187
202
|
const newArgsHash = await this.typedOracle.enqueuePublicFunctionCall(AztecAddress.fromString(contractAddress), FunctionSelector.fromField(fromACVMField(functionSelector)), fromACVMField(argsHash), frToNumber(fromACVMField(sideEffectCounter)), frToBoolean(fromACVMField(isStaticCall)));
|
|
@@ -220,11 +235,16 @@ export class Oracle {
|
|
|
220
235
|
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
221
236
|
if (values === null) {
|
|
222
237
|
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
223
|
-
return [
|
|
224
|
-
|
|
225
|
-
|
|
238
|
+
return [
|
|
239
|
+
toACVMField(0),
|
|
240
|
+
Array(frToNumber(fromACVMField(tSize))).fill(toACVMField(0))
|
|
241
|
+
];
|
|
242
|
+
} else {
|
|
226
243
|
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
227
|
-
return [
|
|
244
|
+
return [
|
|
245
|
+
toACVMField(1),
|
|
246
|
+
values.map(toACVMField)
|
|
247
|
+
];
|
|
228
248
|
}
|
|
229
249
|
}
|
|
230
250
|
async dbDelete([contractAddress], [slot]) {
|
|
@@ -234,4 +254,3 @@ export class Oracle {
|
|
|
234
254
|
await this.typedOracle.dbCopy(AztecAddress.fromField(fromACVMField(contractAddress)), fromACVMField(srcSlot), fromACVMField(dstSlot), frToNumber(fromACVMField(numEntries)));
|
|
235
255
|
}
|
|
236
256
|
}
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JhY2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Fjdm0vb3JhY2xlL29yYWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxNQUFNO0lBQ2pCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUVoRCxjQUFjO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM5QyxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsd0ZBQXdGO0lBQ3hGLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxPQUFvQixFQUFFLE1BQW1CO1FBQ25FLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDckYsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFdBQVcsQ0FBYztRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDekYsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixPQUFPLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQjtRQUN0QixPQUFPLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE9BQU8sV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE9BQU8sV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxPQUFPLENBQWM7UUFDbEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFOUYsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQWM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RyxPQUFPO1lBQ0wsUUFBUSxDQUFDLElBQUk7WUFDYixRQUFRLENBQUMsUUFBUTtZQUNqQixRQUFRLENBQUMsZUFBZTtZQUN4QixRQUFRLENBQUMsa0JBQWtCO1lBQzNCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7U0FDbEMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FDeEIsQ0FBQyxXQUFXLENBQWMsRUFDMUIsQ0FBQyxNQUFNLENBQWMsRUFDckIsQ0FBQyxTQUFTLENBQWM7UUFFeEIsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzlHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IsUUFBUSxTQUFTLDBCQUEwQixZQUFZLENBQUMsWUFBWSxDQUFDLGFBQWEsaUJBQWlCLEdBQUcsQ0FDdkcsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyw2QkFBNkIsQ0FDakMsQ0FBQyxXQUFXLENBQWMsRUFDMUIsQ0FBQyxTQUFTLENBQWM7UUFFeEIsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxlQUFlLGFBQWEsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQ2pILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxnQ0FBZ0MsQ0FDcEMsQ0FBQyxXQUFXLENBQWMsRUFDMUIsQ0FBQyxTQUFTLENBQWM7UUFFeEIsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM1RyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUNiLGlEQUFpRCxlQUFlLGFBQWEsaUJBQWlCLEdBQUcsQ0FDbEcsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFdBQVcsQ0FBYyxFQUFFLENBQUMsUUFBUSxDQUFjO1FBQ2hGLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUvQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsY0FBYyxhQUFhLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUM3RyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxDQUFjO1FBQzdDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRWpFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsQ0FBYztRQUM3QyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLENBQWM7UUFDekQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVoRyxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUNaLENBQUMsV0FBVyxDQUFjLEVBQzFCLENBQUMsVUFBVSxDQUFjLEVBQ3pCLGVBQTRCLEVBQzVCLGVBQTRCLEVBQzVCLGVBQTRCLEVBQzVCLFlBQXlCLEVBQ3pCLGlCQUE4QixFQUM5QixhQUEwQixFQUMxQixhQUEwQixFQUMxQixhQUEwQixFQUMxQixTQUFzQixFQUN0QixDQUFDLEtBQUssQ0FBYyxFQUNwQixDQUFDLE1BQU0sQ0FBYyxFQUNyQixDQUFDLE1BQU0sQ0FBYyxFQUNyQixDQUFDLFVBQVUsQ0FBYztRQUV6QixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUMvQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQzFCLENBQUMsVUFBVSxFQUNYLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM1QixlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDNUIsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVCLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQy9CLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzlCLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUMxQixhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDMUIsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN0QixDQUFDLEtBQUssRUFDTixDQUFDLE1BQU0sRUFDUCxDQUFDLE1BQU0sQ0FDUixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FB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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
class OracleMethodNotAvailableError extends Error {
|
|
3
|
-
constructor(methodName)
|
|
3
|
+
constructor(methodName){
|
|
4
4
|
super(`Oracle method ${methodName} is not available.`);
|
|
5
5
|
}
|
|
6
6
|
}
|
|
@@ -8,94 +8,93 @@ class OracleMethodNotAvailableError extends Error {
|
|
|
8
8
|
* Oracle with typed parameters and typed return values.
|
|
9
9
|
* Methods that require read and/or write will have to be implemented based on the context (public, private, or view)
|
|
10
10
|
* and are unavailable by default.
|
|
11
|
-
*/
|
|
12
|
-
export class TypedOracle {
|
|
11
|
+
*/ export class TypedOracle {
|
|
13
12
|
getRandomField() {
|
|
14
13
|
return Fr.random();
|
|
15
14
|
}
|
|
16
15
|
storeInExecutionCache(_values) {
|
|
17
|
-
|
|
16
|
+
return Promise.reject(new OracleMethodNotAvailableError('storeInExecutionCache'));
|
|
18
17
|
}
|
|
19
18
|
loadFromExecutionCache(_hash) {
|
|
20
|
-
|
|
19
|
+
return Promise.reject(new OracleMethodNotAvailableError('loadFromExecutionCache'));
|
|
21
20
|
}
|
|
22
21
|
getBlockNumber() {
|
|
23
|
-
|
|
22
|
+
return Promise.reject(new OracleMethodNotAvailableError('getBlockNumber'));
|
|
24
23
|
}
|
|
25
24
|
getContractAddress() {
|
|
26
|
-
|
|
25
|
+
return Promise.reject(new OracleMethodNotAvailableError('getContractAddress'));
|
|
27
26
|
}
|
|
28
27
|
getChainId() {
|
|
29
|
-
|
|
28
|
+
return Promise.reject(new OracleMethodNotAvailableError('getChainId'));
|
|
30
29
|
}
|
|
31
30
|
getVersion() {
|
|
32
|
-
|
|
31
|
+
return Promise.reject(new OracleMethodNotAvailableError('getVersion'));
|
|
33
32
|
}
|
|
34
33
|
getKeyValidationRequest(_pkMHash) {
|
|
35
|
-
|
|
34
|
+
return Promise.reject(new OracleMethodNotAvailableError('getKeyValidationRequest'));
|
|
36
35
|
}
|
|
37
36
|
getContractInstance(_address) {
|
|
38
|
-
|
|
37
|
+
return Promise.reject(new OracleMethodNotAvailableError('getContractInstance'));
|
|
39
38
|
}
|
|
40
39
|
getMembershipWitness(_blockNumber, _treeId, _leafValue) {
|
|
41
|
-
|
|
40
|
+
return Promise.reject(new OracleMethodNotAvailableError('getMembershipWitness'));
|
|
42
41
|
}
|
|
43
42
|
getNullifierMembershipWitness(_blockNumber, _nullifier) {
|
|
44
|
-
|
|
43
|
+
return Promise.reject(new OracleMethodNotAvailableError('getNullifierMembershipWitness'));
|
|
45
44
|
}
|
|
46
45
|
getPublicDataTreeWitness(_blockNumber, _leafSlot) {
|
|
47
|
-
|
|
46
|
+
return Promise.reject(new OracleMethodNotAvailableError('getPublicDataTreeWitness'));
|
|
48
47
|
}
|
|
49
48
|
getLowNullifierMembershipWitness(_blockNumber, _nullifier) {
|
|
50
|
-
|
|
49
|
+
return Promise.reject(new OracleMethodNotAvailableError('getLowNullifierMembershipWitness'));
|
|
51
50
|
}
|
|
52
51
|
getBlockHeader(_blockNumber) {
|
|
53
|
-
|
|
52
|
+
return Promise.reject(new OracleMethodNotAvailableError('getBlockHeader'));
|
|
54
53
|
}
|
|
55
54
|
getCompleteAddress(_account) {
|
|
56
|
-
|
|
55
|
+
return Promise.reject(new OracleMethodNotAvailableError('getCompleteAddress'));
|
|
57
56
|
}
|
|
58
57
|
getAuthWitness(_messageHash) {
|
|
59
|
-
|
|
58
|
+
return Promise.reject(new OracleMethodNotAvailableError('getAuthWitness'));
|
|
60
59
|
}
|
|
61
60
|
popCapsule() {
|
|
62
|
-
|
|
61
|
+
return Promise.reject(new OracleMethodNotAvailableError('popCapsule'));
|
|
63
62
|
}
|
|
64
63
|
getNotes(_storageSlot, _numSelects, _selectByIndexes, _selectByOffsets, _selectByLengths, _selectValues, _selectComparators, _sortByIndexes, _sortByOffsets, _sortByLengths, _sortOrder, _limit, _offset, _status) {
|
|
65
|
-
|
|
64
|
+
return Promise.reject(new OracleMethodNotAvailableError('getNotes'));
|
|
66
65
|
}
|
|
67
66
|
notifyCreatedNote(_storageSlot, _noteTypeId, _note, _noteHash, _counter) {
|
|
68
67
|
throw new OracleMethodNotAvailableError('notifyCreatedNote');
|
|
69
68
|
}
|
|
70
69
|
notifyNullifiedNote(_innerNullifier, _noteHash, _counter) {
|
|
71
|
-
|
|
70
|
+
return Promise.reject(new OracleMethodNotAvailableError('notifyNullifiedNote'));
|
|
72
71
|
}
|
|
73
72
|
notifyCreatedNullifier(_innerNullifier) {
|
|
74
|
-
|
|
73
|
+
return Promise.reject(new OracleMethodNotAvailableError('notifyCreatedNullifier'));
|
|
75
74
|
}
|
|
76
75
|
checkNullifierExists(_innerNullifier) {
|
|
77
|
-
|
|
76
|
+
return Promise.reject(new OracleMethodNotAvailableError('checkNullifierExists'));
|
|
78
77
|
}
|
|
79
78
|
getL1ToL2MembershipWitness(_contractAddress, _messageHash, _secret) {
|
|
80
|
-
|
|
79
|
+
return Promise.reject(new OracleMethodNotAvailableError('getL1ToL2MembershipWitness'));
|
|
81
80
|
}
|
|
82
81
|
storageRead(_contractAddress, _startStorageSlot, _blockNumber, _numberOfElements) {
|
|
83
|
-
|
|
82
|
+
return Promise.reject(new OracleMethodNotAvailableError('storageRead'));
|
|
84
83
|
}
|
|
85
84
|
storageWrite(_startStorageSlot, _values) {
|
|
86
|
-
|
|
85
|
+
return Promise.reject(new OracleMethodNotAvailableError('storageWrite'));
|
|
87
86
|
}
|
|
88
87
|
emitContractClassLog(_log, _counter) {
|
|
89
88
|
throw new OracleMethodNotAvailableError('emitContractClassUnencryptedLog');
|
|
90
89
|
}
|
|
91
90
|
callPrivateFunction(_targetContractAddress, _functionSelector, _argsHash, _sideEffectCounter, _isStaticCall) {
|
|
92
|
-
|
|
91
|
+
return Promise.reject(new OracleMethodNotAvailableError('callPrivateFunction'));
|
|
93
92
|
}
|
|
94
93
|
enqueuePublicFunctionCall(_targetContractAddress, _functionSelector, _argsHash, _sideEffectCounter, _isStaticCall) {
|
|
95
|
-
|
|
94
|
+
return Promise.reject(new OracleMethodNotAvailableError('enqueuePublicFunctionCall'));
|
|
96
95
|
}
|
|
97
96
|
setPublicTeardownFunctionCall(_targetContractAddress, _functionSelector, _argsHash, _sideEffectCounter, _isStaticCall) {
|
|
98
|
-
|
|
97
|
+
return Promise.reject(new OracleMethodNotAvailableError('setPublicTeardownFunctionCall'));
|
|
99
98
|
}
|
|
100
99
|
notifySetMinRevertibleSideEffectCounter(_minRevertibleSideEffectCounter) {
|
|
101
100
|
throw new OracleMethodNotAvailableError('notifySetMinRevertibleSideEffectCounter');
|
|
@@ -104,28 +103,27 @@ export class TypedOracle {
|
|
|
104
103
|
throw new OracleMethodNotAvailableError('debugLog');
|
|
105
104
|
}
|
|
106
105
|
getIndexedTaggingSecretAsSender(_sender, _recipient) {
|
|
107
|
-
|
|
106
|
+
return Promise.reject(new OracleMethodNotAvailableError('getIndexedTaggingSecretAsSender'));
|
|
108
107
|
}
|
|
109
108
|
incrementAppTaggingSecretIndexAsSender(_sender, _recipient) {
|
|
110
|
-
|
|
109
|
+
return Promise.reject(new OracleMethodNotAvailableError('incrementAppTaggingSecretIndexAsSender'));
|
|
111
110
|
}
|
|
112
111
|
syncNotes() {
|
|
113
|
-
|
|
112
|
+
return Promise.reject(new OracleMethodNotAvailableError('syncNotes'));
|
|
114
113
|
}
|
|
115
114
|
deliverNote(_contractAddress, _storageSlot, _nonce, _content, _noteHash, _nullifier, _txHash, _recipient) {
|
|
116
|
-
|
|
115
|
+
return Promise.reject(new OracleMethodNotAvailableError('deliverNote'));
|
|
117
116
|
}
|
|
118
117
|
dbStore(_contractAddress, _key, _values) {
|
|
119
|
-
|
|
118
|
+
return Promise.reject(new OracleMethodNotAvailableError('dbStore'));
|
|
120
119
|
}
|
|
121
120
|
dbLoad(_contractAddress, _key) {
|
|
122
|
-
|
|
121
|
+
return Promise.reject(new OracleMethodNotAvailableError('dbLoad'));
|
|
123
122
|
}
|
|
124
123
|
dbDelete(_contractAddress, _key) {
|
|
125
|
-
|
|
124
|
+
return Promise.reject(new OracleMethodNotAvailableError('dbDelete'));
|
|
126
125
|
}
|
|
127
126
|
dbCopy(_contractAddress, _srcKey, _dstKey, _numEntries) {
|
|
128
|
-
|
|
127
|
+
return Promise.reject(new OracleMethodNotAvailableError('dbCopy'));
|
|
129
128
|
}
|
|
130
129
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRfb3JhY2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Fjdm0vb3JhY2xlL3R5cGVkX29yYWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBd0I5QyxNQUFNLDZCQUE4QixTQUFRLEtBQUs7SUFDL0MsWUFBWSxVQUFrQjtRQUM1QixLQUFLLENBQUMsaUJBQWlCLFVBQVUsb0JBQW9CLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFnQixXQUFXO0lBQy9CLGNBQWM7UUFDWixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQscUJBQXFCLENBQUMsT0FBYTtRQUNqQyxNQUFNLElBQUksNkJBQTZCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBUztRQUM5QixNQUFNLElBQUksNkJBQTZCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sSUFBSSw2QkFBNkIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxJQUFJLDZCQUE2QixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLElBQUksNkJBQTZCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLElBQUksNkJBQTZCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQVk7UUFDbEMsTUFBTSxJQUFJLDZCQUE2QixDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELG1CQUFtQixDQUFDLFFBQXNCO1FBQ3hDLE1BQU0s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
|
package/dest/acvm/serialize.js
CHANGED
|
@@ -3,8 +3,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
3
3
|
* Adapts the buffer to the field size.
|
|
4
4
|
* @param originalBuf - The buffer to adapt.
|
|
5
5
|
* @returns The adapted buffer.
|
|
6
|
-
*/
|
|
7
|
-
function adaptBufferSize(originalBuf) {
|
|
6
|
+
*/ function adaptBufferSize(originalBuf) {
|
|
8
7
|
const buffer = Buffer.alloc(Fr.SIZE_IN_BYTES);
|
|
9
8
|
if (originalBuf.length > buffer.length) {
|
|
10
9
|
throw new Error('Buffer does not fit in field');
|
|
@@ -16,19 +15,15 @@ function adaptBufferSize(originalBuf) {
|
|
|
16
15
|
* Converts a value to an ACVM field.
|
|
17
16
|
* @param value - The value to convert.
|
|
18
17
|
* @returns The ACVM field.
|
|
19
|
-
*/
|
|
20
|
-
export function toACVMField(value) {
|
|
18
|
+
*/ export function toACVMField(value) {
|
|
21
19
|
let buffer;
|
|
22
20
|
if (Buffer.isBuffer(value)) {
|
|
23
21
|
buffer = value;
|
|
24
|
-
}
|
|
25
|
-
else if (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'bigint') {
|
|
22
|
+
} else if (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'bigint') {
|
|
26
23
|
buffer = new Fr(value).toBuffer();
|
|
27
|
-
}
|
|
28
|
-
else if (typeof value === 'string') {
|
|
24
|
+
} else if (typeof value === 'string') {
|
|
29
25
|
buffer = Fr.fromHexString(value).toBuffer();
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
26
|
+
} else {
|
|
32
27
|
buffer = value.toBuffer();
|
|
33
28
|
}
|
|
34
29
|
return `0x${adaptBufferSize(buffer).toString('hex')}`;
|
|
@@ -38,11 +33,9 @@ export function toACVMField(value) {
|
|
|
38
33
|
* @param witnessStartIndex - The index where to start inserting the fields.
|
|
39
34
|
* @param fields - The fields to insert.
|
|
40
35
|
* @returns The witness.
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
return fields.reduce((witness, field, index) => {
|
|
36
|
+
*/ export function toACVMWitness(witnessStartIndex, fields) {
|
|
37
|
+
return fields.reduce((witness, field, index)=>{
|
|
44
38
|
witness.set(index + witnessStartIndex, toACVMField(field));
|
|
45
39
|
return witness;
|
|
46
40
|
}, new Map());
|
|
47
41
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Fjdm0vc2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUk5Qzs7OztHQUlHO0FBQ0gsU0FBUyxlQUFlLENBQUMsV0FBbUI7SUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDekIsS0FBc0Y7SUFFdEYsSUFBSSxNQUFNLENBQUM7SUFDWCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLENBQUM7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTyxLQUFLLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUN4RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLGlCQUF5QixFQUFFLE1BQTJDO0lBQ2xHLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFxQixDQUFDLENBQUM7QUFDbkMsQ0FBQyJ9
|