@aztec/simulator 0.67.1-devnet → 0.68.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/providers/acvm_wasm_with_blobs.d.ts +7 -0
- package/dest/providers/acvm_wasm_with_blobs.d.ts.map +1 -0
- package/dest/providers/acvm_wasm_with_blobs.js +15 -0
- package/dest/providers/index.d.ts +1 -0
- package/dest/providers/index.d.ts.map +1 -1
- package/dest/providers/index.js +2 -1
- package/dest/public/executor_metrics.d.ts +2 -0
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +11 -1
- package/dest/public/fixtures/index.d.ts +7 -6
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +21 -15
- package/dest/public/public_processor.d.ts +2 -1
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +15 -5
- package/dest/public/public_processor_metrics.d.ts +9 -1
- package/dest/public/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor_metrics.js +49 -2
- package/dest/public/public_tx_context.d.ts +5 -0
- package/dest/public/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_context.js +9 -1
- package/dest/public/public_tx_simulator.d.ts +2 -1
- package/dest/public/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator.js +24 -6
- package/package.json +12 -12
- package/src/providers/acvm_wasm.ts +1 -1
- package/src/providers/acvm_wasm_with_blobs.ts +25 -0
- package/src/providers/index.ts +1 -0
- package/src/public/executor_metrics.ts +13 -0
- package/src/public/fixtures/index.ts +28 -20
- package/src/public/public_processor.ts +15 -1
- package/src/public/public_processor_metrics.ts +63 -1
- package/src/public/public_tx_context.ts +9 -0
- package/src/public/public_tx_simulator.ts +23 -6
|
@@ -198,6 +198,14 @@ export class PublicTxContext {
|
|
|
198
198
|
const teardownGasLimits = requireTeardown ? this.gasSettings.teardownGasLimits : Gas.empty();
|
|
199
199
|
return this.getTotalGasUsed().sub(teardownGasLimits).add(this.teardownGasUsed);
|
|
200
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Compute the public gas used using the actual gas used during teardown instead
|
|
203
|
+
* of the teardown gas limit.
|
|
204
|
+
*/
|
|
205
|
+
getActualPublicGasUsed() {
|
|
206
|
+
assert(this.halted, 'Can only compute actual gas used after tx execution ends');
|
|
207
|
+
return this.gasUsedByPublic.add(this.teardownGasUsed);
|
|
208
|
+
}
|
|
201
209
|
/**
|
|
202
210
|
* Get the transaction fee as is available to the specified phase.
|
|
203
211
|
* Only teardown should have access to the actual transaction fee.
|
|
@@ -317,4 +325,4 @@ function fetchTxHash(nonRevertibleAccumulatedData) {
|
|
|
317
325
|
}
|
|
318
326
|
return new TxHash(firstNullifier.toBuffer());
|
|
319
327
|
}
|
|
320
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X2NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3B1YmxpY190eF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEVBRVosa0JBQWtCLEVBSWxCLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLEVBQUUsRUFDRixHQUFHLEVBR0gsZ0NBQWdDLEVBQ2hDLHNCQUFzQixFQUN0QixxQkFBcUIsRUFHckIseUJBQXlCLEVBQ3pCLFVBQVUsRUFFVixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN0QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRjs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBaUIxQixZQUNrQixLQUF3QixFQUN2QixlQUFnQyxFQUNoQyxtQkFBbUMsRUFDbkMsV0FBd0IsRUFDeEIsZ0JBQXFCLEVBQ3JCLG9CQUF5QixFQUN6QixpQkFBc0MsRUFDdEMsb0JBQXlDLEVBQ3pDLG9CQUF5QyxFQUN6QyxzQkFBZ0QsRUFDaEQseUJBQW1ELEVBQ25ELHlC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
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X2NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3B1YmxpY190eF9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEVBRVosa0JBQWtCLEVBSWxCLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLEVBQUUsRUFDRixHQUFHLEVBR0gsZ0NBQWdDLEVBQ2hDLHNCQUFzQixFQUN0QixxQkFBcUIsRUFHckIseUJBQXlCLEVBQ3pCLFVBQVUsRUFFVixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN0QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRjs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBaUIxQixZQUNrQixLQUF3QixFQUN2QixlQUFnQyxFQUNoQyxtQkFBbUMsRUFDbkMsV0FBd0IsRUFDeEIsZ0JBQXFCLEVBQ3JCLG9CQUF5QixFQUN6QixpQkFBc0MsRUFDdEMsb0JBQXlDLEVBQ3pDLG9CQUF5QyxFQUN6QyxzQkFBZ0QsRUFDaEQseUJBQW1ELEVBQ25ELHlC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
|
|
@@ -25,9 +25,10 @@ export declare class PublicTxSimulator {
|
|
|
25
25
|
private worldStateDB;
|
|
26
26
|
private globalVariables;
|
|
27
27
|
private doMerkleOperations;
|
|
28
|
+
private enforceFeePayment;
|
|
28
29
|
metrics: ExecutorMetrics;
|
|
29
30
|
private log;
|
|
30
|
-
constructor(db: MerkleTreeReadOperations, worldStateDB: WorldStateDB, telemetryClient: TelemetryClient, globalVariables: GlobalVariables, doMerkleOperations?: boolean);
|
|
31
|
+
constructor(db: MerkleTreeReadOperations, worldStateDB: WorldStateDB, telemetryClient: TelemetryClient, globalVariables: GlobalVariables, doMerkleOperations?: boolean, enforceFeePayment?: boolean);
|
|
31
32
|
get tracer(): Tracer;
|
|
32
33
|
/**
|
|
33
34
|
* Simulate a transaction's public portion including all of its phases.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_tx_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,wBAAwB,EAC7B,yBAAyB,EAEzB,KAAK,eAAe,EACpB,KAAK,EAAE,EACP,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAqB,KAAK,eAAe,EAA0B,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAItH,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAQnG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,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;IAM1B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"public_tx_simulator.d.ts","sourceRoot":"","sources":["../../src/public/public_tx_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,wBAAwB,EAC7B,yBAAyB,EAEzB,KAAK,eAAe,EACpB,KAAK,EAAE,EACP,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAqB,KAAK,eAAe,EAA0B,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAItH,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAQnG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,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;IAM1B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,iBAAiB;IAV3B,OAAO,EAAE,eAAe,CAAC;IAEzB,OAAO,CAAC,GAAG,CAAS;gBAGV,EAAE,EAAE,wBAAwB,EAC5B,YAAY,EAAE,YAAY,EAClC,eAAe,EAAE,eAAe,EACxB,eAAe,EAAE,eAAe,EAChC,kBAAkB,GAAE,OAAe,EACnC,iBAAiB,GAAE,OAAc;IAM3C,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD;;;;OAIG;IACU,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAkFtD;;;;OAIG;YACW,kBAAkB;IAIhC;;;;OAIG;YACW,qBAAqB;IAkBnC;;;;OAIG;YACW,qBAAqB;IAoBnC;;;;;OAKG;YACW,aAAa;IA0C3B;;;;;;;OAOG;YAOW,oBAAoB;IAoClC;;;;;;;;;;;;;OAaG;YAOW,4BAA4B;IAgD1C;;OAEG;IACU,+BAA+B,CAAC,OAAO,EAAE,eAAe;IAkBrE;;;OAGG;IACU,4BAA4B,CAAC,OAAO,EAAE,eAAe;YAqBpD,MAAM;CA+BrB"}
|
|
@@ -17,11 +17,12 @@ let PublicTxSimulator = (() => {
|
|
|
17
17
|
let _simulateEnqueuedCall_decorators;
|
|
18
18
|
let _simulateEnqueuedCallInternal_decorators;
|
|
19
19
|
return _a = class PublicTxSimulator {
|
|
20
|
-
constructor(db, worldStateDB, telemetryClient, globalVariables, doMerkleOperations = false) {
|
|
20
|
+
constructor(db, worldStateDB, telemetryClient, globalVariables, doMerkleOperations = false, enforceFeePayment = true) {
|
|
21
21
|
this.db = (__runInitializers(this, _instanceExtraInitializers), db);
|
|
22
22
|
this.worldStateDB = worldStateDB;
|
|
23
23
|
this.globalVariables = globalVariables;
|
|
24
24
|
this.doMerkleOperations = doMerkleOperations;
|
|
25
|
+
this.enforceFeePayment = enforceFeePayment;
|
|
25
26
|
this.log = createLogger(`simulator:public_tx_simulator`);
|
|
26
27
|
this.metrics = new ExecutorMetrics(telemetryClient, 'PublicTxSimulator');
|
|
27
28
|
}
|
|
@@ -45,13 +46,19 @@ let PublicTxSimulator = (() => {
|
|
|
45
46
|
// if so, this should only add contracts that were deployed during private app logic.
|
|
46
47
|
// FIXME: we shouldn't need to directly modify worldStateDb here!
|
|
47
48
|
await this.worldStateDB.addNewContracts(tx);
|
|
49
|
+
const nonRevertStart = process.hrtime.bigint();
|
|
48
50
|
await this.insertNonRevertiblesFromPrivate(context);
|
|
51
|
+
const nonRevertEnd = process.hrtime.bigint();
|
|
52
|
+
this.metrics.recordPrivateEffectsInsertion(Number(nonRevertEnd - nonRevertStart) / 1000, 'non-revertible');
|
|
49
53
|
const processedPhases = [];
|
|
50
54
|
if (context.hasPhase(TxExecutionPhase.SETUP)) {
|
|
51
55
|
const setupResult = await this.simulateSetupPhase(context);
|
|
52
56
|
processedPhases.push(setupResult);
|
|
53
57
|
}
|
|
58
|
+
const revertStart = process.hrtime.bigint();
|
|
54
59
|
await this.insertRevertiblesFromPrivate(context);
|
|
60
|
+
const revertEnd = process.hrtime.bigint();
|
|
61
|
+
this.metrics.recordPrivateEffectsInsertion(Number(revertEnd - revertStart) / 1000, 'revertible');
|
|
55
62
|
if (context.hasPhase(TxExecutionPhase.APP_LOGIC)) {
|
|
56
63
|
const appLogicResult = await this.simulateAppLogicPhase(context);
|
|
57
64
|
processedPhases.push(appLogicResult);
|
|
@@ -79,7 +86,11 @@ let PublicTxSimulator = (() => {
|
|
|
79
86
|
tx.unencryptedLogs.addFunctionLogs([new UnencryptedFunctionL2Logs(context.trace.getUnencryptedLogs())]);
|
|
80
87
|
return {
|
|
81
88
|
avmProvingRequest,
|
|
82
|
-
gasUsed: {
|
|
89
|
+
gasUsed: {
|
|
90
|
+
totalGas: context.getActualGasUsed(),
|
|
91
|
+
teardownGas: context.teardownGasUsed,
|
|
92
|
+
publicGas: context.getActualPublicGasUsed(),
|
|
93
|
+
},
|
|
83
94
|
revertCode,
|
|
84
95
|
revertReason: context.revertReason,
|
|
85
96
|
processedPhases: processedPhases,
|
|
@@ -222,7 +233,7 @@ let PublicTxSimulator = (() => {
|
|
|
222
233
|
const simulator = await AvmSimulator.create(stateManager, address, sender, transactionFee, this.globalVariables, executionRequest.callContext.isStaticCall, executionRequest.args, allocatedGas);
|
|
223
234
|
const avmCallResult = await simulator.execute();
|
|
224
235
|
const result = avmCallResult.finalize();
|
|
225
|
-
this.log.
|
|
236
|
+
this.log.verbose(result.reverted
|
|
226
237
|
? `Simulation of enqueued public call ${fnName} reverted with reason ${result.revertReason}.`
|
|
227
238
|
: `Simulation of enqueued public call ${fnName} completed successfully.`, {
|
|
228
239
|
eventName: 'avm-simulation',
|
|
@@ -289,9 +300,16 @@ let PublicTxSimulator = (() => {
|
|
|
289
300
|
const balanceSlot = computeFeePayerBalanceStorageSlot(context.feePayer);
|
|
290
301
|
this.log.debug(`Deducting ${txFee.toBigInt()} balance in Fee Juice for ${context.feePayer}`);
|
|
291
302
|
const stateManager = context.state.getActiveStateManager();
|
|
292
|
-
|
|
303
|
+
let currentBalance = await stateManager.readStorage(feeJuiceAddress, balanceSlot);
|
|
304
|
+
// We allow to fake the balance of the fee payer to allow fee estimation
|
|
305
|
+
// When mocking the balance of the fee payer, the circuit should not be able to prove the simulation
|
|
293
306
|
if (currentBalance.lt(txFee)) {
|
|
294
|
-
|
|
307
|
+
if (this.enforceFeePayment) {
|
|
308
|
+
throw new Error(`Not enough balance for fee payer to pay for transaction (got ${currentBalance.toBigInt()} needs ${txFee.toBigInt()})`);
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
currentBalance = txFee;
|
|
312
|
+
}
|
|
295
313
|
}
|
|
296
314
|
const updatedBalance = currentBalance.sub(txFee);
|
|
297
315
|
await stateManager.writeStorage(feeJuiceAddress, balanceSlot, updatedBalance, true);
|
|
@@ -315,4 +333,4 @@ let PublicTxSimulator = (() => {
|
|
|
315
333
|
_a;
|
|
316
334
|
})();
|
|
317
335
|
export { PublicTxSimulator };
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLHlCQUF5QixFQUl6QixnQkFBZ0IsRUFDaEIseUJBQXlCLEdBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFxQyxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRyxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQW1DLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7SUFvQjVDLGlCQUFpQjs7Ozs7c0JBQWpCLGlCQUFpQjtZQUs1QixZQUNVLEVBQTRCLEVBQzVCLFlBQTBCLEVBQ2xDLGVBQWdDLEVBQ3hCLGVBQWdDLEVBQ2hDLHFCQUE4QixLQUFLO2dCQUpuQyxPQUFFLElBTkQsbURBQWlCLEVBTWxCLEVBQUUsRUFBMEI7Z0JBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO2dCQUUxQixvQkFBZSxHQUFm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
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3R4X3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvcHVibGljX3R4X3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLHlCQUF5QixFQUl6QixnQkFBZ0IsRUFDaEIseUJBQXlCLEdBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFxQyxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRyxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQW1DLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7SUFvQjVDLGlCQUFpQjs7Ozs7c0JBQWpCLGlCQUFpQjtZQUs1QixZQUNVLEVBQTRCLEVBQzVCLFlBQTBCLEVBQ2xDLGVBQWdDLEVBQ3hCLGVBQWdDLEVBQ2hDLHFCQUE4QixLQUFLLEVBQ25DLG9CQUE2QixJQUFJO2dCQUxqQyxPQUFFLElBTkQsbURBQWlCLEVBTWxCLEVBQUUsRUFBMEI7Z0JBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFj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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.68.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
23
23
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
24
24
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
25
|
-
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests"
|
|
25
|
+
"test": "HARDWARE_CONCURRENCY=16 RAYON_NUM_THREADS=4 NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=8"
|
|
26
26
|
},
|
|
27
27
|
"inherits": [
|
|
28
28
|
"../package.common.json"
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
],
|
|
55
55
|
"reporters": [
|
|
56
56
|
[
|
|
57
|
-
"
|
|
57
|
+
"jest-silent-reporter",
|
|
58
58
|
{
|
|
59
|
-
"
|
|
59
|
+
"useDots": true
|
|
60
60
|
}
|
|
61
61
|
]
|
|
62
62
|
],
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@aztec/circuit-types": "0.
|
|
70
|
-
"@aztec/circuits.js": "0.
|
|
71
|
-
"@aztec/foundation": "0.
|
|
72
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
73
|
-
"@aztec/protocol-contracts": "0.
|
|
74
|
-
"@aztec/telemetry-client": "0.
|
|
75
|
-
"@aztec/types": "0.
|
|
76
|
-
"@aztec/world-state": "0.
|
|
69
|
+
"@aztec/circuit-types": "0.68.0",
|
|
70
|
+
"@aztec/circuits.js": "0.68.0",
|
|
71
|
+
"@aztec/foundation": "0.68.0",
|
|
72
|
+
"@aztec/noir-protocol-circuits-types": "0.68.0",
|
|
73
|
+
"@aztec/protocol-contracts": "0.68.0",
|
|
74
|
+
"@aztec/telemetry-client": "0.68.0",
|
|
75
|
+
"@aztec/types": "0.68.0",
|
|
76
|
+
"@aztec/world-state": "0.68.0",
|
|
77
77
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
78
78
|
"@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
|
|
79
79
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
@@ -17,7 +17,7 @@ export class WASMSimulator implements SimulationProvider {
|
|
|
17
17
|
const _witnessMap = await executeCircuit(
|
|
18
18
|
decodedBytecode,
|
|
19
19
|
input,
|
|
20
|
-
foreignCallHandler, // handle calls to debug_log
|
|
20
|
+
foreignCallHandler, // handle calls to debug_log
|
|
21
21
|
);
|
|
22
22
|
|
|
23
23
|
return _witnessMap;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { foreignCallHandler } from '@aztec/noir-protocol-circuits-types';
|
|
2
|
+
import { type NoirCompiledCircuit } from '@aztec/types/noir';
|
|
3
|
+
|
|
4
|
+
import { executeCircuit } from '@noir-lang/acvm_js';
|
|
5
|
+
import { type WitnessMap } from '@noir-lang/types';
|
|
6
|
+
|
|
7
|
+
import { type SimulationProvider } from './simulation_provider.js';
|
|
8
|
+
|
|
9
|
+
export class WASMSimulatorWithBlobs implements SimulationProvider {
|
|
10
|
+
async simulateCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap> {
|
|
11
|
+
// Execute the circuit on those initial witness values
|
|
12
|
+
//
|
|
13
|
+
// Decode the bytecode from base64 since the acvm does not know about base64 encoding
|
|
14
|
+
const decodedBytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
|
|
15
|
+
//
|
|
16
|
+
// Execute the circuit
|
|
17
|
+
const _witnessMap = await executeCircuit(
|
|
18
|
+
decodedBytecode,
|
|
19
|
+
input,
|
|
20
|
+
foreignCallHandler, // handle calls to debug_log and evaluate_blobs mock
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
return _witnessMap;
|
|
24
|
+
}
|
|
25
|
+
}
|
package/src/providers/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ export class ExecutorMetrics {
|
|
|
13
13
|
private fnCount: UpDownCounter;
|
|
14
14
|
private fnDuration: Histogram;
|
|
15
15
|
private manaPerSecond: Histogram;
|
|
16
|
+
private privateEffectsInsertions: Histogram;
|
|
16
17
|
|
|
17
18
|
constructor(client: TelemetryClient, name = 'PublicExecutor') {
|
|
18
19
|
this.tracer = client.getTracer(name);
|
|
@@ -33,6 +34,12 @@ export class ExecutorMetrics {
|
|
|
33
34
|
unit: 'mana/s',
|
|
34
35
|
valueType: ValueType.INT,
|
|
35
36
|
});
|
|
37
|
+
|
|
38
|
+
this.privateEffectsInsertions = meter.createHistogram(Metrics.PUBLIC_EXECUTION_PRIVATE_EFFECTS_INSERTION, {
|
|
39
|
+
description: 'Private effects insertion time',
|
|
40
|
+
unit: 'us',
|
|
41
|
+
valueType: ValueType.INT,
|
|
42
|
+
});
|
|
36
43
|
}
|
|
37
44
|
|
|
38
45
|
recordFunctionSimulation(durationMs: number, manaUsed: number, fnName: string) {
|
|
@@ -55,4 +62,10 @@ export class ExecutorMetrics {
|
|
|
55
62
|
[Attributes.OK]: false,
|
|
56
63
|
});
|
|
57
64
|
}
|
|
65
|
+
|
|
66
|
+
recordPrivateEffectsInsertion(durationUs: number, type: 'revertible' | 'non-revertible') {
|
|
67
|
+
this.privateEffectsInsertions.record(Math.ceil(durationUs), {
|
|
68
|
+
[Attributes.REVERTIBILITY]: type,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
58
71
|
}
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
BlockHeader,
|
|
5
5
|
CallContext,
|
|
6
6
|
type ContractClassPublic,
|
|
7
|
+
type ContractDataSource,
|
|
7
8
|
type ContractInstanceWithAddress,
|
|
8
9
|
DEFAULT_GAS_LIMIT,
|
|
9
10
|
DEPLOYER_CONTRACT_ADDRESS,
|
|
@@ -40,6 +41,7 @@ export async function simulateAvmTestContractGenerateCircuitInputs(
|
|
|
40
41
|
functionName: string,
|
|
41
42
|
calldata: Fr[] = [],
|
|
42
43
|
expectRevert: boolean = false,
|
|
44
|
+
skipContractDeployments: boolean = false,
|
|
43
45
|
assertionErrString?: string,
|
|
44
46
|
): Promise<AvmCircuitInputs> {
|
|
45
47
|
const sender = AztecAddress.random();
|
|
@@ -52,21 +54,24 @@ export async function simulateAvmTestContractGenerateCircuitInputs(
|
|
|
52
54
|
|
|
53
55
|
const telemetry = new NoopTelemetryClient();
|
|
54
56
|
const merkleTrees = await (await MerkleTrees.new(openTmpStore(), telemetry)).fork();
|
|
55
|
-
const contractDataSource = new MockedAvmTestContractDataSource();
|
|
57
|
+
const contractDataSource = new MockedAvmTestContractDataSource(skipContractDeployments);
|
|
56
58
|
const worldStateDB = new WorldStateDB(merkleTrees, contractDataSource);
|
|
57
59
|
|
|
58
60
|
const contractInstance = contractDataSource.contractInstance;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
61
|
+
|
|
62
|
+
if (!skipContractDeployments) {
|
|
63
|
+
const contractAddressNullifier = siloNullifier(
|
|
64
|
+
AztecAddress.fromNumber(DEPLOYER_CONTRACT_ADDRESS),
|
|
65
|
+
contractInstance.address.toField(),
|
|
66
|
+
);
|
|
67
|
+
await merkleTrees.batchInsert(MerkleTreeId.NULLIFIER_TREE, [contractAddressNullifier.toBuffer()], 0);
|
|
68
|
+
// other contract address used by the bulk test's GETCONTRACTINSTANCE test
|
|
69
|
+
const otherContractAddressNullifier = siloNullifier(
|
|
70
|
+
AztecAddress.fromNumber(DEPLOYER_CONTRACT_ADDRESS),
|
|
71
|
+
contractDataSource.otherContractInstance.address.toField(),
|
|
72
|
+
);
|
|
73
|
+
await merkleTrees.batchInsert(MerkleTreeId.NULLIFIER_TREE, [otherContractAddressNullifier.toBuffer()], 0);
|
|
74
|
+
}
|
|
70
75
|
|
|
71
76
|
const simulator = new PublicTxSimulator(
|
|
72
77
|
merkleTrees,
|
|
@@ -144,7 +149,7 @@ export function createTxForPublicCall(
|
|
|
144
149
|
return tx;
|
|
145
150
|
}
|
|
146
151
|
|
|
147
|
-
export class MockedAvmTestContractDataSource {
|
|
152
|
+
export class MockedAvmTestContractDataSource implements ContractDataSource {
|
|
148
153
|
private fnName = 'public_dispatch';
|
|
149
154
|
private bytecode: Buffer;
|
|
150
155
|
public fnSelector: FunctionSelector;
|
|
@@ -154,7 +159,7 @@ export class MockedAvmTestContractDataSource {
|
|
|
154
159
|
private bytecodeCommitment: Fr;
|
|
155
160
|
public otherContractInstance: ContractInstanceWithAddress;
|
|
156
161
|
|
|
157
|
-
constructor() {
|
|
162
|
+
constructor(private noContractsDeployed: boolean = false) {
|
|
158
163
|
this.bytecode = getAvmTestContractBytecode(this.fnName);
|
|
159
164
|
this.fnSelector = getAvmTestContractFunctionSelector(this.fnName);
|
|
160
165
|
this.publicFn = { bytecode: this.bytecode, selector: this.fnSelector };
|
|
@@ -198,12 +203,15 @@ export class MockedAvmTestContractDataSource {
|
|
|
198
203
|
return Promise.resolve();
|
|
199
204
|
}
|
|
200
205
|
|
|
201
|
-
getContract(address: AztecAddress): Promise<ContractInstanceWithAddress> {
|
|
202
|
-
if (
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
+
getContract(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined> {
|
|
207
|
+
if (!this.noContractsDeployed) {
|
|
208
|
+
if (address.equals(this.contractInstance.address)) {
|
|
209
|
+
return Promise.resolve(this.contractInstance);
|
|
210
|
+
} else if (address.equals(this.otherContractInstance.address)) {
|
|
211
|
+
return Promise.resolve(this.otherContractInstance);
|
|
212
|
+
}
|
|
206
213
|
}
|
|
214
|
+
return Promise.resolve(undefined);
|
|
207
215
|
}
|
|
208
216
|
|
|
209
217
|
getContractClassIds(): Promise<Fr[]> {
|
|
@@ -218,7 +226,7 @@ export class MockedAvmTestContractDataSource {
|
|
|
218
226
|
return Promise.resolve(this.fnName);
|
|
219
227
|
}
|
|
220
228
|
|
|
221
|
-
|
|
229
|
+
registerContractFunctionNames(_address: AztecAddress, _names: Record<string, string>): Promise<void> {
|
|
222
230
|
return Promise.resolve();
|
|
223
231
|
}
|
|
224
232
|
}
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
type BlockHeader,
|
|
16
16
|
type ContractDataSource,
|
|
17
17
|
Fr,
|
|
18
|
+
Gas,
|
|
18
19
|
type GlobalVariables,
|
|
19
20
|
MAX_NOTE_HASHES_PER_TX,
|
|
20
21
|
MAX_NULLIFIERS_PER_TX,
|
|
@@ -43,12 +44,14 @@ export class PublicProcessorFactory {
|
|
|
43
44
|
* Creates a new instance of a PublicProcessor.
|
|
44
45
|
* @param historicalHeader - The header of a block previous to the one in which the tx is included.
|
|
45
46
|
* @param globalVariables - The global variables for the block being processed.
|
|
47
|
+
* @param enforceFeePayment - Allows disabling balance checks for fee estimations.
|
|
46
48
|
* @returns A new instance of a PublicProcessor.
|
|
47
49
|
*/
|
|
48
50
|
public create(
|
|
49
51
|
merkleTree: MerkleTreeWriteOperations,
|
|
50
52
|
maybeHistoricalHeader: BlockHeader | undefined,
|
|
51
53
|
globalVariables: GlobalVariables,
|
|
54
|
+
enforceFeePayment: boolean,
|
|
52
55
|
): PublicProcessor {
|
|
53
56
|
const historicalHeader = maybeHistoricalHeader ?? merkleTree.getInitialHeader();
|
|
54
57
|
|
|
@@ -59,6 +62,7 @@ export class PublicProcessorFactory {
|
|
|
59
62
|
this.telemetryClient,
|
|
60
63
|
globalVariables,
|
|
61
64
|
/*doMerkleOperations=*/ true,
|
|
65
|
+
enforceFeePayment,
|
|
62
66
|
);
|
|
63
67
|
|
|
64
68
|
return new PublicProcessor(
|
|
@@ -110,6 +114,8 @@ export class PublicProcessor implements Traceable {
|
|
|
110
114
|
const result: ProcessedTx[] = [];
|
|
111
115
|
const failed: FailedTx[] = [];
|
|
112
116
|
let returns: NestedProcessReturnValues[] = [];
|
|
117
|
+
let totalGas = new Gas(0, 0);
|
|
118
|
+
const timer = new Timer();
|
|
113
119
|
|
|
114
120
|
for (const tx of txs) {
|
|
115
121
|
// only process up to the limit of the block
|
|
@@ -120,6 +126,7 @@ export class PublicProcessor implements Traceable {
|
|
|
120
126
|
const [processedTx, returnValues] = await this.processTx(tx, txValidator);
|
|
121
127
|
result.push(processedTx);
|
|
122
128
|
returns = returns.concat(returnValues);
|
|
129
|
+
totalGas = totalGas.add(processedTx.gasUsed.publicGas);
|
|
123
130
|
} catch (err: any) {
|
|
124
131
|
const errorMessage = err instanceof Error ? err.message : 'Unknown error';
|
|
125
132
|
this.log.warn(`Failed to process tx ${tx.getTxHash()}: ${errorMessage} ${err?.stack}`);
|
|
@@ -132,6 +139,10 @@ export class PublicProcessor implements Traceable {
|
|
|
132
139
|
}
|
|
133
140
|
}
|
|
134
141
|
|
|
142
|
+
const duration = timer.s();
|
|
143
|
+
const rate = duration > 0 ? totalGas.l2Gas / duration : 0;
|
|
144
|
+
this.metrics.recordAllTxs(totalGas, rate);
|
|
145
|
+
|
|
135
146
|
return [result, failed, returns];
|
|
136
147
|
}
|
|
137
148
|
|
|
@@ -184,6 +195,7 @@ export class PublicProcessor implements Traceable {
|
|
|
184
195
|
// b) always had a txHandler with the same db passed to it as this.db, which updated the db in buildBaseRollupHints in this loop
|
|
185
196
|
// To see how this ^ happens, move back to one shared db in test_context and run orchestrator_multi_public_functions.test.ts
|
|
186
197
|
// The below is taken from buildBaseRollupHints:
|
|
198
|
+
const treeInsertionStart = process.hrtime.bigint();
|
|
187
199
|
await this.db.appendLeaves(
|
|
188
200
|
MerkleTreeId.NOTE_HASH_TREE,
|
|
189
201
|
padArrayEnd(processedTx.txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX),
|
|
@@ -208,6 +220,8 @@ export class PublicProcessor implements Traceable {
|
|
|
208
220
|
MerkleTreeId.PUBLIC_DATA_TREE,
|
|
209
221
|
processedTx.txEffect.publicDataWrites.map(x => x.toBuffer()),
|
|
210
222
|
);
|
|
223
|
+
const treeInsertionEnd = process.hrtime.bigint();
|
|
224
|
+
this.metrics.recordTreeInsertions(Number(treeInsertionEnd - treeInsertionStart) / 1_000);
|
|
211
225
|
|
|
212
226
|
return [processedTx, returnValues ?? []];
|
|
213
227
|
}
|
|
@@ -299,7 +313,7 @@ export class PublicProcessor implements Traceable {
|
|
|
299
313
|
|
|
300
314
|
const phaseCount = processedPhases.length;
|
|
301
315
|
const durationMs = timer.ms();
|
|
302
|
-
this.metrics.recordTx(phaseCount, durationMs);
|
|
316
|
+
this.metrics.recordTx(phaseCount, durationMs, gasUsed.publicGas);
|
|
303
317
|
|
|
304
318
|
const processedTx = makeProcessedTxFromTxWithPublicCalls(tx, avmProvingRequest, gasUsed, revertCode, revertReason);
|
|
305
319
|
|