@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.
Files changed (54) hide show
  1. package/dest/client/index.d.ts +1 -1
  2. package/dest/client/sequencer-client.d.ts +1 -1
  3. package/dest/client/sequencer-client.d.ts.map +1 -1
  4. package/dest/client/sequencer-client.js +2 -1
  5. package/dest/config.d.ts +1 -1
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +9 -0
  8. package/dest/global_variable_builder/global_builder.d.ts +3 -6
  9. package/dest/global_variable_builder/global_builder.d.ts.map +1 -1
  10. package/dest/global_variable_builder/global_builder.js +9 -6
  11. package/dest/global_variable_builder/index.d.ts +1 -1
  12. package/dest/index.d.ts +1 -1
  13. package/dest/publisher/config.d.ts +3 -1
  14. package/dest/publisher/config.d.ts.map +1 -1
  15. package/dest/publisher/config.js +5 -0
  16. package/dest/publisher/index.d.ts +1 -1
  17. package/dest/publisher/sequencer-publisher-factory.d.ts +1 -1
  18. package/dest/publisher/sequencer-publisher-factory.d.ts.map +1 -1
  19. package/dest/publisher/sequencer-publisher-metrics.d.ts +1 -1
  20. package/dest/publisher/sequencer-publisher-metrics.d.ts.map +1 -1
  21. package/dest/publisher/sequencer-publisher.d.ts +29 -23
  22. package/dest/publisher/sequencer-publisher.d.ts.map +1 -1
  23. package/dest/publisher/sequencer-publisher.js +108 -57
  24. package/dest/sequencer/block_builder.d.ts +1 -1
  25. package/dest/sequencer/block_builder.d.ts.map +1 -1
  26. package/dest/sequencer/block_builder.js +10 -6
  27. package/dest/sequencer/config.d.ts +1 -1
  28. package/dest/sequencer/errors.d.ts +1 -1
  29. package/dest/sequencer/errors.d.ts.map +1 -1
  30. package/dest/sequencer/index.d.ts +1 -1
  31. package/dest/sequencer/metrics.d.ts +11 -2
  32. package/dest/sequencer/metrics.d.ts.map +1 -1
  33. package/dest/sequencer/metrics.js +38 -0
  34. package/dest/sequencer/sequencer.d.ts +17 -25
  35. package/dest/sequencer/sequencer.d.ts.map +1 -1
  36. package/dest/sequencer/sequencer.js +169 -46
  37. package/dest/sequencer/timetable.d.ts +1 -1
  38. package/dest/sequencer/timetable.d.ts.map +1 -1
  39. package/dest/sequencer/utils.d.ts +1 -1
  40. package/dest/test/index.d.ts +1 -1
  41. package/dest/tx_validator/nullifier_cache.d.ts +1 -1
  42. package/dest/tx_validator/nullifier_cache.d.ts.map +1 -1
  43. package/dest/tx_validator/tx_validator_factory.d.ts +2 -2
  44. package/dest/tx_validator/tx_validator_factory.d.ts.map +1 -1
  45. package/package.json +31 -30
  46. package/src/client/sequencer-client.ts +2 -2
  47. package/src/config.ts +10 -0
  48. package/src/global_variable_builder/global_builder.ts +12 -8
  49. package/src/publisher/config.ts +8 -0
  50. package/src/publisher/sequencer-publisher-factory.ts +2 -1
  51. package/src/publisher/sequencer-publisher.ts +125 -70
  52. package/src/sequencer/block_builder.ts +10 -6
  53. package/src/sequencer/metrics.ts +51 -2
  54. package/src/sequencer/sequencer.ts +204 -60
@@ -21,4 +21,4 @@ declare class TestSequencerClient_ extends SequencerClient {
21
21
  }
22
22
  export type TestSequencerClient = TestSequencerClient_;
23
23
  export {};
24
- //# sourceMappingURL=index.d.ts.map
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=nullifier_cache.d.ts.map
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;gBAEJ,EAAE,EAAE,wBAAwB;IAInC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAS/D,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE;CAK1C"}
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=tx_validator_factory.d.ts.map
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,GACb,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"}
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.b655e406",
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 && tsc -b",
22
- "build:dev": "tsc -b --watch",
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.b655e406",
30
- "@aztec/bb-prover": "0.0.1-commit.b655e406",
31
- "@aztec/blob-lib": "0.0.1-commit.b655e406",
32
- "@aztec/blob-sink": "0.0.1-commit.b655e406",
33
- "@aztec/constants": "0.0.1-commit.b655e406",
34
- "@aztec/epoch-cache": "0.0.1-commit.b655e406",
35
- "@aztec/ethereum": "0.0.1-commit.b655e406",
36
- "@aztec/foundation": "0.0.1-commit.b655e406",
37
- "@aztec/l1-artifacts": "0.0.1-commit.b655e406",
38
- "@aztec/merkle-tree": "0.0.1-commit.b655e406",
39
- "@aztec/node-keystore": "0.0.1-commit.b655e406",
40
- "@aztec/noir-acvm_js": "0.0.1-commit.b655e406",
41
- "@aztec/noir-contracts.js": "0.0.1-commit.b655e406",
42
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.b655e406",
43
- "@aztec/noir-types": "0.0.1-commit.b655e406",
44
- "@aztec/p2p": "0.0.1-commit.b655e406",
45
- "@aztec/protocol-contracts": "0.0.1-commit.b655e406",
46
- "@aztec/prover-client": "0.0.1-commit.b655e406",
47
- "@aztec/simulator": "0.0.1-commit.b655e406",
48
- "@aztec/slasher": "0.0.1-commit.b655e406",
49
- "@aztec/stdlib": "0.0.1-commit.b655e406",
50
- "@aztec/telemetry-client": "0.0.1-commit.b655e406",
51
- "@aztec/validator-client": "0.0.1-commit.b655e406",
52
- "@aztec/world-state": "0.0.1-commit.b655e406",
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:@spalladino/viem@2.38.2-eip7594.0"
55
+ "viem": "npm:@aztec/viem@2.38.2"
56
56
  },
57
57
  "devDependencies": {
58
- "@aztec/archiver": "0.0.1-commit.b655e406",
59
- "@aztec/kv-store": "0.0.1-commit.b655e406",
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 maxL1TxInclusionTimeIntoSlot =
158
- (config.maxL1TxInclusionTimeIntoSlot ?? isAnvilTestChain(config.l1ChainId)) ? ethereumSlotDuration - 1 : 0;
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.getBlock(await this.rollupContract.getBlockNumber());
59
- const earliestTimestamp = await this.rollupContract.getTimestampForSlot(lastBlock.slotNumber + 1n);
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?: bigint,
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
- slotNumber = await this.rollupContract.getSlotAt(ts);
110
+ slot = await this.rollupContract.getSlotAt(ts);
111
+ } else {
112
+ slot = slotNumber;
107
113
  }
108
114
 
109
- const timestamp = await this.rollupContract.getTimestampForSlot(slotNumber);
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
- slotFr,
124
+ slot,
121
125
  timestamp,
122
126
  coinbase,
123
127
  feeRecipient,
@@ -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, bigint>> = {};
26
+ private lastActions: Partial<Record<Action, SlotNumber>> = {};
26
27
 
27
28
  private logger: Logger;
28
29