@aztec/simulator 0.62.0 → 0.63.0
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.d.ts +2 -16
- package/dest/acvm/acvm.d.ts.map +1 -1
- package/dest/acvm/acvm.js +2 -70
- package/dest/acvm/oracle/oracle.d.ts +4 -4
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +10 -11
- package/dest/acvm/oracle/typed_oracle.d.ts +5 -5
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +8 -8
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +2 -1
- package/dest/avm/avm_machine_state.d.ts +27 -8
- package/dest/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/avm/avm_machine_state.js +6 -10
- package/dest/avm/avm_memory_types.d.ts +8 -0
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +5 -1
- package/dest/avm/avm_simulator.d.ts +2 -19
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +12 -14
- package/dest/avm/avm_tree.d.ts +249 -0
- package/dest/avm/avm_tree.d.ts.map +1 -0
- package/dest/avm/avm_tree.js +637 -0
- package/dest/avm/errors.d.ts +4 -17
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +21 -50
- package/dest/avm/fixtures/index.d.ts +7 -2
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +12 -12
- package/dest/avm/index.d.ts +1 -0
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +2 -1
- package/dest/avm/journal/journal.d.ts +43 -24
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +172 -39
- package/dest/avm/journal/nullifiers.d.ts +5 -4
- package/dest/avm/journal/nullifiers.d.ts.map +1 -1
- package/dest/avm/journal/nullifiers.js +2 -3
- package/dest/avm/journal/public_storage.d.ts +6 -5
- package/dest/avm/journal/public_storage.d.ts.map +1 -1
- package/dest/avm/journal/public_storage.js +1 -1
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +4 -10
- package/dest/avm/opcodes/arithmetic.d.ts +4 -1
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +18 -4
- package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/avm/opcodes/bitwise.js +1 -3
- package/dest/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/avm/opcodes/comparators.js +1 -2
- package/dest/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/avm/opcodes/contract.js +2 -3
- package/dest/avm/opcodes/control_flow.d.ts +4 -0
- package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/avm/opcodes/control_flow.js +21 -6
- package/dest/avm/opcodes/conversion.d.ts.map +1 -1
- package/dest/avm/opcodes/conversion.js +1 -2
- package/dest/avm/opcodes/ec_add.d.ts.map +1 -1
- package/dest/avm/opcodes/ec_add.js +5 -11
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +1 -2
- package/dest/avm/opcodes/external_calls.d.ts +4 -2
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +38 -22
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +1 -4
- package/dest/avm/opcodes/instruction.d.ts +4 -0
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +7 -1
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +1 -7
- package/dest/avm/opcodes/misc.js +3 -3
- package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -1
- package/dest/avm/opcodes/multi_scalar_mul.js +6 -5
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +2 -4
- package/dest/avm/serialization/bytecode_serialization.d.ts +1 -6
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +24 -20
- package/dest/client/client_execution_context.d.ts +7 -11
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +18 -20
- package/dest/client/db_oracle.d.ts +17 -10
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/db_oracle.js +1 -1
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +5 -4
- package/dest/client/unconstrained_execution.d.ts.map +1 -1
- package/dest/client/unconstrained_execution.js +3 -2
- package/dest/client/view_data_oracle.d.ts +6 -12
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +10 -12
- package/dest/common/errors.d.ts +15 -2
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/errors.js +85 -4
- package/dest/mocks/fixtures.d.ts +9 -28
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +12 -57
- package/dest/public/dual_side_effect_trace.d.ts +34 -26
- package/dest/public/dual_side_effect_trace.d.ts.map +1 -1
- package/dest/public/dual_side_effect_trace.js +48 -36
- package/dest/public/enqueued_call_side_effect_trace.d.ts +96 -33
- package/dest/public/enqueued_call_side_effect_trace.d.ts.map +1 -1
- package/dest/public/enqueued_call_side_effect_trace.js +212 -138
- package/dest/public/execution.d.ts +50 -17
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +1 -29
- package/dest/public/executor.d.ts +28 -11
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +33 -33
- package/dest/public/index.d.ts +4 -5
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +4 -5
- package/dest/public/public_db_sources.d.ts +1 -0
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +12 -5
- package/dest/public/public_processor.d.ts +7 -11
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +60 -42
- package/dest/public/public_processor_metrics.d.ts +3 -3
- package/dest/public/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor_metrics.js +1 -1
- package/dest/public/public_tx_context.d.ts +130 -0
- package/dest/public/public_tx_context.d.ts.map +1 -0
- package/dest/public/public_tx_context.js +293 -0
- package/dest/public/public_tx_simulator.d.ts +36 -0
- package/dest/public/public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator.js +148 -0
- package/dest/public/side_effect_trace.d.ts +30 -15
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +70 -16
- package/dest/public/side_effect_trace_interface.d.ts +43 -12
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/transitional_adapters.d.ts +9 -0
- package/dest/public/transitional_adapters.d.ts.map +1 -0
- package/dest/public/transitional_adapters.js +127 -0
- package/dest/public/utils.d.ts +5 -0
- package/dest/public/utils.d.ts.map +1 -0
- package/dest/public/utils.js +30 -0
- package/package.json +12 -9
- package/src/acvm/acvm.ts +3 -94
- package/src/acvm/oracle/oracle.ts +9 -14
- package/src/acvm/oracle/typed_oracle.ts +8 -8
- package/src/avm/avm_gas.ts +1 -0
- package/src/avm/avm_machine_state.ts +28 -12
- package/src/avm/avm_memory_types.ts +5 -0
- package/src/avm/avm_simulator.ts +13 -16
- package/src/avm/avm_tree.ts +785 -0
- package/src/avm/errors.ts +25 -48
- package/src/avm/fixtures/index.ts +16 -12
- package/src/avm/index.ts +1 -0
- package/src/avm/journal/journal.ts +291 -52
- package/src/avm/journal/nullifiers.ts +7 -7
- package/src/avm/journal/public_storage.ts +5 -5
- package/src/avm/opcodes/accrued_substate.ts +3 -9
- package/src/avm/opcodes/arithmetic.ts +26 -4
- package/src/avm/opcodes/bitwise.ts +0 -2
- package/src/avm/opcodes/comparators.ts +0 -1
- package/src/avm/opcodes/contract.ts +1 -2
- package/src/avm/opcodes/control_flow.ts +24 -5
- package/src/avm/opcodes/conversion.ts +0 -1
- package/src/avm/opcodes/ec_add.ts +6 -9
- package/src/avm/opcodes/environment_getters.ts +0 -1
- package/src/avm/opcodes/external_calls.ts +39 -21
- package/src/avm/opcodes/hashing.ts +0 -3
- package/src/avm/opcodes/instruction.ts +7 -0
- package/src/avm/opcodes/memory.ts +0 -6
- package/src/avm/opcodes/misc.ts +2 -2
- package/src/avm/opcodes/multi_scalar_mul.ts +5 -4
- package/src/avm/opcodes/storage.ts +1 -3
- package/src/avm/serialization/bytecode_serialization.ts +31 -22
- package/src/client/client_execution_context.ts +22 -23
- package/src/client/db_oracle.ts +22 -11
- package/src/client/private_execution.ts +5 -4
- package/src/client/unconstrained_execution.ts +2 -1
- package/src/client/view_data_oracle.ts +14 -13
- package/src/common/errors.ts +119 -3
- package/src/mocks/fixtures.ts +15 -106
- package/src/public/dual_side_effect_trace.ts +138 -50
- package/src/public/enqueued_call_side_effect_trace.ts +352 -212
- package/src/public/execution.ts +58 -42
- package/src/public/executor.ts +52 -67
- package/src/public/index.ts +7 -5
- package/src/public/public_db_sources.ts +12 -4
- package/src/public/public_processor.ts +111 -73
- package/src/public/public_processor_metrics.ts +3 -3
- package/src/public/public_tx_context.ts +411 -0
- package/src/public/public_tx_simulator.ts +232 -0
- package/src/public/side_effect_trace.ts +154 -28
- package/src/public/side_effect_trace_interface.ts +92 -14
- package/src/public/transitional_adapters.ts +347 -0
- package/src/public/utils.ts +32 -0
- package/dest/public/enqueued_call_simulator.d.ts +0 -43
- package/dest/public/enqueued_call_simulator.d.ts.map +0 -1
- package/dest/public/enqueued_call_simulator.js +0 -156
- package/dest/public/enqueued_calls_processor.d.ts +0 -43
- package/dest/public/enqueued_calls_processor.d.ts.map +0 -1
- package/dest/public/enqueued_calls_processor.js +0 -209
- package/dest/public/hints_builder.d.ts +0 -29
- package/dest/public/hints_builder.d.ts.map +0 -1
- package/dest/public/hints_builder.js +0 -75
- package/dest/public/public_kernel.d.ts +0 -30
- package/dest/public/public_kernel.d.ts.map +0 -1
- package/dest/public/public_kernel.js +0 -67
- package/dest/public/public_kernel_circuit_simulator.d.ts +0 -25
- package/dest/public/public_kernel_circuit_simulator.d.ts.map +0 -1
- package/dest/public/public_kernel_circuit_simulator.js +0 -2
- package/dest/public/public_kernel_tail_simulator.d.ts +0 -15
- package/dest/public/public_kernel_tail_simulator.d.ts.map +0 -1
- package/dest/public/public_kernel_tail_simulator.js +0 -39
- package/src/public/enqueued_call_simulator.ts +0 -360
- package/src/public/enqueued_calls_processor.ts +0 -372
- package/src/public/hints_builder.ts +0 -168
- package/src/public/public_kernel.ts +0 -100
- package/src/public/public_kernel_circuit_simulator.ts +0 -32
- package/src/public/public_kernel_tail_simulator.ts +0 -97
package/dest/avm/errors.d.ts
CHANGED
|
@@ -11,6 +11,9 @@ export declare abstract class AvmExecutionError extends Error {
|
|
|
11
11
|
export declare class NoBytecodeForContractError extends AvmExecutionError {
|
|
12
12
|
constructor(contractAddress: AztecAddress);
|
|
13
13
|
}
|
|
14
|
+
export declare class ArithmeticError extends AvmExecutionError {
|
|
15
|
+
constructor(message: string);
|
|
16
|
+
}
|
|
14
17
|
/**
|
|
15
18
|
* Error is thrown when the program counter goes to an invalid location.
|
|
16
19
|
* There is no instruction at the provided pc
|
|
@@ -42,15 +45,6 @@ export declare class OutOfGasError extends AvmExecutionError {
|
|
|
42
45
|
export declare class StaticCallAlterationError extends InstructionExecutionError {
|
|
43
46
|
constructor();
|
|
44
47
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Error thrown to propagate a nested call's revert.
|
|
47
|
-
* @param message - the error's message
|
|
48
|
-
* @param nestedError - the revert reason of the nested call
|
|
49
|
-
*/
|
|
50
|
-
export declare class RethrownError extends AvmExecutionError {
|
|
51
|
-
nestedError: AvmRevertReason;
|
|
52
|
-
constructor(message: string, nestedError: AvmRevertReason);
|
|
53
|
-
}
|
|
54
48
|
/**
|
|
55
49
|
* Meaningfully named alias for ExecutionError when used in the context of the AVM.
|
|
56
50
|
* Maintains a recursive structure reflecting the AVM's external callstack/errorstack, where
|
|
@@ -60,8 +54,7 @@ export declare class AvmRevertReason extends ExecutionError {
|
|
|
60
54
|
constructor(message: string, failingFunction: FailingFunction, noirCallStack: NoirCallStack, options?: ErrorOptions);
|
|
61
55
|
}
|
|
62
56
|
/**
|
|
63
|
-
* Create a "revert reason" error for an exceptional halt
|
|
64
|
-
* creating the recursive structure if the halt was a RethrownError.
|
|
57
|
+
* Create a "revert reason" error for an exceptional halt.
|
|
65
58
|
*
|
|
66
59
|
* @param haltingError - the lower-level error causing the exceptional halt
|
|
67
60
|
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
@@ -74,10 +67,4 @@ export declare function revertReasonFromExceptionalHalt(haltingError: AvmExecuti
|
|
|
74
67
|
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
75
68
|
*/
|
|
76
69
|
export declare function revertReasonFromExplicitRevert(revertData: Fr[], context: AvmContext): AvmRevertReason;
|
|
77
|
-
/**
|
|
78
|
-
* Interpret revert data as a message string.
|
|
79
|
-
*
|
|
80
|
-
* @param revertData - output data of an explicit REVERT instruction
|
|
81
|
-
*/
|
|
82
|
-
export declare function decodeRevertDataAsMessage(revertData: Fr[]): string;
|
|
83
70
|
//# sourceMappingURL=errors.d.ts.map
|
package/dest/avm/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/avm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,EAA8C,MAAM,oBAAoB,CAAC;AAEvG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,eAAe,EAAE,YAAY;CAI1C;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAIpC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;WACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;WAI7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;gBAI5D,OAAO,EAAE,MAAM;CAI5B;AAED,oCAAoC;AACpC,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,UAAU,EAAE,MAAM,EAAE;CAIjC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,yBAAyB;;CAKvE;AAED;;;;GAIG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/avm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,EAA8C,MAAM,oBAAoB,CAAC;AAEvG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,eAAe,EAAE,YAAY;CAI1C;AAED,qBAAa,eAAgB,SAAQ,iBAAiB;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAIpC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAClD,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;WACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;WAI7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa;gBAI5D,OAAO,EAAE,MAAM;CAI5B;AAED,oCAAoC;AACpC,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,UAAU,EAAE,MAAM,EAAE;CAIjC;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,yBAAyB;;CAKvE;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY;CAGpH;AAmCD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,GAAG,eAAe,CAErH;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,eAAe,CAErG"}
|
package/dest/avm/errors.js
CHANGED
|
@@ -15,6 +15,12 @@ export class NoBytecodeForContractError extends AvmExecutionError {
|
|
|
15
15
|
this.name = 'NoBytecodeFoundInterpreterError';
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
export class ArithmeticError extends AvmExecutionError {
|
|
19
|
+
constructor(message) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = 'ArithmeticError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
18
24
|
/**
|
|
19
25
|
* Error is thrown when the program counter goes to an invalid location.
|
|
20
26
|
* There is no instruction at the provided pc
|
|
@@ -65,18 +71,6 @@ export class StaticCallAlterationError extends InstructionExecutionError {
|
|
|
65
71
|
this.name = 'StaticCallAlterationError';
|
|
66
72
|
}
|
|
67
73
|
}
|
|
68
|
-
/**
|
|
69
|
-
* Error thrown to propagate a nested call's revert.
|
|
70
|
-
* @param message - the error's message
|
|
71
|
-
* @param nestedError - the revert reason of the nested call
|
|
72
|
-
*/
|
|
73
|
-
export class RethrownError extends AvmExecutionError {
|
|
74
|
-
constructor(message, nestedError) {
|
|
75
|
-
super(message);
|
|
76
|
-
this.nestedError = nestedError;
|
|
77
|
-
this.name = 'RethrownError';
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
74
|
/**
|
|
81
75
|
* Meaningfully named alias for ExecutionError when used in the context of the AVM.
|
|
82
76
|
* Maintains a recursive structure reflecting the AVM's external callstack/errorstack, where
|
|
@@ -87,22 +81,24 @@ export class AvmRevertReason extends ExecutionError {
|
|
|
87
81
|
super(message, failingFunction, noirCallStack, options);
|
|
88
82
|
}
|
|
89
83
|
}
|
|
90
|
-
|
|
91
|
-
* Helper to create a "revert reason" error optionally with a nested error cause.
|
|
92
|
-
*
|
|
93
|
-
* @param message - the error message
|
|
94
|
-
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
95
|
-
* @param nestedError - the error that caused this one (if this is not the root-cause itself)
|
|
96
|
-
*/
|
|
97
|
-
function createRevertReason(message, context, nestedError) {
|
|
84
|
+
function createRevertReason(message, revertData, context) {
|
|
98
85
|
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Properly fix this.
|
|
99
86
|
// If the function selector is the public dispatch selector, we need to extract the actual function selector from the calldata.
|
|
100
87
|
// We should remove this because the AVM (or public protocol) shouldn't be aware of the public dispatch calling convention.
|
|
101
88
|
let functionSelector = context.environment.functionSelector;
|
|
102
|
-
|
|
89
|
+
// We drop the returnPc information.
|
|
90
|
+
const internalCallStack = context.machineState.internalCallStack.map(entry => entry.callPc);
|
|
103
91
|
if (functionSelector.toField().equals(new Fr(PUBLIC_DISPATCH_SELECTOR)) && context.environment.calldata.length > 0) {
|
|
104
92
|
functionSelector = FunctionSelector.fromField(context.environment.calldata[0]);
|
|
105
93
|
}
|
|
94
|
+
// If we are reverting due to the same error that we have been tracking, we use the nested error as the cause.
|
|
95
|
+
let nestedError = undefined;
|
|
96
|
+
const revertDataEquals = (a, b) => a.length === b.length && a.every((v, i) => v.equals(b[i]));
|
|
97
|
+
if (context.machineState.collectedRevertInfo &&
|
|
98
|
+
revertDataEquals(context.machineState.collectedRevertInfo.revertDataRepresentative, revertData)) {
|
|
99
|
+
nestedError = context.machineState.collectedRevertInfo.recursiveRevertReason;
|
|
100
|
+
message = context.machineState.collectedRevertInfo.recursiveRevertReason.message;
|
|
101
|
+
}
|
|
106
102
|
return new AvmRevertReason(message,
|
|
107
103
|
/*failingFunction=*/ {
|
|
108
104
|
contractAddress: context.environment.address,
|
|
@@ -112,16 +108,13 @@ function createRevertReason(message, context, nestedError) {
|
|
|
112
108
|
/*options=*/ { cause: nestedError });
|
|
113
109
|
}
|
|
114
110
|
/**
|
|
115
|
-
* Create a "revert reason" error for an exceptional halt
|
|
116
|
-
* creating the recursive structure if the halt was a RethrownError.
|
|
111
|
+
* Create a "revert reason" error for an exceptional halt.
|
|
117
112
|
*
|
|
118
113
|
* @param haltingError - the lower-level error causing the exceptional halt
|
|
119
114
|
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
120
115
|
*/
|
|
121
116
|
export function revertReasonFromExceptionalHalt(haltingError, context) {
|
|
122
|
-
|
|
123
|
-
const nestedError = haltingError instanceof RethrownError ? haltingError.nestedError : undefined;
|
|
124
|
-
return createRevertReason(haltingError.message, context, nestedError);
|
|
117
|
+
return createRevertReason(haltingError.message, [], context);
|
|
125
118
|
}
|
|
126
119
|
/**
|
|
127
120
|
* Create a "revert reason" error for an explicit revert (a root cause).
|
|
@@ -130,28 +123,6 @@ export function revertReasonFromExceptionalHalt(haltingError, context) {
|
|
|
130
123
|
* @param context - the context of the AVM execution used to extract the failingFunction and noirCallStack
|
|
131
124
|
*/
|
|
132
125
|
export function revertReasonFromExplicitRevert(revertData, context) {
|
|
133
|
-
|
|
134
|
-
return createRevertReason(revertMessage, context);
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Interpret revert data as a message string.
|
|
138
|
-
*
|
|
139
|
-
* @param revertData - output data of an explicit REVERT instruction
|
|
140
|
-
*/
|
|
141
|
-
export function decodeRevertDataAsMessage(revertData) {
|
|
142
|
-
if (revertData.length === 0) {
|
|
143
|
-
return 'Assertion failed';
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
try {
|
|
147
|
-
// We remove the first element which is the 'error selector'.
|
|
148
|
-
const revertOutput = revertData.slice(1);
|
|
149
|
-
// Try to interpret the output as a text string.
|
|
150
|
-
return 'Assertion failed: ' + String.fromCharCode(...revertOutput.map(fr => fr.toNumber()));
|
|
151
|
-
}
|
|
152
|
-
catch (e) {
|
|
153
|
-
return 'Assertion failed: <cannot interpret as string>';
|
|
154
|
-
}
|
|
155
|
-
}
|
|
126
|
+
return createRevertReason('Assertion failed: ', revertData, context);
|
|
156
127
|
}
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F2bS9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFxQixFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckQ7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLEtBQUs7SUFDbkQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQUMvRCxZQUFZLGVBQTZCO1FBQ3ZDLEtBQUssQ0FBQyx5QkFBeUIsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLGlDQUFpQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUFpQjtJQUNwRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBQy9ELFlBQVksRUFBVSxFQUFFLEdBQVc7UUFDakMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQUM5RCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFD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
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { type MerkleTreeWriteOperations } from '@aztec/circuit-types';
|
|
3
4
|
import { GlobalVariables } from '@aztec/circuits.js';
|
|
4
|
-
import { FunctionSelector } from '@aztec/foundation/abi';
|
|
5
|
+
import { type FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
|
|
6
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
7
|
import { type WorldStateDB } from '../../index.js';
|
|
6
8
|
import { type PublicSideEffectTraceInterface } from '../../public/side_effect_trace_interface.js';
|
|
7
9
|
import { AvmContext } from '../avm_context.js';
|
|
@@ -26,6 +28,8 @@ export declare function initPersistableStateManager(overrides?: {
|
|
|
26
28
|
trace?: PublicSideEffectTraceInterface;
|
|
27
29
|
publicStorage?: PublicStorage;
|
|
28
30
|
nullifiers?: NullifierManager;
|
|
31
|
+
doMerkleOperations?: boolean;
|
|
32
|
+
merkleTrees?: MerkleTreeWriteOperations;
|
|
29
33
|
}): AvmPersistableStateManager;
|
|
30
34
|
/**
|
|
31
35
|
* Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
|
|
@@ -48,6 +52,7 @@ export declare function randomMemoryUint32s(length: number): Uint32[];
|
|
|
48
52
|
export declare function randomMemoryUint64s(length: number): Uint64[];
|
|
49
53
|
export declare function randomMemoryFields(length: number): Field[];
|
|
50
54
|
export declare function getAvmTestContractFunctionSelector(functionName: string): FunctionSelector;
|
|
55
|
+
export declare function getAvmTestContractArtifact(functionName: string): FunctionArtifact;
|
|
51
56
|
export declare function getAvmTestContractBytecode(functionName: string): Buffer;
|
|
52
|
-
export declare function resolveAvmTestContractAssertionMessage(functionName: string, revertReason: AvmRevertReason): string | undefined;
|
|
57
|
+
export declare function resolveAvmTestContractAssertionMessage(functionName: string, revertReason: AvmRevertReason, output: Fr[]): string | undefined;
|
|
53
58
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avm/fixtures/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avm/fixtures/index.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,yBAAyB,EAA6B,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAW,eAAe,EAAgC,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAO9C,OAAO,EAAE,KAAK,YAAY,EAA6D,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE;IACtC,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAC9B,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,UAAU,CAMb;AAED,+DAA+D;AAC/D,wBAAgB,2BAA2B,CAAC,SAAS,CAAC,EAAE;IACtD,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,yBAAyB,CAAC;CACzC,GAAG,0BAA0B,CAU7B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAW9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAWzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAKtF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAE1D;AAED,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAKzF;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAOjF;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,eAAe,EAC7B,MAAM,EAAE,EAAE,EAAE,GACX,MAAM,GAAG,SAAS,CAWpB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isNoirCallStackUnresolved } from '@aztec/circuit-types';
|
|
2
2
|
import { GasFees, GlobalVariables, MAX_L2_GAS_PER_ENQUEUED_CALL } from '@aztec/circuits.js';
|
|
3
|
-
import { FunctionSelector
|
|
3
|
+
import { FunctionSelector } from '@aztec/foundation/abi';
|
|
4
4
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
5
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
6
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -8,7 +8,7 @@ import { AvmTestContractArtifact } from '@aztec/noir-contracts.js';
|
|
|
8
8
|
import { strict as assert } from 'assert';
|
|
9
9
|
import { mock } from 'jest-mock-extended';
|
|
10
10
|
import merge from 'lodash.merge';
|
|
11
|
-
import {
|
|
11
|
+
import { resolveAssertionMessageFromRevertData, traverseCauseChain } from '../../index.js';
|
|
12
12
|
import { AvmContext } from '../avm_context.js';
|
|
13
13
|
import { AvmExecutionEnvironment } from '../avm_execution_environment.js';
|
|
14
14
|
import { AvmMachineState } from '../avm_machine_state.js';
|
|
@@ -25,7 +25,7 @@ export function initContext(overrides) {
|
|
|
25
25
|
/** Creates an empty state manager with mocked host storage. */
|
|
26
26
|
export function initPersistableStateManager(overrides) {
|
|
27
27
|
const worldStateDB = overrides?.worldStateDB || mock();
|
|
28
|
-
return new AvmPersistableStateManager(worldStateDB, overrides?.trace || mock(), overrides?.publicStorage || new PublicStorage(worldStateDB), overrides?.nullifiers || new NullifierManager(worldStateDB));
|
|
28
|
+
return new AvmPersistableStateManager(worldStateDB, overrides?.trace || mock(), overrides?.publicStorage || new PublicStorage(worldStateDB), overrides?.nullifiers || new NullifierManager(worldStateDB), overrides?.doMerkleOperations || false, overrides?.merkleTrees || mock());
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Create an empty instance of the Execution Environment where all values are zero, unless overridden in the overrides object
|
|
@@ -72,23 +72,23 @@ export function getAvmTestContractFunctionSelector(functionName) {
|
|
|
72
72
|
const params = artifact.parameters;
|
|
73
73
|
return FunctionSelector.fromNameAndParameters(artifact.name, params);
|
|
74
74
|
}
|
|
75
|
-
export function
|
|
75
|
+
export function getAvmTestContractArtifact(functionName) {
|
|
76
76
|
const artifact = AvmTestContractArtifact.functions.find(f => f.name === functionName);
|
|
77
77
|
assert(!!artifact?.bytecode, `No bytecode found for function ${functionName}. Try re-running bootstrap.sh on the repository root.`);
|
|
78
|
+
return artifact;
|
|
79
|
+
}
|
|
80
|
+
export function getAvmTestContractBytecode(functionName) {
|
|
81
|
+
const artifact = getAvmTestContractArtifact(functionName);
|
|
78
82
|
return artifact.bytecode;
|
|
79
83
|
}
|
|
80
|
-
export function resolveAvmTestContractAssertionMessage(functionName, revertReason) {
|
|
81
|
-
const functionArtifact = AvmTestContractArtifact.functions.find(f => f.name === functionName);
|
|
84
|
+
export function resolveAvmTestContractAssertionMessage(functionName, revertReason, output) {
|
|
82
85
|
traverseCauseChain(revertReason, cause => {
|
|
83
86
|
revertReason = cause;
|
|
84
87
|
});
|
|
88
|
+
const functionArtifact = AvmTestContractArtifact.functions.find(f => f.name === functionName);
|
|
85
89
|
if (!functionArtifact || !revertReason.noirCallStack || !isNoirCallStackUnresolved(revertReason.noirCallStack)) {
|
|
86
90
|
return undefined;
|
|
87
91
|
}
|
|
88
|
-
|
|
89
|
-
if (!debugMetadata) {
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
92
|
-
return resolveAssertionMessage(revertReason.noirCallStack, debugMetadata);
|
|
92
|
+
return resolveAssertionMessageFromRevertData(output, functionArtifact);
|
|
93
93
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2ZpeHR1cmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0MseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVGLE9BQU8sRUFBeUIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE9BQU8sRUFBcUIscUNBQXFDLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JB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
|
package/dest/avm/index.d.ts
CHANGED
package/dest/avm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avm/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avm/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
package/dest/avm/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './avm_simulator.js';
|
|
2
|
-
|
|
2
|
+
export * from './journal/index.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXZtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQyJ9
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import {
|
|
3
|
+
import { type IndexedTreeId, type MerkleTreeWriteOperations } from '@aztec/circuit-types';
|
|
4
|
+
import { type AztecAddress, type Gas, type PublicCallRequest, SerializableContractInstance } from '@aztec/circuits.js';
|
|
4
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
|
+
import { type IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
5
7
|
import { type WorldStateDB } from '../../public/public_db_sources.js';
|
|
6
8
|
import { type PublicSideEffectTraceInterface } from '../../public/side_effect_trace_interface.js';
|
|
7
9
|
import { type AvmContractCallResult } from '../avm_contract_call_result.js';
|
|
@@ -21,21 +23,26 @@ export declare class AvmPersistableStateManager {
|
|
|
21
23
|
/** Reference to node storage */
|
|
22
24
|
private readonly worldStateDB;
|
|
23
25
|
/** Side effect trace */
|
|
24
|
-
|
|
26
|
+
readonly trace: PublicSideEffectTraceInterface;
|
|
25
27
|
/** Public storage, including cached writes */
|
|
26
|
-
readonly publicStorage
|
|
28
|
+
private readonly publicStorage;
|
|
27
29
|
/** Nullifier set, including cached/recently-emitted nullifiers */
|
|
28
30
|
private readonly nullifiers;
|
|
31
|
+
private readonly doMerkleOperations;
|
|
29
32
|
private readonly log;
|
|
33
|
+
/** Interface to perform merkle tree operations */
|
|
34
|
+
merkleTrees: MerkleTreeWriteOperations;
|
|
35
|
+
/** Make sure a forked state is never merged twice. */
|
|
36
|
+
private alreadyMergedIntoParent;
|
|
30
37
|
constructor(
|
|
31
38
|
/** Reference to node storage */
|
|
32
39
|
worldStateDB: WorldStateDB,
|
|
33
40
|
/** Side effect trace */
|
|
34
41
|
trace: PublicSideEffectTraceInterface,
|
|
35
42
|
/** Public storage, including cached writes */
|
|
36
|
-
publicStorage
|
|
43
|
+
publicStorage?: PublicStorage,
|
|
37
44
|
/** Nullifier set, including cached/recently-emitted nullifiers */
|
|
38
|
-
nullifiers
|
|
45
|
+
nullifiers?: NullifierManager, doMerkleOperations?: boolean, merkleTrees?: MerkleTreeWriteOperations);
|
|
39
46
|
/**
|
|
40
47
|
* Create a new state manager with some preloaded pending siloed nullifiers
|
|
41
48
|
*/
|
|
@@ -44,6 +51,20 @@ export declare class AvmPersistableStateManager {
|
|
|
44
51
|
* Create a new state manager forked from this one
|
|
45
52
|
*/
|
|
46
53
|
fork(): AvmPersistableStateManager;
|
|
54
|
+
/**
|
|
55
|
+
* Accept forked world state modifications & traced side effects / hints
|
|
56
|
+
*/
|
|
57
|
+
merge(forkedState: AvmPersistableStateManager): void;
|
|
58
|
+
/**
|
|
59
|
+
* Reject forked world state modifications & traced side effects, keep traced hints
|
|
60
|
+
*/
|
|
61
|
+
reject(forkedState: AvmPersistableStateManager): void;
|
|
62
|
+
/**
|
|
63
|
+
* Commit cached storage writes to the DB.
|
|
64
|
+
* Keeps public storage up to date from tx to tx within a block.
|
|
65
|
+
*/
|
|
66
|
+
commitStorageWritesToDB(): Promise<void>;
|
|
67
|
+
private _merge;
|
|
47
68
|
/**
|
|
48
69
|
* Write to public storage, journal/trace the write.
|
|
49
70
|
*
|
|
@@ -51,7 +72,7 @@ export declare class AvmPersistableStateManager {
|
|
|
51
72
|
* @param slot - the slot in the contract's storage being written to
|
|
52
73
|
* @param value - the value being written to the slot
|
|
53
74
|
*/
|
|
54
|
-
writeStorage(contractAddress:
|
|
75
|
+
writeStorage(contractAddress: AztecAddress, slot: Fr, value: Fr): Promise<void>;
|
|
55
76
|
/**
|
|
56
77
|
* Read from public storage, trace the read.
|
|
57
78
|
*
|
|
@@ -59,7 +80,7 @@ export declare class AvmPersistableStateManager {
|
|
|
59
80
|
* @param slot - the slot in the contract's storage being read from
|
|
60
81
|
* @returns the latest value written to slot, or 0 if never written to before
|
|
61
82
|
*/
|
|
62
|
-
readStorage(contractAddress:
|
|
83
|
+
readStorage(contractAddress: AztecAddress, slot: Fr): Promise<Fr>;
|
|
63
84
|
/**
|
|
64
85
|
* Read from public storage, don't trace the read.
|
|
65
86
|
*
|
|
@@ -67,7 +88,7 @@ export declare class AvmPersistableStateManager {
|
|
|
67
88
|
* @param slot - the slot in the contract's storage being read from
|
|
68
89
|
* @returns the latest value written to slot, or 0 if never written to before
|
|
69
90
|
*/
|
|
70
|
-
peekStorage(contractAddress:
|
|
91
|
+
peekStorage(contractAddress: AztecAddress, slot: Fr): Promise<Fr>;
|
|
71
92
|
/**
|
|
72
93
|
* Check if a note hash exists at the given leaf index, trace the check.
|
|
73
94
|
*
|
|
@@ -76,63 +97,61 @@ export declare class AvmPersistableStateManager {
|
|
|
76
97
|
* @param leafIndex - the leaf index being checked
|
|
77
98
|
* @returns true if the note hash exists at the given leaf index, false otherwise
|
|
78
99
|
*/
|
|
79
|
-
checkNoteHashExists(contractAddress:
|
|
100
|
+
checkNoteHashExists(contractAddress: AztecAddress, noteHash: Fr, leafIndex: Fr): Promise<boolean>;
|
|
80
101
|
/**
|
|
81
102
|
* Write a note hash, trace the write.
|
|
82
103
|
* @param noteHash - the unsiloed note hash to write
|
|
83
104
|
*/
|
|
84
|
-
writeNoteHash(contractAddress:
|
|
105
|
+
writeNoteHash(contractAddress: AztecAddress, noteHash: Fr): Promise<void>;
|
|
85
106
|
/**
|
|
86
107
|
* Check if a nullifier exists, trace the check.
|
|
87
108
|
* @param contractAddress - address of the contract that the nullifier is associated with
|
|
88
109
|
* @param nullifier - the unsiloed nullifier to check
|
|
89
110
|
* @returns exists - whether the nullifier exists in the nullifier set
|
|
90
111
|
*/
|
|
91
|
-
checkNullifierExists(contractAddress:
|
|
112
|
+
checkNullifierExists(contractAddress: AztecAddress, nullifier: Fr): Promise<boolean>;
|
|
92
113
|
/**
|
|
93
114
|
* Write a nullifier to the nullifier set, trace the write.
|
|
94
115
|
* @param contractAddress - address of the contract that the nullifier is associated with
|
|
95
116
|
* @param nullifier - the unsiloed nullifier to write
|
|
96
117
|
*/
|
|
97
|
-
writeNullifier(contractAddress:
|
|
118
|
+
writeNullifier(contractAddress: AztecAddress, nullifier: Fr): Promise<void>;
|
|
98
119
|
/**
|
|
99
120
|
* Check if an L1 to L2 message exists, trace the check.
|
|
100
121
|
* @param msgHash - the message hash to check existence of
|
|
101
122
|
* @param msgLeafIndex - the message leaf index to use in the check
|
|
102
123
|
* @returns exists - whether the message exists in the L1 to L2 Messages tree
|
|
103
124
|
*/
|
|
104
|
-
checkL1ToL2MessageExists(contractAddress:
|
|
125
|
+
checkL1ToL2MessageExists(contractAddress: AztecAddress, msgHash: Fr, msgLeafIndex: Fr): Promise<boolean>;
|
|
105
126
|
/**
|
|
106
127
|
* Write an L2 to L1 message.
|
|
107
128
|
* @param contractAddress - L2 contract address that created this message
|
|
108
129
|
* @param recipient - L1 contract address to send the message to.
|
|
109
130
|
* @param content - Message content.
|
|
110
131
|
*/
|
|
111
|
-
writeL2ToL1Message(contractAddress:
|
|
132
|
+
writeL2ToL1Message(contractAddress: AztecAddress, recipient: Fr, content: Fr): void;
|
|
112
133
|
/**
|
|
113
134
|
* Write an unencrypted log
|
|
114
135
|
* @param contractAddress - address of the contract that emitted the log
|
|
115
136
|
* @param event - log event selector
|
|
116
137
|
* @param log - log contents
|
|
117
138
|
*/
|
|
118
|
-
writeUnencryptedLog(contractAddress:
|
|
139
|
+
writeUnencryptedLog(contractAddress: AztecAddress, log: Fr[]): void;
|
|
119
140
|
/**
|
|
120
141
|
* Get a contract instance.
|
|
121
142
|
* @param contractAddress - address of the contract instance to retrieve.
|
|
122
143
|
* @returns the contract instance or undefined if it does not exist.
|
|
123
144
|
*/
|
|
124
|
-
getContractInstance(contractAddress:
|
|
125
|
-
/**
|
|
126
|
-
* Accept nested world state modifications
|
|
127
|
-
*/
|
|
128
|
-
acceptNestedCallState(nestedState: AvmPersistableStateManager): void;
|
|
145
|
+
getContractInstance(contractAddress: AztecAddress): Promise<SerializableContractInstance | undefined>;
|
|
129
146
|
/**
|
|
130
147
|
* Get a contract's bytecode from the contracts DB, also trace the contract class and instance
|
|
131
148
|
*/
|
|
132
149
|
getBytecode(contractAddress: AztecAddress): Promise<Buffer | undefined>;
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
*/
|
|
136
|
-
processNestedCall(nestedState: AvmPersistableStateManager, nestedEnvironment: AvmExecutionEnvironment, startGasLeft: Gas, endGasLeft: Gas, bytecode: Buffer, avmCallResults: AvmContractCallResult): Promise<void>;
|
|
150
|
+
traceNestedCall(forkedState: AvmPersistableStateManager, nestedEnvironment: AvmExecutionEnvironment, startGasLeft: Gas, endGasLeft: Gas, bytecode: Buffer, avmCallResults: AvmContractCallResult): Promise<void>;
|
|
151
|
+
traceEnqueuedCall(publicCallRequest: PublicCallRequest, calldata: Fr[], reverted: boolean): void;
|
|
137
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Get leaf if present, low leaf if absent
|
|
155
|
+
*/
|
|
156
|
+
export declare function getLeafOrLowLeaf<TreePreimageType extends IndexedTreeLeafPreimage>(treeId: IndexedTreeId, key: bigint, merkleTrees: MerkleTreeWriteOperations): Promise<readonly [bigint, TreePreimageType, Fr[], boolean]>;
|
|
138
157
|
//# sourceMappingURL=journal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/journal.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/journal.ts"],"names":[],"mappings":"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"}
|