@aztec/sequencer-client 0.66.0 → 0.67.1-devnet
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.d.ts +3 -3
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +5 -58
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +3 -4
- package/dest/index.d.ts +0 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -2
- package/dest/publisher/index.d.ts +0 -1
- package/dest/publisher/index.d.ts.map +1 -1
- package/dest/publisher/index.js +1 -2
- 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 +159 -50
- package/dest/publisher/utils.d.ts.map +1 -1
- package/dest/publisher/utils.js +2 -1
- package/dest/sequencer/allowed.d.ts +3 -0
- package/dest/sequencer/allowed.d.ts.map +1 -0
- package/dest/sequencer/allowed.js +34 -0
- package/dest/sequencer/config.d.ts +1 -1
- package/dest/sequencer/config.d.ts.map +1 -1
- package/dest/sequencer/metrics.d.ts.map +1 -1
- package/dest/sequencer/metrics.js +2 -8
- package/dest/sequencer/sequencer.d.ts +2 -6
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +112 -103
- package/dest/tx_validator/gas_validator.d.ts +3 -4
- package/dest/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/tx_validator/gas_validator.js +27 -10
- package/dest/tx_validator/phases_validator.js +3 -3
- package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -1
- package/dest/tx_validator/tx_validator_factory.js +6 -4
- package/package.json +27 -20
- package/src/client/sequencer-client.ts +1 -1
- package/src/config.ts +7 -62
- package/src/global_variable_builder/global_builder.ts +3 -3
- package/src/index.ts +0 -1
- package/src/publisher/index.ts +0 -1
- package/src/publisher/l1-publisher-metrics.ts +1 -7
- package/src/publisher/l1-publisher.ts +200 -73
- package/src/publisher/utils.ts +1 -0
- package/src/sequencer/allowed.ts +36 -0
- package/src/sequencer/config.ts +1 -1
- package/src/sequencer/metrics.ts +0 -7
- package/src/sequencer/sequencer.ts +136 -149
- package/src/tx_validator/gas_validator.ts +34 -8
- package/src/tx_validator/phases_validator.ts +2 -2
- package/src/tx_validator/tx_validator_factory.ts +11 -3
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { type Tx, type TxValidator } from '@aztec/circuit-types';
|
|
2
|
-
import { type AztecAddress, type Fr } from '@aztec/circuits.js';
|
|
2
|
+
import { type AztecAddress, type Fr, type GasFees } from '@aztec/circuits.js';
|
|
3
3
|
/** Provides a view into public contract state */
|
|
4
4
|
export interface PublicStateSource {
|
|
5
5
|
storageRead: (contractAddress: AztecAddress, slot: Fr) => Promise<Fr>;
|
|
6
6
|
}
|
|
7
7
|
export declare class GasTxValidator implements TxValidator<Tx> {
|
|
8
8
|
#private;
|
|
9
|
-
enforceFees: boolean;
|
|
10
|
-
|
|
11
|
-
validateTxs(txs: Tx[]): Promise<[validTxs: Tx[], invalidTxs: Tx[]]>;
|
|
9
|
+
constructor(publicDataSource: PublicStateSource, feeJuiceAddress: AztecAddress, enforceFees: boolean, gasFees: GasFees);
|
|
10
|
+
validateTxs(txs: Tx[]): Promise<[validTxs: Tx[], invalidTxs: Tx[], skippedTxs: Tx[]]>;
|
|
12
11
|
validateTx(tx: Tx): Promise<boolean>;
|
|
13
12
|
}
|
|
14
13
|
//# sourceMappingURL=gas_validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas_validator.d.ts","sourceRoot":"","sources":["../../src/tx_validator/gas_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAoB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,EAAoB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"gas_validator.d.ts","sourceRoot":"","sources":["../../src/tx_validator/gas_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAoB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,EAAoB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIhG,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;CACvE;AAED,qBAAa,cAAe,YAAW,WAAW,CAAC,EAAE,CAAC;;gBAQlD,gBAAgB,EAAE,iBAAiB,EACnC,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,OAAO;IAQZ,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAkB3F,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA8DrC"}
|
|
@@ -1,41 +1,58 @@
|
|
|
1
|
-
var _GasTxValidator_instances, _GasTxValidator_log, _GasTxValidator_publicDataSource, _GasTxValidator_feeJuiceAddress, _GasTxValidator_validateTxFee;
|
|
1
|
+
var _GasTxValidator_instances, _GasTxValidator_log, _GasTxValidator_publicDataSource, _GasTxValidator_feeJuiceAddress, _GasTxValidator_enforceFees, _GasTxValidator_gasFees, _GasTxValidator_shouldSkip, _GasTxValidator_validateTxFee;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { TxExecutionPhase } from '@aztec/circuit-types';
|
|
4
4
|
import { FunctionSelector } from '@aztec/circuits.js';
|
|
5
|
-
import {
|
|
5
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import { computeFeePayerBalanceStorageSlot, getExecutionRequestsByPhase } from '@aztec/simulator';
|
|
7
7
|
export class GasTxValidator {
|
|
8
|
-
constructor(publicDataSource, feeJuiceAddress, enforceFees) {
|
|
8
|
+
constructor(publicDataSource, feeJuiceAddress, enforceFees, gasFees) {
|
|
9
9
|
_GasTxValidator_instances.add(this);
|
|
10
|
-
this
|
|
11
|
-
_GasTxValidator_log.set(this, createDebugLogger('aztec:sequencer:tx_validator:tx_gas'));
|
|
10
|
+
_GasTxValidator_log.set(this, createLogger('sequencer:tx_validator:tx_gas'));
|
|
12
11
|
_GasTxValidator_publicDataSource.set(this, void 0);
|
|
13
12
|
_GasTxValidator_feeJuiceAddress.set(this, void 0);
|
|
13
|
+
_GasTxValidator_enforceFees.set(this, void 0);
|
|
14
|
+
_GasTxValidator_gasFees.set(this, void 0);
|
|
14
15
|
__classPrivateFieldSet(this, _GasTxValidator_publicDataSource, publicDataSource, "f");
|
|
15
16
|
__classPrivateFieldSet(this, _GasTxValidator_feeJuiceAddress, feeJuiceAddress, "f");
|
|
17
|
+
__classPrivateFieldSet(this, _GasTxValidator_enforceFees, enforceFees, "f");
|
|
18
|
+
__classPrivateFieldSet(this, _GasTxValidator_gasFees, gasFees, "f");
|
|
16
19
|
}
|
|
17
20
|
async validateTxs(txs) {
|
|
18
21
|
const validTxs = [];
|
|
19
22
|
const invalidTxs = [];
|
|
23
|
+
const skippedTxs = [];
|
|
20
24
|
for (const tx of txs) {
|
|
21
|
-
if (
|
|
25
|
+
if (__classPrivateFieldGet(this, _GasTxValidator_instances, "m", _GasTxValidator_shouldSkip).call(this, tx)) {
|
|
26
|
+
skippedTxs.push(tx);
|
|
27
|
+
}
|
|
28
|
+
else if (await __classPrivateFieldGet(this, _GasTxValidator_instances, "m", _GasTxValidator_validateTxFee).call(this, tx)) {
|
|
22
29
|
validTxs.push(tx);
|
|
23
30
|
}
|
|
24
31
|
else {
|
|
25
32
|
invalidTxs.push(tx);
|
|
26
33
|
}
|
|
27
34
|
}
|
|
28
|
-
return [validTxs, invalidTxs];
|
|
35
|
+
return [validTxs, invalidTxs, skippedTxs];
|
|
29
36
|
}
|
|
30
37
|
validateTx(tx) {
|
|
31
38
|
return __classPrivateFieldGet(this, _GasTxValidator_instances, "m", _GasTxValidator_validateTxFee).call(this, tx);
|
|
32
39
|
}
|
|
33
40
|
}
|
|
34
|
-
_GasTxValidator_log = new WeakMap(), _GasTxValidator_publicDataSource = new WeakMap(), _GasTxValidator_feeJuiceAddress = new WeakMap(), _GasTxValidator_instances = new WeakSet(),
|
|
41
|
+
_GasTxValidator_log = new WeakMap(), _GasTxValidator_publicDataSource = new WeakMap(), _GasTxValidator_feeJuiceAddress = new WeakMap(), _GasTxValidator_enforceFees = new WeakMap(), _GasTxValidator_gasFees = new WeakMap(), _GasTxValidator_instances = new WeakSet(), _GasTxValidator_shouldSkip = function _GasTxValidator_shouldSkip(tx) {
|
|
42
|
+
const gasSettings = tx.data.constants.txContext.gasSettings;
|
|
43
|
+
// Skip the tx if its max fees are not enough for the current block's gas fees.
|
|
44
|
+
const maxFeesPerGas = gasSettings.maxFeesPerGas;
|
|
45
|
+
const notEnoughMaxFees = maxFeesPerGas.feePerDaGas.lt(__classPrivateFieldGet(this, _GasTxValidator_gasFees, "f").feePerDaGas) ||
|
|
46
|
+
maxFeesPerGas.feePerL2Gas.lt(__classPrivateFieldGet(this, _GasTxValidator_gasFees, "f").feePerL2Gas);
|
|
47
|
+
if (notEnoughMaxFees) {
|
|
48
|
+
__classPrivateFieldGet(this, _GasTxValidator_log, "f").warn(`Skipping transaction ${tx.getTxHash()} due to insufficient fee per gas`);
|
|
49
|
+
}
|
|
50
|
+
return notEnoughMaxFees;
|
|
51
|
+
}, _GasTxValidator_validateTxFee = async function _GasTxValidator_validateTxFee(tx) {
|
|
35
52
|
const feePayer = tx.data.feePayer;
|
|
36
53
|
// TODO(@spalladino) Eventually remove the is_zero condition as we should always charge fees to every tx
|
|
37
54
|
if (feePayer.isZero()) {
|
|
38
|
-
if (this
|
|
55
|
+
if (__classPrivateFieldGet(this, _GasTxValidator_enforceFees, "f")) {
|
|
39
56
|
__classPrivateFieldGet(this, _GasTxValidator_log, "f").warn(`Rejecting transaction ${tx.getTxHash()} due to missing fee payer`);
|
|
40
57
|
}
|
|
41
58
|
else {
|
|
@@ -66,4 +83,4 @@ _GasTxValidator_log = new WeakMap(), _GasTxValidator_publicDataSource = new Weak
|
|
|
66
83
|
}
|
|
67
84
|
return true;
|
|
68
85
|
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzX3ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF92YWxpZGF0b3IvZ2FzX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBVyxnQkFBZ0IsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQThCLGdCQUFnQixFQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU9sRyxNQUFNLE9BQU8sY0FBYztJQU96QixZQUNFLGdCQUFtQyxFQUNuQyxlQUE2QixFQUM3QixXQUFvQixFQUNwQixPQUFnQjs7UUFWbEIsOEJBQU8sWUFBWSxDQUFDLCtCQUErQixDQUFDLEVBQUM7UUFDckQsbURBQXFDO1FBQ3JDLGtEQUErQjtRQUMvQiw4Q0FBc0I7UUFDdEIsMENBQWtCO1FBUWhCLHVCQUFBLElBQUksb0NBQXFCLGdCQUFnQixNQUFBLENBQUM7UUFDMUMsdUJBQUEsSUFBSSxtQ0FBb0IsZUFBZSxNQUFBLENBQUM7UUFDeEMsdUJBQUEsSUFBSSwrQkFBZ0IsV0FBVyxNQUFBLENBQUM7UUFDaEMsdUJBQUEsSUFBSSwyQkFBWSxPQUFPLE1BQUEsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFTO1FBQ3pCLE1BQU0sUUFBUSxHQUFTLEVBQUUsQ0FBQztRQUMxQixNQUFNLFVBQVUsR0FBUyxFQUFFLENBQUM7UUFDNUIsTUFBTSxVQUFVLEdBQVMsRUFBRSxDQUFDO1FBRTVCLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSx1QkFBQSxJQUFJLDZEQUFZLE1BQWhCLElBQUksRUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN6QixVQUFV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
|
|
@@ -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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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,EAAE,EACP,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;IALrB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;gBAE3B,WAAW,EAAE,wBAAwB,EACrC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,EAAE,EACP,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;IALrB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;gBAE3B,WAAW,EAAE,wBAAwB,EACrC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO;IAgB9B,kBAAkB,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;IAevG,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,GAAG,WAAW,CAAC,WAAW,CAAC;CAKnF"}
|
|
@@ -10,7 +10,9 @@ export class TxValidatorFactory {
|
|
|
10
10
|
this.contractDataSource = contractDataSource;
|
|
11
11
|
this.enforceFees = enforceFees;
|
|
12
12
|
this.nullifierSource = {
|
|
13
|
-
|
|
13
|
+
getNullifierIndices: nullifiers => this.committedDb
|
|
14
|
+
.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers)
|
|
15
|
+
.then(x => x.filter(index => index !== undefined)),
|
|
14
16
|
};
|
|
15
17
|
this.publicStateSource = {
|
|
16
18
|
storageRead: (contractAddress, slot) => {
|
|
@@ -19,12 +21,12 @@ export class TxValidatorFactory {
|
|
|
19
21
|
};
|
|
20
22
|
}
|
|
21
23
|
validatorForNewTxs(globalVariables, setupAllowList) {
|
|
22
|
-
return new AggregateTxValidator(new DataTxValidator(), new MetadataTxValidator(globalVariables.chainId, globalVariables.blockNumber), new DoubleSpendTxValidator(this.nullifierSource), new PhasesTxValidator(this.contractDataSource, setupAllowList), new GasTxValidator(this.publicStateSource, ProtocolContractAddress.FeeJuice, this.enforceFees));
|
|
24
|
+
return new AggregateTxValidator(new DataTxValidator(), new MetadataTxValidator(globalVariables.chainId, globalVariables.blockNumber), new DoubleSpendTxValidator(this.nullifierSource), new PhasesTxValidator(this.contractDataSource, setupAllowList), new GasTxValidator(this.publicStateSource, ProtocolContractAddress.FeeJuice, this.enforceFees, globalVariables.gasFees));
|
|
23
25
|
}
|
|
24
26
|
validatorForProcessedTxs(fork) {
|
|
25
27
|
return new DoubleSpendTxValidator({
|
|
26
|
-
|
|
28
|
+
getNullifierIndices: nullifiers => fork.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers),
|
|
27
29
|
});
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yX2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHhfdmFsaWRhdG9yL3R4X3ZhbGlkYXRvcl9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxZQUFZLEdBS2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBRXBCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsY0FBYyxFQUEwQixNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDVSxXQUFxQyxFQUNyQyxrQkFBc0MsRUFDdEMsV0FBb0I7UUFGcEIsZ0JBQVcsR0FBWCxXQUFXLENBQTBCO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFFNUIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixtQkFBbUIsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUNoQyxJQUFJLENBQUMsV0FBVztpQkFDYixlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUM7aUJBQ3hELElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFhLENBQUM7U0FDbkUsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUN2QixXQUFXLEVBQUUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xFLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQWdDLEVBQUUsY0FBZ0M7UUFDbkYsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixJQUFJLGVBQWUsRUFBRSxFQUNyQixJQUFJLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUM3RSxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFDaEQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxDQUFDLEVBQzlELElBQUksY0FBYyxDQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLHVCQUF1QixDQUFDLFFBQVEsRUFDaEMsSUFBSSxDQUFDLFdBQVcsRUFDaEIsZUFBZSxDQUFDLE9BQU8sQ0FDeEIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUFDLElBQThCO1FBQ3JELE9BQU8sSUFBSSxzQkFBc0IsQ0FBQztZQUNoQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUM7U0FDakcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
|
package/package.json
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/sequencer-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.1-devnet",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"exports":
|
|
5
|
+
"exports": {
|
|
6
|
+
".": "./dest/index.js",
|
|
7
|
+
"./config": "./dest/config.js"
|
|
8
|
+
},
|
|
6
9
|
"typedocOptions": {
|
|
7
10
|
"entryPoints": [
|
|
8
11
|
"./src/index.ts"
|
|
@@ -24,24 +27,24 @@
|
|
|
24
27
|
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
|
|
25
28
|
},
|
|
26
29
|
"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.
|
|
30
|
+
"@aztec/aztec.js": "0.67.1-devnet",
|
|
31
|
+
"@aztec/bb-prover": "0.67.1-devnet",
|
|
32
|
+
"@aztec/circuit-types": "0.67.1-devnet",
|
|
33
|
+
"@aztec/circuits.js": "0.67.1-devnet",
|
|
34
|
+
"@aztec/ethereum": "0.67.1-devnet",
|
|
35
|
+
"@aztec/foundation": "0.67.1-devnet",
|
|
36
|
+
"@aztec/l1-artifacts": "0.67.1-devnet",
|
|
37
|
+
"@aztec/merkle-tree": "0.67.1-devnet",
|
|
38
|
+
"@aztec/noir-contracts.js": "0.67.1-devnet",
|
|
39
|
+
"@aztec/noir-protocol-circuits-types": "0.67.1-devnet",
|
|
40
|
+
"@aztec/p2p": "0.67.1-devnet",
|
|
41
|
+
"@aztec/protocol-contracts": "0.67.1-devnet",
|
|
42
|
+
"@aztec/prover-client": "0.67.1-devnet",
|
|
43
|
+
"@aztec/simulator": "0.67.1-devnet",
|
|
44
|
+
"@aztec/telemetry-client": "0.67.1-devnet",
|
|
45
|
+
"@aztec/types": "0.67.1-devnet",
|
|
46
|
+
"@aztec/validator-client": "0.67.1-devnet",
|
|
47
|
+
"@aztec/world-state": "0.67.1-devnet",
|
|
45
48
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
46
49
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
47
50
|
"lodash.chunk": "^4.2.0",
|
|
@@ -109,6 +112,10 @@
|
|
|
109
112
|
"summaryThreshold": 9999
|
|
110
113
|
}
|
|
111
114
|
]
|
|
115
|
+
],
|
|
116
|
+
"testTimeout": 30000,
|
|
117
|
+
"setupFiles": [
|
|
118
|
+
"../../foundation/src/jest/setup.mjs"
|
|
112
119
|
]
|
|
113
120
|
}
|
|
114
121
|
}
|
package/src/config.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type AllowedElement } from '@aztec/circuit-types';
|
|
2
|
-
import { AztecAddress, Fr, FunctionSelector
|
|
1
|
+
import { type AllowedElement, type SequencerConfig } from '@aztec/circuit-types/config';
|
|
2
|
+
import { AztecAddress, Fr, FunctionSelector } from '@aztec/circuits.js';
|
|
3
3
|
import {
|
|
4
4
|
type L1ContractsConfig,
|
|
5
5
|
type L1ReaderConfig,
|
|
@@ -14,9 +14,6 @@ import {
|
|
|
14
14
|
} from '@aztec/foundation/config';
|
|
15
15
|
import { pickConfigMappings } from '@aztec/foundation/config';
|
|
16
16
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
17
|
-
import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
18
|
-
import { TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
|
|
19
|
-
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
20
17
|
|
|
21
18
|
import {
|
|
22
19
|
type PublisherConfig,
|
|
@@ -24,7 +21,9 @@ import {
|
|
|
24
21
|
getPublisherConfigMappings,
|
|
25
22
|
getTxSenderConfigMappings,
|
|
26
23
|
} from './publisher/config.js';
|
|
27
|
-
|
|
24
|
+
|
|
25
|
+
export * from './publisher/config.js';
|
|
26
|
+
export { SequencerConfig };
|
|
28
27
|
|
|
29
28
|
/** Chain configuration. */
|
|
30
29
|
type ChainConfig = {
|
|
@@ -60,17 +59,6 @@ export const sequencerConfigMappings: ConfigMappingsType<SequencerConfig> = {
|
|
|
60
59
|
description: 'The minimum number of txs to include in a block.',
|
|
61
60
|
...numberConfigHelper(1),
|
|
62
61
|
},
|
|
63
|
-
minSecondsBetweenBlocks: {
|
|
64
|
-
env: 'SEQ_MIN_SECONDS_BETWEEN_BLOCKS',
|
|
65
|
-
description: 'The minimum number of seconds in-between consecutive blocks.',
|
|
66
|
-
...numberConfigHelper(0),
|
|
67
|
-
},
|
|
68
|
-
maxSecondsBetweenBlocks: {
|
|
69
|
-
env: 'SEQ_MAX_SECONDS_BETWEEN_BLOCKS',
|
|
70
|
-
description:
|
|
71
|
-
'The maximum number of seconds in-between consecutive blocks. Sequencer will produce a block with less than minTxsPerBlock once this threshold is reached.',
|
|
72
|
-
...numberConfigHelper(0),
|
|
73
|
-
},
|
|
74
62
|
coinbase: {
|
|
75
63
|
env: 'COINBASE',
|
|
76
64
|
parseEnv: (val: string) => EthAddress.fromString(val),
|
|
@@ -92,18 +80,10 @@ export const sequencerConfigMappings: ConfigMappingsType<SequencerConfig> = {
|
|
|
92
80
|
allowedInSetup: {
|
|
93
81
|
env: 'SEQ_ALLOWED_SETUP_FN',
|
|
94
82
|
parseEnv: (val: string) => parseSequencerAllowList(val),
|
|
95
|
-
defaultValue: getDefaultAllowedSetupFunctions(),
|
|
96
83
|
description: 'The list of functions calls allowed to run in setup',
|
|
97
84
|
printDefault: () =>
|
|
98
85
|
'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee',
|
|
99
86
|
},
|
|
100
|
-
allowedInTeardown: {
|
|
101
|
-
env: 'SEQ_ALLOWED_TEARDOWN_FN',
|
|
102
|
-
parseEnv: (val: string) => parseSequencerAllowList(val),
|
|
103
|
-
defaultValue: getDefaultAllowedTeardownFunctions(),
|
|
104
|
-
description: 'The list of functions calls allowed to run teardown',
|
|
105
|
-
printDefault: () => 'FPC.pay_refund',
|
|
106
|
-
},
|
|
107
87
|
maxBlockSizeInBytes: {
|
|
108
88
|
env: 'SEQ_MAX_BLOCK_SIZE_IN_BYTES',
|
|
109
89
|
description: 'Max block size',
|
|
@@ -189,12 +169,12 @@ export function parseSequencerAllowList(value: string): AllowedElement[] {
|
|
|
189
169
|
} else if (typeString === 'C') {
|
|
190
170
|
if (selector) {
|
|
191
171
|
entries.push({
|
|
192
|
-
classId: Fr.
|
|
172
|
+
classId: Fr.fromHexString(identifierString),
|
|
193
173
|
selector,
|
|
194
174
|
});
|
|
195
175
|
} else {
|
|
196
176
|
entries.push({
|
|
197
|
-
classId: Fr.
|
|
177
|
+
classId: Fr.fromHexString(identifierString),
|
|
198
178
|
});
|
|
199
179
|
}
|
|
200
180
|
}
|
|
@@ -202,38 +182,3 @@ export function parseSequencerAllowList(value: string): AllowedElement[] {
|
|
|
202
182
|
|
|
203
183
|
return entries;
|
|
204
184
|
}
|
|
205
|
-
|
|
206
|
-
function getDefaultAllowedSetupFunctions(): AllowedElement[] {
|
|
207
|
-
return [
|
|
208
|
-
// needed for authwit support
|
|
209
|
-
{
|
|
210
|
-
address: ProtocolContractAddress.AuthRegistry,
|
|
211
|
-
},
|
|
212
|
-
// needed for claiming on the same tx as a spend
|
|
213
|
-
{
|
|
214
|
-
address: ProtocolContractAddress.FeeJuice,
|
|
215
|
-
// We can't restrict the selector because public functions get routed via dispatch.
|
|
216
|
-
// selector: FunctionSelector.fromSignature('_increase_public_balance((Field),Field)'),
|
|
217
|
-
},
|
|
218
|
-
// needed for private transfers via FPC
|
|
219
|
-
{
|
|
220
|
-
classId: getContractClassFromArtifact(TokenContractArtifact).id,
|
|
221
|
-
// We can't restrict the selector because public functions get routed via dispatch.
|
|
222
|
-
// selector: FunctionSelector.fromSignature('_increase_public_balance((Field),Field)'),
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
classId: getContractClassFromArtifact(FPCContract.artifact).id,
|
|
226
|
-
// We can't restrict the selector because public functions get routed via dispatch.
|
|
227
|
-
// selector: FunctionSelector.fromSignature('prepare_fee((Field),Field,(Field),Field)'),
|
|
228
|
-
},
|
|
229
|
-
];
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
function getDefaultAllowedTeardownFunctions(): AllowedElement[] {
|
|
233
|
-
return [
|
|
234
|
-
{
|
|
235
|
-
classId: getContractClassFromArtifact(FPCContract.artifact).id,
|
|
236
|
-
selector: FunctionSelector.fromSignature('pay_refund((Field),Field,(Field))'),
|
|
237
|
-
},
|
|
238
|
-
];
|
|
239
|
-
}
|
|
@@ -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
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './client/index.js';
|
|
2
2
|
export * from './config.js';
|
|
3
3
|
export * from './publisher/index.js';
|
|
4
|
-
export * from './sequencer/index.js';
|
|
5
4
|
|
|
6
5
|
// Used by the node to simulate public parts of transactions. Should these be moved to a shared library?
|
|
7
6
|
// ISSUE(#9832)
|
package/src/publisher/index.ts
CHANGED
|
@@ -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, {
|