@aztec/simulator 0.72.1 → 0.73.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/README.md +1 -1
- package/dest/avm/avm_simulator.d.ts +0 -1
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +4 -19
- package/dest/avm/avm_tree.d.ts +9 -8
- package/dest/avm/avm_tree.d.ts.map +1 -1
- package/dest/avm/avm_tree.js +35 -30
- package/dest/avm/fixtures/avm_simulation_tester.d.ts +21 -0
- package/dest/avm/fixtures/avm_simulation_tester.d.ts.map +1 -0
- package/dest/avm/fixtures/avm_simulation_tester.js +74 -0
- package/dest/avm/fixtures/base_avm_simulation_tester.d.ts +35 -0
- package/dest/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -0
- package/dest/avm/fixtures/base_avm_simulation_tester.js +76 -0
- package/dest/avm/fixtures/index.d.ts +6 -2
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +28 -14
- package/dest/avm/fixtures/simple_contract_data_source.d.ts +31 -0
- package/dest/avm/fixtures/simple_contract_data_source.d.ts.map +1 -0
- package/dest/avm/fixtures/simple_contract_data_source.js +75 -0
- package/dest/avm/journal/journal.d.ts +3 -3
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +24 -21
- package/dest/avm/opcodes/accrued_substate.js +2 -2
- package/dest/avm/opcodes/hashing.js +2 -2
- package/dest/avm/test_utils.d.ts +1 -1
- package/dest/avm/test_utils.d.ts.map +1 -1
- package/dest/avm/test_utils.js +4 -3
- package/dest/client/client_execution_context.d.ts +1 -1
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +21 -18
- package/dest/client/execution_note_cache.d.ts +3 -3
- package/dest/client/execution_note_cache.d.ts.map +1 -1
- package/dest/client/execution_note_cache.js +10 -10
- package/dest/client/pick_notes.js +5 -5
- package/dest/client/simulator.js +4 -4
- package/dest/client/view_data_oracle.js +2 -2
- package/dest/common/hashed_values_cache.d.ts +1 -1
- package/dest/common/hashed_values_cache.d.ts.map +1 -1
- package/dest/common/hashed_values_cache.js +5 -5
- package/dest/providers/acvm_wasm.d.ts +2 -0
- package/dest/providers/acvm_wasm.d.ts.map +1 -1
- package/dest/providers/acvm_wasm.js +15 -2
- package/dest/public/execution.d.ts +1 -1
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +3 -3
- package/dest/public/fee_payment.d.ts +2 -2
- package/dest/public/fee_payment.d.ts.map +1 -1
- package/dest/public/fee_payment.js +3 -3
- package/dest/public/fixtures/index.d.ts +2 -37
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +3 -250
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +21 -0
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -0
- package/dest/public/fixtures/public_tx_simulation_tester.js +89 -0
- package/dest/public/fixtures/utils.d.ts +17 -0
- package/dest/public/fixtures/utils.d.ts.map +1 -0
- package/dest/public/fixtures/utils.js +66 -0
- package/dest/public/index.d.ts +1 -1
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +2 -2
- package/dest/public/public_db_sources.d.ts +2 -1
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +27 -21
- package/dest/public/public_processor.d.ts +1 -1
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +19 -18
- package/dest/public/public_tx_context.d.ts +5 -5
- package/dest/public/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_context.js +43 -17
- package/dest/public/public_tx_simulator.js +7 -7
- package/dest/public/{enqueued_call_side_effect_trace.d.ts → side_effect_trace.d.ts} +5 -5
- package/dest/public/side_effect_trace.d.ts.map +1 -0
- package/dest/public/{enqueued_call_side_effect_trace.js → side_effect_trace.js} +7 -7
- package/dest/public/side_effect_trace_interface.d.ts +1 -1
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/test/utils.d.ts +1 -1
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +3 -3
- package/package.json +9 -9
- package/src/avm/avm_simulator.ts +3 -27
- package/src/avm/avm_tree.ts +39 -37
- package/src/avm/fixtures/avm_simulation_tester.ts +105 -0
- package/src/avm/fixtures/base_avm_simulation_tester.ts +104 -0
- package/src/avm/fixtures/index.ts +46 -17
- package/src/avm/fixtures/simple_contract_data_source.ts +98 -0
- package/src/avm/journal/journal.ts +24 -21
- package/src/avm/opcodes/accrued_substate.ts +1 -1
- package/src/avm/opcodes/hashing.ts +1 -1
- package/src/avm/test_utils.ts +3 -4
- package/src/client/client_execution_context.ts +27 -21
- package/src/client/execution_note_cache.ts +19 -14
- package/src/client/pick_notes.ts +4 -4
- package/src/client/simulator.ts +3 -3
- package/src/client/view_data_oracle.ts +1 -1
- package/src/common/hashed_values_cache.ts +4 -4
- package/src/providers/acvm_wasm.ts +13 -2
- package/src/public/execution.ts +3 -3
- package/src/public/fee_payment.ts +2 -2
- package/src/public/fixtures/index.ts +2 -387
- package/src/public/fixtures/public_tx_simulation_tester.ts +174 -0
- package/src/public/fixtures/utils.ts +110 -0
- package/src/public/index.ts +1 -1
- package/src/public/public_db_sources.ts +31 -20
- package/src/public/public_processor.ts +25 -18
- package/src/public/public_tx_context.ts +86 -27
- package/src/public/public_tx_simulator.ts +6 -6
- package/src/public/{enqueued_call_side_effect_trace.ts → side_effect_trace.ts} +7 -7
- package/src/public/side_effect_trace_interface.ts +1 -1
- package/src/test/utils.ts +2 -2
- package/dest/public/enqueued_call_side_effect_trace.d.ts.map +0 -1
- package/dest/public/transitional_adapters.d.ts +0 -4
- package/dest/public/transitional_adapters.d.ts.map +0 -1
- package/dest/public/transitional_adapters.js +0 -29
- package/src/public/transitional_adapters.ts +0 -113
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Fr, MAX_L2_TO_L1_MSGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PrivateToAvmAccumulatedData, PrivateToAvmAccumulatedDataArrayLengths, PublicCallRequest, PublicDataWrite, TreeSnapshots, countAccumulatedItems, mergeAccumulatedData, } from '@aztec/circuits.js';
|
|
2
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
|
-
import { assertLength } from '@aztec/foundation/serialize';
|
|
4
|
-
export function generateAvmCircuitPublicInputs(trace, globalVariables, startStateReference, startGasUsed, gasSettings, feePayer, setupCallRequests, appLogicCallRequests, teardownCallRequests, nonRevertibleAccumulatedDataFromPrivate, revertibleAccumulatedDataFromPrivate, endTreeSnapshots, endGasUsed, transactionFee, revertCode) {
|
|
5
|
-
const startTreeSnapshots = new TreeSnapshots(startStateReference.l1ToL2MessageTree, startStateReference.partial.noteHashTree, startStateReference.partial.nullifierTree, startStateReference.partial.publicDataTree);
|
|
6
|
-
const avmCircuitPublicInputs = trace.toAvmCircuitPublicInputs(globalVariables, startTreeSnapshots, startGasUsed, gasSettings, feePayer, setupCallRequests, appLogicCallRequests, teardownCallRequests.length ? teardownCallRequests[0] : PublicCallRequest.empty(), endTreeSnapshots, endGasUsed, transactionFee, !revertCode.isOK());
|
|
7
|
-
const getArrayLengths = (from) => new PrivateToAvmAccumulatedDataArrayLengths(countAccumulatedItems(from.noteHashes), countAccumulatedItems(from.nullifiers), countAccumulatedItems(from.l2ToL1Msgs));
|
|
8
|
-
const convertAccumulatedData = (from) => new PrivateToAvmAccumulatedData(from.noteHashes, from.nullifiers, from.l2ToL1Msgs);
|
|
9
|
-
// Temporary overrides as these entries aren't yet populated in trace
|
|
10
|
-
avmCircuitPublicInputs.previousNonRevertibleAccumulatedDataArrayLengths = getArrayLengths(nonRevertibleAccumulatedDataFromPrivate);
|
|
11
|
-
avmCircuitPublicInputs.previousRevertibleAccumulatedDataArrayLengths = getArrayLengths(revertibleAccumulatedDataFromPrivate);
|
|
12
|
-
avmCircuitPublicInputs.previousNonRevertibleAccumulatedData = convertAccumulatedData(nonRevertibleAccumulatedDataFromPrivate);
|
|
13
|
-
avmCircuitPublicInputs.previousRevertibleAccumulatedData = convertAccumulatedData(revertibleAccumulatedDataFromPrivate);
|
|
14
|
-
const msgsFromPrivate = revertCode.isOK()
|
|
15
|
-
? mergeAccumulatedData(avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.l2ToL1Msgs, avmCircuitPublicInputs.previousRevertibleAccumulatedData.l2ToL1Msgs)
|
|
16
|
-
: avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.l2ToL1Msgs;
|
|
17
|
-
avmCircuitPublicInputs.accumulatedData.l2ToL1Msgs = assertLength(mergeAccumulatedData(msgsFromPrivate, avmCircuitPublicInputs.accumulatedData.l2ToL1Msgs), MAX_L2_TO_L1_MSGS_PER_TX);
|
|
18
|
-
// Maps slot to value. Maps in TS are iterable in insertion order, which is exactly what we want for
|
|
19
|
-
// squashing "to the left", where the first occurrence of a slot uses the value of the last write to it,
|
|
20
|
-
// and the rest occurrences are omitted
|
|
21
|
-
const squashedPublicDataWrites = new Map();
|
|
22
|
-
for (const publicDataWrite of avmCircuitPublicInputs.accumulatedData.publicDataWrites) {
|
|
23
|
-
squashedPublicDataWrites.set(publicDataWrite.leafSlot.toBigInt(), publicDataWrite.value);
|
|
24
|
-
}
|
|
25
|
-
avmCircuitPublicInputs.accumulatedData.publicDataWrites = padArrayEnd(Array.from(squashedPublicDataWrites.entries()).map(([slot, value]) => new PublicDataWrite(new Fr(slot), value)), PublicDataWrite.empty(), MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
26
|
-
//console.log(`AvmCircuitPublicInputs:\n${inspect(avmCircuitPublicInputs)}`);
|
|
27
|
-
return avmCircuitPublicInputs;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbmFsX2FkYXB0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy90cmFuc2l0aW9uYWxfYWRhcHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLEVBQUUsRUFJRix3QkFBd0IsRUFDeEIsNENBQTRDLEVBQzVDLDJCQUEyQixFQUMzQix1Q0FBdUMsRUFFdkMsaUJBQWlCLEVBQ2pCLGVBQWUsRUFHZixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJM0QsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxLQUF3QyxFQUN4QyxlQUFnQyxFQUNoQyxtQkFBbUMsRUFDbkMsWUFBaUIsRUFDakIsV0FBd0IsRUFDeEIsUUFBc0IsRUFDdEIsaUJBQXNDLEVBQ3RDLG9CQUF5QyxFQUN6QyxvQkFBeUMsRUFDekMsdUNBQXVFLEVBQ3ZFLG9DQUFvRSxFQUNwRSxnQkFBK0IsRUFDL0IsVUFBZSxFQUNmLGNBQWtCLEVBQ2xCLFVBQXNCO0lBRXRCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxhQUFhLENBQzFDLG1CQUFtQixDQUFDLGlCQUFpQixFQUNyQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUN4QyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUN6QyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUMzQyxDQUFDO0lBRUYsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUMsd0JBQXdCLENBQzNELGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixvQkFBb0IsQ0FBQyxNQUFNLENB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
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type AvmCircuitPublicInputs,
|
|
3
|
-
type AztecAddress,
|
|
4
|
-
Fr,
|
|
5
|
-
type Gas,
|
|
6
|
-
type GasSettings,
|
|
7
|
-
type GlobalVariables,
|
|
8
|
-
MAX_L2_TO_L1_MSGS_PER_TX,
|
|
9
|
-
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
10
|
-
PrivateToAvmAccumulatedData,
|
|
11
|
-
PrivateToAvmAccumulatedDataArrayLengths,
|
|
12
|
-
type PrivateToPublicAccumulatedData,
|
|
13
|
-
PublicCallRequest,
|
|
14
|
-
PublicDataWrite,
|
|
15
|
-
type RevertCode,
|
|
16
|
-
type StateReference,
|
|
17
|
-
TreeSnapshots,
|
|
18
|
-
countAccumulatedItems,
|
|
19
|
-
mergeAccumulatedData,
|
|
20
|
-
} from '@aztec/circuits.js';
|
|
21
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
22
|
-
import { assertLength } from '@aztec/foundation/serialize';
|
|
23
|
-
|
|
24
|
-
import { type PublicEnqueuedCallSideEffectTrace } from './enqueued_call_side_effect_trace.js';
|
|
25
|
-
|
|
26
|
-
export function generateAvmCircuitPublicInputs(
|
|
27
|
-
trace: PublicEnqueuedCallSideEffectTrace,
|
|
28
|
-
globalVariables: GlobalVariables,
|
|
29
|
-
startStateReference: StateReference,
|
|
30
|
-
startGasUsed: Gas,
|
|
31
|
-
gasSettings: GasSettings,
|
|
32
|
-
feePayer: AztecAddress,
|
|
33
|
-
setupCallRequests: PublicCallRequest[],
|
|
34
|
-
appLogicCallRequests: PublicCallRequest[],
|
|
35
|
-
teardownCallRequests: PublicCallRequest[],
|
|
36
|
-
nonRevertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData,
|
|
37
|
-
revertibleAccumulatedDataFromPrivate: PrivateToPublicAccumulatedData,
|
|
38
|
-
endTreeSnapshots: TreeSnapshots,
|
|
39
|
-
endGasUsed: Gas,
|
|
40
|
-
transactionFee: Fr,
|
|
41
|
-
revertCode: RevertCode,
|
|
42
|
-
): AvmCircuitPublicInputs {
|
|
43
|
-
const startTreeSnapshots = new TreeSnapshots(
|
|
44
|
-
startStateReference.l1ToL2MessageTree,
|
|
45
|
-
startStateReference.partial.noteHashTree,
|
|
46
|
-
startStateReference.partial.nullifierTree,
|
|
47
|
-
startStateReference.partial.publicDataTree,
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
const avmCircuitPublicInputs = trace.toAvmCircuitPublicInputs(
|
|
51
|
-
globalVariables,
|
|
52
|
-
startTreeSnapshots,
|
|
53
|
-
startGasUsed,
|
|
54
|
-
gasSettings,
|
|
55
|
-
feePayer,
|
|
56
|
-
setupCallRequests,
|
|
57
|
-
appLogicCallRequests,
|
|
58
|
-
teardownCallRequests.length ? teardownCallRequests[0] : PublicCallRequest.empty(),
|
|
59
|
-
endTreeSnapshots,
|
|
60
|
-
endGasUsed,
|
|
61
|
-
transactionFee,
|
|
62
|
-
!revertCode.isOK(),
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
const getArrayLengths = (from: PrivateToPublicAccumulatedData) =>
|
|
66
|
-
new PrivateToAvmAccumulatedDataArrayLengths(
|
|
67
|
-
countAccumulatedItems(from.noteHashes),
|
|
68
|
-
countAccumulatedItems(from.nullifiers),
|
|
69
|
-
countAccumulatedItems(from.l2ToL1Msgs),
|
|
70
|
-
);
|
|
71
|
-
const convertAccumulatedData = (from: PrivateToPublicAccumulatedData) =>
|
|
72
|
-
new PrivateToAvmAccumulatedData(from.noteHashes, from.nullifiers, from.l2ToL1Msgs);
|
|
73
|
-
// Temporary overrides as these entries aren't yet populated in trace
|
|
74
|
-
avmCircuitPublicInputs.previousNonRevertibleAccumulatedDataArrayLengths = getArrayLengths(
|
|
75
|
-
nonRevertibleAccumulatedDataFromPrivate,
|
|
76
|
-
);
|
|
77
|
-
avmCircuitPublicInputs.previousRevertibleAccumulatedDataArrayLengths = getArrayLengths(
|
|
78
|
-
revertibleAccumulatedDataFromPrivate,
|
|
79
|
-
);
|
|
80
|
-
avmCircuitPublicInputs.previousNonRevertibleAccumulatedData = convertAccumulatedData(
|
|
81
|
-
nonRevertibleAccumulatedDataFromPrivate,
|
|
82
|
-
);
|
|
83
|
-
avmCircuitPublicInputs.previousRevertibleAccumulatedData = convertAccumulatedData(
|
|
84
|
-
revertibleAccumulatedDataFromPrivate,
|
|
85
|
-
);
|
|
86
|
-
|
|
87
|
-
const msgsFromPrivate = revertCode.isOK()
|
|
88
|
-
? mergeAccumulatedData(
|
|
89
|
-
avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.l2ToL1Msgs,
|
|
90
|
-
avmCircuitPublicInputs.previousRevertibleAccumulatedData.l2ToL1Msgs,
|
|
91
|
-
)
|
|
92
|
-
: avmCircuitPublicInputs.previousNonRevertibleAccumulatedData.l2ToL1Msgs;
|
|
93
|
-
avmCircuitPublicInputs.accumulatedData.l2ToL1Msgs = assertLength(
|
|
94
|
-
mergeAccumulatedData(msgsFromPrivate, avmCircuitPublicInputs.accumulatedData.l2ToL1Msgs),
|
|
95
|
-
MAX_L2_TO_L1_MSGS_PER_TX,
|
|
96
|
-
);
|
|
97
|
-
|
|
98
|
-
// Maps slot to value. Maps in TS are iterable in insertion order, which is exactly what we want for
|
|
99
|
-
// squashing "to the left", where the first occurrence of a slot uses the value of the last write to it,
|
|
100
|
-
// and the rest occurrences are omitted
|
|
101
|
-
const squashedPublicDataWrites: Map<bigint, Fr> = new Map();
|
|
102
|
-
for (const publicDataWrite of avmCircuitPublicInputs.accumulatedData.publicDataWrites) {
|
|
103
|
-
squashedPublicDataWrites.set(publicDataWrite.leafSlot.toBigInt(), publicDataWrite.value);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
avmCircuitPublicInputs.accumulatedData.publicDataWrites = padArrayEnd(
|
|
107
|
-
Array.from(squashedPublicDataWrites.entries()).map(([slot, value]) => new PublicDataWrite(new Fr(slot), value)),
|
|
108
|
-
PublicDataWrite.empty(),
|
|
109
|
-
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
110
|
-
);
|
|
111
|
-
//console.log(`AvmCircuitPublicInputs:\n${inspect(avmCircuitPublicInputs)}`);
|
|
112
|
-
return avmCircuitPublicInputs;
|
|
113
|
-
}
|