@aztec/stdlib 4.0.4-rc.5 → 4.0.4-rc.6
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/block/l2_block.d.ts +9 -1
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +10 -0
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/validate.d.ts +20 -0
- package/dest/checkpoint/validate.d.ts.map +1 -0
- package/dest/checkpoint/validate.js +58 -0
- package/dest/interfaces/aztec-node-admin.d.ts +3 -3
- package/dest/interfaces/block-builder.d.ts +11 -5
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +5 -1
- package/dest/interfaces/configs.d.ts +7 -7
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +2 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -0
- package/dest/tests/mocks.d.ts +4 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +2 -1
- package/dest/tx/tx.d.ts +6 -5
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +18 -6
- package/package.json +9 -9
- package/src/block/l2_block.ts +12 -0
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/validate.ts +114 -0
- package/src/interfaces/block-builder.ts +22 -4
- package/src/interfaces/configs.ts +7 -4
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +9 -0
- package/src/tests/mocks.ts +3 -1
- package/src/tx/tx.ts +20 -11
package/dest/block/l2_block.d.ts
CHANGED
|
@@ -139,5 +139,13 @@ export declare class L2Block {
|
|
|
139
139
|
};
|
|
140
140
|
getPrivateLogs(): PrivateLog[];
|
|
141
141
|
toBlockInfo(): L2BlockInfo;
|
|
142
|
+
/**
|
|
143
|
+
* Compute how much DA gas this block uses.
|
|
144
|
+
*
|
|
145
|
+
* @remarks This assumes DA gas is computed solely based on the number of blob fields in transactions.
|
|
146
|
+
* This may change in the future, but we cannot access the actual DA gas used in a block since it's not exposed
|
|
147
|
+
* in the L2BlockHeader, so we have to rely on recomputing it.
|
|
148
|
+
*/
|
|
149
|
+
computeDAGasUsed(): number;
|
|
142
150
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfYmxvY2suZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ibG9jay9sMl9ibG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQXVCLE1BQU0sMEJBQTBCLENBQUM7QUFFbkYsT0FBTyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFFaEIscUJBQXFCLEVBRXJCLFVBQVUsRUFDWCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQ7O0dBRUc7QUFDSCxxQkFBYSxPQUFPO0lBRWhCLDJEQUEyRDtJQUNwRCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLDJCQUEyQjtJQUNwQixNQUFNLEVBQUUsV0FBVztJQUMxQixxQkFBcUI7SUFDZCxJQUFJLEVBQUUsSUFBSTtJQUNqQiwwREFBMEQ7SUFDbkQsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ3pDLGdEQUFnRDtJQUN6QyxxQkFBcUIsRUFBRSxxQkFBcUI7SUFWckQ7SUFDRSwyREFBMkQ7SUFDcEQsT0FBTyxFQUFFLHNCQUFzQjtJQUN0QywyQkFBMkI7SUFDcEIsTUFBTSxFQUFFLFdBQVc7SUFDMUIscUJBQXFCO0lBQ2QsSUFBSSxFQUFFLElBQUk7SUFDakIsMERBQTBEO0lBQ25ELGdCQUFnQixFQUFFLGdCQUFnQjtJQUN6QyxnREFBZ0Q7SUFDekMscUJBQXFCLEVBQUUscUJBQXFCLEVBQ2pEO0lBRUosSUFBSSxNQUFNLElBQUksV0FBVyxDQUV4QjtJQUVELElBQUksSUFBSSxJQUFJLFVBQVUsQ0FFckI7SUFFRCxJQUFJLFNBQVMsSUFBSSxNQUFNLENBRXRCO0lBRUQsTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FhaEI7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsWUFBWSxXQVMzQztJQUVEOzs7T0FHRztJQUNILFFBQVEsNEJBRVA7SUFFRDs7O09BR0c7SUFDSSxJQUFJLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUVoQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxPQUFPLENBUWxDO0lBRU0sWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUcxQjtJQUVNLGVBQWUsSUFBSSxhQUFhLENBc0J0QztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxXQVFoQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYSxNQUFNLENBQ2pCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLEVBQ0UsZ0JBQXdELEVBQ3hELHFCQUFnRCxFQUNoRCxXQUFlLEVBQ2YsU0FBYyxFQUNkLGFBQWEsRUFDYixHQUFHLG9CQUFvQixFQUN4QixHQUFFO1FBQ0QsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztRQUNwQyxxQkFBcUIsQ0FBQyxFQUFFLHFCQUFxQixDQUFDO1FBQzlDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNyQixTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqRixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQU0sR0FDekQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUtsQjtJQUVEOzs7T0FHRztJQUNILFFBQVE7Ozs7Ozs7O01BcUJQO0lBRUQsY0FBYyxJQUFJLFVBQVUsRUFBRSxDQUU3QjtJQUVELFdBQVcsSUFBSSxXQUFXLENBU3pCO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLElBQUksTUFBTSxDQUV6QjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l2_block.d.ts","sourceRoot":"","sources":["../../src/block/l2_block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"l2_block.d.ts","sourceRoot":"","sources":["../../src/block/l2_block.ts"],"names":[],"mappings":"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"}
|
package/dest/block/l2_block.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { encodeBlockBlobData } from '@aztec/blob-lib/encoding';
|
|
2
|
+
import { DA_GAS_PER_FIELD } from '@aztec/constants';
|
|
2
3
|
import { CheckpointNumber, CheckpointNumberSchema, IndexWithinCheckpoint, IndexWithinCheckpointSchema } from '@aztec/foundation/branded-types';
|
|
3
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
5
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -151,4 +152,13 @@ import { Body } from './body.js';
|
|
|
151
152
|
timestamp: this.header.globalVariables.timestamp
|
|
152
153
|
};
|
|
153
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Compute how much DA gas this block uses.
|
|
157
|
+
*
|
|
158
|
+
* @remarks This assumes DA gas is computed solely based on the number of blob fields in transactions.
|
|
159
|
+
* This may change in the future, but we cannot access the actual DA gas used in a block since it's not exposed
|
|
160
|
+
* in the L2BlockHeader, so we have to rely on recomputing it.
|
|
161
|
+
*/ computeDAGasUsed() {
|
|
162
|
+
return this.body.txEffects.reduce((total, txEffect)=>total + txEffect.getNumBlobFields(), 0) * DA_GAS_PER_FIELD;
|
|
163
|
+
}
|
|
154
164
|
}
|
|
@@ -2,4 +2,5 @@ export * from './checkpoint.js';
|
|
|
2
2
|
export * from './checkpoint_data.js';
|
|
3
3
|
export * from './checkpoint_info.js';
|
|
4
4
|
export * from './published_checkpoint.js';
|
|
5
|
-
|
|
5
|
+
export * from './validate.js';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxlQUFlLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkpoint/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkpoint/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC"}
|
package/dest/checkpoint/index.js
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Checkpoint } from './checkpoint.js';
|
|
3
|
+
export declare class CheckpointValidationError extends Error {
|
|
4
|
+
readonly checkpointNumber: CheckpointNumber;
|
|
5
|
+
readonly slot: SlotNumber;
|
|
6
|
+
constructor(message: string, checkpointNumber: CheckpointNumber, slot: SlotNumber);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validates a checkpoint. Throws a CheckpointValidationError if any validation fails.
|
|
10
|
+
* - Validates checkpoint blob field count against maxBlobFields limit
|
|
11
|
+
* - Validates total L2 gas used by checkpoint blocks against the Rollup contract mana limit
|
|
12
|
+
* - Validates total DA gas used by checkpoint blocks against MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT
|
|
13
|
+
* - Validates individual block L2 gas and DA gas against maxL2BlockGas and maxDABlockGas limits
|
|
14
|
+
*/
|
|
15
|
+
export declare function validateCheckpoint(checkpoint: Checkpoint, opts: {
|
|
16
|
+
rollupManaLimit: number;
|
|
17
|
+
maxL2BlockGas: number | undefined;
|
|
18
|
+
maxDABlockGas: number | undefined;
|
|
19
|
+
}): void;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR3BGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELHFCQUFhLHlCQUEwQixTQUFRLEtBQUs7YUFHaEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO2FBQ2xDLElBQUksRUFBRSxVQUFVO0lBSGxDLFlBQ0UsT0FBTyxFQUFFLE1BQU0sRUFDQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsSUFBSSxFQUFFLFVBQVUsRUFJakM7Q0FDRjtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixrQkFBa0IsQ0FDaEMsVUFBVSxFQUFFLFVBQVUsRUFDdEIsSUFBSSxFQUFFO0lBQ0osZUFBZSxFQUFFLE1BQU0sQ0FBQztJQUN4QixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNsQyxhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztDQUNuQyxHQUNBLElBQUksQ0FHTiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/checkpoint/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,yBAA0B,SAAQ,KAAK;aAGhC,gBAAgB,EAAE,gBAAgB;aAClC,IAAI,EAAE,UAAU;IAHlC,YACE,OAAO,EAAE,MAAM,EACC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,UAAU,EAIjC;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE;IACJ,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,GACA,IAAI,CAGN"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT } from '@aztec/constants';
|
|
2
|
+
import { sum } from '@aztec/foundation/collection';
|
|
3
|
+
export class CheckpointValidationError extends Error {
|
|
4
|
+
checkpointNumber;
|
|
5
|
+
slot;
|
|
6
|
+
constructor(message, checkpointNumber, slot){
|
|
7
|
+
super(message), this.checkpointNumber = checkpointNumber, this.slot = slot;
|
|
8
|
+
this.name = 'CheckpointValidationError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Validates a checkpoint. Throws a CheckpointValidationError if any validation fails.
|
|
13
|
+
* - Validates checkpoint blob field count against maxBlobFields limit
|
|
14
|
+
* - Validates total L2 gas used by checkpoint blocks against the Rollup contract mana limit
|
|
15
|
+
* - Validates total DA gas used by checkpoint blocks against MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT
|
|
16
|
+
* - Validates individual block L2 gas and DA gas against maxL2BlockGas and maxDABlockGas limits
|
|
17
|
+
*/ export function validateCheckpoint(checkpoint, opts) {
|
|
18
|
+
validateCheckpointLimits(checkpoint, opts);
|
|
19
|
+
validateCheckpointBlocksGasLimits(checkpoint, opts);
|
|
20
|
+
}
|
|
21
|
+
/** Validates checkpoint blocks gas limits */ function validateCheckpointBlocksGasLimits(checkpoint, opts) {
|
|
22
|
+
const { maxL2BlockGas, maxDABlockGas } = opts;
|
|
23
|
+
if (maxL2BlockGas !== undefined) {
|
|
24
|
+
for (const block of checkpoint.blocks){
|
|
25
|
+
const blockL2Gas = block.header.totalManaUsed.toNumber();
|
|
26
|
+
if (blockL2Gas > maxL2BlockGas) {
|
|
27
|
+
throw new CheckpointValidationError(`Block ${block.number} in checkpoint has L2 gas used ${blockL2Gas} exceeding limit of ${maxL2BlockGas}`, checkpoint.number, checkpoint.slot);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (maxDABlockGas !== undefined) {
|
|
32
|
+
for (const block of checkpoint.blocks){
|
|
33
|
+
const blockDAGas = block.computeDAGasUsed();
|
|
34
|
+
if (blockDAGas > maxDABlockGas) {
|
|
35
|
+
throw new CheckpointValidationError(`Block ${block.number} in checkpoint has DA gas used ${blockDAGas} exceeding limit of ${maxDABlockGas}`, checkpoint.number, checkpoint.slot);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Validates checkpoint max blob fields and gas limits */ function validateCheckpointLimits(checkpoint, opts) {
|
|
41
|
+
const { rollupManaLimit } = opts;
|
|
42
|
+
const maxBlobFields = BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB;
|
|
43
|
+
const maxDAGas = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
|
|
44
|
+
const checkpointMana = sum(checkpoint.blocks.map((block)=>block.header.totalManaUsed.toNumber()));
|
|
45
|
+
if (checkpointMana > rollupManaLimit) {
|
|
46
|
+
throw new CheckpointValidationError(`Checkpoint mana cost ${checkpointMana} exceeds rollup limit of ${rollupManaLimit}`, checkpoint.number, checkpoint.slot);
|
|
47
|
+
}
|
|
48
|
+
const checkpointDAGas = sum(checkpoint.blocks.map((block)=>block.computeDAGasUsed()));
|
|
49
|
+
if (checkpointDAGas > maxDAGas) {
|
|
50
|
+
throw new CheckpointValidationError(`Checkpoint DA gas cost ${checkpointDAGas} exceeds limit of ${maxDAGas}`, checkpoint.number, checkpoint.slot);
|
|
51
|
+
}
|
|
52
|
+
if (maxBlobFields !== undefined) {
|
|
53
|
+
const checkpointBlobFields = checkpoint.toBlobFields().length;
|
|
54
|
+
if (checkpointBlobFields > maxBlobFields) {
|
|
55
|
+
throw new CheckpointValidationError(`Checkpoint blob field count ${checkpointBlobFields} exceeds limit of ${maxBlobFields}`, checkpoint.number, checkpoint.slot);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -70,11 +70,11 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
70
70
|
maxL2BlockGas: z.ZodOptional<z.ZodNumber>;
|
|
71
71
|
publishTxsWithProposals: z.ZodOptional<z.ZodBoolean>;
|
|
72
72
|
maxDABlockGas: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
gasPerBlockAllocationMultiplier: z.ZodOptional<z.ZodNumber>;
|
|
73
74
|
coinbase: z.ZodOptional<import("../schemas/schemas.js").ZodFor<import("@aztec/foundation/eth-address").EthAddress>>;
|
|
74
75
|
feeRecipient: z.ZodOptional<import("../schemas/schemas.js").ZodFor<import("../aztec-address/index.js").AztecAddress>>;
|
|
75
76
|
acvmWorkingDirectory: z.ZodOptional<z.ZodString>;
|
|
76
77
|
acvmBinaryPath: z.ZodOptional<z.ZodString>;
|
|
77
|
-
maxBlockSizeInBytes: z.ZodOptional<z.ZodNumber>;
|
|
78
78
|
governanceProposerPayload: z.ZodOptional<import("../schemas/schemas.js").ZodFor<import("@aztec/foundation/eth-address").EthAddress>>;
|
|
79
79
|
l1PublishingTime: z.ZodOptional<z.ZodNumber>;
|
|
80
80
|
enforceTimeTable: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -199,11 +199,11 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
199
199
|
maxL2BlockGas?: number | undefined;
|
|
200
200
|
publishTxsWithProposals?: boolean | undefined;
|
|
201
201
|
maxDABlockGas?: number | undefined;
|
|
202
|
+
gasPerBlockAllocationMultiplier?: number | undefined;
|
|
202
203
|
coinbase?: import("@aztec/foundation/eth-address").EthAddress | undefined;
|
|
203
204
|
feeRecipient?: import("../aztec-address/index.js").AztecAddress | undefined;
|
|
204
205
|
acvmWorkingDirectory?: string | undefined;
|
|
205
206
|
acvmBinaryPath?: string | undefined;
|
|
206
|
-
maxBlockSizeInBytes?: number | undefined;
|
|
207
207
|
governanceProposerPayload?: import("@aztec/foundation/eth-address").EthAddress | undefined;
|
|
208
208
|
l1PublishingTime?: number | undefined;
|
|
209
209
|
enforceTimeTable?: boolean | undefined;
|
|
@@ -300,11 +300,11 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
|
|
|
300
300
|
maxL2BlockGas?: number | undefined;
|
|
301
301
|
publishTxsWithProposals?: boolean | undefined;
|
|
302
302
|
maxDABlockGas?: number | undefined;
|
|
303
|
+
gasPerBlockAllocationMultiplier?: number | undefined;
|
|
303
304
|
coinbase?: any;
|
|
304
305
|
feeRecipient?: any;
|
|
305
306
|
acvmWorkingDirectory?: string | undefined;
|
|
306
307
|
acvmBinaryPath?: string | undefined;
|
|
307
|
-
maxBlockSizeInBytes?: number | undefined;
|
|
308
308
|
governanceProposerPayload?: any;
|
|
309
309
|
l1PublishingTime?: number | undefined;
|
|
310
310
|
enforceTimeTable?: boolean | undefined;
|
|
@@ -31,11 +31,16 @@ export interface IBlockFactory extends ProcessedTxHandler {
|
|
|
31
31
|
setBlockCompleted(expectedBlockHeader?: BlockHeader): Promise<L2Block>;
|
|
32
32
|
}
|
|
33
33
|
export interface PublicProcessorLimits {
|
|
34
|
+
/** Maximum number of txs to process. */
|
|
34
35
|
maxTransactions?: number;
|
|
35
|
-
|
|
36
|
+
/** L2 and DA gas limits. */
|
|
36
37
|
maxBlockGas?: Gas;
|
|
38
|
+
/** Maximum number of blob fields allowed. */
|
|
37
39
|
maxBlobFields?: number;
|
|
40
|
+
/** Deadline for processing the txs. Processor will stop as soon as it hits this time. */
|
|
38
41
|
deadline?: Date;
|
|
42
|
+
/** Whether this processor is building a proposal (as opposed to re-executing one). Skipping txs due to gas or blob limits is only done during proposal building. */
|
|
43
|
+
isBuildingProposal?: boolean;
|
|
39
44
|
}
|
|
40
45
|
export interface PublicProcessorValidator {
|
|
41
46
|
preprocessValidator?: TxValidator<Tx>;
|
|
@@ -43,7 +48,10 @@ export interface PublicProcessorValidator {
|
|
|
43
48
|
addNullifiers: (nullifiers: Buffer[]) => void;
|
|
44
49
|
};
|
|
45
50
|
}
|
|
46
|
-
export type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'> & Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> & Pick<SequencerConfig, 'txPublicSetupAllowList' | 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount'
|
|
51
|
+
export type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'> & Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> & Pick<SequencerConfig, 'txPublicSetupAllowList' | 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount' | 'maxTxsPerBlock' | 'maxL2BlockGas' | 'maxDABlockGas'> & {
|
|
52
|
+
/** Total L2 gas (mana) allowed per checkpoint. Fetched from L1 getManaLimit(). */
|
|
53
|
+
rollupManaLimit: number;
|
|
54
|
+
};
|
|
47
55
|
export declare const FullNodeBlockBuilderConfigKeys: (keyof FullNodeBlockBuilderConfig)[];
|
|
48
56
|
/** Thrown when no valid transactions are available to include in a block after processing, and this is not the first block in a checkpoint. */
|
|
49
57
|
export declare class NoValidTxsError extends Error {
|
|
@@ -53,12 +61,10 @@ export declare class NoValidTxsError extends Error {
|
|
|
53
61
|
/** Result of building a block within a checkpoint. */
|
|
54
62
|
export type BuildBlockInCheckpointResult = {
|
|
55
63
|
block: L2Block;
|
|
56
|
-
publicGas: Gas;
|
|
57
64
|
publicProcessorDuration: number;
|
|
58
65
|
numTxs: number;
|
|
59
66
|
failedTxs: FailedTx[];
|
|
60
67
|
usedTxs: Tx[];
|
|
61
|
-
usedTxBlobFields: number;
|
|
62
68
|
};
|
|
63
69
|
/** Interface for building blocks within a checkpoint context. */
|
|
64
70
|
export interface ICheckpointBlockBuilder {
|
|
@@ -69,4 +75,4 @@ export interface ICheckpointsBuilder {
|
|
|
69
75
|
getFork(blockNumber: BlockNumber): Promise<MerkleTreeWriteOperations>;
|
|
70
76
|
startCheckpoint(checkpointNumber: CheckpointNumber, constants: CheckpointGlobalVariables, feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], fork: MerkleTreeWriteOperations, bindings?: LoggerBindings): Promise<ICheckpointBlockBuilder>;
|
|
71
77
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYmxvY2stYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLDZGQUE2RjtBQUM3RixNQUFNLFdBQVcsYUFBYyxTQUFRLGtCQUFrQjtJQUN2RDs7OztP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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../src/interfaces/block-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,6FAA6F;AAC7F,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD;;;;OAIG;IACH,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;OAEG;IACH,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"block-builder.d.ts","sourceRoot":"","sources":["../../src/interfaces/block-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,11 @@ export const FullNodeBlockBuilderConfigKeys = [
|
|
|
5
5
|
'rollupVersion',
|
|
6
6
|
'txPublicSetupAllowList',
|
|
7
7
|
'fakeProcessingDelayPerTxMs',
|
|
8
|
-
'fakeThrowAfterProcessingTxCount'
|
|
8
|
+
'fakeThrowAfterProcessingTxCount',
|
|
9
|
+
'maxTxsPerBlock',
|
|
10
|
+
'maxL2BlockGas',
|
|
11
|
+
'maxDABlockGas',
|
|
12
|
+
'rollupManaLimit'
|
|
9
13
|
];
|
|
10
14
|
/** Thrown when no valid transactions are available to include in a block after processing, and this is not the first block in a checkpoint. */ export class NoValidTxsError extends Error {
|
|
11
15
|
failedTxs;
|
|
@@ -19,6 +19,8 @@ export interface SequencerConfig {
|
|
|
19
19
|
maxL2BlockGas?: number;
|
|
20
20
|
/** The maximum DA block gas. */
|
|
21
21
|
maxDABlockGas?: number;
|
|
22
|
+
/** Per-block gas budget multiplier for both L2 and DA gas. Budget = (checkpointLimit / maxBlocks) * multiplier. */
|
|
23
|
+
gasPerBlockAllocationMultiplier?: number;
|
|
22
24
|
/** Recipient of block reward. */
|
|
23
25
|
coinbase?: EthAddress;
|
|
24
26
|
/** Address to receive fees. */
|
|
@@ -29,8 +31,6 @@ export interface SequencerConfig {
|
|
|
29
31
|
acvmBinaryPath?: string;
|
|
30
32
|
/** The list of functions calls allowed to run in setup */
|
|
31
33
|
txPublicSetupAllowList?: AllowedElement[];
|
|
32
|
-
/** Max block size */
|
|
33
|
-
maxBlockSizeInBytes?: number;
|
|
34
34
|
/** Payload address to vote for */
|
|
35
35
|
governanceProposerPayload?: EthAddress;
|
|
36
36
|
/** Whether to enforce the time table when building blocks */
|
|
@@ -84,6 +84,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
84
84
|
maxL2BlockGas: z.ZodOptional<z.ZodNumber>;
|
|
85
85
|
publishTxsWithProposals: z.ZodOptional<z.ZodBoolean>;
|
|
86
86
|
maxDABlockGas: z.ZodOptional<z.ZodNumber>;
|
|
87
|
+
gasPerBlockAllocationMultiplier: z.ZodOptional<z.ZodNumber>;
|
|
87
88
|
coinbase: z.ZodOptional<import("../schemas/index.js").ZodFor<EthAddress>>;
|
|
88
89
|
feeRecipient: z.ZodOptional<import("../schemas/index.js").ZodFor<AztecAddress>>;
|
|
89
90
|
acvmWorkingDirectory: z.ZodOptional<z.ZodString>;
|
|
@@ -119,7 +120,6 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
119
120
|
}, {
|
|
120
121
|
classId?: any;
|
|
121
122
|
}>]>, "many">>;
|
|
122
|
-
maxBlockSizeInBytes: z.ZodOptional<z.ZodNumber>;
|
|
123
123
|
governanceProposerPayload: z.ZodOptional<import("../schemas/index.js").ZodFor<EthAddress>>;
|
|
124
124
|
l1PublishingTime: z.ZodOptional<z.ZodNumber>;
|
|
125
125
|
enforceTimeTable: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -150,6 +150,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
150
150
|
maxL2BlockGas?: number | undefined;
|
|
151
151
|
publishTxsWithProposals?: boolean | undefined;
|
|
152
152
|
maxDABlockGas?: number | undefined;
|
|
153
|
+
gasPerBlockAllocationMultiplier?: number | undefined;
|
|
153
154
|
coinbase?: EthAddress | undefined;
|
|
154
155
|
feeRecipient?: AztecAddress | undefined;
|
|
155
156
|
acvmWorkingDirectory?: string | undefined;
|
|
@@ -165,7 +166,6 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
165
166
|
} | {
|
|
166
167
|
classId: import("@aztec/foundation/schemas").Fr;
|
|
167
168
|
})[] | undefined;
|
|
168
|
-
maxBlockSizeInBytes?: number | undefined;
|
|
169
169
|
governanceProposerPayload?: EthAddress | undefined;
|
|
170
170
|
l1PublishingTime?: number | undefined;
|
|
171
171
|
enforceTimeTable?: boolean | undefined;
|
|
@@ -196,6 +196,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
196
196
|
maxL2BlockGas?: number | undefined;
|
|
197
197
|
publishTxsWithProposals?: boolean | undefined;
|
|
198
198
|
maxDABlockGas?: number | undefined;
|
|
199
|
+
gasPerBlockAllocationMultiplier?: number | undefined;
|
|
199
200
|
coinbase?: any;
|
|
200
201
|
feeRecipient?: any;
|
|
201
202
|
acvmWorkingDirectory?: string | undefined;
|
|
@@ -211,7 +212,6 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
211
212
|
} | {
|
|
212
213
|
classId?: any;
|
|
213
214
|
})[] | undefined;
|
|
214
|
-
maxBlockSizeInBytes?: number | undefined;
|
|
215
215
|
governanceProposerPayload?: any;
|
|
216
216
|
l1PublishingTime?: number | undefined;
|
|
217
217
|
enforceTimeTable?: boolean | undefined;
|
|
@@ -235,7 +235,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
235
235
|
minBlocksForCheckpoint?: number | undefined;
|
|
236
236
|
skipPublishingCheckpointsPercent?: number | undefined;
|
|
237
237
|
}>;
|
|
238
|
-
type SequencerConfigOptionalKeys = 'governanceProposerPayload' | 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'coinbase' | 'feeRecipient' | 'acvmWorkingDirectory' | 'acvmBinaryPath' | 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount' | 'l1PublishingTime' | 'txPublicSetupAllowList' | 'minValidTxsPerBlock' | 'minBlocksForCheckpoint';
|
|
238
|
+
type SequencerConfigOptionalKeys = 'governanceProposerPayload' | 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'coinbase' | 'feeRecipient' | 'acvmWorkingDirectory' | 'acvmBinaryPath' | 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount' | 'l1PublishingTime' | 'txPublicSetupAllowList' | 'minValidTxsPerBlock' | 'minBlocksForCheckpoint' | 'maxL2BlockGas' | 'maxDABlockGas' | 'gasPerBlockAllocationMultiplier';
|
|
239
239
|
export type ResolvedSequencerConfig = Prettify<Required<Omit<SequencerConfig, SequencerConfigOptionalKeys>> & Pick<SequencerConfig, SequencerConfigOptionalKeys>>;
|
|
240
240
|
export {};
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvY29uZmlncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBd0IsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRiw4QkFBOEI7QUFDOUIsTUFBTSxXQUFXLGVBQWU7SUFDOUIsZ0VBQWdFO0lBQ2hFLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLHVEQUF1RDtJQUN2RCxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsdURBQXVEO0lBQ3ZELGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4Qix5SEFBeUg7SUFDekgsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDN0Isc0RBQXNEO0lBQ3RELHVCQUF1QixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ2xDLGdDQUFnQztJQUNoQyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsZ0NBQWdDO0lBQ2hDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN2QixtSEFBbUg7SUFDbkgsK0JBQStCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDekMsaUNBQWlDO0lBQ2pDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsQ0FBQztJQUN0QiwrQkFBK0I7SUFDL0IsWUFBWSxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQzVCLDBEQUEwRDtJQUMxRCxvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM5QixrQ0FBa0M7SUFDbEMs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/interfaces/configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yHAAyH;IACzH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1C,
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/interfaces/configs.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,12 @@ export const SequencerConfigSchema = zodFor()(z.object({
|
|
|
9
9
|
maxL2BlockGas: z.number().optional(),
|
|
10
10
|
publishTxsWithProposals: z.boolean().optional(),
|
|
11
11
|
maxDABlockGas: z.number().optional(),
|
|
12
|
+
gasPerBlockAllocationMultiplier: z.number().optional(),
|
|
12
13
|
coinbase: schemas.EthAddress.optional(),
|
|
13
14
|
feeRecipient: schemas.AztecAddress.optional(),
|
|
14
15
|
acvmWorkingDirectory: z.string().optional(),
|
|
15
16
|
acvmBinaryPath: z.string().optional(),
|
|
16
17
|
txPublicSetupAllowList: z.array(AllowedElementSchema).optional(),
|
|
17
|
-
maxBlockSizeInBytes: z.number().optional(),
|
|
18
18
|
governanceProposerPayload: schemas.EthAddress.optional(),
|
|
19
19
|
l1PublishingTime: z.number().optional(),
|
|
20
20
|
enforceTimeTable: z.boolean().optional(),
|
|
@@ -105,6 +105,7 @@ export declare class PrivateKernelTailCircuitPublicInputs {
|
|
|
105
105
|
getRevertiblePublicCallRequests(): PublicCallRequest[];
|
|
106
106
|
getTeardownPublicCallRequest(): PublicCallRequest | undefined;
|
|
107
107
|
getNonEmptyNoteHashes(): Fr[];
|
|
108
|
+
getNonEmptyL2ToL1Msgs(): import("../messaging/l2_to_l1_message.js").ScopedL2ToL1Message[];
|
|
108
109
|
getNonEmptyNullifiers(): Fr[];
|
|
109
110
|
getNonEmptyPrivateLogs(): PrivateLog[];
|
|
110
111
|
getNonEmptyContractClassLogsHashes(): ScopedLogHash[];
|
|
@@ -120,4 +121,4 @@ export declare class PrivateKernelTailCircuitPublicInputs {
|
|
|
120
121
|
*/
|
|
121
122
|
static emptyWithNullifier(): PrivateKernelTailCircuitPublicInputs;
|
|
122
123
|
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfdGFpbF9jaXJjdWl0X3B1YmxpY19pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWwvcHJpdmF0ZV9rZXJuZWxfdGFpbF9jaXJjdWl0X3B1YmxpY19pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQXVDLE1BQU0sNkJBQTZCLENBQUM7QUFFaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc3RCxxQkFBYSx1Q0FBdUM7SUFFaEQ7O09BRUc7SUFDSSw0QkFBNEIsRUFBRSw4QkFBOEI7SUFDbkU7O09BRUc7SUFDSSx5QkFBeUIsRUFBRSw4QkFBOEI7SUFDaEU7O09BRUc7SUFDSSx5QkFBeUIsRUFBRSxpQkFBaUI7SUFackQ7SUFDRTs7T0FFRztJQUNJLDRCQUE0QixFQUFFLDhCQUE4QjtJQUNuRTs7T0FFRztJQUNJLHlCQUF5QixFQUFFLDhCQUE4QjtJQUNoRTs7T0FFRztJQUNJLHlCQUF5QixFQUFFLGlCQUFpQixFQUNqRDtJQUVKLE9BQU8sV0FNTjtJQUVELElBQUksVUFBVSxZQUViO0lBRUQsSUFBSSxhQUFhLFlBRWhCO0lBRUQsSUFBSSxhQUFhLFlBRWhCO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyx1Q0FBdUMsQ0FPeEY7SUFFRCxRQUFRLDRCQU1QO0lBRUQsTUFBTSxDQUFDLEtBQUssNENBTVg7Q0FDRjtBQUVELHFCQUFhLHVDQUF1QztJQUMvQixHQUFHLEVBQUUsOEJBQThCO0lBQXRELFlBQW1CLEdBQUcsRUFBRSw4QkFBOEIsRUFBSTtJQUUxRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLHVDQUF1QyxDQUd4RjtJQUVELE9BQU8sV0FFTjtJQUVELFFBQVEsNEJBRVA7SUFFRCxNQUFNLENBQUMsS0FBSyw0Q0FFWDtDQUNGO0FBRUQscUJBQWEsb0NBQW9DO0lBRTdDOztPQUVHO0lBQ0ksU0FBUyxFQUFFLGNBQWM7SUFDaEM7OztPQUdHO0lBQ0ksT0FBTyxFQUFFLEdBQUc7SUFDbkI7O09BRUc7SUFDSSxRQUFRLEVBQUUsWUFBWTtJQUM3Qjs7T0FFRztJQUNJLG1CQUFtQixFQUFFLE1BQU07SUFFM0IsU0FBUyxDQUFDO0lBQ1YsU0FBUyxDQUFDO0lBcEJuQjtJQUNFOztPQUVHO0lBQ0ksU0FBUyxFQUFFLGNBQWM7SUFDaEM7OztPQUdHO0lBQ0ksT0FBTyxFQUFFLEdBQUc7SUFDbkI7O09BRUc7SUFDSSxRQUFRLEVBQUUsWUFBWTtJQUM3Qjs7T0FFRztJQUNJLG1CQUFtQixFQUFFLE1BQU0sRUFFM0IsU0FBUyxDQUFDLHFEQUF5QyxFQUNuRCxTQUFTLENBQUMscURBQXlDLEVBVTNEO0lBRUQsTUFBTSxLQUFLLE1BQU0sNkVBRWhCO0lBRUQsTUFBTSw0QkFFTDtJQUVELE9BQU8sV0FTTjtJQUVELDBDQUEwQyw2Q0FhekM7SUFFRCwwQ0FBMEMsNkNBaUJ6QztJQUVELFlBQVksSUFBSSx3Q0FBd0MsR0FBRyx3Q0FBd0MsQ0FJbEc7SUFFRCwwQkFBMEIsV0FNekI7SUFFRCx1Q0FBdUMsV0FFdEM7SUFFRCxvQ0FBb0MsV0FFbkM7SUFFRCw0QkFBNEIsWUFFM0I7SUFFRCxrQ0FBa0Msd0JBSWpDO0lBRUQsK0JBQStCLHdCQUU5QjtJQUVELDRCQUE0QixrQ0FHM0I7SUFFRCxxQkFBcUIsU0FPcEI7SUFFRCxxQkFBcUIscUVBT3BCO0lBRUQscUJBQXFCLFNBT3BCO0lBRUQsc0JBQXNCLGlCQU9yQjtJQUVELGtDQUFrQyxvQkFPakM7SUFFRCxpQ0FBaUMsV0FPaEM7SUFFRCwyQkFBMkIsV0FNMUI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLG9DQUFvQyxDQVdyRjtJQUVELFFBQVEsNEJBVVA7SUFFRCxNQUFNLENBQUMsS0FBSyx5Q0FTWDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsa0JBQWtCLHlDQVd4QjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_kernel_tail_circuit_public_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_tail_circuit_public_inputs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"private_kernel_tail_circuit_public_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_tail_circuit_public_inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,6 +149,10 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
149
149
|
const noteHashes = this.forPublic ? this.forPublic.nonRevertibleAccumulatedData.noteHashes.concat(this.forPublic.revertibleAccumulatedData.noteHashes) : this.forRollup.end.noteHashes;
|
|
150
150
|
return noteHashes.filter((n)=>!n.isZero());
|
|
151
151
|
}
|
|
152
|
+
getNonEmptyL2ToL1Msgs() {
|
|
153
|
+
const l2ToL1Msgs = this.forPublic ? this.forPublic.nonRevertibleAccumulatedData.l2ToL1Msgs.concat(this.forPublic.revertibleAccumulatedData.l2ToL1Msgs) : this.forRollup.end.l2ToL1Msgs;
|
|
154
|
+
return l2ToL1Msgs.filter((m)=>!m.isEmpty());
|
|
155
|
+
}
|
|
152
156
|
getNonEmptyNullifiers() {
|
|
153
157
|
const nullifiers = this.forPublic ? this.forPublic.nonRevertibleAccumulatedData.nullifiers.concat(this.forPublic.revertibleAccumulatedData.nullifiers) : this.forRollup.end.nullifiers;
|
|
154
158
|
return nullifiers.filter((n)=>!n.isZero());
|
package/dest/tests/mocks.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ import { BlockHeader, GlobalVariables, ProtocolContracts, Tx } from '../tx/index
|
|
|
25
25
|
import { TxSimulationResult } from '../tx/simulated_tx.js';
|
|
26
26
|
import { TxHash } from '../tx/tx_hash.js';
|
|
27
27
|
export declare const randomTxHash: () => TxHash;
|
|
28
|
-
export declare const mockTx: (seed?: number, { numberOfNonRevertiblePublicCallRequests, numberOfRevertiblePublicCallRequests, numberOfRevertibleNullifiers, hasPublicTeardownCallRequest, publicCalldataSize, feePayer, chonkProof, maxFeesPerGas, maxPriorityFeesPerGas, gasUsed, chainId, version, vkTreeRoot, protocolContractsHash, anchorBlockHeader, }?: {
|
|
28
|
+
export declare const mockTx: (seed?: number, { numberOfNonRevertiblePublicCallRequests, numberOfRevertiblePublicCallRequests, numberOfRevertibleNullifiers, hasPublicTeardownCallRequest, publicCalldataSize, feePayer, chonkProof, gasLimits, maxFeesPerGas, maxPriorityFeesPerGas, gasUsed, chainId, version, vkTreeRoot, protocolContractsHash, anchorBlockHeader, }?: {
|
|
29
29
|
numberOfNonRevertiblePublicCallRequests?: number | undefined;
|
|
30
30
|
numberOfRevertiblePublicCallRequests?: number | undefined;
|
|
31
31
|
numberOfRevertibleNullifiers?: number | undefined;
|
|
@@ -33,6 +33,7 @@ export declare const mockTx: (seed?: number, { numberOfNonRevertiblePublicCallRe
|
|
|
33
33
|
publicCalldataSize?: number | undefined;
|
|
34
34
|
feePayer?: AztecAddress | undefined;
|
|
35
35
|
chonkProof?: ChonkProof | undefined;
|
|
36
|
+
gasLimits?: Gas | undefined;
|
|
36
37
|
maxFeesPerGas?: GasFees | undefined;
|
|
37
38
|
maxPriorityFeesPerGas?: GasFees | undefined;
|
|
38
39
|
gasUsed?: Gas | undefined;
|
|
@@ -50,6 +51,7 @@ export declare const mockTxForRollup: (seed?: number, opts?: {
|
|
|
50
51
|
publicCalldataSize?: number | undefined;
|
|
51
52
|
feePayer?: AztecAddress | undefined;
|
|
52
53
|
chonkProof?: ChonkProof | undefined;
|
|
54
|
+
gasLimits?: Gas | undefined;
|
|
53
55
|
maxFeesPerGas?: GasFees | undefined;
|
|
54
56
|
maxPriorityFeesPerGas?: GasFees | undefined;
|
|
55
57
|
gasUsed?: Gas | undefined;
|
|
@@ -162,4 +164,4 @@ export declare const makeCheckpointAttestationFromBlock: (block: L2Block, attest
|
|
|
162
164
|
export declare function randomPublishedL2Block(l2BlockNumber: number, opts?: {
|
|
163
165
|
signers?: Secp256k1Signer[];
|
|
164
166
|
}): Promise<CheckpointedL2Block>;
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLekQsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,qBAAqB,EAAc,MAAM,iCAAiC,CAAC;AAInH,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAwB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAKzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAWxF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,eAAe,EAIf,iBAAiB,EACjB,EAAE,EAIH,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAe1C,eAAO,MAAM,YAAY,cAAgC,CAAC;AAE1D,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
|
package/dest/tests/mocks.js
CHANGED
|
@@ -45,13 +45,14 @@ import { TxEffect } from '../tx/tx_effect.js';
|
|
|
45
45
|
import { TxHash } from '../tx/tx_hash.js';
|
|
46
46
|
import { makeAvmCircuitInputs, makeAztecAddress, makeBlockHeader, makeCheckpointHeader, makeGas, makeGlobalVariables, makePrivateToPublicAccumulatedData, makePrivateToRollupAccumulatedData, makeProtocolContracts, makePublicCallRequest, makePublicDataWrite } from './factories.js';
|
|
47
47
|
export const randomTxHash = ()=>TxHash.random();
|
|
48
|
-
export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), maxFeesPerGas = new GasFees(10, 10), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO, anchorBlockHeader = BlockHeader.empty() } = {})=>{
|
|
48
|
+
export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), gasLimits, maxFeesPerGas = new GasFees(10, 10), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO, anchorBlockHeader = BlockHeader.empty() } = {})=>{
|
|
49
49
|
const totalPublicCallRequests = numberOfNonRevertiblePublicCallRequests + numberOfRevertiblePublicCallRequests + (hasPublicTeardownCallRequest ? 1 : 0);
|
|
50
50
|
const isForPublic = totalPublicCallRequests > 0;
|
|
51
51
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
52
52
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
53
53
|
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
54
54
|
data.constants.txContext.gasSettings = GasSettings.default({
|
|
55
|
+
gasLimits,
|
|
55
56
|
maxFeesPerGas,
|
|
56
57
|
maxPriorityFeesPerGas
|
|
57
58
|
});
|
package/dest/tx/tx.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Buffer32 } from '@aztec/foundation/buffer';
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { ZodFor } from '@aztec/foundation/schemas';
|
|
4
4
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
5
|
-
import type
|
|
5
|
+
import { type FieldsOf } from '@aztec/foundation/types';
|
|
6
6
|
import type { GasSettings } from '../gas/gas_settings.js';
|
|
7
7
|
import type { GetPublicLogsResponse } from '../interfaces/get_logs_response.js';
|
|
8
8
|
import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
|
|
@@ -131,10 +131,11 @@ export declare class Tx extends Gossipable {
|
|
|
131
131
|
private sizeCache;
|
|
132
132
|
getSize(): number;
|
|
133
133
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
134
|
+
* Returns the number of fields this tx's effects will occupy in the blob,
|
|
135
|
+
* based on its private side effects only. Accurate for txs without public calls.
|
|
136
|
+
* For txs with public calls, the actual size will be larger due to public execution outputs.
|
|
136
137
|
*/
|
|
137
|
-
|
|
138
|
+
getPrivateTxEffectsSizeInFields(): number;
|
|
138
139
|
/**
|
|
139
140
|
* Clones a tx, making a deep copy of all fields.
|
|
140
141
|
* @param tx - The transaction to be cloned.
|
|
@@ -161,4 +162,4 @@ export declare class TxArray extends Array<Tx> {
|
|
|
161
162
|
static fromBuffer(buffer: Buffer | BufferReader): TxArray;
|
|
162
163
|
toBuffer(): Buffer;
|
|
163
164
|
}
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQXlELE1BQU0sNkJBQTZCLENBQUM7QUFDbEgsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFZLE1BQU0seUJBQXlCLENBQUM7QUFJbEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0Qzs7R0FFRztBQUVILHFC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
|
package/dest/tx/tx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { DA_GAS_PER_FIELD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
|
|
1
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { BufferReader, serializeArrayOfBufferableToVector, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
|
+
import { unfreeze } from '@aztec/foundation/types';
|
|
4
5
|
import { z } from 'zod';
|
|
5
6
|
import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
6
7
|
import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
|
|
@@ -194,10 +195,21 @@ export class Tx extends Gossipable {
|
|
|
194
195
|
return this.sizeCache;
|
|
195
196
|
}
|
|
196
197
|
/**
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
|
|
200
|
-
|
|
198
|
+
* Returns the number of fields this tx's effects will occupy in the blob,
|
|
199
|
+
* based on its private side effects only. Accurate for txs without public calls.
|
|
200
|
+
* For txs with public calls, the actual size will be larger due to public execution outputs.
|
|
201
|
+
*/ getPrivateTxEffectsSizeInFields() {
|
|
202
|
+
// 3 fields overhead: tx_start_marker, tx_hash, tx_fee.
|
|
203
|
+
// TX_DA_GAS_OVERHEAD is defined as N * DA_GAS_PER_FIELD, so this division is always exact.
|
|
204
|
+
const overheadFields = TX_DA_GAS_OVERHEAD / DA_GAS_PER_FIELD;
|
|
205
|
+
const noteHashes = this.data.getNonEmptyNoteHashes().length;
|
|
206
|
+
const nullifiers = this.data.getNonEmptyNullifiers().length;
|
|
207
|
+
const l2ToL1Msgs = this.data.getNonEmptyL2ToL1Msgs().length;
|
|
208
|
+
// Each private log occupies (emittedLength + 1) fields: content + length field
|
|
209
|
+
const privateLogFields = this.data.getNonEmptyPrivateLogs().reduce((acc, log)=>acc + log.emittedLength + 1, 0);
|
|
210
|
+
// Each contract class log occupies (length + 1) fields: content + contract address
|
|
211
|
+
const contractClassLogFields = this.data.getNonEmptyContractClassLogsHashes().reduce((acc, log)=>acc + log.logHash.length + 1, 0);
|
|
212
|
+
return overheadFields + noteHashes + nullifiers + l2ToL1Msgs + privateLogFields + contractClassLogFields;
|
|
201
213
|
}
|
|
202
214
|
/**
|
|
203
215
|
* Clones a tx, making a deep copy of all fields.
|
|
@@ -230,7 +242,7 @@ export class Tx extends Gossipable {
|
|
|
230
242
|
});
|
|
231
243
|
}
|
|
232
244
|
/** Recomputes the tx hash. Used for testing purposes only when a property of the tx was mutated. */ async recomputeHash() {
|
|
233
|
-
this.txHash = await Tx.computeTxHash(this);
|
|
245
|
+
unfreeze(this).txHash = await Tx.computeTxHash(this);
|
|
234
246
|
return this.txHash;
|
|
235
247
|
}
|
|
236
248
|
#combinePublicCallRequestWithCallData(request) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "4.0.4-rc.
|
|
3
|
+
"version": "4.0.4-rc.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -90,14 +90,14 @@
|
|
|
90
90
|
},
|
|
91
91
|
"dependencies": {
|
|
92
92
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
93
|
-
"@aztec/bb.js": "4.0.4-rc.
|
|
94
|
-
"@aztec/blob-lib": "4.0.4-rc.
|
|
95
|
-
"@aztec/constants": "4.0.4-rc.
|
|
96
|
-
"@aztec/ethereum": "4.0.4-rc.
|
|
97
|
-
"@aztec/foundation": "4.0.4-rc.
|
|
98
|
-
"@aztec/l1-artifacts": "4.0.4-rc.
|
|
99
|
-
"@aztec/noir-noirc_abi": "4.0.4-rc.
|
|
100
|
-
"@aztec/validator-ha-signer": "4.0.4-rc.
|
|
93
|
+
"@aztec/bb.js": "4.0.4-rc.6",
|
|
94
|
+
"@aztec/blob-lib": "4.0.4-rc.6",
|
|
95
|
+
"@aztec/constants": "4.0.4-rc.6",
|
|
96
|
+
"@aztec/ethereum": "4.0.4-rc.6",
|
|
97
|
+
"@aztec/foundation": "4.0.4-rc.6",
|
|
98
|
+
"@aztec/l1-artifacts": "4.0.4-rc.6",
|
|
99
|
+
"@aztec/noir-noirc_abi": "4.0.4-rc.6",
|
|
100
|
+
"@aztec/validator-ha-signer": "4.0.4-rc.6",
|
|
101
101
|
"@google-cloud/storage": "^7.15.0",
|
|
102
102
|
"axios": "^1.13.5",
|
|
103
103
|
"json-stringify-deterministic": "1.0.12",
|
package/src/block/l2_block.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
|
|
2
|
+
import { DA_GAS_PER_FIELD } from '@aztec/constants';
|
|
2
3
|
import {
|
|
3
4
|
BlockNumber,
|
|
4
5
|
CheckpointNumber,
|
|
@@ -221,4 +222,15 @@ export class L2Block {
|
|
|
221
222
|
timestamp: this.header.globalVariables.timestamp,
|
|
222
223
|
};
|
|
223
224
|
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Compute how much DA gas this block uses.
|
|
228
|
+
*
|
|
229
|
+
* @remarks This assumes DA gas is computed solely based on the number of blob fields in transactions.
|
|
230
|
+
* This may change in the future, but we cannot access the actual DA gas used in a block since it's not exposed
|
|
231
|
+
* in the L2BlockHeader, so we have to rely on recomputing it.
|
|
232
|
+
*/
|
|
233
|
+
computeDAGasUsed(): number {
|
|
234
|
+
return this.body.txEffects.reduce((total, txEffect) => total + txEffect.getNumBlobFields(), 0) * DA_GAS_PER_FIELD;
|
|
235
|
+
}
|
|
224
236
|
}
|
package/src/checkpoint/index.ts
CHANGED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT } from '@aztec/constants';
|
|
2
|
+
import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { sum } from '@aztec/foundation/collection';
|
|
4
|
+
|
|
5
|
+
import type { Checkpoint } from './checkpoint.js';
|
|
6
|
+
|
|
7
|
+
export class CheckpointValidationError extends Error {
|
|
8
|
+
constructor(
|
|
9
|
+
message: string,
|
|
10
|
+
public readonly checkpointNumber: CheckpointNumber,
|
|
11
|
+
public readonly slot: SlotNumber,
|
|
12
|
+
) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = 'CheckpointValidationError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Validates a checkpoint. Throws a CheckpointValidationError if any validation fails.
|
|
20
|
+
* - Validates checkpoint blob field count against maxBlobFields limit
|
|
21
|
+
* - Validates total L2 gas used by checkpoint blocks against the Rollup contract mana limit
|
|
22
|
+
* - Validates total DA gas used by checkpoint blocks against MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT
|
|
23
|
+
* - Validates individual block L2 gas and DA gas against maxL2BlockGas and maxDABlockGas limits
|
|
24
|
+
*/
|
|
25
|
+
export function validateCheckpoint(
|
|
26
|
+
checkpoint: Checkpoint,
|
|
27
|
+
opts: {
|
|
28
|
+
rollupManaLimit: number;
|
|
29
|
+
maxL2BlockGas: number | undefined;
|
|
30
|
+
maxDABlockGas: number | undefined;
|
|
31
|
+
},
|
|
32
|
+
): void {
|
|
33
|
+
validateCheckpointLimits(checkpoint, opts);
|
|
34
|
+
validateCheckpointBlocksGasLimits(checkpoint, opts);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Validates checkpoint blocks gas limits */
|
|
38
|
+
function validateCheckpointBlocksGasLimits(
|
|
39
|
+
checkpoint: Checkpoint,
|
|
40
|
+
opts: {
|
|
41
|
+
maxL2BlockGas: number | undefined;
|
|
42
|
+
maxDABlockGas: number | undefined;
|
|
43
|
+
},
|
|
44
|
+
): void {
|
|
45
|
+
const { maxL2BlockGas, maxDABlockGas } = opts;
|
|
46
|
+
|
|
47
|
+
if (maxL2BlockGas !== undefined) {
|
|
48
|
+
for (const block of checkpoint.blocks) {
|
|
49
|
+
const blockL2Gas = block.header.totalManaUsed.toNumber();
|
|
50
|
+
if (blockL2Gas > maxL2BlockGas) {
|
|
51
|
+
throw new CheckpointValidationError(
|
|
52
|
+
`Block ${block.number} in checkpoint has L2 gas used ${blockL2Gas} exceeding limit of ${maxL2BlockGas}`,
|
|
53
|
+
checkpoint.number,
|
|
54
|
+
checkpoint.slot,
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (maxDABlockGas !== undefined) {
|
|
61
|
+
for (const block of checkpoint.blocks) {
|
|
62
|
+
const blockDAGas = block.computeDAGasUsed();
|
|
63
|
+
if (blockDAGas > maxDABlockGas) {
|
|
64
|
+
throw new CheckpointValidationError(
|
|
65
|
+
`Block ${block.number} in checkpoint has DA gas used ${blockDAGas} exceeding limit of ${maxDABlockGas}`,
|
|
66
|
+
checkpoint.number,
|
|
67
|
+
checkpoint.slot,
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Validates checkpoint max blob fields and gas limits */
|
|
75
|
+
function validateCheckpointLimits(
|
|
76
|
+
checkpoint: Checkpoint,
|
|
77
|
+
opts: {
|
|
78
|
+
rollupManaLimit: number;
|
|
79
|
+
},
|
|
80
|
+
): void {
|
|
81
|
+
const { rollupManaLimit } = opts;
|
|
82
|
+
|
|
83
|
+
const maxBlobFields = BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB;
|
|
84
|
+
const maxDAGas = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
|
|
85
|
+
|
|
86
|
+
const checkpointMana = sum(checkpoint.blocks.map(block => block.header.totalManaUsed.toNumber()));
|
|
87
|
+
if (checkpointMana > rollupManaLimit) {
|
|
88
|
+
throw new CheckpointValidationError(
|
|
89
|
+
`Checkpoint mana cost ${checkpointMana} exceeds rollup limit of ${rollupManaLimit}`,
|
|
90
|
+
checkpoint.number,
|
|
91
|
+
checkpoint.slot,
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const checkpointDAGas = sum(checkpoint.blocks.map(block => block.computeDAGasUsed()));
|
|
96
|
+
if (checkpointDAGas > maxDAGas) {
|
|
97
|
+
throw new CheckpointValidationError(
|
|
98
|
+
`Checkpoint DA gas cost ${checkpointDAGas} exceeds limit of ${maxDAGas}`,
|
|
99
|
+
checkpoint.number,
|
|
100
|
+
checkpoint.slot,
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (maxBlobFields !== undefined) {
|
|
105
|
+
const checkpointBlobFields = checkpoint.toBlobFields().length;
|
|
106
|
+
if (checkpointBlobFields > maxBlobFields) {
|
|
107
|
+
throw new CheckpointValidationError(
|
|
108
|
+
`Checkpoint blob field count ${checkpointBlobFields} exceeds limit of ${maxBlobFields}`,
|
|
109
|
+
checkpoint.number,
|
|
110
|
+
checkpoint.slot,
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -36,11 +36,16 @@ export interface IBlockFactory extends ProcessedTxHandler {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export interface PublicProcessorLimits {
|
|
39
|
+
/** Maximum number of txs to process. */
|
|
39
40
|
maxTransactions?: number;
|
|
40
|
-
|
|
41
|
+
/** L2 and DA gas limits. */
|
|
41
42
|
maxBlockGas?: Gas;
|
|
43
|
+
/** Maximum number of blob fields allowed. */
|
|
42
44
|
maxBlobFields?: number;
|
|
45
|
+
/** Deadline for processing the txs. Processor will stop as soon as it hits this time. */
|
|
43
46
|
deadline?: Date;
|
|
47
|
+
/** Whether this processor is building a proposal (as opposed to re-executing one). Skipping txs due to gas or blob limits is only done during proposal building. */
|
|
48
|
+
isBuildingProposal?: boolean;
|
|
44
49
|
}
|
|
45
50
|
|
|
46
51
|
export interface PublicProcessorValidator {
|
|
@@ -50,7 +55,18 @@ export interface PublicProcessorValidator {
|
|
|
50
55
|
|
|
51
56
|
export type FullNodeBlockBuilderConfig = Pick<L1RollupConstants, 'l1GenesisTime' | 'slotDuration'> &
|
|
52
57
|
Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> &
|
|
53
|
-
Pick<
|
|
58
|
+
Pick<
|
|
59
|
+
SequencerConfig,
|
|
60
|
+
| 'txPublicSetupAllowList'
|
|
61
|
+
| 'fakeProcessingDelayPerTxMs'
|
|
62
|
+
| 'fakeThrowAfterProcessingTxCount'
|
|
63
|
+
| 'maxTxsPerBlock'
|
|
64
|
+
| 'maxL2BlockGas'
|
|
65
|
+
| 'maxDABlockGas'
|
|
66
|
+
> & {
|
|
67
|
+
/** Total L2 gas (mana) allowed per checkpoint. Fetched from L1 getManaLimit(). */
|
|
68
|
+
rollupManaLimit: number;
|
|
69
|
+
};
|
|
54
70
|
|
|
55
71
|
export const FullNodeBlockBuilderConfigKeys: (keyof FullNodeBlockBuilderConfig)[] = [
|
|
56
72
|
'l1GenesisTime',
|
|
@@ -60,6 +76,10 @@ export const FullNodeBlockBuilderConfigKeys: (keyof FullNodeBlockBuilderConfig)[
|
|
|
60
76
|
'txPublicSetupAllowList',
|
|
61
77
|
'fakeProcessingDelayPerTxMs',
|
|
62
78
|
'fakeThrowAfterProcessingTxCount',
|
|
79
|
+
'maxTxsPerBlock',
|
|
80
|
+
'maxL2BlockGas',
|
|
81
|
+
'maxDABlockGas',
|
|
82
|
+
'rollupManaLimit',
|
|
63
83
|
] as const;
|
|
64
84
|
|
|
65
85
|
/** Thrown when no valid transactions are available to include in a block after processing, and this is not the first block in a checkpoint. */
|
|
@@ -73,12 +93,10 @@ export class NoValidTxsError extends Error {
|
|
|
73
93
|
/** Result of building a block within a checkpoint. */
|
|
74
94
|
export type BuildBlockInCheckpointResult = {
|
|
75
95
|
block: L2Block;
|
|
76
|
-
publicGas: Gas;
|
|
77
96
|
publicProcessorDuration: number;
|
|
78
97
|
numTxs: number;
|
|
79
98
|
failedTxs: FailedTx[];
|
|
80
99
|
usedTxs: Tx[];
|
|
81
|
-
usedTxBlobFields: number;
|
|
82
100
|
};
|
|
83
101
|
|
|
84
102
|
/** Interface for building blocks within a checkpoint context. */
|
|
@@ -23,6 +23,8 @@ export interface SequencerConfig {
|
|
|
23
23
|
maxL2BlockGas?: number;
|
|
24
24
|
/** The maximum DA block gas. */
|
|
25
25
|
maxDABlockGas?: number;
|
|
26
|
+
/** Per-block gas budget multiplier for both L2 and DA gas. Budget = (checkpointLimit / maxBlocks) * multiplier. */
|
|
27
|
+
gasPerBlockAllocationMultiplier?: number;
|
|
26
28
|
/** Recipient of block reward. */
|
|
27
29
|
coinbase?: EthAddress;
|
|
28
30
|
/** Address to receive fees. */
|
|
@@ -33,8 +35,6 @@ export interface SequencerConfig {
|
|
|
33
35
|
acvmBinaryPath?: string;
|
|
34
36
|
/** The list of functions calls allowed to run in setup */
|
|
35
37
|
txPublicSetupAllowList?: AllowedElement[];
|
|
36
|
-
/** Max block size */
|
|
37
|
-
maxBlockSizeInBytes?: number;
|
|
38
38
|
/** Payload address to vote for */
|
|
39
39
|
governanceProposerPayload?: EthAddress;
|
|
40
40
|
/** Whether to enforce the time table when building blocks */
|
|
@@ -90,12 +90,12 @@ export const SequencerConfigSchema = zodFor<SequencerConfig>()(
|
|
|
90
90
|
maxL2BlockGas: z.number().optional(),
|
|
91
91
|
publishTxsWithProposals: z.boolean().optional(),
|
|
92
92
|
maxDABlockGas: z.number().optional(),
|
|
93
|
+
gasPerBlockAllocationMultiplier: z.number().optional(),
|
|
93
94
|
coinbase: schemas.EthAddress.optional(),
|
|
94
95
|
feeRecipient: schemas.AztecAddress.optional(),
|
|
95
96
|
acvmWorkingDirectory: z.string().optional(),
|
|
96
97
|
acvmBinaryPath: z.string().optional(),
|
|
97
98
|
txPublicSetupAllowList: z.array(AllowedElementSchema).optional(),
|
|
98
|
-
maxBlockSizeInBytes: z.number().optional(),
|
|
99
99
|
governanceProposerPayload: schemas.EthAddress.optional(),
|
|
100
100
|
l1PublishingTime: z.number().optional(),
|
|
101
101
|
enforceTimeTable: z.boolean().optional(),
|
|
@@ -134,7 +134,10 @@ type SequencerConfigOptionalKeys =
|
|
|
134
134
|
| 'l1PublishingTime'
|
|
135
135
|
| 'txPublicSetupAllowList'
|
|
136
136
|
| 'minValidTxsPerBlock'
|
|
137
|
-
| 'minBlocksForCheckpoint'
|
|
137
|
+
| 'minBlocksForCheckpoint'
|
|
138
|
+
| 'maxL2BlockGas'
|
|
139
|
+
| 'maxDABlockGas'
|
|
140
|
+
| 'gasPerBlockAllocationMultiplier';
|
|
138
141
|
|
|
139
142
|
export type ResolvedSequencerConfig = Prettify<
|
|
140
143
|
Required<Omit<SequencerConfig, SequencerConfigOptionalKeys>> & Pick<SequencerConfig, SequencerConfigOptionalKeys>
|
|
@@ -234,6 +234,15 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
234
234
|
return noteHashes.filter(n => !n.isZero());
|
|
235
235
|
}
|
|
236
236
|
|
|
237
|
+
getNonEmptyL2ToL1Msgs() {
|
|
238
|
+
const l2ToL1Msgs = this.forPublic
|
|
239
|
+
? this.forPublic.nonRevertibleAccumulatedData.l2ToL1Msgs.concat(
|
|
240
|
+
this.forPublic.revertibleAccumulatedData.l2ToL1Msgs,
|
|
241
|
+
)
|
|
242
|
+
: this.forRollup!.end.l2ToL1Msgs;
|
|
243
|
+
return l2ToL1Msgs.filter(m => !m.isEmpty());
|
|
244
|
+
}
|
|
245
|
+
|
|
237
246
|
getNonEmptyNullifiers() {
|
|
238
247
|
const nullifiers = this.forPublic
|
|
239
248
|
? this.forPublic.nonRevertibleAccumulatedData.nullifiers.concat(
|
package/src/tests/mocks.ts
CHANGED
|
@@ -98,6 +98,7 @@ export const mockTx = async (
|
|
|
98
98
|
publicCalldataSize = 2,
|
|
99
99
|
feePayer,
|
|
100
100
|
chonkProof = ChonkProof.random(),
|
|
101
|
+
gasLimits,
|
|
101
102
|
maxFeesPerGas = new GasFees(10, 10),
|
|
102
103
|
maxPriorityFeesPerGas,
|
|
103
104
|
gasUsed = Gas.empty(),
|
|
@@ -114,6 +115,7 @@ export const mockTx = async (
|
|
|
114
115
|
publicCalldataSize?: number;
|
|
115
116
|
feePayer?: AztecAddress;
|
|
116
117
|
chonkProof?: ChonkProof;
|
|
118
|
+
gasLimits?: Gas;
|
|
117
119
|
maxFeesPerGas?: GasFees;
|
|
118
120
|
maxPriorityFeesPerGas?: GasFees;
|
|
119
121
|
gasUsed?: Gas;
|
|
@@ -132,7 +134,7 @@ export const mockTx = async (
|
|
|
132
134
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
133
135
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
134
136
|
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
135
|
-
data.constants.txContext.gasSettings = GasSettings.default({ maxFeesPerGas, maxPriorityFeesPerGas });
|
|
137
|
+
data.constants.txContext.gasSettings = GasSettings.default({ gasLimits, maxFeesPerGas, maxPriorityFeesPerGas });
|
|
136
138
|
data.feePayer = feePayer ?? (await AztecAddress.random());
|
|
137
139
|
data.gasUsed = gasUsed;
|
|
138
140
|
data.constants.txContext.chainId = chainId;
|
package/src/tx/tx.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { DA_GAS_PER_FIELD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
|
|
1
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import type { ZodFor } from '@aztec/foundation/schemas';
|
|
4
5
|
import { BufferReader, serializeArrayOfBufferableToVector, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
|
-
import type
|
|
6
|
+
import { type FieldsOf, unfreeze } from '@aztec/foundation/types';
|
|
6
7
|
|
|
7
8
|
import { z } from 'zod';
|
|
8
9
|
|
|
@@ -264,16 +265,24 @@ export class Tx extends Gossipable {
|
|
|
264
265
|
}
|
|
265
266
|
|
|
266
267
|
/**
|
|
267
|
-
*
|
|
268
|
-
*
|
|
268
|
+
* Returns the number of fields this tx's effects will occupy in the blob,
|
|
269
|
+
* based on its private side effects only. Accurate for txs without public calls.
|
|
270
|
+
* For txs with public calls, the actual size will be larger due to public execution outputs.
|
|
269
271
|
*/
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
);
|
|
272
|
+
getPrivateTxEffectsSizeInFields(): number {
|
|
273
|
+
// 3 fields overhead: tx_start_marker, tx_hash, tx_fee.
|
|
274
|
+
// TX_DA_GAS_OVERHEAD is defined as N * DA_GAS_PER_FIELD, so this division is always exact.
|
|
275
|
+
const overheadFields = TX_DA_GAS_OVERHEAD / DA_GAS_PER_FIELD;
|
|
276
|
+
const noteHashes = this.data.getNonEmptyNoteHashes().length;
|
|
277
|
+
const nullifiers = this.data.getNonEmptyNullifiers().length;
|
|
278
|
+
const l2ToL1Msgs = this.data.getNonEmptyL2ToL1Msgs().length;
|
|
279
|
+
// Each private log occupies (emittedLength + 1) fields: content + length field
|
|
280
|
+
const privateLogFields = this.data.getNonEmptyPrivateLogs().reduce((acc, log) => acc + log.emittedLength + 1, 0);
|
|
281
|
+
// Each contract class log occupies (length + 1) fields: content + contract address
|
|
282
|
+
const contractClassLogFields = this.data
|
|
283
|
+
.getNonEmptyContractClassLogsHashes()
|
|
284
|
+
.reduce((acc, log) => acc + log.logHash.length + 1, 0);
|
|
285
|
+
return overheadFields + noteHashes + nullifiers + l2ToL1Msgs + privateLogFields + contractClassLogFields;
|
|
277
286
|
}
|
|
278
287
|
|
|
279
288
|
/**
|
|
@@ -309,7 +318,7 @@ export class Tx extends Gossipable {
|
|
|
309
318
|
|
|
310
319
|
/** Recomputes the tx hash. Used for testing purposes only when a property of the tx was mutated. */
|
|
311
320
|
public async recomputeHash(): Promise<TxHash> {
|
|
312
|
-
(this
|
|
321
|
+
unfreeze(this).txHash = await Tx.computeTxHash(this);
|
|
313
322
|
return this.txHash;
|
|
314
323
|
}
|
|
315
324
|
|