@aztec/sequencer-client 0.0.1-commit.9b94fc1 → 0.0.1-commit.d3ec352c
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/global_variable_builder/global_builder.d.ts +3 -3
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.d.ts +9 -9
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.js +11 -9
- package/dest/sequencer/block_builder.d.ts +3 -2
- package/dest/sequencer/block_builder.d.ts.map +1 -1
- package/dest/sequencer/block_builder.js +4 -4
- package/dest/sequencer/sequencer.d.ts +4 -4
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +7 -6
- package/dest/tx_validator/tx_validator_factory.d.ts +3 -2
- package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -1
- package/package.json +29 -29
- package/src/global_variable_builder/global_builder.ts +2 -2
- package/src/publisher/sequencer-publisher.ts +35 -19
- package/src/sequencer/block_builder.ts +6 -6
- package/src/sequencer/sequencer.ts +13 -14
- package/src/tx_validator/tx_validator_factory.ts +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type L1ContractsConfig, type L1ReaderConfig } from '@aztec/ethereum';
|
|
2
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
5
|
import { GasFees } from '@aztec/stdlib/gas';
|
|
@@ -29,6 +29,6 @@ export declare class GlobalVariableBuilder implements GlobalVariableBuilderInter
|
|
|
29
29
|
* @param slotNumber - The slot number to use for the global variables, if undefined it will be calculated.
|
|
30
30
|
* @returns The global variables for the given block number.
|
|
31
31
|
*/
|
|
32
|
-
buildGlobalVariables(blockNumber:
|
|
32
|
+
buildGlobalVariables(blockNumber: BlockNumber, coinbase: EthAddress, feeRecipient: AztecAddress, slotNumber?: SlotNumber): Promise<GlobalVariables>;
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX2J1aWxkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iYWxfdmFyaWFibGVfYnVpbGRlci9nbG9iYWxfYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxjQUFjLEVBSXBCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUdoRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxLQUFLLEVBQUUscUJBQXFCLElBQUksOEJBQThCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbkQ7O0dBRUc7QUFDSCxxQkFBYSxxQkFBc0IsWUFBVyw4QkFBOEI7SUFDMUUsT0FBTyxDQUFDLEdBQUcsQ0FBcUQ7SUFDaEUsT0FBTyxDQUFDLGVBQWUsQ0FBd0Q7SUFDL0UsT0FBTyxDQUFDLG9CQUFvQixDQUFpQztJQUU3RCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBaUI7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQW1CO0lBQ2hELE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQVM7SUFFOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFLO0lBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBSztJQUVyQixZQUFZLE1BQU0sRUFBRSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDLEVBY25GO1lBTWEsc0JBQXNCO0lBZXZCLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FVbEQ7SUFFWSwwQkFBMEIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FRL0Y7SUFFRDs7Ozs7OztPQU9HO0lBQ1Usb0JBQW9CLENBQy9CLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFFBQVEsRUFBRSxVQUFVLEVBQ3BCLFlBQVksRUFBRSxZQUFZLEVBQzFCLFVBQVUsQ0FBQyxFQUFFLFVBQVUsR0FDdEIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQTRCMUI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"global_builder.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/global_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,8BAA8B;IAC1E,OAAO,CAAC,GAAG,CAAqD;IAChE,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,oBAAoB,CAAiC;IAE7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAE9C,OAAO,CAAC,OAAO,CAAC,CAAK;IACrB,OAAO,CAAC,OAAO,CAAC,CAAK;IAErB,YAAY,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,EAcnF;YAMa,sBAAsB;IAevB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUlD;IAEY,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAQ/F;IAED;;;;;;;OAOG;IACU,oBAAoB,CAC/B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,eAAe,CAAC,CA4B1B;CACF"}
|
|
@@ -3,7 +3,7 @@ import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
|
3
3
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
4
4
|
import { type EmpireSlashingProposerContract, FormattedViemError, type GovernanceProposerContract, type L1BlobInputs, type L1ContractsConfig, type L1TxConfig, type L1TxRequest, RollupContract, type TallySlashingProposerContract, type TransactionStats } from '@aztec/ethereum';
|
|
5
5
|
import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
|
|
6
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
6
|
+
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
7
7
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
8
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
9
9
|
import type { Fr } from '@aztec/foundation/fields';
|
|
@@ -24,8 +24,8 @@ export type InvalidateBlockRequest = {
|
|
|
24
24
|
request: L1TxRequest;
|
|
25
25
|
reason: 'invalid-attestation' | 'insufficient-attestations';
|
|
26
26
|
gasUsed: bigint;
|
|
27
|
-
blockNumber:
|
|
28
|
-
forcePendingBlockNumber:
|
|
27
|
+
blockNumber: BlockNumber;
|
|
28
|
+
forcePendingBlockNumber: BlockNumber;
|
|
29
29
|
};
|
|
30
30
|
interface RequestWithExpiry {
|
|
31
31
|
action: Action;
|
|
@@ -117,10 +117,10 @@ export declare class SequencerPublisher {
|
|
|
117
117
|
* @returns The slot and block number if it is possible to propose, undefined otherwise
|
|
118
118
|
*/
|
|
119
119
|
canProposeAtNextEthBlock(tipArchive: Fr, msgSender: EthAddress, opts?: {
|
|
120
|
-
forcePendingBlockNumber?:
|
|
120
|
+
forcePendingBlockNumber?: BlockNumber;
|
|
121
121
|
}): Promise<{
|
|
122
122
|
slot: SlotNumber;
|
|
123
|
-
checkpointNumber:
|
|
123
|
+
checkpointNumber: CheckpointNumber;
|
|
124
124
|
timeOfNextL1Slot: bigint;
|
|
125
125
|
} | undefined>;
|
|
126
126
|
/**
|
|
@@ -130,7 +130,7 @@ export declare class SequencerPublisher {
|
|
|
130
130
|
* @param header - The block header to validate
|
|
131
131
|
*/
|
|
132
132
|
validateBlockHeader(header: CheckpointHeader, opts?: {
|
|
133
|
-
forcePendingBlockNumber:
|
|
133
|
+
forcePendingBlockNumber: BlockNumber | undefined;
|
|
134
134
|
}): Promise<void>;
|
|
135
135
|
/**
|
|
136
136
|
* Simulate making a call to invalidate a block with invalid attestations. Returns undefined if no need to invalidate.
|
|
@@ -148,7 +148,7 @@ export declare class SequencerPublisher {
|
|
|
148
148
|
*
|
|
149
149
|
*/
|
|
150
150
|
validateBlockForSubmission(block: L2Block, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, options: {
|
|
151
|
-
forcePendingBlockNumber?:
|
|
151
|
+
forcePendingBlockNumber?: BlockNumber;
|
|
152
152
|
}): Promise<bigint>;
|
|
153
153
|
private enqueueCastSignalHelper;
|
|
154
154
|
/**
|
|
@@ -168,7 +168,7 @@ export declare class SequencerPublisher {
|
|
|
168
168
|
*/
|
|
169
169
|
enqueueProposeL2Block(block: L2Block, attestationsAndSigners: CommitteeAttestationsAndSigners, attestationsAndSignersSignature: Signature, opts?: {
|
|
170
170
|
txTimeoutAt?: Date;
|
|
171
|
-
forcePendingBlockNumber?:
|
|
171
|
+
forcePendingBlockNumber?: BlockNumber;
|
|
172
172
|
}): Promise<boolean>;
|
|
173
173
|
enqueueInvalidateBlock(request: InvalidateBlockRequest | undefined, opts?: {
|
|
174
174
|
txTimeoutAt?: Date;
|
|
@@ -188,4 +188,4 @@ export declare class SequencerPublisher {
|
|
|
188
188
|
private addProposeTx;
|
|
189
189
|
}
|
|
190
190
|
export {};
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLXB1Ymxpc2hlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9zZXF1ZW5jZXItcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsS0FBSyx1QkFBdUIsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsS0FBSyw4QkFBOEIsRUFDbkMsa0JBQWtCLEVBQ2xCLEtBQUssMEJBQTBCLEVBRS9CLEtBQUssWUFBWSxFQUNqQixLQUFLLGlCQUFpQixFQUN0QixLQUFLLFVBQVUsRUFDZixLQUFLLFdBQVcsRUFHaEIsY0FBYyxFQUNkLEtBQUssNkJBQTZCLEVBQ2xDLEtBQUssZ0JBQWdCLEVBTXRCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUdqRixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFTLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQTZCLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUF3QiwrQkFBK0IsRUFBRSxL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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,KAAK,8BAA8B,EACnC,kBAAkB,EAClB,KAAK,0BAA0B,EAE/B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,WAAW,EAGhB,cAAc,EACd,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EAMtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
|
3
3
|
import { FormattedViemError, MULTI_CALL_3_ADDRESS, Multicall3, RollupContract, WEI_CONST, formatViemError, tryExtractEvent } from '@aztec/ethereum';
|
|
4
4
|
import { sumBigint } from '@aztec/foundation/bigint';
|
|
5
5
|
import { toHex as toPaddedHex } from '@aztec/foundation/bigint-buffer';
|
|
6
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
6
|
+
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
7
7
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
8
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
9
9
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -229,7 +229,7 @@ export class SequencerPublisher {
|
|
|
229
229
|
'InvalidArchive'
|
|
230
230
|
];
|
|
231
231
|
return this.rollupContract.canProposeAtNextEthBlock(tipArchive.toBuffer(), msgSender.toString(), Number(this.ethereumSlotDuration), {
|
|
232
|
-
forcePendingCheckpointNumber: opts.forcePendingBlockNumber
|
|
232
|
+
forcePendingCheckpointNumber: opts.forcePendingBlockNumber !== undefined ? CheckpointNumber.fromBlockNumber(opts.forcePendingBlockNumber) : undefined
|
|
233
233
|
}).catch((err)=>{
|
|
234
234
|
if (err instanceof FormattedViemError && ignoredErrors.find((e)=>err.message.includes(e))) {
|
|
235
235
|
this.log.warn(`Failed canProposeAtTime check with ${ignoredErrors.find((e)=>err.message.includes(e))}`, {
|
|
@@ -261,7 +261,8 @@ export class SequencerPublisher {
|
|
|
261
261
|
flags
|
|
262
262
|
];
|
|
263
263
|
const ts = BigInt((await this.l1TxUtils.getBlock()).timestamp + this.ethereumSlotDuration);
|
|
264
|
-
const
|
|
264
|
+
const optsForcePendingCheckpointNumber = opts?.forcePendingBlockNumber !== undefined ? CheckpointNumber.fromBlockNumber(opts.forcePendingBlockNumber) : undefined;
|
|
265
|
+
const stateOverrides = await this.rollupContract.makePendingCheckpointNumberOverride(optsForcePendingCheckpointNumber);
|
|
265
266
|
let balance = 0n;
|
|
266
267
|
if (this.config.fishermanMode) {
|
|
267
268
|
// In fisherman mode, we can't know where the proposer is publishing from
|
|
@@ -324,7 +325,7 @@ export class SequencerPublisher {
|
|
|
324
325
|
request,
|
|
325
326
|
gasUsed,
|
|
326
327
|
blockNumber,
|
|
327
|
-
forcePendingBlockNumber: blockNumber - 1,
|
|
328
|
+
forcePendingBlockNumber: BlockNumber(blockNumber - 1),
|
|
328
329
|
reason
|
|
329
330
|
};
|
|
330
331
|
} catch (err) {
|
|
@@ -369,9 +370,9 @@ export class SequencerPublisher {
|
|
|
369
370
|
this.log.debug(`Simulating invalidate block ${block.blockNumber}`, logData);
|
|
370
371
|
const attestationsAndSigners = new CommitteeAttestationsAndSigners(validationResult.attestations).getPackedAttestations();
|
|
371
372
|
if (reason === 'invalid-attestation') {
|
|
372
|
-
return this.rollupContract.buildInvalidateBadAttestationRequest(block.blockNumber, attestationsAndSigners, committee, validationResult.invalidIndex);
|
|
373
|
+
return this.rollupContract.buildInvalidateBadAttestationRequest(CheckpointNumber.fromBlockNumber(block.blockNumber), attestationsAndSigners, committee, validationResult.invalidIndex);
|
|
373
374
|
} else if (reason === 'insufficient-attestations') {
|
|
374
|
-
return this.rollupContract.buildInvalidateInsufficientAttestationsRequest(block.blockNumber, attestationsAndSigners, committee);
|
|
375
|
+
return this.rollupContract.buildInvalidateInsufficientAttestationsRequest(CheckpointNumber.fromBlockNumber(block.blockNumber), attestationsAndSigners, committee);
|
|
375
376
|
} else {
|
|
376
377
|
const _ = reason;
|
|
377
378
|
throw new Error(`Unknown reason for invalidation`);
|
|
@@ -797,8 +798,9 @@ export class SequencerPublisher {
|
|
|
797
798
|
functionName: 'propose',
|
|
798
799
|
args
|
|
799
800
|
});
|
|
800
|
-
// override the pending
|
|
801
|
-
const
|
|
801
|
+
// override the pending checkpoint number if requested
|
|
802
|
+
const optsForcePendingCheckpointNumber = options.forcePendingBlockNumber !== undefined ? CheckpointNumber.fromBlockNumber(options.forcePendingBlockNumber) : undefined;
|
|
803
|
+
const forcePendingCheckpointNumberStateDiff = (optsForcePendingCheckpointNumber !== undefined ? await this.rollupContract.makePendingCheckpointNumberOverride(optsForcePendingCheckpointNumber) : []).flatMap((override)=>override.stateDiff ?? []);
|
|
802
804
|
const stateOverrides = [
|
|
803
805
|
{
|
|
804
806
|
address: this.rollupContract.address,
|
|
@@ -808,7 +810,7 @@ export class SequencerPublisher {
|
|
|
808
810
|
slot: toPaddedHex(RollupContract.checkBlobStorageSlot, true),
|
|
809
811
|
value: toPaddedHex(0n, true)
|
|
810
812
|
},
|
|
811
|
-
...
|
|
813
|
+
...forcePendingCheckpointNumberStateDiff
|
|
812
814
|
]
|
|
813
815
|
}
|
|
814
816
|
];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import type { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
3
4
|
import { PublicProcessor } from '@aztec/simulator/server';
|
|
@@ -22,6 +23,6 @@ export declare class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
|
|
|
22
23
|
}>;
|
|
23
24
|
private syncToPreviousBlock;
|
|
24
25
|
buildBlock(pendingTxs: Iterable<Tx> | AsyncIterable<Tx>, l1ToL2Messages: Fr[], globalVariables: GlobalVariables, opts: PublicProcessorLimits, suppliedFork?: MerkleTreeWriteOperations): Promise<BuildBlockResult>;
|
|
25
|
-
getFork(blockNumber:
|
|
26
|
+
getFork(blockNumber: BlockNumber): Promise<MerkleTreeWriteOperations>;
|
|
26
27
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfYnVpbGRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcXVlbmNlci9ibG9ja19idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUluRCxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBR3ZFLE9BQU8sRUFHTCxlQUFlLEVBRWhCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRixPQUFPLEtBQUssRUFDVixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdkIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQU1uRix3QkFBc0IsVUFBVSxDQUM5QixVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFDNUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxFQUNwQixrQkFBa0IsRUFBRSxlQUFlLEVBQ25DLElBQUksbUNBQTRCLEVBQ2hDLGNBQWMsRUFBRSx5QkFBeUIsRUFDekMsU0FBUyxFQUFFLGVBQWUsRUFDMUIsU0FBUyxFQUFFLHdCQUF3QixFQUNuQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsR0FBRyxjQUFjLENBQUMsRUFDdEUsWUFBWSxFQUFFLFlBQVksRUFDMUIsZUFBZSxHQUFFLGVBQXNDLEdBQ3RELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQTRDM0I7QUFXRCxxQkFBYSxvQkFBcUIsWUFBVyxxQkFBcUI7SUFFOUQsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMsa0JBQWtCO0lBQzFCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxlQUFlO0lBTHpCLFlBQ1UsTUFBTSxFQUFFLDBCQUEwQixFQUNsQyxVQUFVLEVBQUUsc0JBQXNCLEVBQ2xDLGtCQUFrQixFQUFFLGtCQUFrQixFQUN0QyxZQUFZLEVBQUUsWUFBWSxFQUMxQixlQUFlLEdBQUUsZUFBc0MsRUFDN0Q7SUFFRyxTQUFTLElBQUksMEJBQTBCLENBRTdDO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsMEJBQTBCLENBQUMsUUFFOUQ7SUFFWSxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSx5QkFBeUI7OztPQXlDbEc7WUFFYSxtQkFBbUI7SUFVM0IsVUFBVSxDQUNkLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUM1QyxjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQ3BCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLElBQUksRUFBRSxxQkFBcUIsRUFDM0IsWUFBWSxDQUFDLEVBQUUseUJBQXlCLEdBQ3ZDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQXNDM0I7SUFFRCxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FFcEU7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_builder.d.ts","sourceRoot":"","sources":["../../src/sequencer/block_builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"block_builder.d.ts","sourceRoot":"","sources":["../../src/sequencer/block_builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAInD,OAAO,EAAE,YAAY,EAAkB,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAGL,eAAe,EAEhB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAuB,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF,wBAAsB,UAAU,CAC9B,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAC5C,cAAc,EAAE,EAAE,EAAE,EACpB,kBAAkB,EAAE,eAAe,EACnC,IAAI,mCAA4B,EAChC,cAAc,EAAE,yBAAyB,EACzC,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,cAAc,CAAC,EACtE,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,eAAsC,GACtD,OAAO,CAAC,gBAAgB,CAAC,CA4C3B;AAWD,qBAAa,oBAAqB,YAAW,qBAAqB;IAE9D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IALzB,YACU,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,sBAAsB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,eAAsC,EAC7D;IAEG,SAAS,IAAI,0BAA0B,CAE7C;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,0BAA0B,CAAC,QAE9D;IAEY,oBAAoB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,yBAAyB;;;OAyClG;YAEa,mBAAmB;IAU3B,UAAU,CACd,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EAC5C,cAAc,EAAE,EAAE,EAAE,EACpB,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,qBAAqB,EAC3B,YAAY,CAAC,EAAE,yBAAyB,GACvC,OAAO,CAAC,gBAAgB,CAAC,CAsC3B;IAED,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAEpE;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MerkleTreeId } from '@aztec/aztec.js/trees';
|
|
2
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { merge, pick } from '@aztec/foundation/collection';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
5
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
@@ -6,7 +7,7 @@ import { bufferToHex } from '@aztec/foundation/string';
|
|
|
6
7
|
import { Timer, elapsed } from '@aztec/foundation/timer';
|
|
7
8
|
import { getDefaultAllowedSetupFunctions } from '@aztec/p2p/msg_validators';
|
|
8
9
|
import { LightweightBlockFactory } from '@aztec/prover-client/block-factory';
|
|
9
|
-
import { GuardedMerkleTreeOperations, PublicContractsDB, PublicProcessor,
|
|
10
|
+
import { GuardedMerkleTreeOperations, PublicContractsDB, PublicProcessor, TelemetryCppPublicTxSimulator } from '@aztec/simulator/server';
|
|
10
11
|
import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
11
12
|
import { getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
|
|
12
13
|
import { Gas } from '@aztec/stdlib/gas';
|
|
@@ -82,11 +83,10 @@ export class FullNodeBlockBuilder {
|
|
|
82
83
|
const txPublicSetupAllowList = this.config.txPublicSetupAllowList ?? await getDefaultAllowedSetupFunctions();
|
|
83
84
|
const contractsDB = new PublicContractsDB(this.contractDataSource);
|
|
84
85
|
const guardedFork = new GuardedMerkleTreeOperations(fork);
|
|
85
|
-
const publicTxSimulator = new
|
|
86
|
+
const publicTxSimulator = new TelemetryCppPublicTxSimulator(guardedFork, contractsDB, globalVariables, this.telemetryClient, PublicSimulatorConfig.from({
|
|
86
87
|
skipFeeEnforcement: false,
|
|
87
88
|
collectDebugLogs: false,
|
|
88
89
|
collectHints: false,
|
|
89
|
-
maxDebugLogMemoryReads: 0,
|
|
90
90
|
collectStatistics: false,
|
|
91
91
|
collectCallMetadata: false
|
|
92
92
|
}));
|
|
@@ -102,7 +102,7 @@ export class FullNodeBlockBuilder {
|
|
|
102
102
|
log.debug(`Synced to previous block ${parentBlockNumber}`);
|
|
103
103
|
}
|
|
104
104
|
async buildBlock(pendingTxs, l1ToL2Messages, globalVariables, opts, suppliedFork) {
|
|
105
|
-
const parentBlockNumber = globalVariables.blockNumber - 1;
|
|
105
|
+
const parentBlockNumber = BlockNumber(globalVariables.blockNumber - 1);
|
|
106
106
|
const syncTimeout = opts.deadline ? (opts.deadline.getTime() - this.dateProvider.now()) / 1000 : undefined;
|
|
107
107
|
await this.syncToPreviousBlock(parentBlockNumber, syncTimeout);
|
|
108
108
|
const fork = suppliedFork ?? await this.worldState.fork(parentBlockNumber);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { L2Block } from '@aztec/aztec.js/block';
|
|
2
2
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
3
3
|
import { type RollupContract } from '@aztec/ethereum';
|
|
4
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
4
|
+
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
5
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
6
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
7
7
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -48,7 +48,7 @@ export type SequencerEvents = {
|
|
|
48
48
|
expiredActions?: Action[];
|
|
49
49
|
}) => void;
|
|
50
50
|
['block-published']: (args: {
|
|
51
|
-
blockNumber:
|
|
51
|
+
blockNumber: BlockNumber;
|
|
52
52
|
slot: number;
|
|
53
53
|
}) => void;
|
|
54
54
|
};
|
|
@@ -167,7 +167,7 @@ export declare class Sequencer extends Sequencer_base {
|
|
|
167
167
|
slot: SlotNumber;
|
|
168
168
|
}): Promise<{
|
|
169
169
|
block?: L2Block;
|
|
170
|
-
blockNumber:
|
|
170
|
+
blockNumber: BlockNumber;
|
|
171
171
|
archive: Fr;
|
|
172
172
|
l1Timestamp: bigint;
|
|
173
173
|
pendingChainValidationStatus: ValidateBlockResult;
|
|
@@ -208,4 +208,4 @@ export declare class Sequencer extends Sequencer_base {
|
|
|
208
208
|
get maxL2BlockGas(): number | undefined;
|
|
209
209
|
getSlasherClient(): SlasherClientInterface | undefined;
|
|
210
210
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VxdWVuY2VyL3NlcXVlbmNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUF3QyxLQUFLLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxXQUFXLEVBQWlDLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR3pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBUyxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUFZLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUVMLCtCQUErQixFQUMvQixLQUFLLGFBQWEsRUFFbEIsS0FBSyxtQkFBbUIsRUFDekIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBa0QsTUFBTSw2QkFBNkIsQ0FBQztBQUVySCxPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxxQkFBcUIsRUFFMUIsS0FBSyxzQkFBc0IsRUFDNUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,
|
|
1
|
+
{"version":3,"file":"sequencer.d.ts","sourceRoot":"","sources":["../../src/sequencer/sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAiC,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGzG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,KAAK,iBAAiB,EAAY,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAEL,+BAA+B,EAC/B,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,iBAAiB,EAAkD,MAAM,6BAA6B,CAAC;AAErH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAOnE,OAAO,EAAqD,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AACvH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,KAAK,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,GAAG,eAAe,GAAG,cAAc,CAAC,CAAC;AAEnH,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QACxB,QAAQ,EAAE,cAAc,CAAC;QACzB,QAAQ,EAAE,cAAc,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB,KAAK,IAAI,CAAC;IACX,CAAC,8BAA8B,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACrE,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpF,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE;QAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,KAAK,IAAI,CAAC;IACX,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACjF,CAAC;;AAEF;;;;;;;;GAQG;AACH,qBAAa,SAAU,SAAQ,cAA8D;IAiCzF,SAAS,CAAC,gBAAgB,EAAE,yBAAyB;IACrD,SAAS,CAAC,eAAe,EAAE,eAAe,GAAG,SAAS;IACtD,SAAS,CAAC,cAAc,EAAE,qBAAqB;IAC/C,SAAS,CAAC,SAAS,EAAE,GAAG;IACxB,SAAS,CAAC,UAAU,EAAE,sBAAsB;IAC5C,SAAS,CAAC,aAAa,EAAE,sBAAsB,GAAG,SAAS;IAC3D,SAAS,CAAC,aAAa,EAAE,aAAa;IACtC,SAAS,CAAC,mBAAmB,EAAE,mBAAmB;IAClD,SAAS,CAAC,YAAY,EAAE,qBAAqB;IAC7C,SAAS,CAAC,WAAW,EAAE,wBAAwB;IAC/C,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,MAAM,EAAE,eAAe;IACjC,SAAS,CAAC,SAAS,EAAE,eAAe;IACpC,SAAS,CAAC,GAAG;IA/Cf,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,4BAA4B,CAAK;IACzC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,OAAO,CAAmB;IAElC,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,yBAAyB,CAAyB;IAE1D,oGAAoG;IACpG,OAAO,CAAC,6BAA6B,CAAyB;IAE9D,4GAA4G;IAC5G,OAAO,CAAC,0BAA0B,CAAyB;IAE3D,+GAA+G;IAC/G,SAAS,CAAC,SAAS,EAAG,kBAAkB,CAAC;IACzC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAS;IAO5C,SAAS,CAAC,SAAS,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAEpD,YACY,gBAAgB,EAAE,yBAAyB,EAC3C,eAAe,EAAE,eAAe,GAAG,SAAS,EAC5C,cAAc,EAAE,qBAAqB,EACrC,SAAS,EAAE,GAAG,EACd,UAAU,EAAE,sBAAsB,EAClC,aAAa,EAAE,sBAAsB,GAAG,SAAS,EACjD,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,qBAAqB,EACnC,WAAW,EAAE,wBAAwB,EACrC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,eAAe,EACvB,SAAS,GAAE,eAAsC,EACjD,GAAG,yCAA4B,EAY1C;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,qBAAqB,6BAE3B;IAEM,SAAS,oBAEf;IAED;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,eAAe,QAwC1C;IAED,OAAO,CAAC,YAAY;IAcP,IAAI,kBAEhB;IAED;;OAEG;IACI,KAAK,SAKX;IAED;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAOjC;IAED;;;OAGG;IACI,MAAM;;MAEZ;IAED;;;;;;;OAOG;IACH,UAAgB,IAAI,kBAyMnB;YAGa,8BAA8B;IA+D5C,UACgB,QAAQ,kBAiBvB;IAED;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,sBAAsB,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1G,QAAQ,CACN,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,sBAAsB,CAAC,EAC9D,UAAU,CAAC,EAAE,SAAS,EACtB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GACzB,IAAI,CAAC;YAgCM,oBAAoB;IAUlC,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,qBAAqB,CAgBxE;YAgBa,2BAA2B;IAwGzC,UAKgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,EAAE,UAAU,GAAG,SAAS,GACtC,OAAO,CAAC,+BAA+B,CAAC,CAsF1C;IAED,wEAAwE;IACxE,OAAO,CAAC,sBAAsB;IA8C9B;;;OAGG;IACH,UAGgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,sBAAsB,EAAE,+BAA+B,EACvD,+BAA+B,EAAE,SAAS,EAC1C,eAAe,EAAE,sBAAsB,GAAG,SAAS,EACnD,SAAS,EAAE,kBAAkB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAqBf;IAED;;;OAGG;IACH,UAAgB,SAAS,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CACtE;QACE,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE,WAAW,CAAC;QACzB,OAAO,EAAE,EAAE,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,4BAA4B,EAAE,mBAAmB,CAAC;KACnD,GACD,SAAS,CACZ,CA8DA;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,iCAAiC,CACzC,SAAS,EAAE,kBAAkB,EAC7B,eAAe,EAAE,UAAU,EAC3B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,GAChB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAyC9D;IAED;;;OAGG;IACH,UAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC,CAgC5F;IAED;;;OAGG;IACH,UAAgB,oBAAoB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD1F;IAED;;;;;OAKG;IACH,UAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAClE,WAAW,EAAE,UAAU,GACtB,OAAO,CAAC,IAAI,CAAC,CAmEf;IAED,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,kBAAkB;IAK1B,IAAI,iBAAiB,WAEpB;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAEM,gBAAgB,IAAI,sBAAsB,GAAG,SAAS,CAE5D;CACF"}
|
|
@@ -6,6 +6,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
6
6
|
}
|
|
7
7
|
import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
8
8
|
import { FormattedViemError, NoCommitteeError } from '@aztec/ethereum';
|
|
9
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
9
10
|
import { omit, pick } from '@aztec/foundation/collection';
|
|
10
11
|
import { randomInt } from '@aztec/foundation/crypto';
|
|
11
12
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -206,7 +207,7 @@ export { SequencerState };
|
|
|
206
207
|
return;
|
|
207
208
|
}
|
|
208
209
|
const chainTipArchive = syncedTo.archive;
|
|
209
|
-
const newBlockNumber = syncedTo.blockNumber + 1;
|
|
210
|
+
const newBlockNumber = BlockNumber(syncedTo.blockNumber + 1);
|
|
210
211
|
const syncLogData = {
|
|
211
212
|
now,
|
|
212
213
|
syncedToL1Ts: syncedTo.l1Timestamp,
|
|
@@ -290,7 +291,7 @@ export { SequencerState };
|
|
|
290
291
|
});
|
|
291
292
|
this.metrics.recordBlockProposalPrecheckFailed('slot_mismatch');
|
|
292
293
|
return;
|
|
293
|
-
} else if (canProposeCheck.checkpointNumber !==
|
|
294
|
+
} else if (canProposeCheck.checkpointNumber !== CheckpointNumber.fromBlockNumber(newBlockNumber)) {
|
|
294
295
|
this.log.warn(`Cannot propose block due to block mismatch with rollup contract (this can be caused by a pending archiver sync). Expected block ${newBlockNumber} but got ${canProposeCheck.checkpointNumber}.`, {
|
|
295
296
|
...syncLogData,
|
|
296
297
|
rollup: canProposeCheck,
|
|
@@ -701,9 +702,9 @@ export { SequencerState };
|
|
|
701
702
|
this.l2BlockSource.getPendingChainValidationStatus()
|
|
702
703
|
]);
|
|
703
704
|
const [worldState, l2BlockSource, p2p, l1ToL2MessageSource, pendingChainValidationStatus] = syncedBlocks;
|
|
704
|
-
//
|
|
705
|
-
//
|
|
706
|
-
const result = l2BlockSource.
|
|
705
|
+
// Handle zero as a special case, since the block hash won't match across services if we're changing the prefilled data for the genesis block,
|
|
706
|
+
// as the world state can compute the new genesis block hash, but other components use the hardcoded constant.
|
|
707
|
+
const result = l2BlockSource.number === 0 && worldState.number === 0 && p2p.number === 0 && l1ToL2MessageSource.number === 0 || worldState.hash === l2BlockSource.hash && p2p.hash === l2BlockSource.hash && l1ToL2MessageSource.hash === l2BlockSource.hash;
|
|
707
708
|
if (!result) {
|
|
708
709
|
this.log.debug(`Sequencer sync check failed`, {
|
|
709
710
|
worldState,
|
|
@@ -718,7 +719,7 @@ export { SequencerState };
|
|
|
718
719
|
if (blockNumber < INITIAL_L2_BLOCK_NUM) {
|
|
719
720
|
const archive = new Fr((await this.worldState.getCommitted().getTreeInfo(MerkleTreeId.ARCHIVE)).root);
|
|
720
721
|
return {
|
|
721
|
-
blockNumber: INITIAL_L2_BLOCK_NUM - 1,
|
|
722
|
+
blockNumber: BlockNumber(INITIAL_L2_BLOCK_NUM - 1),
|
|
722
723
|
archive,
|
|
723
724
|
l1Timestamp,
|
|
724
725
|
pendingChainValidationStatus
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
2
3
|
import type { GasFees } from '@aztec/stdlib/gas';
|
|
3
4
|
import type { AllowedElement, ClientProtocolCircuitVerifier, MerkleTreeReadOperations, PublicProcessorValidator } from '@aztec/stdlib/interfaces/server';
|
|
@@ -10,8 +11,8 @@ export declare function createValidatorForAcceptingTxs(db: MerkleTreeReadOperati
|
|
|
10
11
|
gasFees: GasFees;
|
|
11
12
|
skipFeeEnforcement?: boolean;
|
|
12
13
|
timestamp: UInt64;
|
|
13
|
-
blockNumber:
|
|
14
|
+
blockNumber: BlockNumber;
|
|
14
15
|
txsPermitted: boolean;
|
|
15
16
|
}): TxValidator<Tx>;
|
|
16
17
|
export declare function createValidatorForBlockBuilding(db: MerkleTreeReadOperations, contractDataSource: ContractDataSource, globalVariables: GlobalVariables, setupAllowList: AllowedElement[]): PublicProcessorValidator;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yX2ZhY3RvcnkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF92YWxpZGF0b3IvdHhfdmFsaWRhdG9yX2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBaUI5RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUNWLGNBQWMsRUFDZCw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN6QixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUlsRCx3QkFBZ0IsOEJBQThCLENBQzVDLEVBQUUsRUFBRSx3QkFBd0IsRUFDNUIsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQ3RDLFFBQVEsRUFBRSw2QkFBNkIsR0FBRyxTQUFTLEVBQ25ELEVBQ0UsU0FBUyxFQUNULGFBQWEsRUFDYixjQUFjLEVBQ2QsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDYixFQUFFO0lBQ0QsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLGNBQWMsRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUNqQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pCLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUN6QixZQUFZLEVBQUUsT0FBTyxDQUFDO0NBQ3ZCLEdBQ0EsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQTRCakI7QUFFRCx3QkFBZ0IsK0JBQStCLENBQzdDLEVBQUUsRUFBRSx3QkFBd0IsRUFDNUIsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQ3RDLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGNBQWMsRUFBRSxjQUFjLEVBQUUsR0FDL0Isd0JBQXdCLENBZ0IxQiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAiB9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,wBAAwB,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,6BAA6B,GAAG,SAAS,EACnD,EACE,SAAS,EACT,aAAa,EACb,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,YAAY,EACb,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACvB,GACA,WAAW,CAAC,EAAE,CAAC,CA4BjB;AAED,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,wBAAwB,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAAE,GAC/B,wBAAwB,CAgB1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/sequencer-client",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.d3ec352c",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -18,45 +18,45 @@
|
|
|
18
18
|
"../package.common.json"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
|
-
"build": "yarn clean &&
|
|
22
|
-
"build:dev": "
|
|
21
|
+
"build": "yarn clean && ../scripts/tsc.sh",
|
|
22
|
+
"build:dev": "../scripts/tsc.sh --watch",
|
|
23
23
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
24
24
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
|
|
25
25
|
"test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
|
|
26
26
|
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
30
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
31
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
32
|
-
"@aztec/blob-sink": "0.0.1-commit.
|
|
33
|
-
"@aztec/constants": "0.0.1-commit.
|
|
34
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
35
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
36
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
37
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
38
|
-
"@aztec/merkle-tree": "0.0.1-commit.
|
|
39
|
-
"@aztec/node-keystore": "0.0.1-commit.
|
|
40
|
-
"@aztec/noir-acvm_js": "0.0.1-commit.
|
|
41
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
42
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
43
|
-
"@aztec/noir-types": "0.0.1-commit.
|
|
44
|
-
"@aztec/p2p": "0.0.1-commit.
|
|
45
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
46
|
-
"@aztec/prover-client": "0.0.1-commit.
|
|
47
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
48
|
-
"@aztec/slasher": "0.0.1-commit.
|
|
49
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
50
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
51
|
-
"@aztec/validator-client": "0.0.1-commit.
|
|
52
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
29
|
+
"@aztec/aztec.js": "0.0.1-commit.d3ec352c",
|
|
30
|
+
"@aztec/bb-prover": "0.0.1-commit.d3ec352c",
|
|
31
|
+
"@aztec/blob-lib": "0.0.1-commit.d3ec352c",
|
|
32
|
+
"@aztec/blob-sink": "0.0.1-commit.d3ec352c",
|
|
33
|
+
"@aztec/constants": "0.0.1-commit.d3ec352c",
|
|
34
|
+
"@aztec/epoch-cache": "0.0.1-commit.d3ec352c",
|
|
35
|
+
"@aztec/ethereum": "0.0.1-commit.d3ec352c",
|
|
36
|
+
"@aztec/foundation": "0.0.1-commit.d3ec352c",
|
|
37
|
+
"@aztec/l1-artifacts": "0.0.1-commit.d3ec352c",
|
|
38
|
+
"@aztec/merkle-tree": "0.0.1-commit.d3ec352c",
|
|
39
|
+
"@aztec/node-keystore": "0.0.1-commit.d3ec352c",
|
|
40
|
+
"@aztec/noir-acvm_js": "0.0.1-commit.d3ec352c",
|
|
41
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.d3ec352c",
|
|
42
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.d3ec352c",
|
|
43
|
+
"@aztec/noir-types": "0.0.1-commit.d3ec352c",
|
|
44
|
+
"@aztec/p2p": "0.0.1-commit.d3ec352c",
|
|
45
|
+
"@aztec/protocol-contracts": "0.0.1-commit.d3ec352c",
|
|
46
|
+
"@aztec/prover-client": "0.0.1-commit.d3ec352c",
|
|
47
|
+
"@aztec/simulator": "0.0.1-commit.d3ec352c",
|
|
48
|
+
"@aztec/slasher": "0.0.1-commit.d3ec352c",
|
|
49
|
+
"@aztec/stdlib": "0.0.1-commit.d3ec352c",
|
|
50
|
+
"@aztec/telemetry-client": "0.0.1-commit.d3ec352c",
|
|
51
|
+
"@aztec/validator-client": "0.0.1-commit.d3ec352c",
|
|
52
|
+
"@aztec/world-state": "0.0.1-commit.d3ec352c",
|
|
53
53
|
"lodash.chunk": "^4.2.0",
|
|
54
54
|
"tslib": "^2.4.0",
|
|
55
55
|
"viem": "npm:@aztec/viem@2.38.2"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
59
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
58
|
+
"@aztec/archiver": "0.0.1-commit.d3ec352c",
|
|
59
|
+
"@aztec/kv-store": "0.0.1-commit.d3ec352c",
|
|
60
60
|
"@jest/globals": "^30.0.0",
|
|
61
61
|
"@types/jest": "^30.0.0",
|
|
62
62
|
"@types/lodash.chunk": "^4.2.7",
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
type ViemPublicClient,
|
|
6
6
|
createEthereumChain,
|
|
7
7
|
} from '@aztec/ethereum';
|
|
8
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
8
|
+
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
9
9
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
10
10
|
import { Fr } from '@aztec/foundation/fields';
|
|
11
11
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -97,7 +97,7 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
|
|
|
97
97
|
* @returns The global variables for the given block number.
|
|
98
98
|
*/
|
|
99
99
|
public async buildGlobalVariables(
|
|
100
|
-
blockNumber:
|
|
100
|
+
blockNumber: BlockNumber,
|
|
101
101
|
coinbase: EthAddress,
|
|
102
102
|
feeRecipient: AztecAddress,
|
|
103
103
|
slotNumber?: SlotNumber,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
|
|
26
26
|
import { sumBigint } from '@aztec/foundation/bigint';
|
|
27
27
|
import { toHex as toPaddedHex } from '@aztec/foundation/bigint-buffer';
|
|
28
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
28
|
+
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
29
29
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
30
30
|
import { Signature, type ViemSignature } from '@aztec/foundation/eth-signature';
|
|
31
31
|
import type { Fr } from '@aztec/foundation/fields';
|
|
@@ -82,8 +82,8 @@ export type InvalidateBlockRequest = {
|
|
|
82
82
|
request: L1TxRequest;
|
|
83
83
|
reason: 'invalid-attestation' | 'insufficient-attestations';
|
|
84
84
|
gasUsed: bigint;
|
|
85
|
-
blockNumber:
|
|
86
|
-
forcePendingBlockNumber:
|
|
85
|
+
blockNumber: BlockNumber;
|
|
86
|
+
forcePendingBlockNumber: BlockNumber;
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
interface RequestWithExpiry {
|
|
@@ -335,14 +335,17 @@ export class SequencerPublisher {
|
|
|
335
335
|
public canProposeAtNextEthBlock(
|
|
336
336
|
tipArchive: Fr,
|
|
337
337
|
msgSender: EthAddress,
|
|
338
|
-
opts: { forcePendingBlockNumber?:
|
|
338
|
+
opts: { forcePendingBlockNumber?: BlockNumber } = {},
|
|
339
339
|
) {
|
|
340
340
|
// TODO: #14291 - should loop through multiple keys to check if any of them can propose
|
|
341
341
|
const ignoredErrors = ['SlotAlreadyInChain', 'InvalidProposer', 'InvalidArchive'];
|
|
342
342
|
|
|
343
343
|
return this.rollupContract
|
|
344
344
|
.canProposeAtNextEthBlock(tipArchive.toBuffer(), msgSender.toString(), Number(this.ethereumSlotDuration), {
|
|
345
|
-
forcePendingCheckpointNumber:
|
|
345
|
+
forcePendingCheckpointNumber:
|
|
346
|
+
opts.forcePendingBlockNumber !== undefined
|
|
347
|
+
? CheckpointNumber.fromBlockNumber(opts.forcePendingBlockNumber)
|
|
348
|
+
: undefined,
|
|
346
349
|
})
|
|
347
350
|
.catch(err => {
|
|
348
351
|
if (err instanceof FormattedViemError && ignoredErrors.find(e => err.message.includes(e))) {
|
|
@@ -361,7 +364,10 @@ export class SequencerPublisher {
|
|
|
361
364
|
* It will throw if the block header is invalid.
|
|
362
365
|
* @param header - The block header to validate
|
|
363
366
|
*/
|
|
364
|
-
public async validateBlockHeader(
|
|
367
|
+
public async validateBlockHeader(
|
|
368
|
+
header: CheckpointHeader,
|
|
369
|
+
opts?: { forcePendingBlockNumber: BlockNumber | undefined },
|
|
370
|
+
) {
|
|
365
371
|
const flags = { ignoreDA: true, ignoreSignatures: true };
|
|
366
372
|
|
|
367
373
|
const args = [
|
|
@@ -375,7 +381,13 @@ export class SequencerPublisher {
|
|
|
375
381
|
] as const;
|
|
376
382
|
|
|
377
383
|
const ts = BigInt((await this.l1TxUtils.getBlock()).timestamp + this.ethereumSlotDuration);
|
|
378
|
-
const
|
|
384
|
+
const optsForcePendingCheckpointNumber =
|
|
385
|
+
opts?.forcePendingBlockNumber !== undefined
|
|
386
|
+
? CheckpointNumber.fromBlockNumber(opts.forcePendingBlockNumber)
|
|
387
|
+
: undefined;
|
|
388
|
+
const stateOverrides = await this.rollupContract.makePendingCheckpointNumberOverride(
|
|
389
|
+
optsForcePendingCheckpointNumber,
|
|
390
|
+
);
|
|
379
391
|
let balance = 0n;
|
|
380
392
|
if (this.config.fishermanMode) {
|
|
381
393
|
// In fisherman mode, we can't know where the proposer is publishing from
|
|
@@ -432,7 +444,7 @@ export class SequencerPublisher {
|
|
|
432
444
|
const { gasUsed } = await this.l1TxUtils.simulate(request, undefined, undefined, ErrorsAbi);
|
|
433
445
|
this.log.verbose(`Simulation for invalidate block ${blockNumber} succeeded`, { ...logData, request, gasUsed });
|
|
434
446
|
|
|
435
|
-
return { request, gasUsed, blockNumber, forcePendingBlockNumber: blockNumber - 1, reason };
|
|
447
|
+
return { request, gasUsed, blockNumber, forcePendingBlockNumber: BlockNumber(blockNumber - 1), reason };
|
|
436
448
|
} catch (err) {
|
|
437
449
|
const viemError = formatViemError(err);
|
|
438
450
|
|
|
@@ -480,14 +492,14 @@ export class SequencerPublisher {
|
|
|
480
492
|
|
|
481
493
|
if (reason === 'invalid-attestation') {
|
|
482
494
|
return this.rollupContract.buildInvalidateBadAttestationRequest(
|
|
483
|
-
block.blockNumber,
|
|
495
|
+
CheckpointNumber.fromBlockNumber(block.blockNumber),
|
|
484
496
|
attestationsAndSigners,
|
|
485
497
|
committee,
|
|
486
498
|
validationResult.invalidIndex,
|
|
487
499
|
);
|
|
488
500
|
} else if (reason === 'insufficient-attestations') {
|
|
489
501
|
return this.rollupContract.buildInvalidateInsufficientAttestationsRequest(
|
|
490
|
-
block.blockNumber,
|
|
502
|
+
CheckpointNumber.fromBlockNumber(block.blockNumber),
|
|
491
503
|
attestationsAndSigners,
|
|
492
504
|
committee,
|
|
493
505
|
);
|
|
@@ -510,7 +522,7 @@ export class SequencerPublisher {
|
|
|
510
522
|
block: L2Block,
|
|
511
523
|
attestationsAndSigners: CommitteeAttestationsAndSigners,
|
|
512
524
|
attestationsAndSignersSignature: Signature,
|
|
513
|
-
options: { forcePendingBlockNumber?:
|
|
525
|
+
options: { forcePendingBlockNumber?: BlockNumber },
|
|
514
526
|
): Promise<bigint> {
|
|
515
527
|
const ts = BigInt((await this.l1TxUtils.getBlock()).timestamp + this.ethereumSlotDuration);
|
|
516
528
|
|
|
@@ -793,7 +805,7 @@ export class SequencerPublisher {
|
|
|
793
805
|
block: L2Block,
|
|
794
806
|
attestationsAndSigners: CommitteeAttestationsAndSigners,
|
|
795
807
|
attestationsAndSignersSignature: Signature,
|
|
796
|
-
opts: { txTimeoutAt?: Date; forcePendingBlockNumber?:
|
|
808
|
+
opts: { txTimeoutAt?: Date; forcePendingBlockNumber?: BlockNumber } = {},
|
|
797
809
|
): Promise<boolean> {
|
|
798
810
|
const checkpointHeader = block.getCheckpointHeader();
|
|
799
811
|
|
|
@@ -936,7 +948,7 @@ export class SequencerPublisher {
|
|
|
936
948
|
private async prepareProposeTx(
|
|
937
949
|
encodedData: L1ProcessArgs,
|
|
938
950
|
timestamp: bigint,
|
|
939
|
-
options: { forcePendingBlockNumber?:
|
|
951
|
+
options: { forcePendingBlockNumber?: BlockNumber },
|
|
940
952
|
) {
|
|
941
953
|
const kzg = Blob.getViemKzgInstance();
|
|
942
954
|
const blobInput = getPrefixedEthBlobCommitments(encodedData.blobs);
|
|
@@ -1017,7 +1029,7 @@ export class SequencerPublisher {
|
|
|
1017
1029
|
`0x${string}`,
|
|
1018
1030
|
],
|
|
1019
1031
|
timestamp: bigint,
|
|
1020
|
-
options: { forcePendingBlockNumber?:
|
|
1032
|
+
options: { forcePendingBlockNumber?: BlockNumber },
|
|
1021
1033
|
) {
|
|
1022
1034
|
const rollupData = encodeFunctionData({
|
|
1023
1035
|
abi: RollupAbi,
|
|
@@ -1025,10 +1037,14 @@ export class SequencerPublisher {
|
|
|
1025
1037
|
args,
|
|
1026
1038
|
});
|
|
1027
1039
|
|
|
1028
|
-
// override the pending
|
|
1029
|
-
const
|
|
1040
|
+
// override the pending checkpoint number if requested
|
|
1041
|
+
const optsForcePendingCheckpointNumber =
|
|
1030
1042
|
options.forcePendingBlockNumber !== undefined
|
|
1031
|
-
?
|
|
1043
|
+
? CheckpointNumber.fromBlockNumber(options.forcePendingBlockNumber)
|
|
1044
|
+
: undefined;
|
|
1045
|
+
const forcePendingCheckpointNumberStateDiff = (
|
|
1046
|
+
optsForcePendingCheckpointNumber !== undefined
|
|
1047
|
+
? await this.rollupContract.makePendingCheckpointNumberOverride(optsForcePendingCheckpointNumber)
|
|
1032
1048
|
: []
|
|
1033
1049
|
).flatMap(override => override.stateDiff ?? []);
|
|
1034
1050
|
|
|
@@ -1038,7 +1054,7 @@ export class SequencerPublisher {
|
|
|
1038
1054
|
// @note we override checkBlob to false since blobs are not part simulate()
|
|
1039
1055
|
stateDiff: [
|
|
1040
1056
|
{ slot: toPaddedHex(RollupContract.checkBlobStorageSlot, true), value: toPaddedHex(0n, true) },
|
|
1041
|
-
...
|
|
1057
|
+
...forcePendingCheckpointNumberStateDiff,
|
|
1042
1058
|
],
|
|
1043
1059
|
},
|
|
1044
1060
|
];
|
|
@@ -1092,7 +1108,7 @@ export class SequencerPublisher {
|
|
|
1092
1108
|
private async addProposeTx(
|
|
1093
1109
|
block: L2Block,
|
|
1094
1110
|
encodedData: L1ProcessArgs,
|
|
1095
|
-
opts: { txTimeoutAt?: Date; forcePendingBlockNumber?:
|
|
1111
|
+
opts: { txTimeoutAt?: Date; forcePendingBlockNumber?: BlockNumber } = {},
|
|
1096
1112
|
timestamp: bigint,
|
|
1097
1113
|
): Promise<void> {
|
|
1098
1114
|
const timer = new Timer();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MerkleTreeId } from '@aztec/aztec.js/trees';
|
|
2
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { merge, pick } from '@aztec/foundation/collection';
|
|
3
4
|
import type { Fr } from '@aztec/foundation/fields';
|
|
4
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -11,7 +12,7 @@ import {
|
|
|
11
12
|
GuardedMerkleTreeOperations,
|
|
12
13
|
PublicContractsDB,
|
|
13
14
|
PublicProcessor,
|
|
14
|
-
|
|
15
|
+
TelemetryCppPublicTxSimulator,
|
|
15
16
|
} from '@aztec/simulator/server';
|
|
16
17
|
import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
17
18
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
@@ -121,7 +122,7 @@ export class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
|
|
|
121
122
|
const contractsDB = new PublicContractsDB(this.contractDataSource);
|
|
122
123
|
const guardedFork = new GuardedMerkleTreeOperations(fork);
|
|
123
124
|
|
|
124
|
-
const publicTxSimulator = new
|
|
125
|
+
const publicTxSimulator = new TelemetryCppPublicTxSimulator(
|
|
125
126
|
guardedFork,
|
|
126
127
|
contractsDB,
|
|
127
128
|
globalVariables,
|
|
@@ -130,7 +131,6 @@ export class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
|
|
|
130
131
|
skipFeeEnforcement: false,
|
|
131
132
|
collectDebugLogs: false,
|
|
132
133
|
collectHints: false,
|
|
133
|
-
maxDebugLogMemoryReads: 0,
|
|
134
134
|
collectStatistics: false,
|
|
135
135
|
collectCallMetadata: false,
|
|
136
136
|
}),
|
|
@@ -160,7 +160,7 @@ export class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
|
|
|
160
160
|
};
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
-
private async syncToPreviousBlock(parentBlockNumber:
|
|
163
|
+
private async syncToPreviousBlock(parentBlockNumber: BlockNumber, timeout: number | undefined) {
|
|
164
164
|
await retryUntil(
|
|
165
165
|
() => this.worldState.syncImmediate(parentBlockNumber, true).then(syncedTo => syncedTo >= parentBlockNumber),
|
|
166
166
|
'sync to previous block',
|
|
@@ -177,7 +177,7 @@ export class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
|
|
|
177
177
|
opts: PublicProcessorLimits,
|
|
178
178
|
suppliedFork?: MerkleTreeWriteOperations,
|
|
179
179
|
): Promise<BuildBlockResult> {
|
|
180
|
-
const parentBlockNumber = globalVariables.blockNumber - 1;
|
|
180
|
+
const parentBlockNumber = BlockNumber(globalVariables.blockNumber - 1);
|
|
181
181
|
const syncTimeout = opts.deadline ? (opts.deadline.getTime() - this.dateProvider.now()) / 1000 : undefined;
|
|
182
182
|
await this.syncToPreviousBlock(parentBlockNumber, syncTimeout);
|
|
183
183
|
const fork = suppliedFork ?? (await this.worldState.fork(parentBlockNumber));
|
|
@@ -216,7 +216,7 @@ export class FullNodeBlockBuilder implements IFullNodeBlockBuilder {
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
getFork(blockNumber:
|
|
219
|
+
getFork(blockNumber: BlockNumber): Promise<MerkleTreeWriteOperations> {
|
|
220
220
|
return this.worldState.fork(blockNumber);
|
|
221
221
|
}
|
|
222
222
|
}
|
|
@@ -2,7 +2,7 @@ import { L2Block } from '@aztec/aztec.js/block';
|
|
|
2
2
|
import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
3
3
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
4
4
|
import { FormattedViemError, NoCommitteeError, type RollupContract } from '@aztec/ethereum';
|
|
5
|
-
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
5
|
+
import { BlockNumber, CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
6
6
|
import { omit, pick } from '@aztec/foundation/collection';
|
|
7
7
|
import { randomInt } from '@aztec/foundation/crypto';
|
|
8
8
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -73,7 +73,7 @@ export type SequencerEvents = {
|
|
|
73
73
|
sentActions?: Action[];
|
|
74
74
|
expiredActions?: Action[];
|
|
75
75
|
}) => void;
|
|
76
|
-
['block-published']: (args: { blockNumber:
|
|
76
|
+
['block-published']: (args: { blockNumber: BlockNumber; slot: number }) => void;
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
/**
|
|
@@ -281,7 +281,7 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
|
|
|
281
281
|
}
|
|
282
282
|
|
|
283
283
|
const chainTipArchive = syncedTo.archive;
|
|
284
|
-
const newBlockNumber = syncedTo.blockNumber + 1;
|
|
284
|
+
const newBlockNumber = BlockNumber(syncedTo.blockNumber + 1);
|
|
285
285
|
|
|
286
286
|
const syncLogData = {
|
|
287
287
|
now,
|
|
@@ -377,7 +377,7 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
|
|
|
377
377
|
this.emit('proposer-rollup-check-failed', { reason: 'Slot mismatch' });
|
|
378
378
|
this.metrics.recordBlockProposalPrecheckFailed('slot_mismatch');
|
|
379
379
|
return;
|
|
380
|
-
} else if (canProposeCheck.checkpointNumber !==
|
|
380
|
+
} else if (canProposeCheck.checkpointNumber !== CheckpointNumber.fromBlockNumber(newBlockNumber)) {
|
|
381
381
|
this.log.warn(
|
|
382
382
|
`Cannot propose block due to block mismatch with rollup contract (this can be caused by a pending archiver sync). Expected block ${newBlockNumber} but got ${canProposeCheck.checkpointNumber}.`,
|
|
383
383
|
{ ...syncLogData, rollup: canProposeCheck, newBlockNumber, expectedSlot: slot },
|
|
@@ -468,7 +468,7 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
|
|
|
468
468
|
private async tryBuildBlockAndEnqueuePublish(
|
|
469
469
|
slot: SlotNumber,
|
|
470
470
|
proposer: EthAddress | undefined,
|
|
471
|
-
newBlockNumber:
|
|
471
|
+
newBlockNumber: BlockNumber,
|
|
472
472
|
publisher: SequencerPublisher,
|
|
473
473
|
newGlobalVariables: GlobalVariables,
|
|
474
474
|
chainTipArchive: Fr,
|
|
@@ -924,7 +924,7 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
|
|
|
924
924
|
protected async checkSync(args: { ts: bigint; slot: SlotNumber }): Promise<
|
|
925
925
|
| {
|
|
926
926
|
block?: L2Block;
|
|
927
|
-
blockNumber:
|
|
927
|
+
blockNumber: BlockNumber;
|
|
928
928
|
archive: Fr;
|
|
929
929
|
l1Timestamp: bigint;
|
|
930
930
|
pendingChainValidationStatus: ValidateBlockResult;
|
|
@@ -958,14 +958,13 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
|
|
|
958
958
|
|
|
959
959
|
const [worldState, l2BlockSource, p2p, l1ToL2MessageSource, pendingChainValidationStatus] = syncedBlocks;
|
|
960
960
|
|
|
961
|
-
//
|
|
962
|
-
//
|
|
961
|
+
// Handle zero as a special case, since the block hash won't match across services if we're changing the prefilled data for the genesis block,
|
|
962
|
+
// as the world state can compute the new genesis block hash, but other components use the hardcoded constant.
|
|
963
963
|
const result =
|
|
964
|
-
l2BlockSource.
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
l1ToL2MessageSource.hash === l2BlockSource.hash;
|
|
964
|
+
(l2BlockSource.number === 0 && worldState.number === 0 && p2p.number === 0 && l1ToL2MessageSource.number === 0) ||
|
|
965
|
+
(worldState.hash === l2BlockSource.hash &&
|
|
966
|
+
p2p.hash === l2BlockSource.hash &&
|
|
967
|
+
l1ToL2MessageSource.hash === l2BlockSource.hash);
|
|
969
968
|
|
|
970
969
|
if (!result) {
|
|
971
970
|
this.log.debug(`Sequencer sync check failed`, { worldState, l2BlockSource, p2p, l1ToL2MessageSource });
|
|
@@ -976,7 +975,7 @@ export class Sequencer extends (EventEmitter as new () => TypedEventEmitter<Sequ
|
|
|
976
975
|
const blockNumber = worldState.number;
|
|
977
976
|
if (blockNumber < INITIAL_L2_BLOCK_NUM) {
|
|
978
977
|
const archive = new Fr((await this.worldState.getCommitted().getTreeInfo(MerkleTreeId.ARCHIVE)).root);
|
|
979
|
-
return { blockNumber: INITIAL_L2_BLOCK_NUM - 1, archive, l1Timestamp, pendingChainValidationStatus };
|
|
978
|
+
return { blockNumber: BlockNumber(INITIAL_L2_BLOCK_NUM - 1), archive, l1Timestamp, pendingChainValidationStatus };
|
|
980
979
|
}
|
|
981
980
|
|
|
982
981
|
const block = await this.l2BlockSource.getBlock(blockNumber);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
3
4
|
import {
|
|
@@ -48,7 +49,7 @@ export function createValidatorForAcceptingTxs(
|
|
|
48
49
|
gasFees: GasFees;
|
|
49
50
|
skipFeeEnforcement?: boolean;
|
|
50
51
|
timestamp: UInt64;
|
|
51
|
-
blockNumber:
|
|
52
|
+
blockNumber: BlockNumber;
|
|
52
53
|
txsPermitted: boolean;
|
|
53
54
|
},
|
|
54
55
|
): TxValidator<Tx> {
|