@aztec/sequencer-client 0.66.0 → 0.67.1
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/client/sequencer-client.js +2 -1
- package/dest/config.js +3 -3
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +3 -4
- package/dest/publisher/l1-publisher-metrics.d.ts.map +1 -1
- package/dest/publisher/l1-publisher-metrics.js +2 -8
- package/dest/publisher/l1-publisher.d.ts +3 -2
- package/dest/publisher/l1-publisher.d.ts.map +1 -1
- package/dest/publisher/l1-publisher.js +15 -16
- package/dest/publisher/utils.d.ts.map +1 -1
- package/dest/publisher/utils.js +2 -1
- package/dest/sequencer/metrics.d.ts.map +1 -1
- package/dest/sequencer/metrics.js +2 -8
- package/dest/sequencer/sequencer.d.ts +2 -2
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +99 -60
- package/dest/tx_validator/gas_validator.js +3 -3
- package/dest/tx_validator/phases_validator.js +3 -3
- package/package.json +23 -19
- package/src/client/sequencer-client.ts +1 -1
- package/src/config.ts +2 -2
- package/src/global_variable_builder/global_builder.ts +3 -3
- package/src/publisher/l1-publisher-metrics.ts +1 -7
- package/src/publisher/l1-publisher.ts +17 -18
- package/src/publisher/utils.ts +1 -0
- package/src/sequencer/metrics.ts +0 -7
- package/src/sequencer/sequencer.ts +126 -92
- package/src/tx_validator/gas_validator.ts +2 -2
- package/src/tx_validator/phases_validator.ts +2 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var _PhasesTxValidator_log;
|
|
2
2
|
import { __classPrivateFieldGet } from "tslib";
|
|
3
3
|
import { Tx, TxExecutionPhase, } from '@aztec/circuit-types';
|
|
4
|
-
import {
|
|
4
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { ContractsDataSourcePublicDB, getExecutionRequestsByPhase } from '@aztec/simulator';
|
|
6
6
|
export class PhasesTxValidator {
|
|
7
7
|
constructor(contracts, setupAllowList) {
|
|
8
8
|
this.setupAllowList = setupAllowList;
|
|
9
|
-
_PhasesTxValidator_log.set(this,
|
|
9
|
+
_PhasesTxValidator_log.set(this, createLogger('sequencer:tx_validator:tx_phases'));
|
|
10
10
|
this.contractDataSource = new ContractsDataSourcePublicDB(contracts);
|
|
11
11
|
}
|
|
12
12
|
async validateTxs(txs) {
|
|
@@ -78,4 +78,4 @@ export class PhasesTxValidator {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
_PhasesTxValidator_log = new WeakMap();
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhhc2VzX3ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF92YWxpZGF0b3IvcGhhc2VzX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFHTCxFQUFFLEVBQ0YsZ0JBQWdCLEdBRWpCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVGLE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBWSxTQUE2QixFQUFVLGNBQWdDO1FBQWhDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUhuRixpQ0FBTyxZQUFZLENBQUMsa0NBQWtDLENBQUMsRUFBQztRQUl0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFTO1FBQ3pCLE1BQU0sUUFBUSxHQUFTLEVBQUUsQ0FBQztRQUMxQixNQUFNLFVBQVUsR0FBUyxFQUFFLENBQUM7UUFFNUIsS0FBSyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNyQix3RkFBd0Y7WUFDeEYsbUdBQW1HO1lBQ25HLCtEQUErRDtZQUMvRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFbEQsSUFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QixDQUFDO1lBRUQsTUFBTSxJQUFJ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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/sequencer-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -24,24 +24,24 @@
|
|
|
24
24
|
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aztec/aztec.js": "0.
|
|
28
|
-
"@aztec/bb-prover": "0.
|
|
29
|
-
"@aztec/circuit-types": "0.
|
|
30
|
-
"@aztec/circuits.js": "0.
|
|
31
|
-
"@aztec/ethereum": "0.
|
|
32
|
-
"@aztec/foundation": "0.
|
|
33
|
-
"@aztec/l1-artifacts": "0.
|
|
34
|
-
"@aztec/merkle-tree": "0.
|
|
35
|
-
"@aztec/noir-contracts.js": "0.
|
|
36
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
37
|
-
"@aztec/p2p": "0.
|
|
38
|
-
"@aztec/protocol-contracts": "0.
|
|
39
|
-
"@aztec/prover-client": "0.
|
|
40
|
-
"@aztec/simulator": "0.
|
|
41
|
-
"@aztec/telemetry-client": "0.
|
|
42
|
-
"@aztec/types": "0.
|
|
43
|
-
"@aztec/validator-client": "0.
|
|
44
|
-
"@aztec/world-state": "0.
|
|
27
|
+
"@aztec/aztec.js": "0.67.1",
|
|
28
|
+
"@aztec/bb-prover": "0.67.1",
|
|
29
|
+
"@aztec/circuit-types": "0.67.1",
|
|
30
|
+
"@aztec/circuits.js": "0.67.1",
|
|
31
|
+
"@aztec/ethereum": "0.67.1",
|
|
32
|
+
"@aztec/foundation": "0.67.1",
|
|
33
|
+
"@aztec/l1-artifacts": "0.67.1",
|
|
34
|
+
"@aztec/merkle-tree": "0.67.1",
|
|
35
|
+
"@aztec/noir-contracts.js": "0.67.1",
|
|
36
|
+
"@aztec/noir-protocol-circuits-types": "0.67.1",
|
|
37
|
+
"@aztec/p2p": "0.67.1",
|
|
38
|
+
"@aztec/protocol-contracts": "0.67.1",
|
|
39
|
+
"@aztec/prover-client": "0.67.1",
|
|
40
|
+
"@aztec/simulator": "0.67.1",
|
|
41
|
+
"@aztec/telemetry-client": "0.67.1",
|
|
42
|
+
"@aztec/types": "0.67.1",
|
|
43
|
+
"@aztec/validator-client": "0.67.1",
|
|
44
|
+
"@aztec/world-state": "0.67.1",
|
|
45
45
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
46
46
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
47
47
|
"lodash.chunk": "^4.2.0",
|
|
@@ -109,6 +109,10 @@
|
|
|
109
109
|
"summaryThreshold": 9999
|
|
110
110
|
}
|
|
111
111
|
]
|
|
112
|
+
],
|
|
113
|
+
"testTimeout": 30000,
|
|
114
|
+
"setupFiles": [
|
|
115
|
+
"../../foundation/src/jest/setup.mjs"
|
|
112
116
|
]
|
|
113
117
|
}
|
|
114
118
|
}
|
package/src/config.ts
CHANGED
|
@@ -189,12 +189,12 @@ export function parseSequencerAllowList(value: string): AllowedElement[] {
|
|
|
189
189
|
} else if (typeString === 'C') {
|
|
190
190
|
if (selector) {
|
|
191
191
|
entries.push({
|
|
192
|
-
classId: Fr.
|
|
192
|
+
classId: Fr.fromHexString(identifierString),
|
|
193
193
|
selector,
|
|
194
194
|
});
|
|
195
195
|
} else {
|
|
196
196
|
entries.push({
|
|
197
|
-
classId: Fr.
|
|
197
|
+
classId: Fr.fromHexString(identifierString),
|
|
198
198
|
});
|
|
199
199
|
}
|
|
200
200
|
}
|
|
@@ -2,7 +2,7 @@ import { type GlobalVariableBuilder as GlobalVariableBuilderInterface } from '@a
|
|
|
2
2
|
import { type AztecAddress, type EthAddress, GasFees, GlobalVariables } from '@aztec/circuits.js';
|
|
3
3
|
import { type L1ContractsConfig, type L1ReaderConfig, createEthereumChain } from '@aztec/ethereum';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import {
|
|
5
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
7
7
|
|
|
8
8
|
import {
|
|
@@ -20,7 +20,7 @@ import type * as chains from 'viem/chains';
|
|
|
20
20
|
* Simple global variables builder.
|
|
21
21
|
*/
|
|
22
22
|
export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
|
|
23
|
-
private log =
|
|
23
|
+
private log = createLogger('sequencer:global_variable_builder');
|
|
24
24
|
|
|
25
25
|
private rollupContract: GetContractReturnType<typeof RollupAbi, PublicClient<HttpTransport, chains.Chain>>;
|
|
26
26
|
private publicClient: PublicClient<HttpTransport, chains.Chain>;
|
|
@@ -103,7 +103,7 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
|
|
|
103
103
|
feeRecipient,
|
|
104
104
|
gasFees,
|
|
105
105
|
);
|
|
106
|
-
|
|
106
|
+
|
|
107
107
|
return globalVariables;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -38,9 +38,6 @@ export class L1PublisherMetrics {
|
|
|
38
38
|
description: 'The duration of transaction processing',
|
|
39
39
|
unit: 'ms',
|
|
40
40
|
valueType: ValueType.INT,
|
|
41
|
-
advice: {
|
|
42
|
-
explicitBucketBoundaries: [10, 50, 100, 200, 500, 1000, 2000, 5000, 10000],
|
|
43
|
-
},
|
|
44
41
|
});
|
|
45
42
|
|
|
46
43
|
this.txGas = meter.createHistogram(Metrics.L1_PUBLISHER_TX_GAS, {
|
|
@@ -51,11 +48,8 @@ export class L1PublisherMetrics {
|
|
|
51
48
|
|
|
52
49
|
this.txCalldataSize = meter.createHistogram(Metrics.L1_PUBLISHER_TX_CALLDATA_SIZE, {
|
|
53
50
|
description: 'The size of the calldata in transactions',
|
|
54
|
-
unit: '
|
|
51
|
+
unit: 'By',
|
|
55
52
|
valueType: ValueType.INT,
|
|
56
|
-
advice: {
|
|
57
|
-
explicitBucketBoundaries: [0, 100, 200, 500, 1000, 2000, 5000, 10000],
|
|
58
|
-
},
|
|
59
53
|
});
|
|
60
54
|
|
|
61
55
|
this.txCalldataGas = meter.createHistogram(Metrics.L1_PUBLISHER_TX_CALLDATA_GAS, {
|
|
@@ -11,9 +11,9 @@ import { type L1PublishBlockStats, type L1PublishProofStats } from '@aztec/circu
|
|
|
11
11
|
import {
|
|
12
12
|
AGGREGATION_OBJECT_LENGTH,
|
|
13
13
|
AZTEC_MAX_EPOCH_DURATION,
|
|
14
|
+
type BlockHeader,
|
|
14
15
|
EthAddress,
|
|
15
16
|
type FeeRecipient,
|
|
16
|
-
type Header,
|
|
17
17
|
type Proof,
|
|
18
18
|
type RootRollupPublicInputs,
|
|
19
19
|
} from '@aztec/circuits.js';
|
|
@@ -28,7 +28,7 @@ import { makeTuple } from '@aztec/foundation/array';
|
|
|
28
28
|
import { areArraysEqual, compactArray, times } from '@aztec/foundation/collection';
|
|
29
29
|
import { type Signature } from '@aztec/foundation/eth-signature';
|
|
30
30
|
import { Fr } from '@aztec/foundation/fields';
|
|
31
|
-
import {
|
|
31
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
32
32
|
import { type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
33
33
|
import { InterruptibleSleep } from '@aztec/foundation/sleep';
|
|
34
34
|
import { Timer } from '@aztec/foundation/timer';
|
|
@@ -149,7 +149,8 @@ export class L1Publisher {
|
|
|
149
149
|
private payload: EthAddress = EthAddress.ZERO;
|
|
150
150
|
private myLastVote: bigint = 0n;
|
|
151
151
|
|
|
152
|
-
protected log =
|
|
152
|
+
protected log = createLogger('sequencer:publisher');
|
|
153
|
+
protected governanceLog = createLogger('sequencer:publisher:governance');
|
|
153
154
|
|
|
154
155
|
protected rollupContract: GetContractReturnType<
|
|
155
156
|
typeof RollupAbi,
|
|
@@ -342,7 +343,7 @@ export class L1Publisher {
|
|
|
342
343
|
await this.rollupContract.read.validateEpochProofRightClaimAtTime(args, { account: this.account });
|
|
343
344
|
} catch (err) {
|
|
344
345
|
const errorName = tryGetCustomErrorName(err);
|
|
345
|
-
this.log.warn(`Proof quote validation failed: ${errorName}
|
|
346
|
+
this.log.warn(`Proof quote validation failed: ${errorName}`, quote);
|
|
346
347
|
return undefined;
|
|
347
348
|
}
|
|
348
349
|
return quote;
|
|
@@ -358,7 +359,7 @@ export class L1Publisher {
|
|
|
358
359
|
*
|
|
359
360
|
*/
|
|
360
361
|
public async validateBlockForSubmission(
|
|
361
|
-
header:
|
|
362
|
+
header: BlockHeader,
|
|
362
363
|
attestationData: { digest: Buffer; signatures: Signature[] } = {
|
|
363
364
|
digest: Buffer.alloc(32),
|
|
364
365
|
signatures: [],
|
|
@@ -432,7 +433,7 @@ export class L1Publisher {
|
|
|
432
433
|
this.governanceProposerContract.read.computeRound([slotNumber]),
|
|
433
434
|
]);
|
|
434
435
|
|
|
435
|
-
if (proposer
|
|
436
|
+
if (proposer.toLowerCase() !== this.account.address.toLowerCase()) {
|
|
436
437
|
return false;
|
|
437
438
|
}
|
|
438
439
|
|
|
@@ -450,14 +451,14 @@ export class L1Publisher {
|
|
|
450
451
|
const cachedMyLastVote = this.myLastVote;
|
|
451
452
|
this.myLastVote = slotNumber;
|
|
452
453
|
|
|
454
|
+
this.governanceLog.verbose(`Casting vote for ${this.payload}`);
|
|
455
|
+
|
|
453
456
|
let txHash;
|
|
454
457
|
try {
|
|
455
|
-
txHash = await this.governanceProposerContract.write.vote([this.payload.toString()], {
|
|
456
|
-
account: this.account,
|
|
457
|
-
});
|
|
458
|
+
txHash = await this.governanceProposerContract.write.vote([this.payload.toString()], { account: this.account });
|
|
458
459
|
} catch (err) {
|
|
459
460
|
const msg = prettyLogViemErrorMsg(err);
|
|
460
|
-
this.
|
|
461
|
+
this.governanceLog.error(`Failed to vote`, msg);
|
|
461
462
|
this.myLastVote = cachedMyLastVote;
|
|
462
463
|
return false;
|
|
463
464
|
}
|
|
@@ -465,14 +466,13 @@ export class L1Publisher {
|
|
|
465
466
|
if (txHash) {
|
|
466
467
|
const receipt = await this.getTransactionReceipt(txHash);
|
|
467
468
|
if (!receipt) {
|
|
468
|
-
this.
|
|
469
|
+
this.governanceLog.warn(`Failed to get receipt for tx ${txHash}`);
|
|
469
470
|
this.myLastVote = cachedMyLastVote;
|
|
470
471
|
return false;
|
|
471
472
|
}
|
|
472
473
|
}
|
|
473
474
|
|
|
474
|
-
this.
|
|
475
|
-
|
|
475
|
+
this.governanceLog.info(`Cast vote for ${this.payload}`);
|
|
476
476
|
return true;
|
|
477
477
|
}
|
|
478
478
|
|
|
@@ -522,7 +522,7 @@ export class L1Publisher {
|
|
|
522
522
|
signatures: attestations ?? [],
|
|
523
523
|
});
|
|
524
524
|
|
|
525
|
-
this.log.
|
|
525
|
+
this.log.debug(`Submitting propose transaction`);
|
|
526
526
|
const result = proofQuote
|
|
527
527
|
? await this.sendProposeAndClaimTx(proposeTxArgs, proofQuote)
|
|
528
528
|
: await this.sendProposeTx(proposeTxArgs);
|
|
@@ -545,7 +545,7 @@ export class L1Publisher {
|
|
|
545
545
|
...block.getStats(),
|
|
546
546
|
eventName: 'rollup-published-to-l1',
|
|
547
547
|
};
|
|
548
|
-
this.log.
|
|
548
|
+
this.log.verbose(`Published L2 block to L1 rollup contract`, { ...stats, ...ctx });
|
|
549
549
|
this.metrics.recordProcessBlockTx(timer.ms(), stats);
|
|
550
550
|
return true;
|
|
551
551
|
}
|
|
@@ -687,7 +687,7 @@ export class L1Publisher {
|
|
|
687
687
|
: proof.extractAggregationObject();
|
|
688
688
|
const argsPublicInputs = [...publicInputs.toFields(), ...aggregationObject];
|
|
689
689
|
|
|
690
|
-
if (!areArraysEqual(rollupPublicInputs.map(Fr.
|
|
690
|
+
if (!areArraysEqual(rollupPublicInputs.map(Fr.fromHexString), argsPublicInputs, (a, b) => a.equals(b))) {
|
|
691
691
|
const fmt = (inputs: Fr[] | readonly string[]) => inputs.map(x => x.toString()).join(', ');
|
|
692
692
|
throw new Error(
|
|
693
693
|
`Root rollup public inputs mismatch:\nRollup: ${fmt(rollupPublicInputs)}\nComputed:${fmt(argsPublicInputs)}`,
|
|
@@ -843,8 +843,7 @@ export class L1Publisher {
|
|
|
843
843
|
};
|
|
844
844
|
} catch (err) {
|
|
845
845
|
prettyLogViemError(err, this.log);
|
|
846
|
-
|
|
847
|
-
this.log.error(`Rollup publish failed`, errorMessage);
|
|
846
|
+
this.log.error(`Rollup publish failed`, err);
|
|
848
847
|
return undefined;
|
|
849
848
|
}
|
|
850
849
|
}
|
package/src/publisher/utils.ts
CHANGED
package/src/sequencer/metrics.ts
CHANGED
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
type Tracer,
|
|
8
8
|
type UpDownCounter,
|
|
9
9
|
ValueType,
|
|
10
|
-
millisecondBuckets,
|
|
11
10
|
} from '@aztec/telemetry-client';
|
|
12
11
|
|
|
13
12
|
import { type SequencerState, type SequencerStateCallback, sequencerStateToNumber } from './utils.js';
|
|
@@ -32,18 +31,12 @@ export class SequencerMetrics {
|
|
|
32
31
|
unit: 'ms',
|
|
33
32
|
description: 'Duration to build a block',
|
|
34
33
|
valueType: ValueType.INT,
|
|
35
|
-
advice: {
|
|
36
|
-
explicitBucketBoundaries: millisecondBuckets(2),
|
|
37
|
-
},
|
|
38
34
|
});
|
|
39
35
|
this.stateTransitionBufferDuration = meter.createHistogram(Metrics.SEQUENCER_STATE_TRANSITION_BUFFER_DURATION, {
|
|
40
36
|
unit: 'ms',
|
|
41
37
|
description:
|
|
42
38
|
'The time difference between when the sequencer needed to transition to a new state and when it actually did.',
|
|
43
39
|
valueType: ValueType.INT,
|
|
44
|
-
advice: {
|
|
45
|
-
explicitBucketBoundaries: millisecondBuckets(2),
|
|
46
|
-
},
|
|
47
40
|
});
|
|
48
41
|
|
|
49
42
|
const currentState = meter.createObservableGauge(Metrics.SEQUENCER_CURRENT_STATE, {
|