@aztec/simulator 0.84.0-alpha-testnet.1 → 0.84.0-nightly.20250406
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/private/acvm/oracle/oracle.js +1 -1
- package/dest/private/acvm/oracle/typed_oracle.d.ts +1 -1
- package/dest/private/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/private/execution_data_provider.d.ts +1 -1
- package/dest/private/execution_data_provider.d.ts.map +1 -1
- package/dest/private/utility_execution_oracle.d.ts +1 -1
- package/dest/private/utility_execution_oracle.d.ts.map +1 -1
- package/dest/public/hinting_db_sources.d.ts +9 -0
- package/dest/public/hinting_db_sources.d.ts.map +1 -1
- package/dest/public/hinting_db_sources.js +69 -13
- package/dest/public/public_tx_simulator/public_tx_context.js +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +1 -1
- package/package.json +14 -14
- package/src/private/acvm/oracle/oracle.ts +1 -1
- package/src/private/acvm/oracle/typed_oracle.ts +1 -1
- package/src/private/execution_data_provider.ts +1 -1
- package/src/private/utility_execution_oracle.ts +1 -1
- package/src/public/hinting_db_sources.ts +108 -18
- package/src/public/public_tx_simulator/public_tx_context.ts +1 -1
- package/src/public/public_tx_simulator/public_tx_simulator.ts +1 -2
|
@@ -244,7 +244,7 @@ import { bufferToBoundedVec, toACVMField, toACVMFieldSingleOrArray } from '../se
|
|
|
244
244
|
// TODO(#10728): try-catch this block and return false if we get an exception so that the contract can decide what
|
|
245
245
|
// to do if a note fails delivery (e.g. not increment the tagging index, or add it to some pending work list).
|
|
246
246
|
// Delivery might fail due to temporary issues, such as poor node connectivity.
|
|
247
|
-
await this.typedOracle.deliverNote(AztecAddress.fromString(contractAddress), Fr.fromString(storageSlot), Fr.fromString(nonce), fromBoundedVec(content, contentLength), Fr.fromString(noteHash), Fr.fromString(nullifier),
|
|
247
|
+
await this.typedOracle.deliverNote(AztecAddress.fromString(contractAddress), Fr.fromString(storageSlot), Fr.fromString(nonce), fromBoundedVec(content, contentLength), Fr.fromString(noteHash), Fr.fromString(nullifier), TxHash.fromString(txHash), AztecAddress.fromString(recipient));
|
|
248
248
|
return [
|
|
249
249
|
toACVMField(true)
|
|
250
250
|
];
|
|
@@ -72,7 +72,7 @@ export declare abstract class TypedOracle {
|
|
|
72
72
|
getIndexedTaggingSecretAsSender(_sender: AztecAddress, _recipient: AztecAddress): Promise<IndexedTaggingSecret>;
|
|
73
73
|
incrementAppTaggingSecretIndexAsSender(_sender: AztecAddress, _recipient: AztecAddress): Promise<void>;
|
|
74
74
|
syncNotes(_pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
|
|
75
|
-
deliverNote(_contractAddress: AztecAddress, _storageSlot: Fr, _nonce: Fr, _content: Fr[], _noteHash: Fr, _nullifier: Fr, _txHash:
|
|
75
|
+
deliverNote(_contractAddress: AztecAddress, _storageSlot: Fr, _nonce: Fr, _content: Fr[], _noteHash: Fr, _nullifier: Fr, _txHash: TxHash, _recipient: AztecAddress): Promise<void>;
|
|
76
76
|
getLogByTag(_tag: Fr): Promise<LogWithTxData | null>;
|
|
77
77
|
storeCapsule(_contractAddress: AztecAddress, _key: Fr, _capsule: Fr[]): Promise<void>;
|
|
78
78
|
loadCapsule(_contractAddress: AztecAddress, _key: Fr): Promise<Fr[] | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed_oracle.d.ts","sourceRoot":"","sources":["../../../../src/private/acvm/oracle/typed_oracle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"typed_oracle.d.ts","sourceRoot":"","sources":["../../../../src/private/acvm/oracle/typed_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -198,7 +198,7 @@ export interface ExecutionDataProvider extends CommitmentsDBInterface {
|
|
|
198
198
|
* @param txHash - The transaction in which the note was added to the note hash tree
|
|
199
199
|
* @param recipient - The account that discovered the note
|
|
200
200
|
*/
|
|
201
|
-
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash:
|
|
201
|
+
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress): Promise<void>;
|
|
202
202
|
/**
|
|
203
203
|
* Searches for a log with the corresponding `tag` and returns it along with contextual transaction information.
|
|
204
204
|
* Returns null if no such log exists, and throws if more than one exists.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution_data_provider.d.ts","sourceRoot":"","sources":["../../src/private/execution_data_provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"execution_data_provider.d.ts","sourceRoot":"","sources":["../../src/private/execution_data_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -152,7 +152,7 @@ export declare class UtilityExecutionOracle extends TypedOracle {
|
|
|
152
152
|
*/
|
|
153
153
|
getIndexedTaggingSecretAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<IndexedTaggingSecret>;
|
|
154
154
|
syncNotes(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
|
|
155
|
-
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash:
|
|
155
|
+
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress): Promise<void>;
|
|
156
156
|
getLogByTag(tag: Fr): Promise<LogWithTxData | null>;
|
|
157
157
|
storeCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void>;
|
|
158
158
|
loadCapsule(contractAddress: AztecAddress, slot: Fr): Promise<Fr[] | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility_execution_oracle.d.ts","sourceRoot":"","sources":["../../src/private/utility_execution_oracle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utility_execution_oracle.d.ts","sourceRoot":"","sources":["../../src/private/utility_execution_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,9 @@ export declare class HintingPublicContractsDB implements PublicContractsDBInterf
|
|
|
27
27
|
export declare class HintingPublicTreesDB extends PublicTreesDB {
|
|
28
28
|
private hints;
|
|
29
29
|
private static readonly log;
|
|
30
|
+
private checkpointStack;
|
|
31
|
+
private nextCheckpointId;
|
|
32
|
+
private checkpointActionCounter;
|
|
30
33
|
constructor(db: PublicTreesDB, hints: AvmExecutionHints);
|
|
31
34
|
getSiblingPath<N extends number>(treeId: MerkleTreeId, index: bigint): Promise<SiblingPath<N>>;
|
|
32
35
|
getPreviousValueIndex<ID extends IndexedTreeId>(treeId: ID, value: bigint): Promise<{
|
|
@@ -36,7 +39,13 @@ export declare class HintingPublicTreesDB extends PublicTreesDB {
|
|
|
36
39
|
getLeafPreimage<ID extends IndexedTreeId>(treeId: ID, index: bigint): Promise<IndexedTreeLeafPreimage | undefined>;
|
|
37
40
|
getLeafValue<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<MerkleTreeLeafType<typeof treeId> | undefined>;
|
|
38
41
|
sequentialInsert<TreeHeight extends number, ID extends IndexedTreeId>(treeId: ID, leaves: Buffer[]): Promise<SequentialInsertionResult<TreeHeight>>;
|
|
42
|
+
appendLeaves<ID extends MerkleTreeId>(treeId: ID, leaves: MerkleTreeLeafType<ID>[]): Promise<void>;
|
|
43
|
+
createCheckpoint(): Promise<void>;
|
|
44
|
+
commitCheckpoint(): Promise<void>;
|
|
39
45
|
revertCheckpoint(): Promise<void>;
|
|
40
46
|
private getHintKey;
|
|
47
|
+
private getCurrentCheckpointId;
|
|
48
|
+
private getTreesStateHash;
|
|
49
|
+
private static logTreeChange;
|
|
41
50
|
}
|
|
42
51
|
//# sourceMappingURL=hinting_db_sources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hinting_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/hinting_db_sources.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"hinting_db_sources.d.ts","sourceRoot":"","sources":["../../src/public/hinting_db_sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { sha256Trunc } from '@aztec/foundation/crypto';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import { AvmBytecodeCommitmentHint, AvmContractClassHint, AvmContractInstanceHint, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree } from '@aztec/stdlib/avm';
|
|
4
|
-
import { AppendOnlyTreeSnapshot, MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf, getTreeName } from '@aztec/stdlib/trees';
|
|
4
|
+
import { AvmAppendLeavesHint, AvmBytecodeCommitmentHint, AvmCommitCheckpointHint, AvmContractClassHint, AvmContractInstanceHint, AvmCreateCheckpointHint, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmRevertCheckpointHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree } from '@aztec/stdlib/avm';
|
|
5
|
+
import { AppendOnlyTreeSnapshot, MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf, getTreeName, merkleTreeIds } from '@aztec/stdlib/trees';
|
|
5
6
|
import { strict as assert } from 'assert';
|
|
6
7
|
import { PublicTreesDB } from './public_db_sources.js';
|
|
7
8
|
/**
|
|
@@ -44,8 +45,17 @@ import { PublicTreesDB } from './public_db_sources.js';
|
|
|
44
45
|
*/ export class HintingPublicTreesDB extends PublicTreesDB {
|
|
45
46
|
hints;
|
|
46
47
|
static log = createLogger('HintingPublicTreesDB');
|
|
48
|
+
// This stack is only for debugging purposes.
|
|
49
|
+
// The top of the stack is the current checkpoint id.
|
|
50
|
+
// We need the stack to be non-empty and use 0 as an arbitrary initial checkpoint id.
|
|
51
|
+
// This is not necessarily a checkpoint that happened, but whatever tree state we start with.
|
|
52
|
+
checkpointStack;
|
|
53
|
+
nextCheckpointId;
|
|
54
|
+
checkpointActionCounter;
|
|
47
55
|
constructor(db, hints){
|
|
48
|
-
super(db), this.hints = hints
|
|
56
|
+
super(db), this.hints = hints, this.checkpointStack = [
|
|
57
|
+
0
|
|
58
|
+
], this.nextCheckpointId = 1, this.checkpointActionCounter = 0;
|
|
49
59
|
}
|
|
50
60
|
// Getters.
|
|
51
61
|
async getSiblingPath(treeId, index) {
|
|
@@ -104,7 +114,8 @@ import { PublicTreesDB } from './public_db_sources.js';
|
|
|
104
114
|
const beforeState = await this.getHintKey(treeId);
|
|
105
115
|
const result = await super.sequentialInsert(treeId, leaves);
|
|
106
116
|
const afterState = await this.getHintKey(treeId);
|
|
107
|
-
HintingPublicTreesDB.log.debug(
|
|
117
|
+
HintingPublicTreesDB.log.debug('[sequentialInsert] Evolved tree state.');
|
|
118
|
+
HintingPublicTreesDB.logTreeChange(beforeState, afterState, treeId);
|
|
108
119
|
switch(treeId){
|
|
109
120
|
case MerkleTreeId.PUBLIC_DATA_TREE:
|
|
110
121
|
this.hints.sequentialInsertHintsPublicDataTree.push(new AvmSequentialInsertHintPublicDataTree(beforeState, afterState, treeId, PublicDataTreeLeaf.fromBuffer(leaves[0]), {
|
|
@@ -134,11 +145,43 @@ import { PublicTreesDB } from './public_db_sources.js';
|
|
|
134
145
|
}
|
|
135
146
|
return result;
|
|
136
147
|
}
|
|
148
|
+
async appendLeaves(treeId, leaves) {
|
|
149
|
+
// Use sequentialInsert for PublicDataTree and NullifierTree.
|
|
150
|
+
assert(treeId == MerkleTreeId.NOTE_HASH_TREE || treeId == MerkleTreeId.L1_TO_L2_MESSAGE_TREE);
|
|
151
|
+
if (leaves.length === 0) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const beforeState = await this.getHintKey(treeId);
|
|
155
|
+
await super.appendLeaves(treeId, leaves);
|
|
156
|
+
const afterState = await this.getHintKey(treeId);
|
|
157
|
+
HintingPublicTreesDB.log.debug('[appendLeaves] Evolved tree state.');
|
|
158
|
+
HintingPublicTreesDB.logTreeChange(beforeState, afterState, treeId);
|
|
159
|
+
this.hints.appendLeavesHints.push(new AvmAppendLeavesHint(beforeState, afterState, treeId, leaves));
|
|
160
|
+
}
|
|
161
|
+
async createCheckpoint() {
|
|
162
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
163
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
164
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
165
|
+
await super.createCheckpoint();
|
|
166
|
+
this.checkpointStack.push(this.nextCheckpointId++);
|
|
167
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
168
|
+
this.hints.createCheckpointHints.push(new AvmCreateCheckpointHint(actionCounter, oldCheckpointId, newCheckpointId));
|
|
169
|
+
HintingPublicTreesDB.log.debug(`[createCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`);
|
|
170
|
+
}
|
|
171
|
+
async commitCheckpoint() {
|
|
172
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
173
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
174
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
175
|
+
await super.commitCheckpoint();
|
|
176
|
+
this.checkpointStack.pop();
|
|
177
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
178
|
+
this.hints.commitCheckpointHints.push(new AvmCommitCheckpointHint(actionCounter, oldCheckpointId, newCheckpointId));
|
|
179
|
+
HintingPublicTreesDB.log.debug(`[commitCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`);
|
|
180
|
+
}
|
|
137
181
|
async revertCheckpoint() {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
// We will need to keep a stack of checkpoints on the C++ side.
|
|
182
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
183
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
184
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
142
185
|
const beforeState = {
|
|
143
186
|
[MerkleTreeId.PUBLIC_DATA_TREE]: await this.getHintKey(MerkleTreeId.PUBLIC_DATA_TREE),
|
|
144
187
|
[MerkleTreeId.NULLIFIER_TREE]: await this.getHintKey(MerkleTreeId.NULLIFIER_TREE),
|
|
@@ -147,6 +190,8 @@ import { PublicTreesDB } from './public_db_sources.js';
|
|
|
147
190
|
[MerkleTreeId.ARCHIVE]: await this.getHintKey(MerkleTreeId.ARCHIVE)
|
|
148
191
|
};
|
|
149
192
|
await super.revertCheckpoint();
|
|
193
|
+
this.checkpointStack.pop();
|
|
194
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
150
195
|
const afterState = {
|
|
151
196
|
[MerkleTreeId.PUBLIC_DATA_TREE]: await this.getHintKey(MerkleTreeId.PUBLIC_DATA_TREE),
|
|
152
197
|
[MerkleTreeId.NULLIFIER_TREE]: await this.getHintKey(MerkleTreeId.NULLIFIER_TREE),
|
|
@@ -154,11 +199,10 @@ import { PublicTreesDB } from './public_db_sources.js';
|
|
|
154
199
|
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: await this.getHintKey(MerkleTreeId.L1_TO_L2_MESSAGE_TREE),
|
|
155
200
|
[MerkleTreeId.ARCHIVE]: await this.getHintKey(MerkleTreeId.ARCHIVE)
|
|
156
201
|
};
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
HintingPublicTreesDB.log.debug(`${treeName}: ${beforeState[id].root}, ${beforeState[id].nextAvailableLeafIndex} -> ${afterState[id].root}, ${afterState[id].nextAvailableLeafIndex}.`);
|
|
202
|
+
this.hints.revertCheckpointHints.push(AvmRevertCheckpointHint.create(actionCounter, oldCheckpointId, newCheckpointId, beforeState, afterState));
|
|
203
|
+
HintingPublicTreesDB.log.debug(`[revertCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`);
|
|
204
|
+
for (const treeId of merkleTreeIds()){
|
|
205
|
+
HintingPublicTreesDB.logTreeChange(beforeState[treeId], afterState[treeId], treeId);
|
|
162
206
|
}
|
|
163
207
|
}
|
|
164
208
|
// Private methods.
|
|
@@ -166,4 +210,16 @@ import { PublicTreesDB } from './public_db_sources.js';
|
|
|
166
210
|
const treeInfo = await super.getTreeInfo(treeId);
|
|
167
211
|
return new AppendOnlyTreeSnapshot(Fr.fromBuffer(treeInfo.root), Number(treeInfo.size));
|
|
168
212
|
}
|
|
213
|
+
getCurrentCheckpointId() {
|
|
214
|
+
return this.checkpointStack[this.checkpointStack.length - 1];
|
|
215
|
+
}
|
|
216
|
+
// For logging/debugging purposes.
|
|
217
|
+
async getTreesStateHash() {
|
|
218
|
+
const stateReferenceFields = (await super.getStateReference()).toFields();
|
|
219
|
+
return Fr.fromBuffer(sha256Trunc(Buffer.concat(stateReferenceFields.map((field)=>field.toBuffer()))));
|
|
220
|
+
}
|
|
221
|
+
static logTreeChange(beforeState, afterState, treeId) {
|
|
222
|
+
const treeName = getTreeName(treeId);
|
|
223
|
+
HintingPublicTreesDB.log.debug(`[${treeName}] Evolved tree state: ${beforeState.root}, ${beforeState.nextAvailableLeafIndex} -> ${afterState.root}, ${afterState.nextAvailableLeafIndex}.`);
|
|
224
|
+
}
|
|
169
225
|
}
|
|
@@ -67,7 +67,7 @@ import { getCallRequestsWithCalldataByPhase } from '../utils.js';
|
|
|
67
67
|
const trace = new SideEffectTrace(/*startSideEffectCounter=*/ 0, previousAccumulatedDataArrayLengths);
|
|
68
68
|
const firstNullifier = nonRevertibleAccumulatedDataFromPrivate.nullifiers[0];
|
|
69
69
|
// We wrap the DB to collect AVM hints.
|
|
70
|
-
const hints = new AvmExecutionHints(AvmTxHint.fromTx(tx));
|
|
70
|
+
const hints = new AvmExecutionHints(await AvmTxHint.fromTx(tx));
|
|
71
71
|
const hintingContractsDB = new HintingPublicContractsDB(contractsDB, hints);
|
|
72
72
|
const hintingTreesDB = new HintingPublicTreesDB(treesDB, hints);
|
|
73
73
|
// Transaction level state manager that will be forked for revertible phases.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EACL,KAAK,eAAe,EACpB,yBAAyB,EACzB,6BAA6B,EAC7B,EAAE,EACF,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC,CAAC;AAEF,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,OAAO;IACf,SAAS,CAAC,WAAW,EAAE,iBAAiB;IACxC,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,kBAAkB;IAP5B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;gBAGZ,OAAO,EAAE,aAAa,EACpB,WAAW,EAAE,iBAAiB,EAChC,eAAe,EAAE,eAAe,EAChC,kBAAkB,GAAE,OAAe,EACnC,kBAAkB,GAAE,OAAe;IAK7C;;;;OAIG;IACU,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"public_tx_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/public_tx_simulator/public_tx_simulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -294,7 +294,7 @@ export class PublicTxSimulator {
|
|
|
294
294
|
*/ static generateProvingRequest(publicInputs, hints) {
|
|
295
295
|
return {
|
|
296
296
|
type: ProvingRequestType.PUBLIC_VM,
|
|
297
|
-
inputs: new AvmCircuitInputs(
|
|
297
|
+
inputs: new AvmCircuitInputs(hints, publicInputs)
|
|
298
298
|
};
|
|
299
299
|
}
|
|
300
300
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "0.84.0-
|
|
3
|
+
"version": "0.84.0-nightly.20250406",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": "./dest/server.js",
|
|
@@ -60,16 +60,16 @@
|
|
|
60
60
|
]
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@aztec/constants": "0.84.0-
|
|
64
|
-
"@aztec/foundation": "0.84.0-
|
|
65
|
-
"@aztec/noir-acvm_js": "0.84.0-
|
|
66
|
-
"@aztec/noir-noirc_abi": "0.84.0-
|
|
67
|
-
"@aztec/noir-protocol-circuits-types": "0.84.0-
|
|
68
|
-
"@aztec/noir-types": "0.84.0-
|
|
69
|
-
"@aztec/protocol-contracts": "0.84.0-
|
|
70
|
-
"@aztec/stdlib": "0.84.0-
|
|
71
|
-
"@aztec/telemetry-client": "0.84.0-
|
|
72
|
-
"@aztec/world-state": "0.84.0-
|
|
63
|
+
"@aztec/constants": "0.84.0-nightly.20250406",
|
|
64
|
+
"@aztec/foundation": "0.84.0-nightly.20250406",
|
|
65
|
+
"@aztec/noir-acvm_js": "0.84.0-nightly.20250406",
|
|
66
|
+
"@aztec/noir-noirc_abi": "0.84.0-nightly.20250406",
|
|
67
|
+
"@aztec/noir-protocol-circuits-types": "0.84.0-nightly.20250406",
|
|
68
|
+
"@aztec/noir-types": "0.84.0-nightly.20250406",
|
|
69
|
+
"@aztec/protocol-contracts": "0.84.0-nightly.20250406",
|
|
70
|
+
"@aztec/stdlib": "0.84.0-nightly.20250406",
|
|
71
|
+
"@aztec/telemetry-client": "0.84.0-nightly.20250406",
|
|
72
|
+
"@aztec/world-state": "0.84.0-nightly.20250406",
|
|
73
73
|
"levelup": "^5.1.1",
|
|
74
74
|
"lodash.clonedeep": "^4.5.0",
|
|
75
75
|
"lodash.merge": "^4.6.2",
|
|
@@ -77,9 +77,9 @@
|
|
|
77
77
|
"tslib": "^2.4.0"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@aztec/kv-store": "0.84.0-
|
|
81
|
-
"@aztec/merkle-tree": "0.84.0-
|
|
82
|
-
"@aztec/noir-contracts.js": "0.84.0-
|
|
80
|
+
"@aztec/kv-store": "0.84.0-nightly.20250406",
|
|
81
|
+
"@aztec/merkle-tree": "0.84.0-nightly.20250406",
|
|
82
|
+
"@aztec/noir-contracts.js": "0.84.0-nightly.20250406",
|
|
83
83
|
"@jest/globals": "^29.5.0",
|
|
84
84
|
"@types/jest": "^29.5.0",
|
|
85
85
|
"@types/levelup": "^5.1.3",
|
|
@@ -225,7 +225,7 @@ export abstract class TypedOracle {
|
|
|
225
225
|
_content: Fr[],
|
|
226
226
|
_noteHash: Fr,
|
|
227
227
|
_nullifier: Fr,
|
|
228
|
-
_txHash:
|
|
228
|
+
_txHash: TxHash,
|
|
229
229
|
_recipient: AztecAddress,
|
|
230
230
|
): Promise<void> {
|
|
231
231
|
return Promise.reject(new OracleMethodNotAvailableError('deliverNote'));
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
import { sha256Trunc } from '@aztec/foundation/crypto';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import type { IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
|
|
4
5
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
5
6
|
import {
|
|
7
|
+
AvmAppendLeavesHint,
|
|
6
8
|
AvmBytecodeCommitmentHint,
|
|
9
|
+
AvmCommitCheckpointHint,
|
|
7
10
|
AvmContractClassHint,
|
|
8
11
|
AvmContractInstanceHint,
|
|
12
|
+
AvmCreateCheckpointHint,
|
|
9
13
|
type AvmExecutionHints,
|
|
10
14
|
AvmGetLeafPreimageHintNullifierTree,
|
|
11
15
|
AvmGetLeafPreimageHintPublicDataTree,
|
|
12
16
|
AvmGetLeafValueHint,
|
|
13
17
|
AvmGetPreviousValueIndexHint,
|
|
14
18
|
AvmGetSiblingPathHint,
|
|
19
|
+
AvmRevertCheckpointHint,
|
|
15
20
|
AvmSequentialInsertHintNullifierTree,
|
|
16
21
|
AvmSequentialInsertHintPublicDataTree,
|
|
17
22
|
} from '@aztec/stdlib/avm';
|
|
@@ -28,6 +33,7 @@ import {
|
|
|
28
33
|
PublicDataTreeLeafPreimage,
|
|
29
34
|
type SequentialInsertionResult,
|
|
30
35
|
getTreeName,
|
|
36
|
+
merkleTreeIds,
|
|
31
37
|
} from '@aztec/stdlib/trees';
|
|
32
38
|
|
|
33
39
|
import { strict as assert } from 'assert';
|
|
@@ -99,6 +105,13 @@ export class HintingPublicContractsDB implements PublicContractsDBInterface {
|
|
|
99
105
|
*/
|
|
100
106
|
export class HintingPublicTreesDB extends PublicTreesDB {
|
|
101
107
|
private static readonly log: Logger = createLogger('HintingPublicTreesDB');
|
|
108
|
+
// This stack is only for debugging purposes.
|
|
109
|
+
// The top of the stack is the current checkpoint id.
|
|
110
|
+
// We need the stack to be non-empty and use 0 as an arbitrary initial checkpoint id.
|
|
111
|
+
// This is not necessarily a checkpoint that happened, but whatever tree state we start with.
|
|
112
|
+
private checkpointStack: number[] = [0];
|
|
113
|
+
private nextCheckpointId: number = 1;
|
|
114
|
+
private checkpointActionCounter: number = 0; // yes, a side-effect counter.
|
|
102
115
|
|
|
103
116
|
constructor(db: PublicTreesDB, private hints: AvmExecutionHints) {
|
|
104
117
|
super(db);
|
|
@@ -200,11 +213,8 @@ export class HintingPublicTreesDB extends PublicTreesDB {
|
|
|
200
213
|
const result = await super.sequentialInsert<TreeHeight, ID>(treeId, leaves);
|
|
201
214
|
|
|
202
215
|
const afterState = await this.getHintKey(treeId);
|
|
203
|
-
HintingPublicTreesDB.log.debug(
|
|
204
|
-
|
|
205
|
-
afterState.root
|
|
206
|
-
}, ${afterState.nextAvailableLeafIndex}.`,
|
|
207
|
-
);
|
|
216
|
+
HintingPublicTreesDB.log.debug('[sequentialInsert] Evolved tree state.');
|
|
217
|
+
HintingPublicTreesDB.logTreeChange(beforeState, afterState, treeId);
|
|
208
218
|
|
|
209
219
|
switch (treeId) {
|
|
210
220
|
case MerkleTreeId.PUBLIC_DATA_TREE:
|
|
@@ -255,12 +265,67 @@ export class HintingPublicTreesDB extends PublicTreesDB {
|
|
|
255
265
|
return result;
|
|
256
266
|
}
|
|
257
267
|
|
|
268
|
+
public override async appendLeaves<ID extends MerkleTreeId>(
|
|
269
|
+
treeId: ID,
|
|
270
|
+
leaves: MerkleTreeLeafType<ID>[],
|
|
271
|
+
): Promise<void> {
|
|
272
|
+
// Use sequentialInsert for PublicDataTree and NullifierTree.
|
|
273
|
+
assert(treeId == MerkleTreeId.NOTE_HASH_TREE || treeId == MerkleTreeId.L1_TO_L2_MESSAGE_TREE);
|
|
274
|
+
|
|
275
|
+
if (leaves.length === 0) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
const beforeState = await this.getHintKey(treeId);
|
|
280
|
+
|
|
281
|
+
await super.appendLeaves<ID>(treeId, leaves);
|
|
282
|
+
|
|
283
|
+
const afterState = await this.getHintKey(treeId);
|
|
284
|
+
|
|
285
|
+
HintingPublicTreesDB.log.debug('[appendLeaves] Evolved tree state.');
|
|
286
|
+
HintingPublicTreesDB.logTreeChange(beforeState, afterState, treeId);
|
|
287
|
+
|
|
288
|
+
this.hints.appendLeavesHints.push(new AvmAppendLeavesHint(beforeState, afterState, treeId, leaves as Fr[]));
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
public override async createCheckpoint(): Promise<void> {
|
|
292
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
293
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
294
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
295
|
+
|
|
296
|
+
await super.createCheckpoint();
|
|
297
|
+
this.checkpointStack.push(this.nextCheckpointId++);
|
|
298
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
299
|
+
|
|
300
|
+
this.hints.createCheckpointHints.push(new AvmCreateCheckpointHint(actionCounter, oldCheckpointId, newCheckpointId));
|
|
301
|
+
|
|
302
|
+
HintingPublicTreesDB.log.debug(
|
|
303
|
+
`[createCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`,
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
public override async commitCheckpoint(): Promise<void> {
|
|
308
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
309
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
310
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
311
|
+
|
|
312
|
+
await super.commitCheckpoint();
|
|
313
|
+
this.checkpointStack.pop();
|
|
314
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
315
|
+
|
|
316
|
+
this.hints.commitCheckpointHints.push(new AvmCommitCheckpointHint(actionCounter, oldCheckpointId, newCheckpointId));
|
|
317
|
+
|
|
318
|
+
HintingPublicTreesDB.log.debug(
|
|
319
|
+
`[commitCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`,
|
|
320
|
+
);
|
|
321
|
+
}
|
|
322
|
+
|
|
258
323
|
public override async revertCheckpoint(): Promise<void> {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
const beforeState = {
|
|
324
|
+
const actionCounter = this.checkpointActionCounter++;
|
|
325
|
+
const oldCheckpointId = this.getCurrentCheckpointId();
|
|
326
|
+
const treesStateHash = await this.getTreesStateHash();
|
|
327
|
+
|
|
328
|
+
const beforeState: Record<MerkleTreeId, AppendOnlyTreeSnapshot> = {
|
|
264
329
|
[MerkleTreeId.PUBLIC_DATA_TREE]: await this.getHintKey(MerkleTreeId.PUBLIC_DATA_TREE),
|
|
265
330
|
[MerkleTreeId.NULLIFIER_TREE]: await this.getHintKey(MerkleTreeId.NULLIFIER_TREE),
|
|
266
331
|
[MerkleTreeId.NOTE_HASH_TREE]: await this.getHintKey(MerkleTreeId.NOTE_HASH_TREE),
|
|
@@ -269,8 +334,10 @@ export class HintingPublicTreesDB extends PublicTreesDB {
|
|
|
269
334
|
};
|
|
270
335
|
|
|
271
336
|
await super.revertCheckpoint();
|
|
337
|
+
this.checkpointStack.pop();
|
|
338
|
+
const newCheckpointId = this.getCurrentCheckpointId();
|
|
272
339
|
|
|
273
|
-
const afterState = {
|
|
340
|
+
const afterState: Record<MerkleTreeId, AppendOnlyTreeSnapshot> = {
|
|
274
341
|
[MerkleTreeId.PUBLIC_DATA_TREE]: await this.getHintKey(MerkleTreeId.PUBLIC_DATA_TREE),
|
|
275
342
|
[MerkleTreeId.NULLIFIER_TREE]: await this.getHintKey(MerkleTreeId.NULLIFIER_TREE),
|
|
276
343
|
[MerkleTreeId.NOTE_HASH_TREE]: await this.getHintKey(MerkleTreeId.NOTE_HASH_TREE),
|
|
@@ -278,13 +345,15 @@ export class HintingPublicTreesDB extends PublicTreesDB {
|
|
|
278
345
|
[MerkleTreeId.ARCHIVE]: await this.getHintKey(MerkleTreeId.ARCHIVE),
|
|
279
346
|
};
|
|
280
347
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
348
|
+
this.hints.revertCheckpointHints.push(
|
|
349
|
+
AvmRevertCheckpointHint.create(actionCounter, oldCheckpointId, newCheckpointId, beforeState, afterState),
|
|
350
|
+
);
|
|
351
|
+
|
|
352
|
+
HintingPublicTreesDB.log.debug(
|
|
353
|
+
`[revertCheckpoint:${actionCounter}] Checkpoint evolved ${oldCheckpointId} -> ${newCheckpointId} at trees state ${treesStateHash}.`,
|
|
354
|
+
);
|
|
355
|
+
for (const treeId of merkleTreeIds()) {
|
|
356
|
+
HintingPublicTreesDB.logTreeChange(beforeState[treeId], afterState[treeId], treeId);
|
|
288
357
|
}
|
|
289
358
|
}
|
|
290
359
|
|
|
@@ -293,4 +362,25 @@ export class HintingPublicTreesDB extends PublicTreesDB {
|
|
|
293
362
|
const treeInfo = await super.getTreeInfo(treeId);
|
|
294
363
|
return new AppendOnlyTreeSnapshot(Fr.fromBuffer(treeInfo.root), Number(treeInfo.size));
|
|
295
364
|
}
|
|
365
|
+
|
|
366
|
+
private getCurrentCheckpointId(): number {
|
|
367
|
+
return this.checkpointStack[this.checkpointStack.length - 1];
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
// For logging/debugging purposes.
|
|
371
|
+
private async getTreesStateHash(): Promise<Fr> {
|
|
372
|
+
const stateReferenceFields = (await super.getStateReference()).toFields();
|
|
373
|
+
return Fr.fromBuffer(sha256Trunc(Buffer.concat(stateReferenceFields.map(field => field.toBuffer()))));
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
private static logTreeChange(
|
|
377
|
+
beforeState: AppendOnlyTreeSnapshot,
|
|
378
|
+
afterState: AppendOnlyTreeSnapshot,
|
|
379
|
+
treeId: MerkleTreeId,
|
|
380
|
+
) {
|
|
381
|
+
const treeName = getTreeName(treeId);
|
|
382
|
+
HintingPublicTreesDB.log.debug(
|
|
383
|
+
`[${treeName}] Evolved tree state: ${beforeState.root}, ${beforeState.nextAvailableLeafIndex} -> ${afterState.root}, ${afterState.nextAvailableLeafIndex}.`,
|
|
384
|
+
);
|
|
385
|
+
}
|
|
296
386
|
}
|
|
@@ -111,7 +111,7 @@ export class PublicTxContext {
|
|
|
111
111
|
const firstNullifier = nonRevertibleAccumulatedDataFromPrivate.nullifiers[0];
|
|
112
112
|
|
|
113
113
|
// We wrap the DB to collect AVM hints.
|
|
114
|
-
const hints = new AvmExecutionHints(AvmTxHint.fromTx(tx));
|
|
114
|
+
const hints = new AvmExecutionHints(await AvmTxHint.fromTx(tx));
|
|
115
115
|
const hintingContractsDB = new HintingPublicContractsDB(contractsDB, hints);
|
|
116
116
|
const hintingTreesDB = new HintingPublicTreesDB(treesDB, hints);
|
|
117
117
|
|
|
@@ -69,7 +69,6 @@ export class PublicTxSimulator {
|
|
|
69
69
|
public async simulate(tx: Tx): Promise<PublicTxResult> {
|
|
70
70
|
try {
|
|
71
71
|
const txHash = await this.computeTxHash(tx);
|
|
72
|
-
|
|
73
72
|
this.log.debug(`Simulating ${tx.publicFunctionCalldata.length} public calls for tx ${txHash}`, { txHash });
|
|
74
73
|
|
|
75
74
|
const context = await PublicTxContext.create(
|
|
@@ -437,7 +436,7 @@ export class PublicTxSimulator {
|
|
|
437
436
|
): AvmProvingRequest {
|
|
438
437
|
return {
|
|
439
438
|
type: ProvingRequestType.PUBLIC_VM,
|
|
440
|
-
inputs: new AvmCircuitInputs(
|
|
439
|
+
inputs: new AvmCircuitInputs(hints, publicInputs),
|
|
441
440
|
};
|
|
442
441
|
}
|
|
443
442
|
}
|