@aztec/simulator 3.0.0-nightly.20251008 → 3.0.0-nightly.20251010
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,2CAA2C,CAAC;AAOnD,qBAAa,YAAa,YAAW,qBAAqB;IAatD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IAbxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAuC;IAE5D,OAAO,CAAC,6BAA6B,CAAiD;IAEtF,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,wBAAwB,CAA+B;gBAKrD,OAAO,EAAE,UAAU,EACnB,cAAc,GAAE,cAAgC,EACxD,cAAc,UAAQ;WAeJ,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;WAQjD,MAAM,CACxB,YAAY,EAAE,6BAA6B,EAC3C,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,EAAE,EAClB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,EAAE,EAAE,EACd,YAAY,EAAE,GAAG,EACjB,yBAAyB,GAAE,OAAe,EAC1C,sBAAsB,CAAC,EAAE,MAAM;IAmBjC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;IActD;;OAEG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS;IAIxC;;;OAGG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../../src/public/avm/avm_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,2CAA2C,CAAC;AAOnD,qBAAa,YAAa,YAAW,qBAAqB;IAatD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IAbxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAuC;IAE5D,OAAO,CAAC,6BAA6B,CAAiD;IAEtF,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,wBAAwB,CAA+B;gBAKrD,OAAO,EAAE,UAAU,EACnB,cAAc,GAAE,cAAgC,EACxD,cAAc,UAAQ;WAeJ,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;WAQjD,MAAM,CACxB,YAAY,EAAE,6BAA6B,EAC3C,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,EAAE,EAClB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,EAAE,EAAE,EACd,YAAY,EAAE,GAAG,EACjB,yBAAyB,GAAE,OAAe,EAC1C,sBAAsB,CAAC,EAAE,MAAM;IAmBjC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;IActD;;OAEG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS;IAIxC;;;OAGG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;YA+GhE,+BAA+B;IAoB7C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;CAS3B"}
|
|
@@ -76,6 +76,7 @@ export class AvmSimulator {
|
|
|
76
76
|
const timer = new Timer();
|
|
77
77
|
assert(bytecode.length > 0, "AVM simulator can't execute empty bytecode");
|
|
78
78
|
this.bytecode = bytecode;
|
|
79
|
+
let instructionName = 'NONE'; // This is used for logging purposes
|
|
79
80
|
const { machineState } = this.context;
|
|
80
81
|
const callStartGas = machineState.gasLeft; // Save gas before executing instruction (for profiling)
|
|
81
82
|
try {
|
|
@@ -95,6 +96,7 @@ export class AvmSimulator {
|
|
|
95
96
|
this.log.trace(`[PC:${machineState.pc}] [IC:${machineState.instrCounter}] ${instruction.toString()} (gasLeft l2=${machineState.l2GasLeft} da=${machineState.daGasLeft})`);
|
|
96
97
|
}
|
|
97
98
|
machineState.nextPc = machineState.pc + bytesRead;
|
|
99
|
+
instructionName = instruction.constructor.name;
|
|
98
100
|
// Execute the instruction.
|
|
99
101
|
// Normal returns and reverts will return normally here.
|
|
100
102
|
// "Exceptional halts" will throw.
|
|
@@ -130,7 +132,8 @@ export class AvmSimulator {
|
|
|
130
132
|
// Return results for processing by calling context
|
|
131
133
|
return results;
|
|
132
134
|
} catch (err) {
|
|
133
|
-
this.log.
|
|
135
|
+
this.log.info(`Exceptional halt (revert by something other than REVERT opcode) for instruction
|
|
136
|
+
${instructionName} at pc ${machineState.pc} and instruction counter ${machineState.instrCounter}`);
|
|
134
137
|
if (!(err instanceof CheckedPublicExecutionError)) {
|
|
135
138
|
this.log.error(`Unchecked/unknown error thrown by AVM. This is a bug. Error: ${err}`);
|
|
136
139
|
throw err;
|
|
@@ -140,7 +140,7 @@ export class SideEffectArrayLengths {
|
|
|
140
140
|
if (this.nullifiers.length + this.previousSideEffectArrayLengths.nullifiers >= MAX_NULLIFIERS_PER_TX) {
|
|
141
141
|
throw new NullifierLimitReachedError();
|
|
142
142
|
}
|
|
143
|
-
this.nullifiers.push(new Nullifier(siloedNullifier,
|
|
143
|
+
this.nullifiers.push(new Nullifier(siloedNullifier, /*noteHash=*/ Fr.ZERO, this.sideEffectCounter));
|
|
144
144
|
this.log.trace(`Tracing new nullifier (counter=${this.sideEffectCounter})`);
|
|
145
145
|
this.incrementSideEffectCounter();
|
|
146
146
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251010",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": "./dest/server.js",
|
|
@@ -63,25 +63,25 @@
|
|
|
63
63
|
]
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
67
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
68
|
-
"@aztec/noir-acvm_js": "3.0.0-nightly.
|
|
69
|
-
"@aztec/noir-noirc_abi": "3.0.0-nightly.
|
|
70
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
71
|
-
"@aztec/noir-types": "3.0.0-nightly.
|
|
72
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
73
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
74
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
75
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
66
|
+
"@aztec/constants": "3.0.0-nightly.20251010",
|
|
67
|
+
"@aztec/foundation": "3.0.0-nightly.20251010",
|
|
68
|
+
"@aztec/noir-acvm_js": "3.0.0-nightly.20251010",
|
|
69
|
+
"@aztec/noir-noirc_abi": "3.0.0-nightly.20251010",
|
|
70
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251010",
|
|
71
|
+
"@aztec/noir-types": "3.0.0-nightly.20251010",
|
|
72
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251010",
|
|
73
|
+
"@aztec/stdlib": "3.0.0-nightly.20251010",
|
|
74
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20251010",
|
|
75
|
+
"@aztec/world-state": "3.0.0-nightly.20251010",
|
|
76
76
|
"lodash.clonedeep": "^4.5.0",
|
|
77
77
|
"lodash.merge": "^4.6.2",
|
|
78
78
|
"tslib": "^2.4.0"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
82
|
-
"@aztec/merkle-tree": "3.0.0-nightly.
|
|
83
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
84
|
-
"@aztec/noir-test-contracts.js": "3.0.0-nightly.
|
|
81
|
+
"@aztec/kv-store": "3.0.0-nightly.20251010",
|
|
82
|
+
"@aztec/merkle-tree": "3.0.0-nightly.20251010",
|
|
83
|
+
"@aztec/noir-contracts.js": "3.0.0-nightly.20251010",
|
|
84
|
+
"@aztec/noir-test-contracts.js": "3.0.0-nightly.20251010",
|
|
85
85
|
"@jest/globals": "^30.0.0",
|
|
86
86
|
"@types/jest": "^30.0.0",
|
|
87
87
|
"@types/lodash.clonedeep": "^4.5.7",
|
|
@@ -128,6 +128,7 @@ export class AvmSimulator implements AvmSimulatorInterface {
|
|
|
128
128
|
assert(bytecode.length > 0, "AVM simulator can't execute empty bytecode");
|
|
129
129
|
|
|
130
130
|
this.bytecode = bytecode;
|
|
131
|
+
let instructionName = 'NONE'; // This is used for logging purposes
|
|
131
132
|
|
|
132
133
|
const { machineState } = this.context;
|
|
133
134
|
const callStartGas = machineState.gasLeft; // Save gas before executing instruction (for profiling)
|
|
@@ -156,6 +157,7 @@ export class AvmSimulator implements AvmSimulatorInterface {
|
|
|
156
157
|
}
|
|
157
158
|
machineState.nextPc = machineState.pc + bytesRead;
|
|
158
159
|
|
|
160
|
+
instructionName = instruction.constructor.name;
|
|
159
161
|
// Execute the instruction.
|
|
160
162
|
// Normal returns and reverts will return normally here.
|
|
161
163
|
// "Exceptional halts" will throw.
|
|
@@ -204,7 +206,10 @@ export class AvmSimulator implements AvmSimulatorInterface {
|
|
|
204
206
|
// Return results for processing by calling context
|
|
205
207
|
return results;
|
|
206
208
|
} catch (err: any) {
|
|
207
|
-
this.log.
|
|
209
|
+
this.log.info(
|
|
210
|
+
`Exceptional halt (revert by something other than REVERT opcode) for instruction
|
|
211
|
+
${instructionName} at pc ${machineState.pc} and instruction counter ${machineState.instrCounter}`,
|
|
212
|
+
);
|
|
208
213
|
if (!(err instanceof CheckedPublicExecutionError)) {
|
|
209
214
|
this.log.error(`Unchecked/unknown error thrown by AVM. This is a bug. Error: ${err}`);
|
|
210
215
|
throw err;
|
|
@@ -216,7 +216,7 @@ export class SideEffectTrace implements PublicSideEffectTraceInterface {
|
|
|
216
216
|
throw new NullifierLimitReachedError();
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
this.nullifiers.push(new Nullifier(siloedNullifier,
|
|
219
|
+
this.nullifiers.push(new Nullifier(siloedNullifier, /*noteHash=*/ Fr.ZERO, this.sideEffectCounter));
|
|
220
220
|
|
|
221
221
|
this.log.trace(`Tracing new nullifier (counter=${this.sideEffectCounter})`);
|
|
222
222
|
this.incrementSideEffectCounter();
|