@aztec/simulator 0.42.0 → 0.44.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/oracle/oracle.d.ts +5 -2
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +25 -8
- package/dest/acvm/oracle/typed_oracle.d.ts +7 -4
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +14 -5
- package/dest/avm/avm_execution_environment.d.ts +2 -0
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +9 -4
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +3 -1
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +2 -4
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +2 -3
- package/dest/avm/fixtures/index.d.ts +10 -3
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +9 -11
- package/dest/avm/journal/journal.d.ts +57 -66
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +97 -131
- package/dest/avm/journal/nullifiers.d.ts +21 -8
- package/dest/avm/journal/nullifiers.d.ts.map +1 -1
- package/dest/avm/journal/nullifiers.js +26 -8
- package/dest/avm/journal/public_storage.d.ts +4 -0
- package/dest/avm/journal/public_storage.d.ts.map +1 -1
- package/dest/avm/journal/public_storage.js +10 -1
- package/dest/avm/opcodes/accrued_substate.d.ts +2 -2
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +39 -24
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +12 -9
- package/dest/avm/opcodes/bitwise.d.ts.map +1 -1
- package/dest/avm/opcodes/bitwise.js +11 -8
- package/dest/avm/opcodes/comparators.d.ts.map +1 -1
- package/dest/avm/opcodes/comparators.js +7 -5
- package/dest/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/avm/opcodes/contract.js +20 -24
- package/dest/avm/opcodes/control_flow.d.ts.map +1 -1
- package/dest/avm/opcodes/control_flow.js +4 -2
- package/dest/avm/opcodes/ec_add.d.ts +19 -0
- package/dest/avm/opcodes/ec_add.d.ts.map +1 -0
- package/dest/avm/opcodes/ec_add.js +78 -0
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +19 -29
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +10 -2
- package/dest/avm/opcodes/instruction_impl.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction_impl.js +4 -2
- package/dest/avm/opcodes/memory.d.ts +1 -1
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +14 -12
- package/dest/avm/opcodes/multi_scalar_mul.d.ts +16 -0
- package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +1 -0
- package/dest/avm/opcodes/multi_scalar_mul.js +95 -0
- package/dest/avm/opcodes/storage.d.ts +1 -1
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +11 -8
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +5 -1
- package/dest/avm/serialization/instruction_serialization.d.ts +3 -1
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +4 -2
- package/dest/avm/test_utils.d.ts +14 -0
- package/dest/avm/test_utils.d.ts.map +1 -0
- package/dest/avm/test_utils.js +36 -0
- package/dest/client/client_execution_context.d.ts +17 -5
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +32 -18
- package/dest/client/execution_note_cache.d.ts.map +1 -1
- package/dest/client/execution_note_cache.js +1 -1
- package/dest/client/execution_result.d.ts +2 -1
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/execution_result.js +1 -1
- package/dest/client/index.d.ts +2 -0
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +3 -1
- package/dest/client/simulator.d.ts +4 -3
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +17 -9
- package/dest/client/view_data_oracle.d.ts +2 -0
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +7 -1
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +3 -2
- package/dest/public/abstract_phase_manager.d.ts +11 -11
- package/dest/public/abstract_phase_manager.d.ts.map +1 -1
- package/dest/public/abstract_phase_manager.js +84 -59
- package/dest/public/app_logic_phase_manager.d.ts +3 -3
- package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
- package/dest/public/app_logic_phase_manager.js +4 -3
- package/dest/public/db_interfaces.d.ts +1 -0
- package/dest/public/db_interfaces.d.ts.map +1 -1
- package/dest/public/execution.d.ts +28 -40
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +1 -51
- package/dest/public/executor.d.ts +9 -4
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +38 -27
- package/dest/public/hints_builder.d.ts +1 -1
- package/dest/public/index.d.ts +6 -6
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +7 -7
- package/dest/public/phase_manager_factory.d.ts +3 -3
- package/dest/public/phase_manager_factory.d.ts.map +1 -1
- package/dest/public/phase_manager_factory.js +5 -5
- package/dest/public/public_db_sources.d.ts +3 -1
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +54 -8
- package/dest/public/public_processor.d.ts +5 -2
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +143 -125
- package/dest/public/setup_phase_manager.d.ts +3 -3
- package/dest/public/setup_phase_manager.d.ts.map +1 -1
- package/dest/public/setup_phase_manager.js +3 -3
- package/dest/public/side_effect_trace.d.ts +86 -0
- package/dest/public/side_effect_trace.d.ts.map +1 -0
- package/dest/public/side_effect_trace.js +222 -0
- package/dest/public/side_effect_trace_interface.d.ts +36 -0
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -0
- package/dest/public/side_effect_trace_interface.js +2 -0
- package/dest/public/tail_phase_manager.d.ts +3 -3
- package/dest/public/tail_phase_manager.d.ts.map +1 -1
- package/dest/public/tail_phase_manager.js +3 -3
- package/dest/public/teardown_phase_manager.d.ts +3 -3
- package/dest/public/teardown_phase_manager.d.ts.map +1 -1
- package/dest/public/teardown_phase_manager.js +4 -3
- package/dest/public/transitional_adaptors.d.ts +2 -6
- package/dest/public/transitional_adaptors.d.ts.map +1 -1
- package/dest/public/transitional_adaptors.js +1 -43
- package/package.json +18 -9
- package/src/acvm/oracle/oracle.ts +46 -9
- package/src/acvm/oracle/typed_oracle.ts +37 -7
- package/src/avm/avm_execution_environment.ts +10 -3
- package/src/avm/avm_gas.ts +2 -0
- package/src/avm/avm_memory_types.ts +1 -3
- package/src/avm/avm_simulator.ts +2 -3
- package/src/avm/fixtures/index.ts +19 -14
- package/src/avm/journal/journal.ts +127 -231
- package/src/avm/journal/nullifiers.ts +30 -13
- package/src/avm/journal/public_storage.ts +10 -0
- package/src/avm/opcodes/accrued_substate.ts +60 -23
- package/src/avm/opcodes/arithmetic.ts +17 -8
- package/src/avm/opcodes/bitwise.ts +13 -8
- package/src/avm/opcodes/comparators.ts +9 -4
- package/src/avm/opcodes/contract.ts +22 -26
- package/src/avm/opcodes/control_flow.ts +3 -1
- package/src/avm/opcodes/ec_add.ts +92 -0
- package/src/avm/opcodes/external_calls.ts +20 -36
- package/src/avm/opcodes/hashing.ts +11 -1
- package/src/avm/opcodes/instruction_impl.ts +4 -1
- package/src/avm/opcodes/memory.ts +18 -11
- package/src/avm/opcodes/multi_scalar_mul.ts +114 -0
- package/src/avm/opcodes/storage.ts +10 -10
- package/src/avm/serialization/bytecode_serialization.ts +4 -0
- package/src/avm/serialization/instruction_serialization.ts +2 -0
- package/src/avm/test_utils.ts +53 -0
- package/src/client/client_execution_context.ts +55 -21
- package/src/client/execution_note_cache.ts +0 -1
- package/src/client/execution_result.ts +2 -1
- package/src/client/index.ts +2 -0
- package/src/client/simulator.ts +26 -10
- package/src/client/view_data_oracle.ts +8 -0
- package/src/mocks/fixtures.ts +2 -1
- package/src/public/abstract_phase_manager.ts +99 -70
- package/src/public/app_logic_phase_manager.ts +3 -2
- package/src/public/db_interfaces.ts +2 -0
- package/src/public/execution.ts +35 -94
- package/src/public/executor.ts +56 -40
- package/src/public/index.ts +6 -12
- package/src/public/phase_manager_factory.ts +6 -6
- package/src/public/public_db_sources.ts +62 -7
- package/src/public/public_processor.ts +15 -9
- package/src/public/setup_phase_manager.ts +2 -2
- package/src/public/side_effect_trace.ts +323 -0
- package/src/public/side_effect_trace_interface.ts +41 -0
- package/src/public/tail_phase_manager.ts +2 -2
- package/src/public/teardown_phase_manager.ts +3 -2
- package/src/public/transitional_adaptors.ts +2 -60
- package/dest/avm/journal/trace.d.ts +0 -33
- package/dest/avm/journal/trace.d.ts.map +0 -1
- package/dest/avm/journal/trace.js +0 -151
- package/dest/avm/journal/trace_types.d.ts +0 -51
- package/dest/avm/journal/trace_types.d.ts.map +0 -1
- package/dest/avm/journal/trace_types.js +0 -6
- package/dest/public/utils.d.ts +0 -8
- package/dest/public/utils.d.ts.map +0 -1
- package/dest/public/utils.js +0 -38
- package/src/avm/journal/trace.ts +0 -184
- package/src/avm/journal/trace_types.ts +0 -88
- package/src/public/utils.ts +0 -39
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type Gas } from '@aztec/circuits.js';
|
|
2
|
+
import { type Fr } from '@aztec/foundation/fields';
|
|
3
|
+
|
|
4
|
+
import { type AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
|
|
5
|
+
import { type AvmContractCallResults } from '../avm/avm_message_call_result.js';
|
|
6
|
+
import { type TracedContractInstance } from './side_effect_trace.js';
|
|
7
|
+
|
|
8
|
+
export interface PublicSideEffectTraceInterface {
|
|
9
|
+
fork(): PublicSideEffectTraceInterface;
|
|
10
|
+
getCounter(): number;
|
|
11
|
+
tracePublicStorageRead(storageAddress: Fr, slot: Fr, value: Fr, exists: boolean, cached: boolean): void;
|
|
12
|
+
tracePublicStorageWrite(storageAddress: Fr, slot: Fr, value: Fr): void;
|
|
13
|
+
traceNoteHashCheck(storageAddress: Fr, noteHash: Fr, leafIndex: Fr, exists: boolean): void;
|
|
14
|
+
traceNewNoteHash(storageAddress: Fr, noteHash: Fr): void;
|
|
15
|
+
traceNullifierCheck(storageAddress: Fr, nullifier: Fr, leafIndex: Fr, exists: boolean, isPending: boolean): void;
|
|
16
|
+
traceNewNullifier(storageAddress: Fr, nullifier: Fr): void;
|
|
17
|
+
traceL1ToL2MessageCheck(contractAddress: Fr, msgHash: Fr, msgLeafIndex: Fr, exists: boolean): void;
|
|
18
|
+
// TODO(dbanks12): should new message accept contract address as arg?
|
|
19
|
+
traceNewL2ToL1Message(recipient: Fr, content: Fr): void;
|
|
20
|
+
traceUnencryptedLog(contractAddress: Fr, event: Fr, log: Fr[]): void;
|
|
21
|
+
// TODO(dbanks12): odd that getContractInstance is a one-off in that it accepts an entire object instead of components
|
|
22
|
+
traceGetContractInstance(instance: TracedContractInstance): void;
|
|
23
|
+
traceNestedCall(
|
|
24
|
+
/** The trace of the nested call. */
|
|
25
|
+
nestedCallTrace: PublicSideEffectTraceInterface,
|
|
26
|
+
/** The execution environment of the nested call. */
|
|
27
|
+
nestedEnvironment: AvmExecutionEnvironment,
|
|
28
|
+
/** How much gas was available for this public execution. */
|
|
29
|
+
// TODO(dbanks12): consider moving to AvmExecutionEnvironment
|
|
30
|
+
startGasLeft: Gas,
|
|
31
|
+
/** How much gas was left after this public execution. */
|
|
32
|
+
// TODO(dbanks12): consider moving to AvmContractCallResults
|
|
33
|
+
endGasLeft: Gas,
|
|
34
|
+
/** Bytecode used for this execution. */
|
|
35
|
+
bytecode: Buffer,
|
|
36
|
+
/** The call's results */
|
|
37
|
+
avmCallResults: AvmContractCallResults,
|
|
38
|
+
/** Function name */
|
|
39
|
+
functionName: string,
|
|
40
|
+
): void;
|
|
41
|
+
}
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import { type PublicExecutor, type PublicStateDB } from '@aztec/simulator';
|
|
14
14
|
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
15
15
|
|
|
16
|
-
import { AbstractPhaseManager
|
|
16
|
+
import { AbstractPhaseManager } from './abstract_phase_manager.js';
|
|
17
17
|
import { type ContractsDataSourcePublicDB } from './public_db_sources.js';
|
|
18
18
|
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
19
19
|
|
|
@@ -26,7 +26,7 @@ export class TailPhaseManager extends AbstractPhaseManager {
|
|
|
26
26
|
historicalHeader: Header,
|
|
27
27
|
protected publicContractsDB: ContractsDataSourcePublicDB,
|
|
28
28
|
protected publicStateDB: PublicStateDB,
|
|
29
|
-
phase:
|
|
29
|
+
phase: PublicKernelType = PublicKernelType.TAIL,
|
|
30
30
|
) {
|
|
31
31
|
super(db, publicExecutor, publicKernel, globalVariables, historicalHeader, phase);
|
|
32
32
|
}
|
|
@@ -11,7 +11,7 @@ import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
|
11
11
|
|
|
12
12
|
import { inspect } from 'util';
|
|
13
13
|
|
|
14
|
-
import { AbstractPhaseManager,
|
|
14
|
+
import { AbstractPhaseManager, makeAvmProvingRequest } from './abstract_phase_manager.js';
|
|
15
15
|
import { type ContractsDataSourcePublicDB } from './public_db_sources.js';
|
|
16
16
|
import { type PublicKernelCircuitSimulator } from './public_kernel_circuit_simulator.js';
|
|
17
17
|
|
|
@@ -27,7 +27,7 @@ export class TeardownPhaseManager extends AbstractPhaseManager {
|
|
|
27
27
|
historicalHeader: Header,
|
|
28
28
|
protected publicContractsDB: ContractsDataSourcePublicDB,
|
|
29
29
|
protected publicStateDB: PublicStateDB,
|
|
30
|
-
phase:
|
|
30
|
+
phase: PublicKernelType = PublicKernelType.TEARDOWN,
|
|
31
31
|
) {
|
|
32
32
|
super(db, publicExecutor, publicKernel, globalVariables, historicalHeader, phase);
|
|
33
33
|
}
|
|
@@ -44,6 +44,7 @@ export class TeardownPhaseManager extends AbstractPhaseManager {
|
|
|
44
44
|
);
|
|
45
45
|
if (revertReason) {
|
|
46
46
|
await this.publicStateDB.rollbackToCheckpoint();
|
|
47
|
+
tx.filterRevertedLogs(kernelOutput);
|
|
47
48
|
} else {
|
|
48
49
|
// TODO(#6464): Should we allow emitting contracts in the public teardown phase?
|
|
49
50
|
// if so, we should insert them here
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
// All code in this file needs to die once the public executor is phased out in favor of the AVM.
|
|
2
|
-
import {
|
|
3
|
-
import { CallContext, type Gas, type GasSettings, type GlobalVariables, type Header } from '@aztec/circuits.js';
|
|
2
|
+
import { type GasSettings, type GlobalVariables, type Header } from '@aztec/circuits.js';
|
|
4
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
4
|
|
|
6
5
|
import { promisify } from 'util';
|
|
7
6
|
import { gunzip } from 'zlib';
|
|
8
7
|
|
|
9
|
-
import { type AvmContext } from '../avm/avm_context.js';
|
|
10
8
|
import { AvmExecutionEnvironment } from '../avm/avm_execution_environment.js';
|
|
11
|
-
import { type AvmContractCallResults } from '../avm/avm_message_call_result.js';
|
|
12
9
|
import { Mov } from '../avm/opcodes/memory.js';
|
|
13
|
-
import {
|
|
14
|
-
import { type PublicExecution, type PublicExecutionResult } from './execution.js';
|
|
10
|
+
import { type PublicExecution } from './execution.js';
|
|
15
11
|
|
|
16
12
|
/**
|
|
17
13
|
* Convert a PublicExecution(Environment) object to an AvmExecutionEnvironment
|
|
@@ -45,60 +41,6 @@ export function createAvmExecutionEnvironment(
|
|
|
45
41
|
);
|
|
46
42
|
}
|
|
47
43
|
|
|
48
|
-
export function createPublicExecution(
|
|
49
|
-
startSideEffectCounter: number,
|
|
50
|
-
avmEnvironment: AvmExecutionEnvironment,
|
|
51
|
-
calldata: Fr[],
|
|
52
|
-
): PublicExecution {
|
|
53
|
-
const callContext = CallContext.from({
|
|
54
|
-
msgSender: avmEnvironment.sender,
|
|
55
|
-
storageContractAddress: avmEnvironment.storageAddress,
|
|
56
|
-
functionSelector: avmEnvironment.temporaryFunctionSelector,
|
|
57
|
-
isDelegateCall: avmEnvironment.isDelegateCall,
|
|
58
|
-
isStaticCall: avmEnvironment.isStaticCall,
|
|
59
|
-
sideEffectCounter: startSideEffectCounter,
|
|
60
|
-
});
|
|
61
|
-
const execution: PublicExecution = {
|
|
62
|
-
contractAddress: avmEnvironment.address,
|
|
63
|
-
callContext,
|
|
64
|
-
args: calldata,
|
|
65
|
-
functionSelector: avmEnvironment.temporaryFunctionSelector,
|
|
66
|
-
};
|
|
67
|
-
return execution;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export function convertAvmResultsToPxResult(
|
|
71
|
-
avmResult: AvmContractCallResults,
|
|
72
|
-
startSideEffectCounter: number,
|
|
73
|
-
fromPx: PublicExecution,
|
|
74
|
-
startGas: Gas,
|
|
75
|
-
endAvmContext: AvmContext,
|
|
76
|
-
bytecode: Buffer | undefined,
|
|
77
|
-
): PublicExecutionResult {
|
|
78
|
-
const endPersistableState = endAvmContext.persistableState;
|
|
79
|
-
const endMachineState = endAvmContext.machineState;
|
|
80
|
-
|
|
81
|
-
return {
|
|
82
|
-
...endPersistableState.transitionalExecutionResult, // includes nestedExecutions
|
|
83
|
-
execution: fromPx,
|
|
84
|
-
returnValues: avmResult.output,
|
|
85
|
-
startSideEffectCounter: new Fr(startSideEffectCounter),
|
|
86
|
-
endSideEffectCounter: new Fr(endPersistableState.trace.accessCounter),
|
|
87
|
-
unencryptedLogs: new UnencryptedFunctionL2Logs(endPersistableState.transitionalExecutionResult.unencryptedLogs),
|
|
88
|
-
allUnencryptedLogs: new UnencryptedFunctionL2Logs(
|
|
89
|
-
endPersistableState.transitionalExecutionResult.allUnencryptedLogs,
|
|
90
|
-
),
|
|
91
|
-
reverted: avmResult.reverted,
|
|
92
|
-
revertReason: avmResult.revertReason ? createSimulationError(avmResult.revertReason) : undefined,
|
|
93
|
-
startGasLeft: startGas,
|
|
94
|
-
endGasLeft: endMachineState.gasLeft,
|
|
95
|
-
transactionFee: endAvmContext.environment.transactionFee,
|
|
96
|
-
bytecode: bytecode,
|
|
97
|
-
calldata: endAvmContext.environment.calldata,
|
|
98
|
-
avmHints: endPersistableState.trace.toHints(),
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
44
|
const AVM_MAGIC_SUFFIX = Buffer.from([
|
|
103
45
|
Mov.opcode, // opcode
|
|
104
46
|
0x00, // indirect
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { AvmExecutionHints } from '@aztec/circuits.js';
|
|
2
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import { type TracedL1toL2MessageCheck, type TracedNoteHash, type TracedNoteHashCheck, type TracedNullifier, type TracedNullifierCheck, type TracedPublicStorageRead, type TracedPublicStorageWrite, type TracedUnencryptedL2Log } from './trace_types.js';
|
|
4
|
-
export declare class WorldStateAccessTrace {
|
|
5
|
-
accessCounter: number;
|
|
6
|
-
publicStorageReads: TracedPublicStorageRead[];
|
|
7
|
-
publicStorageWrites: TracedPublicStorageWrite[];
|
|
8
|
-
noteHashChecks: TracedNoteHashCheck[];
|
|
9
|
-
newNoteHashes: TracedNoteHash[];
|
|
10
|
-
nullifierChecks: TracedNullifierCheck[];
|
|
11
|
-
newNullifiers: TracedNullifier[];
|
|
12
|
-
l1ToL2MessageChecks: TracedL1toL2MessageCheck[];
|
|
13
|
-
newLogsHashes: TracedUnencryptedL2Log[];
|
|
14
|
-
constructor(parentTrace?: WorldStateAccessTrace);
|
|
15
|
-
getAccessCounter(): number;
|
|
16
|
-
tracePublicStorageRead(storageAddress: Fr, slot: Fr, value: Fr, exists: boolean, cached: boolean): void;
|
|
17
|
-
tracePublicStorageWrite(storageAddress: Fr, slot: Fr, value: Fr): void;
|
|
18
|
-
traceNoteHashCheck(storageAddress: Fr, noteHash: Fr, exists: boolean, leafIndex: Fr): void;
|
|
19
|
-
traceNewNoteHash(storageAddress: Fr, noteHash: Fr): void;
|
|
20
|
-
traceNullifierCheck(storageAddress: Fr, nullifier: Fr, exists: boolean, isPending: boolean, leafIndex: Fr): void;
|
|
21
|
-
traceNewNullifier(storageAddress: Fr, nullifier: Fr): void;
|
|
22
|
-
traceL1ToL2MessageCheck(msgHash: Fr, msgLeafIndex: Fr, exists: boolean): void;
|
|
23
|
-
traceNewLog(logHash: Fr): void;
|
|
24
|
-
private incrementAccessCounter;
|
|
25
|
-
/**
|
|
26
|
-
* Merges another trace into this one
|
|
27
|
-
*
|
|
28
|
-
* @param incomingTrace - the incoming trace to merge into this instance
|
|
29
|
-
*/
|
|
30
|
-
acceptAndMerge(incomingTrace: WorldStateAccessTrace): void;
|
|
31
|
-
toHints(): AvmExecutionHints;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/trace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,qBAAqB;IACzB,aAAa,EAAE,MAAM,CAAC;IAEtB,kBAAkB,EAAE,uBAAuB,EAAE,CAAM;IACnD,mBAAmB,EAAE,wBAAwB,EAAE,CAAM;IAErD,cAAc,EAAE,mBAAmB,EAAE,CAAM;IAC3C,aAAa,EAAE,cAAc,EAAE,CAAM;IACrC,eAAe,EAAE,oBAAoB,EAAE,CAAM;IAC7C,aAAa,EAAE,eAAe,EAAE,CAAM;IACtC,mBAAmB,EAAE,wBAAwB,EAAE,CAAM;IACrD,aAAa,EAAE,sBAAsB,EAAE,CAAM;gBAKxC,WAAW,CAAC,EAAE,qBAAqB;IAKxC,gBAAgB;IAIhB,sBAAsB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IAiBhG,uBAAuB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;IAe/D,kBAAkB,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;IAcnF,gBAAgB,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;IAajD,mBAAmB,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;IAgBzG,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;IAanD,uBAAuB,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO;IActE,WAAW,CAAC,OAAO,EAAE,EAAE;IAS9B,OAAO,CAAC,sBAAsB;IAI9B;;;;OAIG;IACI,cAAc,CAAC,aAAa,EAAE,qBAAqB;IAgBnD,OAAO,IAAI,iBAAiB;CAQpC"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { AvmExecutionHints, AvmHint, Vector } from '@aztec/circuits.js';
|
|
2
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
export class WorldStateAccessTrace {
|
|
4
|
-
//public contractCalls: TracedContractCall[] = [];
|
|
5
|
-
//public archiveChecks: TracedArchiveLeafCheck[] = [];
|
|
6
|
-
constructor(parentTrace) {
|
|
7
|
-
this.publicStorageReads = [];
|
|
8
|
-
this.publicStorageWrites = [];
|
|
9
|
-
this.noteHashChecks = [];
|
|
10
|
-
this.newNoteHashes = [];
|
|
11
|
-
this.nullifierChecks = [];
|
|
12
|
-
this.newNullifiers = [];
|
|
13
|
-
this.l1ToL2MessageChecks = [];
|
|
14
|
-
this.newLogsHashes = [];
|
|
15
|
-
this.accessCounter = parentTrace ? parentTrace.accessCounter : 0;
|
|
16
|
-
// TODO(4805): consider tracking the parent's trace vector lengths so we can enforce limits
|
|
17
|
-
}
|
|
18
|
-
getAccessCounter() {
|
|
19
|
-
return this.accessCounter;
|
|
20
|
-
}
|
|
21
|
-
tracePublicStorageRead(storageAddress, slot, value, exists, cached) {
|
|
22
|
-
// TODO(4805): check if some threshold is reached for max storage reads
|
|
23
|
-
// (need access to parent length, or trace needs to be initialized with parent's contents)
|
|
24
|
-
const traced = {
|
|
25
|
-
// callPointer: Fr.ZERO,
|
|
26
|
-
storageAddress,
|
|
27
|
-
slot,
|
|
28
|
-
value,
|
|
29
|
-
exists,
|
|
30
|
-
cached,
|
|
31
|
-
counter: new Fr(this.accessCounter),
|
|
32
|
-
// endLifetime: Fr.ZERO,
|
|
33
|
-
};
|
|
34
|
-
this.publicStorageReads.push(traced);
|
|
35
|
-
this.incrementAccessCounter();
|
|
36
|
-
}
|
|
37
|
-
tracePublicStorageWrite(storageAddress, slot, value) {
|
|
38
|
-
// TODO(4805): check if some threshold is reached for max storage writes
|
|
39
|
-
// (need access to parent length, or trace needs to be initialized with parent's contents)
|
|
40
|
-
const traced = {
|
|
41
|
-
// callPointer: Fr.ZERO,
|
|
42
|
-
storageAddress,
|
|
43
|
-
slot,
|
|
44
|
-
value,
|
|
45
|
-
counter: new Fr(this.accessCounter),
|
|
46
|
-
// endLifetime: Fr.ZERO,
|
|
47
|
-
};
|
|
48
|
-
this.publicStorageWrites.push(traced);
|
|
49
|
-
this.incrementAccessCounter();
|
|
50
|
-
}
|
|
51
|
-
traceNoteHashCheck(storageAddress, noteHash, exists, leafIndex) {
|
|
52
|
-
const traced = {
|
|
53
|
-
// callPointer: Fr.ZERO,
|
|
54
|
-
storageAddress,
|
|
55
|
-
noteHash,
|
|
56
|
-
exists,
|
|
57
|
-
counter: new Fr(this.accessCounter),
|
|
58
|
-
// endLifetime: Fr.ZERO,
|
|
59
|
-
leafIndex,
|
|
60
|
-
};
|
|
61
|
-
this.noteHashChecks.push(traced);
|
|
62
|
-
this.incrementAccessCounter();
|
|
63
|
-
}
|
|
64
|
-
traceNewNoteHash(storageAddress, noteHash) {
|
|
65
|
-
// TODO(4805): check if some threshold is reached for max new note hash
|
|
66
|
-
const traced = {
|
|
67
|
-
// callPointer: Fr.ZERO,
|
|
68
|
-
storageAddress,
|
|
69
|
-
noteHash,
|
|
70
|
-
counter: new Fr(this.accessCounter),
|
|
71
|
-
// endLifetime: Fr.ZERO,
|
|
72
|
-
};
|
|
73
|
-
this.newNoteHashes.push(traced);
|
|
74
|
-
this.incrementAccessCounter();
|
|
75
|
-
}
|
|
76
|
-
traceNullifierCheck(storageAddress, nullifier, exists, isPending, leafIndex) {
|
|
77
|
-
// TODO(4805): check if some threshold is reached for max new nullifier
|
|
78
|
-
const traced = {
|
|
79
|
-
// callPointer: Fr.ZERO,
|
|
80
|
-
storageAddress,
|
|
81
|
-
nullifier,
|
|
82
|
-
exists,
|
|
83
|
-
counter: new Fr(this.accessCounter),
|
|
84
|
-
// endLifetime: Fr.ZERO,
|
|
85
|
-
isPending,
|
|
86
|
-
leafIndex,
|
|
87
|
-
};
|
|
88
|
-
this.nullifierChecks.push(traced);
|
|
89
|
-
this.incrementAccessCounter();
|
|
90
|
-
}
|
|
91
|
-
traceNewNullifier(storageAddress, nullifier) {
|
|
92
|
-
// TODO(4805): check if some threshold is reached for max new nullifier
|
|
93
|
-
const tracedNullifier = {
|
|
94
|
-
// callPointer: Fr.ZERO,
|
|
95
|
-
storageAddress,
|
|
96
|
-
nullifier,
|
|
97
|
-
counter: new Fr(this.accessCounter),
|
|
98
|
-
// endLifetime: Fr.ZERO,
|
|
99
|
-
};
|
|
100
|
-
this.newNullifiers.push(tracedNullifier);
|
|
101
|
-
this.incrementAccessCounter();
|
|
102
|
-
}
|
|
103
|
-
traceL1ToL2MessageCheck(msgHash, msgLeafIndex, exists) {
|
|
104
|
-
// TODO(4805): check if some threshold is reached for max message reads
|
|
105
|
-
const traced = {
|
|
106
|
-
//callPointer: Fr.ZERO, // FIXME
|
|
107
|
-
leafIndex: msgLeafIndex,
|
|
108
|
-
msgHash: msgHash,
|
|
109
|
-
exists: exists,
|
|
110
|
-
counter: new Fr(this.accessCounter),
|
|
111
|
-
//endLifetime: Fr.ZERO, // FIXME
|
|
112
|
-
};
|
|
113
|
-
this.l1ToL2MessageChecks.push(traced);
|
|
114
|
-
this.incrementAccessCounter();
|
|
115
|
-
}
|
|
116
|
-
traceNewLog(logHash) {
|
|
117
|
-
const traced = {
|
|
118
|
-
logHash,
|
|
119
|
-
counter: new Fr(this.accessCounter),
|
|
120
|
-
};
|
|
121
|
-
this.newLogsHashes.push(traced);
|
|
122
|
-
this.incrementAccessCounter();
|
|
123
|
-
}
|
|
124
|
-
incrementAccessCounter() {
|
|
125
|
-
this.accessCounter++;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Merges another trace into this one
|
|
129
|
-
*
|
|
130
|
-
* @param incomingTrace - the incoming trace to merge into this instance
|
|
131
|
-
*/
|
|
132
|
-
acceptAndMerge(incomingTrace) {
|
|
133
|
-
// Merge storage read and write journals
|
|
134
|
-
this.publicStorageReads.push(...incomingTrace.publicStorageReads);
|
|
135
|
-
this.publicStorageWrites.push(...incomingTrace.publicStorageWrites);
|
|
136
|
-
// Merge new note hashes and nullifiers
|
|
137
|
-
this.noteHashChecks.push(...incomingTrace.noteHashChecks);
|
|
138
|
-
this.newNoteHashes.push(...incomingTrace.newNoteHashes);
|
|
139
|
-
this.nullifierChecks.push(...incomingTrace.nullifierChecks);
|
|
140
|
-
this.newNullifiers.push(...incomingTrace.newNullifiers);
|
|
141
|
-
this.l1ToL2MessageChecks.push(...incomingTrace.l1ToL2MessageChecks);
|
|
142
|
-
this.newLogsHashes.push(...incomingTrace.newLogsHashes);
|
|
143
|
-
// it is assumed that the incoming trace was initialized with this as parent, so accept counter
|
|
144
|
-
this.accessCounter = incomingTrace.accessCounter;
|
|
145
|
-
}
|
|
146
|
-
// TODO(dbanks12): should only return hints for one call.... shouldn't include nested calls (merged in traces)
|
|
147
|
-
toHints() {
|
|
148
|
-
return new AvmExecutionHints(new Vector(this.publicStorageReads.map(read => new AvmHint(read.counter, read.value))), new Vector(this.noteHashChecks.map(check => new AvmHint(check.counter, new Fr(check.exists ? 1 : 0)))), new Vector(this.nullifierChecks.map(check => new AvmHint(check.counter, new Fr(check.exists ? 1 : 0)))), new Vector(this.l1ToL2MessageChecks.map(check => new AvmHint(check.counter, new Fr(check.exists ? 1 : 0)))));
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2pvdXJuYWwvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFhOUMsTUFBTSxPQUFPLHFCQUFxQjtJQWFoQyxrREFBa0Q7SUFDbEQsc0RBQXNEO0lBRXRELFlBQVksV0FBbUM7UUFieEMsdUJBQWtCLEdBQThCLEVBQUUsQ0FBQztRQUNuRCx3QkFBbUIsR0FBK0IsRUFBRSxDQUFDO1FBRXJELG1CQUFjLEdBQTBCLEVBQUUsQ0FBQztRQUMzQyxrQkFBYSxHQUFxQixFQUFFLENBQUM7UUFDckMsb0JBQWUsR0FBMkIsRUFBRSxDQUFDO1FBQzdDLGtCQUFhLEdBQXNCLEVBQUUsQ0FBQztRQUN0Qyx3QkFBbUIsR0FBK0IsRUFBRSxDQUFDO1FBQ3JELGtCQUFhLEdBQTZCLEVBQUUsQ0FBQztRQU1sRCxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLDJGQUEyRjtJQUM3RixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRU0sc0JBQXNCLENBQUMsY0FBa0IsRUFBRSxJQUFRLEVBQUUsS0FBUyxFQUFFLE1BQWUsRUFBRSxNQUFlO1FBQ3JHLHVFQUF1RTtRQUN2RSwwRkFBMEY7UUFDMUYsTUFBTSxNQUFNLEdBQTRCO1lBQ3RDLHlCQUF5QjtZQUN6QixjQUFjO1lBQ2QsSUFBSTtZQUNKLEtBQUs7WUFDTCxNQUFNO1lBQ04sTUFBTTtZQUNOLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFB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
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { type Fr } from '@aztec/foundation/fields';
|
|
2
|
-
export type TracedPublicStorageRead = {
|
|
3
|
-
storageAddress: Fr;
|
|
4
|
-
exists: boolean;
|
|
5
|
-
cached: boolean;
|
|
6
|
-
slot: Fr;
|
|
7
|
-
value: Fr;
|
|
8
|
-
counter: Fr;
|
|
9
|
-
};
|
|
10
|
-
export type TracedPublicStorageWrite = {
|
|
11
|
-
storageAddress: Fr;
|
|
12
|
-
slot: Fr;
|
|
13
|
-
value: Fr;
|
|
14
|
-
counter: Fr;
|
|
15
|
-
};
|
|
16
|
-
export type TracedNoteHashCheck = {
|
|
17
|
-
storageAddress: Fr;
|
|
18
|
-
leafIndex: Fr;
|
|
19
|
-
noteHash: Fr;
|
|
20
|
-
exists: boolean;
|
|
21
|
-
counter: Fr;
|
|
22
|
-
};
|
|
23
|
-
export type TracedNoteHash = {
|
|
24
|
-
storageAddress: Fr;
|
|
25
|
-
noteHash: Fr;
|
|
26
|
-
counter: Fr;
|
|
27
|
-
};
|
|
28
|
-
export type TracedNullifierCheck = {
|
|
29
|
-
storageAddress: Fr;
|
|
30
|
-
nullifier: Fr;
|
|
31
|
-
exists: boolean;
|
|
32
|
-
counter: Fr;
|
|
33
|
-
isPending: boolean;
|
|
34
|
-
leafIndex: Fr;
|
|
35
|
-
};
|
|
36
|
-
export type TracedNullifier = {
|
|
37
|
-
storageAddress: Fr;
|
|
38
|
-
nullifier: Fr;
|
|
39
|
-
counter: Fr;
|
|
40
|
-
};
|
|
41
|
-
export type TracedL1toL2MessageCheck = {
|
|
42
|
-
leafIndex: Fr;
|
|
43
|
-
msgHash: Fr;
|
|
44
|
-
exists: boolean;
|
|
45
|
-
counter: Fr;
|
|
46
|
-
};
|
|
47
|
-
export type TracedUnencryptedL2Log = {
|
|
48
|
-
logHash: Fr;
|
|
49
|
-
counter: Fr;
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=trace_types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trace_types.d.ts","sourceRoot":"","sources":["../../../src/avm/journal/trace_types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AASnD,MAAM,MAAM,uBAAuB,GAAG;IAEpC,cAAc,EAAE,EAAE,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,EAAE,CAAC;IACT,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,EAAE,CAAC;CAEb,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IAErC,cAAc,EAAE,EAAE,CAAC;IACnB,IAAI,EAAE,EAAE,CAAC;IACT,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,EAAE,CAAC;CAEb,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAEhC,cAAc,EAAE,EAAE,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC;IACd,QAAQ,EAAE,EAAE,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,EAAE,CAAC;CAEb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAE3B,cAAc,EAAE,EAAE,CAAC;IACnB,QAAQ,EAAE,EAAE,CAAC;IACb,OAAO,EAAE,EAAE,CAAC;CAEb,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAEjC,cAAc,EAAE,EAAE,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,EAAE,CAAC;IAIZ,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAE5B,cAAc,EAAE,EAAE,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC;IACd,OAAO,EAAE,EAAE,CAAC;CAEb,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IAErC,SAAS,EAAE,EAAE,CAAC;IACd,OAAO,EAAE,EAAE,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,EAAE,CAAC;CAEb,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IAEnC,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,EAAE,CAAC;CAEb,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//export type TracedArchiveLeafCheck = {
|
|
3
|
-
// leafIndex: Fr;
|
|
4
|
-
// leaf: Fr;
|
|
5
|
-
//};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2VfdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXZtL2pvdXJuYWwvdHJhY2VfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQW9GQSx3Q0FBd0M7QUFDeEMsa0JBQWtCO0FBQ2xCLGFBQWE7QUFDYixJQUFJIn0=
|
package/dest/public/utils.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type PublicKernelCircuitPublicInputs } from '@aztec/circuits.js';
|
|
2
|
-
/**
|
|
3
|
-
* Looks at the side effects of a transaction and returns the highest counter
|
|
4
|
-
* @param tx - A transaction
|
|
5
|
-
* @returns The highest side effect counter in the transaction so far
|
|
6
|
-
*/
|
|
7
|
-
export declare function lastSideEffectCounter(inputs: PublicKernelCircuitPublicInputs): number;
|
|
8
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/public/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,+BAA+B,GAAG,MAAM,CA+BrF"}
|
package/dest/public/utils.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Looks at the side effects of a transaction and returns the highest counter
|
|
3
|
-
* @param tx - A transaction
|
|
4
|
-
* @returns The highest side effect counter in the transaction so far
|
|
5
|
-
*/
|
|
6
|
-
export function lastSideEffectCounter(inputs) {
|
|
7
|
-
const sideEffectCounters = [
|
|
8
|
-
...inputs.endNonRevertibleData.newNoteHashes,
|
|
9
|
-
...inputs.endNonRevertibleData.newNullifiers,
|
|
10
|
-
...inputs.endNonRevertibleData.noteEncryptedLogsHashes,
|
|
11
|
-
...inputs.endNonRevertibleData.encryptedLogsHashes,
|
|
12
|
-
...inputs.endNonRevertibleData.unencryptedLogsHashes,
|
|
13
|
-
...inputs.endNonRevertibleData.publicCallStack,
|
|
14
|
-
...inputs.endNonRevertibleData.publicDataUpdateRequests,
|
|
15
|
-
...inputs.end.newNoteHashes,
|
|
16
|
-
...inputs.end.newNullifiers,
|
|
17
|
-
...inputs.end.noteEncryptedLogsHashes,
|
|
18
|
-
...inputs.end.encryptedLogsHashes,
|
|
19
|
-
...inputs.end.unencryptedLogsHashes,
|
|
20
|
-
...inputs.end.publicCallStack,
|
|
21
|
-
...inputs.end.publicDataUpdateRequests,
|
|
22
|
-
];
|
|
23
|
-
let max = 0;
|
|
24
|
-
for (const sideEffect of sideEffectCounters) {
|
|
25
|
-
if ('startSideEffectCounter' in sideEffect) {
|
|
26
|
-
// look at both start and end counters because for enqueued public calls start > 0 while end === 0
|
|
27
|
-
max = Math.max(max, sideEffect.startSideEffectCounter.toNumber(), sideEffect.endSideEffectCounter.toNumber());
|
|
28
|
-
}
|
|
29
|
-
else if ('counter' in sideEffect) {
|
|
30
|
-
max = Math.max(max, sideEffect.counter);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
throw new Error('Unknown side effect type');
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return max;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBdUM7SUFDM0UsTUFBTSxrQkFBa0IsR0FBRztRQUN6QixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhO1FBQzVDLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLGFBQWE7UUFDNUMsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCO1FBQ3RELEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQjtRQUNsRCxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUI7UUFDcEQsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsZUFBZTtRQUM5QyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0I7UUFDdkQsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWE7UUFDM0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWE7UUFDM0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHVCQUF1QjtRQUNyQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1FBQ2pDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUI7UUFDbkMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWU7UUFDN0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHdCQUF3QjtLQUN2QyxDQUFDO0lBRUYsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1osS0FBSyxNQUFNLFVBQVUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzVDLElBQUksd0JBQXdCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDM0Msa0dBQWtHO1lBQ2xHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEgsQ0FBQzthQUFNLElBQUksU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMifQ==
|