@aztec/simulator 3.0.0-nightly.20250921 → 3.0.0-nightly.20250923
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/public/avm/avm_gas.js +1 -1
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +5 -9
- package/package.json +15 -15
- package/src/public/avm/avm_gas.ts +1 -1
- package/src/public/public_processor/public_processor.ts +3 -13
|
@@ -101,7 +101,7 @@ function makeCost(l2Gas, daGas) {
|
|
|
101
101
|
[Opcode.NULLIFIEREXISTS]: makeCost(c.AVM_NULLIFIEREXISTS_BASE_L2_GAS, 0),
|
|
102
102
|
[Opcode.EMITNULLIFIER]: makeCost(c.AVM_EMITNULLIFIER_BASE_L2_GAS, c.AVM_EMITNULLIFIER_BASE_DA_GAS),
|
|
103
103
|
[Opcode.L1TOL2MSGEXISTS]: makeCost(c.AVM_L1TOL2MSGEXISTS_BASE_L2_GAS, 0),
|
|
104
|
-
[Opcode.EMITUNENCRYPTEDLOG]: makeCost(c.AVM_EMITUNENCRYPTEDLOG_BASE_L2_GAS,
|
|
104
|
+
[Opcode.EMITUNENCRYPTEDLOG]: makeCost(c.AVM_EMITUNENCRYPTEDLOG_BASE_L2_GAS, c.AVM_EMITUNENCRYPTEDLOG_BASE_DA_GAS),
|
|
105
105
|
[Opcode.SENDL2TOL1MSG]: makeCost(c.AVM_SENDL2TOL1MSG_BASE_L2_GAS, c.AVM_SENDL2TOL1MSG_BASE_DA_GAS),
|
|
106
106
|
[Opcode.GETCONTRACTINSTANCE]: makeCost(c.AVM_GETCONTRACTINSTANCE_BASE_L2_GAS, 0),
|
|
107
107
|
[Opcode.CALL]: makeCost(c.AVM_CALL_BASE_L2_GAS, 0),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAMvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,QAAQ,EACb,eAAe,EACf,yBAAyB,EACzB,KAAK,WAAW,EAEhB,EAAE,
|
|
1
|
+
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAMvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,QAAQ,EACb,eAAe,EACf,yBAAyB,EACzB,KAAK,WAAW,EAEhB,EAAE,EAIH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,KAAK,iBAAiB,EAA8B,MAAM,iCAAiC,CAAC;AACrG,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGvE;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,SAAS,CAAC,eAAe,EAAE,eAAe;gBAFlC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiC,EAC7C,eAAe,GAAE,eAAsC;IAGnE;;;;;OAKG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,OAAO,EAC3B,yBAAyB,GAAE,OAAe,GACzC,eAAe;IAuBlB,SAAS,CAAC,uBAAuB,CAC/B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,OAAO,EAC3B,kBAAkB,EAAE,OAAO,EAC3B,yBAAyB,EAAE,OAAO,GACjC,iBAAiB;CAWrB;AASD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,OAAO,CAAC,iBAAiB;IACzB,SAAS,CAAC,WAAW,EAAE,iBAAiB;IACxC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAC9C,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,OAAO,CAAyB;gBAG5B,eAAe,EAAE,eAAe,EAClC,iBAAiB,EAAE,2BAA2B,EAC5C,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,EAAE,iBAAiB,EACtC,YAAY,EAAE,YAAY,EAClC,eAAe,GAAE,eAAsC,EAC/C,GAAG,yCAA6C,EAChD,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,4BAA4B,CAAM;IAKxE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAClB,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EACrC,MAAM,GAAE,qBAA0B,EAClC,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;YA4L5D,wBAAwB;YAiBxB,SAAS;YA2BT,gCAAgC;IA2B9C,kFAAkF;YACpE,uBAAuB;IA2CrC;;;;OAIG;YACW,gCAAgC;YA0BhC,oBAAoB;YAkCpB,wBAAwB;CAsCvC"}
|
|
@@ -293,7 +293,7 @@ class PublicProcessorTimeoutError extends Error {
|
|
|
293
293
|
returnValues ?? []
|
|
294
294
|
];
|
|
295
295
|
}
|
|
296
|
-
async doTreeInsertionsForPrivateOnlyTx(processedTx
|
|
296
|
+
async doTreeInsertionsForPrivateOnlyTx(processedTx) {
|
|
297
297
|
const treeInsertionStart = process.hrtime.bigint();
|
|
298
298
|
// Update the state so that the next tx in the loop has the correct .startState
|
|
299
299
|
// NB: before this change, all .startStates were actually incorrect, but the issue was never caught because we either:
|
|
@@ -304,14 +304,10 @@ class PublicProcessorTimeoutError extends Error {
|
|
|
304
304
|
await this.guardedMerkleTree.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, padArrayEnd(processedTx.txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
|
|
305
305
|
try {
|
|
306
306
|
await this.guardedMerkleTree.batchInsert(MerkleTreeId.NULLIFIER_TREE, padArrayEnd(processedTx.txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map((n)=>n.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
|
|
307
|
-
} catch
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
} else {
|
|
312
|
-
// We have no validator and assume this call should blindly process txs with duplicates being caught later
|
|
313
|
-
this.log.warn(`Detected duplicate nullifier after public processing for: ${processedTx.hash}.`);
|
|
314
|
-
}
|
|
307
|
+
} catch (cause) {
|
|
308
|
+
throw new Error(`Transaction ${processedTx.hash} failed with duplicate nullifiers`, {
|
|
309
|
+
cause
|
|
310
|
+
});
|
|
315
311
|
}
|
|
316
312
|
const treeInsertionEnd = process.hrtime.bigint();
|
|
317
313
|
this.metrics.recordTreeInsertions(Number(treeInsertionEnd - treeInsertionStart) / 1_000);
|
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.20250923",
|
|
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.20250923",
|
|
67
|
+
"@aztec/foundation": "3.0.0-nightly.20250923",
|
|
68
|
+
"@aztec/noir-acvm_js": "3.0.0-nightly.20250923",
|
|
69
|
+
"@aztec/noir-noirc_abi": "3.0.0-nightly.20250923",
|
|
70
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250923",
|
|
71
|
+
"@aztec/noir-types": "3.0.0-nightly.20250923",
|
|
72
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20250923",
|
|
73
|
+
"@aztec/stdlib": "3.0.0-nightly.20250923",
|
|
74
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20250923",
|
|
75
|
+
"@aztec/world-state": "3.0.0-nightly.20250923",
|
|
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.20250923",
|
|
82
|
+
"@aztec/merkle-tree": "3.0.0-nightly.20250923",
|
|
83
|
+
"@aztec/noir-contracts.js": "3.0.0-nightly.20250923",
|
|
84
|
+
"@aztec/noir-test-contracts.js": "3.0.0-nightly.20250923",
|
|
85
85
|
"@jest/globals": "^30.0.0",
|
|
86
86
|
"@types/jest": "^30.0.0",
|
|
87
87
|
"@types/lodash.clonedeep": "^4.5.7",
|
|
@@ -110,7 +110,7 @@ const BASE_GAS_COSTS: Record<Opcode, Gas> = {
|
|
|
110
110
|
[Opcode.NULLIFIEREXISTS]: makeCost(c.AVM_NULLIFIEREXISTS_BASE_L2_GAS, 0),
|
|
111
111
|
[Opcode.EMITNULLIFIER]: makeCost(c.AVM_EMITNULLIFIER_BASE_L2_GAS, c.AVM_EMITNULLIFIER_BASE_DA_GAS),
|
|
112
112
|
[Opcode.L1TOL2MSGEXISTS]: makeCost(c.AVM_L1TOL2MSGEXISTS_BASE_L2_GAS, 0),
|
|
113
|
-
[Opcode.EMITUNENCRYPTEDLOG]: makeCost(c.AVM_EMITUNENCRYPTEDLOG_BASE_L2_GAS,
|
|
113
|
+
[Opcode.EMITUNENCRYPTEDLOG]: makeCost(c.AVM_EMITUNENCRYPTEDLOG_BASE_L2_GAS, c.AVM_EMITUNENCRYPTEDLOG_BASE_DA_GAS),
|
|
114
114
|
[Opcode.SENDL2TOL1MSG]: makeCost(c.AVM_SENDL2TOL1MSG_BASE_L2_GAS, c.AVM_SENDL2TOL1MSG_BASE_DA_GAS),
|
|
115
115
|
[Opcode.GETCONTRACTINSTANCE]: makeCost(c.AVM_GETCONTRACTINSTANCE_BASE_L2_GAS, 0),
|
|
116
116
|
[Opcode.CALL]: makeCost(c.AVM_CALL_BASE_L2_GAS, 0),
|
|
@@ -27,7 +27,6 @@ import {
|
|
|
27
27
|
StateReference,
|
|
28
28
|
Tx,
|
|
29
29
|
TxExecutionPhase,
|
|
30
|
-
type TxValidator,
|
|
31
30
|
makeProcessedTxFromPrivateOnlyTx,
|
|
32
31
|
makeProcessedTxFromTxWithPublicCalls,
|
|
33
32
|
} from '@aztec/stdlib/tx';
|
|
@@ -384,10 +383,7 @@ export class PublicProcessor implements Traceable {
|
|
|
384
383
|
return [processedTx, returnValues ?? []];
|
|
385
384
|
}
|
|
386
385
|
|
|
387
|
-
private async doTreeInsertionsForPrivateOnlyTx(
|
|
388
|
-
processedTx: ProcessedTx,
|
|
389
|
-
txValidator?: TxValidator<ProcessedTx>,
|
|
390
|
-
): Promise<void> {
|
|
386
|
+
private async doTreeInsertionsForPrivateOnlyTx(processedTx: ProcessedTx): Promise<void> {
|
|
391
387
|
const treeInsertionStart = process.hrtime.bigint();
|
|
392
388
|
|
|
393
389
|
// Update the state so that the next tx in the loop has the correct .startState
|
|
@@ -406,14 +402,8 @@ export class PublicProcessor implements Traceable {
|
|
|
406
402
|
padArrayEnd(processedTx.txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map(n => n.toBuffer()),
|
|
407
403
|
NULLIFIER_SUBTREE_HEIGHT,
|
|
408
404
|
);
|
|
409
|
-
} catch {
|
|
410
|
-
|
|
411
|
-
// Ideally the validator has already caught this above, but just in case:
|
|
412
|
-
throw new Error(`Transaction ${processedTx.hash} invalid after processing public functions`);
|
|
413
|
-
} else {
|
|
414
|
-
// We have no validator and assume this call should blindly process txs with duplicates being caught later
|
|
415
|
-
this.log.warn(`Detected duplicate nullifier after public processing for: ${processedTx.hash}.`);
|
|
416
|
-
}
|
|
405
|
+
} catch (cause) {
|
|
406
|
+
throw new Error(`Transaction ${processedTx.hash} failed with duplicate nullifiers`, { cause });
|
|
417
407
|
}
|
|
418
408
|
|
|
419
409
|
const treeInsertionEnd = process.hrtime.bigint();
|