@aztec/sequencer-client 0.0.1-commit.b655e406 → 0.0.1-commit.fce3e4f
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/index.d.ts +1 -1
- package/dest/client/sequencer-client.d.ts +1 -1
- package/dest/client/sequencer-client.d.ts.map +1 -1
- package/dest/client/sequencer-client.js +2 -1
- package/dest/config.d.ts +1 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +9 -0
- package/dest/global_variable_builder/global_builder.d.ts +3 -6
- package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
- package/dest/global_variable_builder/global_builder.js +9 -6
- package/dest/global_variable_builder/index.d.ts +1 -1
- package/dest/index.d.ts +1 -1
- package/dest/publisher/config.d.ts +3 -1
- package/dest/publisher/config.d.ts.map +1 -1
- package/dest/publisher/config.js +5 -0
- package/dest/publisher/index.d.ts +1 -1
- package/dest/publisher/sequencer-publisher-factory.d.ts +1 -1
- package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher-metrics.d.ts +1 -1
- package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.d.ts +29 -23
- package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
- package/dest/publisher/sequencer-publisher.js +108 -57
- package/dest/sequencer/block_builder.d.ts +1 -1
- package/dest/sequencer/block_builder.d.ts.map +1 -1
- package/dest/sequencer/block_builder.js +10 -6
- package/dest/sequencer/config.d.ts +1 -1
- package/dest/sequencer/errors.d.ts +1 -1
- package/dest/sequencer/errors.d.ts.map +1 -1
- package/dest/sequencer/index.d.ts +1 -1
- package/dest/sequencer/metrics.d.ts +11 -2
- package/dest/sequencer/metrics.d.ts.map +1 -1
- package/dest/sequencer/metrics.js +38 -0
- package/dest/sequencer/sequencer.d.ts +17 -25
- package/dest/sequencer/sequencer.d.ts.map +1 -1
- package/dest/sequencer/sequencer.js +169 -46
- package/dest/sequencer/timetable.d.ts +1 -1
- package/dest/sequencer/timetable.d.ts.map +1 -1
- package/dest/sequencer/utils.d.ts +1 -1
- package/dest/test/index.d.ts +1 -1
- package/dest/tx_validator/nullifier_cache.d.ts +1 -1
- package/dest/tx_validator/nullifier_cache.d.ts.map +1 -1
- package/dest/tx_validator/tx_validator_factory.d.ts +2 -2
- package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -1
- package/package.json +31 -30
- package/src/client/sequencer-client.ts +2 -2
- package/src/config.ts +10 -0
- package/src/global_variable_builder/global_builder.ts +12 -8
- package/src/publisher/config.ts +8 -0
- package/src/publisher/sequencer-publisher-factory.ts +2 -1
- package/src/publisher/sequencer-publisher.ts +125 -70
- package/src/sequencer/block_builder.ts +10 -6
- package/src/sequencer/metrics.ts +51 -2
- package/src/sequencer/sequencer.ts +204 -60
package/dest/test/index.d.ts
CHANGED
|
@@ -21,4 +21,4 @@ declare class TestSequencerClient_ extends SequencerClient {
|
|
|
21
21
|
}
|
|
22
22
|
export type TestSequencerClient = TestSequencerClient_;
|
|
23
23
|
export {};
|
|
24
|
-
//# sourceMappingURL=
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsY0FBTSxjQUFlLFNBQVEsU0FBUztJQUNyQixzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztJQUMvQyxTQUFTLEVBQUUsa0JBQWtCLENBQUM7SUFDOUIsU0FBUyxFQUFFLGtCQUFrQixDQUFDO0lBQzlCLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDO0lBQzVDLGVBQWUsRUFBRSxlQUFlLENBQUM7Q0FDakQ7QUFFRCxNQUFNLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQztBQUUzQyxjQUFNLG9CQUFxQixTQUFRLGVBQWU7SUFDakMsU0FBUyxFQUFFLGFBQWEsQ0FBQztJQUN6QixnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0NBQ3ZFO0FBRUQsTUFBTSxNQUFNLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDIn0=
|
|
@@ -11,4 +11,4 @@ export declare class NullifierCache implements NullifierSource {
|
|
|
11
11
|
nullifiersExist(nullifiers: Buffer[]): Promise<boolean[]>;
|
|
12
12
|
addNullifiers(nullifiers: Buffer[]): void;
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGlmaWVyX2NhY2hlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHhfdmFsaWRhdG9yL251bGxpZmllcl9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdoRjs7O0dBR0c7QUFDSCxxQkFBYSxjQUFlLFlBQVcsZUFBZTtJQUd4QyxPQUFPLENBQUMsRUFBRTtJQUZ0QixVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhCLFlBQW9CLEVBQUUsRUFBRSx3QkFBd0IsRUFFL0M7SUFFWSxlQUFlLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQU9yRTtJQUVNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBSXhDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nullifier_cache.d.ts","sourceRoot":"","sources":["../../src/tx_validator/nullifier_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,cAAe,YAAW,eAAe;IAGxC,OAAO,CAAC,EAAE;IAFtB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"nullifier_cache.d.ts","sourceRoot":"","sources":["../../src/tx_validator/nullifier_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF;;;GAGG;AACH,qBAAa,cAAe,YAAW,eAAe;IAGxC,OAAO,CAAC,EAAE;IAFtB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAExB,YAAoB,EAAE,EAAE,wBAAwB,EAE/C;IAEY,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAOrE;IAEM,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAIxC;CACF"}
|
|
@@ -3,7 +3,7 @@ import type { GasFees } from '@aztec/stdlib/gas';
|
|
|
3
3
|
import type { AllowedElement, ClientProtocolCircuitVerifier, MerkleTreeReadOperations, PublicProcessorValidator } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import { GlobalVariables, type Tx, type TxValidator } from '@aztec/stdlib/tx';
|
|
5
5
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
6
|
-
export declare function createValidatorForAcceptingTxs(db: MerkleTreeReadOperations, contractDataSource: ContractDataSource, verifier: ClientProtocolCircuitVerifier | undefined, { l1ChainId, rollupVersion, setupAllowList, gasFees, skipFeeEnforcement, timestamp, blockNumber, txsPermitted
|
|
6
|
+
export declare function createValidatorForAcceptingTxs(db: MerkleTreeReadOperations, contractDataSource: ContractDataSource, verifier: ClientProtocolCircuitVerifier | undefined, { l1ChainId, rollupVersion, setupAllowList, gasFees, skipFeeEnforcement, timestamp, blockNumber, txsPermitted }: {
|
|
7
7
|
l1ChainId: number;
|
|
8
8
|
rollupVersion: number;
|
|
9
9
|
setupAllowList: AllowedElement[];
|
|
@@ -14,4 +14,4 @@ export declare function createValidatorForAcceptingTxs(db: MerkleTreeReadOperati
|
|
|
14
14
|
txsPermitted: boolean;
|
|
15
15
|
}): TxValidator<Tx>;
|
|
16
16
|
export declare function createValidatorForBlockBuilding(db: MerkleTreeReadOperations, contractDataSource: ContractDataSource, globalVariables: GlobalVariables, setupAllowList: AllowedElement[]): PublicProcessorValidator;
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yX2ZhY3RvcnkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eF92YWxpZGF0b3IvdHhfdmFsaWRhdG9yX2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxLQUFLLEVBQ1YsY0FBYyxFQUNkLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3pCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSWxELHdCQUFnQiw4QkFBOEIsQ0FDNUMsRUFBRSxFQUFFLHdCQUF3QixFQUM1QixrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsUUFBUSxFQUFFLDZCQUE2QixHQUFHLFNBQVMsRUFDbkQsRUFDRSxTQUFTLEVBQ1QsYUFBYSxFQUNiLGNBQWMsRUFDZCxPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNiLEVBQUU7SUFDRCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsY0FBYyxFQUFFLGNBQWMsRUFBRSxDQUFDO0lBQ2pDLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakIsa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0IsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFlBQVksRUFBRSxPQUFPLENBQUM7Q0FDdkIsR0FDQSxXQUFXLENBQUMsRUFBRSxDQUFDLENBNEJqQjtBQUVELHdCQUFnQiwrQkFBK0IsQ0FDN0MsRUFBRSxFQUFFLHdCQUF3QixFQUM1QixrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsY0FBYyxFQUFFLGNBQWMsRUFBRSxHQUMvQix3QkFBd0IsQ0FnQjFCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAgBA,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,
|
|
1
|
+
{"version":3,"file":"tx_validator_factory.d.ts","sourceRoot":"","sources":["../../src/tx_validator/tx_validator_factory.ts"],"names":[],"mappings":"AAgBA,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,MAAM,CAAC;IACpB,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.fce3e4f",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -18,50 +18,51 @@
|
|
|
18
18
|
"../package.common.json"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
|
-
"build": "yarn clean &&
|
|
22
|
-
"build:dev": "
|
|
21
|
+
"build": "yarn clean && tsgo -b",
|
|
22
|
+
"build:dev": "tsgo -b --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.fce3e4f",
|
|
30
|
+
"@aztec/bb-prover": "0.0.1-commit.fce3e4f",
|
|
31
|
+
"@aztec/blob-lib": "0.0.1-commit.fce3e4f",
|
|
32
|
+
"@aztec/blob-sink": "0.0.1-commit.fce3e4f",
|
|
33
|
+
"@aztec/constants": "0.0.1-commit.fce3e4f",
|
|
34
|
+
"@aztec/epoch-cache": "0.0.1-commit.fce3e4f",
|
|
35
|
+
"@aztec/ethereum": "0.0.1-commit.fce3e4f",
|
|
36
|
+
"@aztec/foundation": "0.0.1-commit.fce3e4f",
|
|
37
|
+
"@aztec/l1-artifacts": "0.0.1-commit.fce3e4f",
|
|
38
|
+
"@aztec/merkle-tree": "0.0.1-commit.fce3e4f",
|
|
39
|
+
"@aztec/node-keystore": "0.0.1-commit.fce3e4f",
|
|
40
|
+
"@aztec/noir-acvm_js": "0.0.1-commit.fce3e4f",
|
|
41
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.fce3e4f",
|
|
42
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.fce3e4f",
|
|
43
|
+
"@aztec/noir-types": "0.0.1-commit.fce3e4f",
|
|
44
|
+
"@aztec/p2p": "0.0.1-commit.fce3e4f",
|
|
45
|
+
"@aztec/protocol-contracts": "0.0.1-commit.fce3e4f",
|
|
46
|
+
"@aztec/prover-client": "0.0.1-commit.fce3e4f",
|
|
47
|
+
"@aztec/simulator": "0.0.1-commit.fce3e4f",
|
|
48
|
+
"@aztec/slasher": "0.0.1-commit.fce3e4f",
|
|
49
|
+
"@aztec/stdlib": "0.0.1-commit.fce3e4f",
|
|
50
|
+
"@aztec/telemetry-client": "0.0.1-commit.fce3e4f",
|
|
51
|
+
"@aztec/validator-client": "0.0.1-commit.fce3e4f",
|
|
52
|
+
"@aztec/world-state": "0.0.1-commit.fce3e4f",
|
|
53
53
|
"lodash.chunk": "^4.2.0",
|
|
54
54
|
"tslib": "^2.4.0",
|
|
55
|
-
"viem": "npm:@
|
|
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.fce3e4f",
|
|
59
|
+
"@aztec/kv-store": "0.0.1-commit.fce3e4f",
|
|
60
60
|
"@jest/globals": "^30.0.0",
|
|
61
61
|
"@types/jest": "^30.0.0",
|
|
62
62
|
"@types/lodash.chunk": "^4.2.7",
|
|
63
63
|
"@types/lodash.pick": "^4.4.7",
|
|
64
64
|
"@types/node": "^22.15.17",
|
|
65
|
+
"@typescript/native-preview": "7.0.0-dev.20251126.1",
|
|
65
66
|
"concurrently": "^7.6.0",
|
|
66
67
|
"eslint": "^9.26.0",
|
|
67
68
|
"express": "^4.21.2",
|
|
@@ -154,8 +154,8 @@ export class SequencerClient {
|
|
|
154
154
|
// In theory, the L1 slot has an initial 4s phase where the block is propagated, so we could
|
|
155
155
|
// make it with a propagation time into slot equal to 4s. However, we prefer being conservative.
|
|
156
156
|
// See https://www.blocknative.com/blog/anatomy-of-a-slot#7 for more info.
|
|
157
|
-
const
|
|
158
|
-
|
|
157
|
+
const maxInclusionBasedOnChain = isAnvilTestChain(config.l1ChainId) ? ethereumSlotDuration - 1 : 0;
|
|
158
|
+
const maxL1TxInclusionTimeIntoSlot = config.maxL1TxInclusionTimeIntoSlot ?? maxInclusionBasedOnChain;
|
|
159
159
|
|
|
160
160
|
const l1Constants = {
|
|
161
161
|
l1GenesisTime,
|
package/src/config.ts
CHANGED
|
@@ -153,6 +153,16 @@ export const sequencerConfigMappings: ConfigMappingsType<SequencerConfig> = {
|
|
|
153
153
|
description: 'Inject a fake attestation (for testing only)',
|
|
154
154
|
...booleanConfigHelper(false),
|
|
155
155
|
},
|
|
156
|
+
fishermanMode: {
|
|
157
|
+
env: 'FISHERMAN_MODE',
|
|
158
|
+
description:
|
|
159
|
+
'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
|
|
160
|
+
...booleanConfigHelper(false),
|
|
161
|
+
},
|
|
162
|
+
shuffleAttestationOrdering: {
|
|
163
|
+
description: 'Shuffle attestation ordering to create invalid ordering (for testing only)',
|
|
164
|
+
...booleanConfigHelper(false),
|
|
165
|
+
},
|
|
156
166
|
...pickConfigMappings(p2pConfigMappings, ['txPublicSetupAllowList']),
|
|
157
167
|
};
|
|
158
168
|
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
type ViemPublicClient,
|
|
6
6
|
createEthereumChain,
|
|
7
7
|
} from '@aztec/ethereum';
|
|
8
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
8
9
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
9
10
|
import { Fr } from '@aztec/foundation/fields';
|
|
10
11
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -55,8 +56,10 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
|
|
|
55
56
|
// we need to fetch the last block written, and estimate the earliest timestamp for the next block.
|
|
56
57
|
// The timestamp of that last block will act as a lower bound for the next block.
|
|
57
58
|
|
|
58
|
-
const lastBlock = await this.rollupContract.
|
|
59
|
-
const earliestTimestamp = await this.rollupContract.getTimestampForSlot(
|
|
59
|
+
const lastBlock = await this.rollupContract.getCheckpoint(await this.rollupContract.getCheckpointNumber());
|
|
60
|
+
const earliestTimestamp = await this.rollupContract.getTimestampForSlot(
|
|
61
|
+
SlotNumber.fromBigInt(lastBlock.slotNumber + 1n),
|
|
62
|
+
);
|
|
60
63
|
const nextEthTimestamp = BigInt((await this.publicClient.getBlock()).timestamp + BigInt(this.ethereumSlotDuration));
|
|
61
64
|
const timestamp = earliestTimestamp > nextEthTimestamp ? earliestTimestamp : nextEthTimestamp;
|
|
62
65
|
|
|
@@ -97,18 +100,19 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
|
|
|
97
100
|
blockNumber: number,
|
|
98
101
|
coinbase: EthAddress,
|
|
99
102
|
feeRecipient: AztecAddress,
|
|
100
|
-
slotNumber?:
|
|
103
|
+
slotNumber?: SlotNumber,
|
|
101
104
|
): Promise<GlobalVariables> {
|
|
102
105
|
const { chainId, version } = await this.getGlobalConstantVariables();
|
|
103
106
|
|
|
107
|
+
let slot: SlotNumber;
|
|
104
108
|
if (slotNumber === undefined) {
|
|
105
109
|
const ts = BigInt((await this.publicClient.getBlock()).timestamp + BigInt(this.ethereumSlotDuration));
|
|
106
|
-
|
|
110
|
+
slot = await this.rollupContract.getSlotAt(ts);
|
|
111
|
+
} else {
|
|
112
|
+
slot = slotNumber;
|
|
107
113
|
}
|
|
108
114
|
|
|
109
|
-
const timestamp = await this.rollupContract.getTimestampForSlot(
|
|
110
|
-
|
|
111
|
-
const slotFr = new Fr(slotNumber);
|
|
115
|
+
const timestamp = await this.rollupContract.getTimestampForSlot(slot);
|
|
112
116
|
|
|
113
117
|
// We can skip much of the logic in getCurrentBaseFees since it we already check that we are not within a slot elsewhere.
|
|
114
118
|
const gasFees = new GasFees(0, await this.rollupContract.getManaBaseFeeAt(timestamp, true));
|
|
@@ -117,7 +121,7 @@ export class GlobalVariableBuilder implements GlobalVariableBuilderInterface {
|
|
|
117
121
|
chainId,
|
|
118
122
|
version,
|
|
119
123
|
blockNumber,
|
|
120
|
-
|
|
124
|
+
slot,
|
|
121
125
|
timestamp,
|
|
122
126
|
coinbase,
|
|
123
127
|
feeRecipient,
|
package/src/publisher/config.ts
CHANGED
|
@@ -35,6 +35,8 @@ export type PublisherConfig = L1TxUtilsConfig &
|
|
|
35
35
|
BlobSinkConfig & {
|
|
36
36
|
/** True to use publishers in invalid states (timed out, cancelled, etc) if no other is available */
|
|
37
37
|
publisherAllowInvalidStates?: boolean;
|
|
38
|
+
/** Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1 */
|
|
39
|
+
fishermanMode?: boolean;
|
|
38
40
|
};
|
|
39
41
|
|
|
40
42
|
export const getTxSenderConfigMappings: (
|
|
@@ -68,6 +70,12 @@ export const getPublisherConfigMappings: (
|
|
|
68
70
|
env: scope === `PROVER` ? `PROVER_PUBLISHER_ALLOW_INVALID_STATES` : `SEQ_PUBLISHER_ALLOW_INVALID_STATES`,
|
|
69
71
|
...booleanConfigHelper(true),
|
|
70
72
|
},
|
|
73
|
+
fishermanMode: {
|
|
74
|
+
env: 'FISHERMAN_MODE',
|
|
75
|
+
description:
|
|
76
|
+
'Whether to run in fisherman mode: builds blocks on every slot for validation without publishing to L1',
|
|
77
|
+
...booleanConfigHelper(false),
|
|
78
|
+
},
|
|
71
79
|
...l1TxUtilsConfigMappings,
|
|
72
80
|
...blobSinkConfigMapping,
|
|
73
81
|
});
|
|
@@ -4,6 +4,7 @@ import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
|
4
4
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
5
5
|
import type { GovernanceProposerContract, PublisherFilter, PublisherManager, RollupContract } from '@aztec/ethereum';
|
|
6
6
|
import type { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs';
|
|
7
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
7
8
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
8
9
|
import type { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
9
10
|
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -22,7 +23,7 @@ export class SequencerPublisherFactory {
|
|
|
22
23
|
private publisherMetrics: SequencerPublisherMetrics;
|
|
23
24
|
|
|
24
25
|
/** Stores the last slot in which every action was carried out by a publisher */
|
|
25
|
-
private lastActions: Partial<Record<Action,
|
|
26
|
+
private lastActions: Partial<Record<Action, SlotNumber>> = {};
|
|
26
27
|
|
|
27
28
|
private logger: Logger;
|
|
28
29
|
|