@aztec-labs/aztec-node 6.0.0-rc.1 → 6.0.0-rc.2

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 (27) hide show
  1. package/dest/aztec-node/next_block/admission_min_fees.d.ts +16 -0
  2. package/dest/aztec-node/next_block/admission_min_fees.d.ts.map +1 -0
  3. package/dest/aztec-node/next_block/admission_min_fees.js +22 -0
  4. package/dest/aztec-node/next_block/index.d.ts +2 -1
  5. package/dest/aztec-node/next_block/index.d.ts.map +1 -1
  6. package/dest/aztec-node/next_block/index.js +1 -0
  7. package/dest/aztec-node/next_block/next_block_fee_cache.d.ts +1 -1
  8. package/dest/aztec-node/next_block/next_block_fee_cache.d.ts.map +1 -1
  9. package/dest/aztec-node/next_block/next_block_fee_cache.js +16 -2
  10. package/dest/aztec-node/next_block/next_block_predictor.d.ts +13 -3
  11. package/dest/aztec-node/next_block/next_block_predictor.d.ts.map +1 -1
  12. package/dest/aztec-node/next_block/next_block_predictor.js +25 -3
  13. package/dest/aztec-node/server.d.ts +4 -2
  14. package/dest/aztec-node/server.d.ts.map +1 -1
  15. package/dest/aztec-node/server.js +25 -1
  16. package/dest/factory.js +2 -2
  17. package/dest/modules/node_world_state_queries.d.ts +11 -4
  18. package/dest/modules/node_world_state_queries.d.ts.map +1 -1
  19. package/dest/modules/node_world_state_queries.js +39 -11
  20. package/package.json +27 -27
  21. package/src/aztec-node/next_block/admission_min_fees.ts +31 -0
  22. package/src/aztec-node/next_block/index.ts +1 -0
  23. package/src/aztec-node/next_block/next_block_fee_cache.ts +21 -2
  24. package/src/aztec-node/next_block/next_block_predictor.ts +33 -5
  25. package/src/aztec-node/server.ts +32 -1
  26. package/src/factory.ts +2 -2
  27. package/src/modules/node_world_state_queries.ts +52 -10
@@ -0,0 +1,16 @@
1
+ import type { BlockMinFeesProvider, GasFees, NextBlockMinFeesProvider, TxAdmissionMinFeesProvider } from '@aztec-labs/stdlib/gas';
2
+ /**
3
+ * The {@link TxAdmissionMinFeesProvider} handed to the p2p layer. Admission is priced against the next-block fee and
4
+ * falls back to the L1-forward fee while the next block cannot be priced, such as at a checkpoint boundary before
5
+ * the fee cache has refreshed or while L1 cannot be read. The fallback is only a floor: it can sit below the fee the
6
+ * next block ends up charging, which the pool's insufficient-fee sweep catches once the exact fee resolves.
7
+ */
8
+ export declare class AdmissionMinFeesProvider implements TxAdmissionMinFeesProvider {
9
+ private readonly nextBlock;
10
+ private readonly l1Forward;
11
+ constructor(nextBlock: NextBlockMinFeesProvider, l1Forward: BlockMinFeesProvider);
12
+ getNextBlockMinFees(): Promise<GasFees | undefined>;
13
+ getAdmissionMinFees(): Promise<GasFees>;
14
+ getL1ForwardMinFees(): Promise<GasFees>;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaXNzaW9uX21pbl9mZWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp0ZWMtbm9kZS9uZXh0X2Jsb2NrL2FkbWlzc2lvbl9taW5fZmVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFDVixvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDM0IsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQzs7Ozs7R0FLRztBQUNILHFCQUFhLHdCQUF5QixZQUFXLDBCQUEwQjtJQUV2RSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0lBRjVCLFlBQ21CLFNBQVMsRUFBRSx3QkFBd0IsRUFDbkMsU0FBUyxFQUFFLG9CQUFvQixFQUM5QztJQUVHLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLENBRXpEO0lBRVksbUJBQW1CLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUVuRDtJQUVNLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFN0M7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admission_min_fees.d.ts","sourceRoot":"","sources":["../../../src/aztec-node/next_block/admission_min_fees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,OAAO,EACP,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,0BAA0B;IAEvE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAF5B,YACmB,SAAS,EAAE,wBAAwB,EACnC,SAAS,EAAE,oBAAoB,EAC9C;IAEG,mBAAmB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAEzD;IAEY,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEnD;IAEM,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE7C;CACF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The {@link TxAdmissionMinFeesProvider} handed to the p2p layer. Admission is priced against the next-block fee and
3
+ * falls back to the L1-forward fee while the next block cannot be priced, such as at a checkpoint boundary before
4
+ * the fee cache has refreshed or while L1 cannot be read. The fallback is only a floor: it can sit below the fee the
5
+ * next block ends up charging, which the pool's insufficient-fee sweep catches once the exact fee resolves.
6
+ */ export class AdmissionMinFeesProvider {
7
+ nextBlock;
8
+ l1Forward;
9
+ constructor(nextBlock, l1Forward){
10
+ this.nextBlock = nextBlock;
11
+ this.l1Forward = l1Forward;
12
+ }
13
+ getNextBlockMinFees() {
14
+ return this.nextBlock.getNextBlockMinFees();
15
+ }
16
+ async getAdmissionMinFees() {
17
+ return await this.nextBlock.getNextBlockMinFees() ?? await this.l1Forward.getCurrentMinFees();
18
+ }
19
+ getL1ForwardMinFees() {
20
+ return this.l1Forward.getCurrentMinFees();
21
+ }
22
+ }
@@ -1,4 +1,5 @@
1
+ export * from './admission_min_fees.js';
1
2
  export * from './next_block_fee_cache.js';
2
3
  export * from './next_block_planner.js';
3
4
  export * from './next_block_predictor.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henRlYy1ub2RlL25leHRfYmxvY2svaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUMifQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henRlYy1ub2RlL25leHRfYmxvY2svaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aztec-node/next_block/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aztec-node/next_block/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './admission_min_fees.js';
1
2
  export * from './next_block_fee_cache.js';
2
3
  export * from './next_block_planner.js';
3
4
  export * from './next_block_predictor.js';
@@ -107,4 +107,4 @@ export declare class NextBlockFeeCache {
107
107
  */
108
108
  private buildOverridesPlan;
109
109
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dF9ibG9ja19mZWVfY2FjaGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henRlYy1ub2RlL25leHRfYmxvY2svbmV4dF9ibG9ja19mZWVfY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBR3BCLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBa0IsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRixPQUFPLEtBQUssRUFBZSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkYsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlGLE9BQU8sRUFDTCxLQUFLLGNBQWMsRUFNcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQywrRUFBK0U7QUFDL0UsZUFBTyxNQUFNLDJCQUEyQixPQUFPLENBQUM7QUFFaEQ7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSxpQkFBaUIsS0FBSyxDQUFDO0FBYXBDLGtFQUFrRTtBQUNsRSxNQUFNLFdBQVcscUJBQXFCO0lBQ3BDLFdBQVcsRUFBRSxhQUFhLENBQUM7SUFDM0IscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7SUFDN0M7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsRUFBRSxjQUFjLENBQUM7SUFDaEMsVUFBVSxFQUFFLG1CQUFtQixDQUFDO0lBQ2hDLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDO0lBQy9DLFlBQVksRUFBRSxZQUFZLENBQUM7SUFDM0IsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxxQkFBYSxpQkFBaUI7SUFDNUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQWdCO0lBQzVDLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQXdCO0lBQzlELE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUE2QjtJQUM1RCxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBc0I7SUFDakQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBK0I7SUFDaEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQWU7SUFDNUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQVM7SUFFN0IsT0FBTyxDQUFDLE9BQU8sQ0FBZ0M7SUFDL0MsT0FBTyxDQUFDLFFBQVEsQ0FBZ0M7SUFDaEQsT0FBTyxDQUFDLGlCQUFpQixDQUErQjtJQUN4RCxPQUFPLENBQUMsV0FBVyxDQUE2QjtJQUNoRCxPQUFPLENBQUMsZUFBZSxDQUE0QjtJQUVuRCxZQUFZLElBQUksRUFBRSxxQkFBcUIsRUFRdEM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsU0FBOEIsR0FBRyxJQUFJLENBTWxFO0lBRVksSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNakM7SUFFRDs7Ozs7O09BTUc7SUFDVSxrQkFBa0IsQ0FDN0IsR0FBRyxFQUFFLGNBQWMsRUFDbkIsUUFBUSxFQUFFLFVBQVUsRUFDcEIsSUFBSSxDQUFDLEVBQUU7UUFBRSxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxHQUM1QixPQUFPLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDLENBY2hEO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVluRDtZQUVhLFVBQVU7SUF1Q3hCLDRGQUE0RjtJQUM1RixPQUFPLENBQUMsVUFBVTtJQVFsQix5R0FBeUc7SUFDekcsT0FBTyxDQUFDLE9BQU87SUFNZjs7Ozs7Ozs7OztPQVVHO0lBQ0gsT0FBTyxDQUFDLGtCQUFrQjtDQThCM0IifQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dF9ibG9ja19mZWVfY2FjaGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henRlYy1ub2RlL25leHRfYmxvY2svbmV4dF9ibG9ja19mZWVfY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBR3BCLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBa0IsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRixPQUFPLEtBQUssRUFBZSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkYsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlGLE9BQU8sRUFDTCxLQUFLLGNBQWMsRUFNcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQywrRUFBK0U7QUFDL0UsZUFBTyxNQUFNLDJCQUEyQixPQUFPLENBQUM7QUFFaEQ7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSxpQkFBaUIsS0FBSyxDQUFDO0FBYXBDLGtFQUFrRTtBQUNsRSxNQUFNLFdBQVcscUJBQXFCO0lBQ3BDLFdBQVcsRUFBRSxhQUFhLENBQUM7SUFDM0IscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7SUFDN0M7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsRUFBRSxjQUFjLENBQUM7SUFDaEMsVUFBVSxFQUFFLG1CQUFtQixDQUFDO0lBQ2hDLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDO0lBQy9DLFlBQVksRUFBRSxZQUFZLENBQUM7SUFDM0IsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2Q7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxxQkFBYSxpQkFBaUI7SUFDNUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQWdCO0lBQzVDLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQXdCO0lBQzlELE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUE2QjtJQUM1RCxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBc0I7SUFDakQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBK0I7SUFDaEUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQWU7SUFDNUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQVM7SUFFN0IsT0FBTyxDQUFDLE9BQU8sQ0FBZ0M7SUFDL0MsT0FBTyxDQUFDLFFBQVEsQ0FBZ0M7SUFDaEQsT0FBTyxDQUFDLGlCQUFpQixDQUErQjtJQUN4RCxPQUFPLENBQUMsV0FBVyxDQUE2QjtJQUNoRCxPQUFPLENBQUMsZUFBZSxDQUE0QjtJQUVuRCxZQUFZLElBQUksRUFBRSxxQkFBcUIsRUFRdEM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsU0FBOEIsR0FBRyxJQUFJLENBTWxFO0lBRVksSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNakM7SUFFRDs7Ozs7O09BTUc7SUFDVSxrQkFBa0IsQ0FDN0IsR0FBRyxFQUFFLGNBQWMsRUFDbkIsUUFBUSxFQUFFLFVBQVUsRUFDcEIsSUFBSSxDQUFDLEVBQUU7UUFBRSxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxHQUM1QixPQUFPLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDLENBY2hEO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVluRDtZQUVhLFVBQVU7SUF1Q3hCLDRGQUE0RjtJQUM1RixPQUFPLENBQUMsVUFBVTtJQVFsQix5R0FBeUc7SUFDekcsT0FBTyxDQUFDLE9BQU87SUFNZjs7Ozs7Ozs7OztPQVVHO0lBQ0gsT0FBTyxDQUFDLGtCQUFrQjtDQWlEM0IifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"next_block_fee_cache.d.ts","sourceRoot":"","sources":["../../../src/aztec-node/next_block/next_block_fee_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,8BAA8B,CAAC;AAEjF,OAAO,KAAK,EAAe,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EACL,KAAK,cAAc,EAMpB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAapC,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,aAAa,CAAC;IAC3B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,mBAAmB,CAAC;IAChC,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,eAAe,CAA4B;IAEnD,YAAY,IAAI,EAAE,qBAAqB,EAQtC;IAED;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,SAA8B,GAAG,IAAI,CAMlE;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjC;IAED;;;;;;OAMG;IACU,kBAAkB,CAC7B,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAchD;IAED;;;;OAIG;IACI,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnD;YAEa,UAAU;IAuCxB,4FAA4F;IAC5F,OAAO,CAAC,UAAU;IAQlB,yGAAyG;IACzG,OAAO,CAAC,OAAO;IAMf;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;CA8B3B"}
1
+ {"version":3,"file":"next_block_fee_cache.d.ts","sourceRoot":"","sources":["../../../src/aztec-node/next_block/next_block_fee_cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,8BAA8B,CAAC;AAEjF,OAAO,KAAK,EAAe,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EACL,KAAK,cAAc,EAMpB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAapC,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,aAAa,CAAC;IAC3B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,mBAAmB,CAAC;IAChC,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,eAAe,CAA4B;IAEnD,YAAY,IAAI,EAAE,qBAAqB,EAQtC;IAED;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,SAA8B,GAAG,IAAI,CAMlE;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjC;IAED;;;;;;OAMG;IACU,kBAAkB,CAC7B,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAchD;IAED;;;;OAIG;IACI,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnD;YAEa,UAAU;IAuCxB,4FAA4F;IAC5F,OAAO,CAAC,UAAU;IAQlB,yGAAyG;IACzG,OAAO,CAAC,OAAO;IAMf;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;CAiD3B"}
@@ -176,11 +176,25 @@ import { boundaryFeeKeyEquals, computeBoundaryFeeKey, getClockSlot, planNextBloc
176
176
  */ buildOverridesPlan(frontier, newCheckpoint) {
177
177
  const { targetCheckpoint, proposedCheckpointData, checkpointedCheckpointNumber } = newCheckpoint;
178
178
  const rollup = this.rollupContract;
179
- if (!rollup) {
180
- return Promise.resolve(new SimulationOverridesBuilder().withChainTips({
179
+ const pinnedTips = ()=>Promise.resolve(new SimulationOverridesBuilder().withChainTips({
181
180
  pending: checkpointedCheckpointNumber,
182
181
  proven: checkpointedCheckpointNumber
183
182
  }).build());
183
+ if (!rollup) {
184
+ return pinnedTips();
185
+ }
186
+ // A pipelined plan derives the proposed parent's fee header from the grandparent's on-chain `tempCheckpointLogs`
187
+ // cell, so it can only be built while the parent is the checkpointed tip's immediate child. The frontier runs
188
+ // further ahead whenever a proposer builds on a checkpoint whose publication has not been mined yet, which every
189
+ // node then sees through gossip, and L1 keeps no cell for a checkpoint it has not seen: the read reverts with
190
+ // `Rollup__UnavailableTempCheckpointLog` and takes the whole refresh, and every simulation joined to it, down.
191
+ // Price that boundary on the checkpointed tip instead. The fee then lags by the checkpoints in flight (two at
192
+ // this depth, one more than the fee projections cover), rather than being unavailable for the rest of the window.
193
+ // Quoting a fee that may be off is deliberate: the quote feeds simulation, and a simulation that runs on an
194
+ // approximate fee is more useful than one that fails because the exact fee cannot be derived yet.
195
+ if (proposedCheckpointData && proposedCheckpointData.checkpointNumber !== checkpointedCheckpointNumber + 1) {
196
+ this.log.debug(`Pricing the next-block boundary on checkpointed tip ${checkpointedCheckpointNumber}: proposed parent ` + `${proposedCheckpointData.checkpointNumber} is more than one checkpoint ahead of it`);
197
+ return pinnedTips();
184
198
  }
185
199
  // The helper treats pipelining and invalidation as mutually exclusive; a proposed parent takes precedence.
186
200
  const validationStatus = frontier.pendingChainValidationStatus;
@@ -1,7 +1,7 @@
1
1
  import type { EpochCacheInterface } from '@aztec-labs/epoch-cache';
2
2
  import { type Logger } from '@aztec-labs/foundation/log';
3
3
  import type { L1SyncPoint, L2BlockSource, L2Frontier } from '@aztec-labs/stdlib/block';
4
- import type { GasFees } from '@aztec-labs/stdlib/gas';
4
+ import type { GasFees, NextBlockMinFeesProvider } from '@aztec-labs/stdlib/gas';
5
5
  import { GlobalVariables } from '@aztec-labs/stdlib/tx';
6
6
  import { NextBlockFeeCache, type NextBlockFeeCacheDeps } from './next_block_fee_cache.js';
7
7
  import { type NextBlockPlan } from './next_block_planner.js';
@@ -36,7 +36,7 @@ export interface NextBlockPredictorDeps {
36
36
  * Deliberately not used by the sequencer: its slot policy is stricter (it declines to build rather than
37
37
  * predicting inclusion) and a stale fee would make L1 reject its checkpoint.
38
38
  */
39
- export declare class NextBlockPredictor {
39
+ export declare class NextBlockPredictor implements NextBlockMinFeesProvider {
40
40
  private readonly blockSource;
41
41
  private readonly feeCache;
42
42
  private readonly epochCache;
@@ -78,6 +78,16 @@ export declare class NextBlockPredictor {
78
78
  fees: GasFees;
79
79
  l1SyncPoint: L1SyncPoint | undefined;
80
80
  } | undefined>;
81
+ /**
82
+ * The same fee as {@link quoteMinFees}, for transaction admission rather than for a wallet, and answered
83
+ * from what the cache already holds: this runs per gossiped transaction and per pool revalidation, where
84
+ * every caller has a policy for an unavailable fee, so waiting on a refresh would only convert a pricing
85
+ * outage into gossip backpressure. A boundary miss still starts the shared refresh, so a later transaction
86
+ * is priced from the record it populates. An archiver or L1 failure is reported as undefined rather than
87
+ * thrown, since no admission caller can act on the exception.
88
+ */
89
+ getNextBlockMinFees(): Promise<GasFees | undefined>;
90
+ private minFees;
81
91
  private planFromFrontier;
82
92
  /**
83
93
  * The header comes from the same snapshot as the tips, so it cannot describe a different block than the
@@ -88,4 +98,4 @@ export declare class NextBlockPredictor {
88
98
  */
89
99
  private copyGlobalsFromLatestBlock;
90
100
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dF9ibG9ja19wcmVkaWN0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henRlYy1ub2RlL25leHRfYmxvY2svbmV4dF9ibG9ja19wcmVkaWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQXNELE1BQU0seUJBQXlCLENBQUM7QUFFakg7OztHQUdHO0FBQ0gsZUFBTyxNQUFNLGlCQUFpQixPQUFPLENBQUM7QUFFdEMsMEdBQTBHO0FBQzFHLE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUNoQyxJQUFJLEVBQUUsYUFBYSxDQUFDO0lBQ3BCLGtHQUFrRztJQUNsRyxRQUFRLEVBQUUsVUFBVSxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxlQUFlLENBQUM7Q0FDMUIsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRSxNQUFNLFdBQVcsc0JBQXNCO0lBQ3JDLFdBQVcsRUFBRSxhQUFhLENBQUM7SUFDM0IsUUFBUSxFQUFFLGlCQUFpQixDQUFDO0lBQzVCLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQztJQUNoQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZDtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gscUJBQWEsa0JBQWtCO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFnQjtJQUM1QyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBb0I7SUFDN0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQXNCO0lBQ2pELE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFTO0lBRTdCLFlBQVksSUFBSSxFQUFFLHNCQUFzQixFQUt2QztJQUVEOzs7O09BSUc7SUFDSCxPQUFjLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEdBQUcsa0JBQWtCLENBUXBFO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFN0M7SUFFTSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUzQjtJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ1UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQVluRDtJQUVEOzs7Ozs7O09BT0c7SUFDVSxZQUFZLElBQUksT0FBTyxDQUFDO1FBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsU0FBUyxDQUFBO0tBQUUsR0FBRyxTQUFTLENBQUMsQ0FleEc7WUFHYSxnQkFBZ0I7SUFPOUI7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUFDLDBCQUEwQjtDQVFuQyJ9
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dF9ibG9ja19wcmVkaWN0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henRlYy1ub2RlL25leHRfYmxvY2svbmV4dF9ibG9ja19wcmVkaWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQXNELE1BQU0seUJBQXlCLENBQUM7QUFFakg7OztHQUdHO0FBQ0gsZUFBTyxNQUFNLGlCQUFpQixPQUFPLENBQUM7QUFFdEMsMEdBQTBHO0FBQzFHLE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUNoQyxJQUFJLEVBQUUsYUFBYSxDQUFDO0lBQ3BCLGtHQUFrRztJQUNsRyxRQUFRLEVBQUUsVUFBVSxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxlQUFlLENBQUM7Q0FDMUIsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRSxNQUFNLFdBQVcsc0JBQXNCO0lBQ3JDLFdBQVcsRUFBRSxhQUFhLENBQUM7SUFDM0IsUUFBUSxFQUFFLGlCQUFpQixDQUFDO0lBQzVCLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQztJQUNoQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZDtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gscUJBQWEsa0JBQW1CLFlBQVcsd0JBQXdCO0lBQ2pFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFnQjtJQUM1QyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBb0I7SUFDN0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQXNCO0lBQ2pELE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFTO0lBRTdCLFlBQVksSUFBSSxFQUFFLHNCQUFzQixFQUt2QztJQUVEOzs7O09BSUc7SUFDSCxPQUFjLE1BQU0sQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEdBQUcsa0JBQWtCLENBUXBFO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFN0M7SUFFTSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUUzQjtJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ1UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQVluRDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxZQUFZLElBQUksT0FBTyxDQUFDO1FBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsU0FBUyxDQUFBO0tBQUUsR0FBRyxTQUFTLENBQUMsQ0FFbEc7SUFFRDs7Ozs7OztPQU9HO0lBQ1UsbUJBQW1CLElBQUksT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FPL0Q7WUFPYSxPQUFPO1lBb0JQLGdCQUFnQjtJQU85Qjs7Ozs7O09BTUc7SUFDSCxPQUFPLENBQUMsMEJBQTBCO0NBUW5DIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"next_block_predictor.d.ts","sourceRoot":"","sources":["../../../src/aztec-node/next_block/next_block_predictor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,KAAK,aAAa,EAAsD,MAAM,yBAAyB,CAAC;AAEjH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,0GAA0G;AAC1G,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,kGAAkG;IAClG,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,mEAAmE;AACnE,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,aAAa,CAAC;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,mBAAmB,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YAAY,IAAI,EAAE,sBAAsB,EAKvC;IAED;;;;OAIG;IACH,OAAc,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,kBAAkB,CAQpE;IAEM,KAAK,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAE7C;IAEM,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED;;;;;;;;;;;;;;OAcG;IACU,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAYnD;IAED;;;;;;;OAOG;IACU,YAAY,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC,CAexG;YAGa,gBAAgB;IAO9B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;CAQnC"}
1
+ {"version":3,"file":"next_block_predictor.d.ts","sourceRoot":"","sources":["../../../src/aztec-node/next_block/next_block_predictor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,KAAK,aAAa,EAAsD,MAAM,yBAAyB,CAAC;AAEjH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,0GAA0G;AAC1G,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,kGAAkG;IAClG,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,mEAAmE;AACnE,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,aAAa,CAAC;IAC3B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,mBAAmB,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,YAAW,wBAAwB;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YAAY,IAAI,EAAE,sBAAsB,EAKvC;IAED;;;;OAIG;IACH,OAAc,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,kBAAkB,CAQpE;IAEM,KAAK,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAE7C;IAEM,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED;;;;;;;;;;;;;;OAcG;IACU,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAYnD;IAED;;;;;;;OAOG;IACI,YAAY,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC,CAElG;IAED;;;;;;;OAOG;IACU,mBAAmB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAO/D;YAOa,OAAO;YAoBP,gBAAgB;IAO9B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;CAQnC"}
@@ -95,12 +95,34 @@ import { computeBoundaryFeeKey, getClockSlot, planNextBlock } from './next_block
95
95
  * has nothing usable, in which case the caller falls back to the fee provider's projections alone.
96
96
  *
97
97
  * Returns the L1 block the answer describes so the caller can tag its own fee reads with the same anchor.
98
- */ async quoteMinFees() {
98
+ */ quoteMinFees() {
99
+ return this.minFees(QUOTE_MAX_WAIT_MS);
100
+ }
101
+ /**
102
+ * The same fee as {@link quoteMinFees}, for transaction admission rather than for a wallet, and answered
103
+ * from what the cache already holds: this runs per gossiped transaction and per pool revalidation, where
104
+ * every caller has a policy for an unavailable fee, so waiting on a refresh would only convert a pricing
105
+ * outage into gossip backpressure. A boundary miss still starts the shared refresh, so a later transaction
106
+ * is priced from the record it populates. An archiver or L1 failure is reported as undefined rather than
107
+ * thrown, since no admission caller can act on the exception.
108
+ */ async getNextBlockMinFees() {
109
+ try {
110
+ return (await this.minFees(0))?.fees;
111
+ } catch (err) {
112
+ this.log.debug(`Failed to resolve the next-block min fee`, err);
113
+ return undefined;
114
+ }
115
+ }
116
+ /**
117
+ * The fee the next block would carry, with the L1 block that answer describes. Mid-checkpoint it is the
118
+ * in-progress checkpoint's frozen fee, read straight off the proposed tip's header with no L1 involved; at a
119
+ * boundary it is the cached L1 price, waited on for at most `maxWaitMs`.
120
+ */ async minFees(maxWaitMs) {
99
121
  const { frontier, plan, key } = await this.planFromFrontier();
100
122
  if (!key) {
101
123
  const fees = frontier.latestBlockHeader?.globalVariables.gasFees;
102
124
  if (!fees) {
103
- this.log.warn(`Cannot quote the next block fee: frontier reports no header for its proposed tip`, {
125
+ this.log.debug(`Cannot price the next block: frontier reports no header for its proposed tip`, {
104
126
  blockNumber: plan.latestBlockNumber
105
127
  });
106
128
  return undefined;
@@ -111,7 +133,7 @@ import { computeBoundaryFeeKey, getClockSlot, planNextBlock } from './next_block
111
133
  };
112
134
  }
113
135
  const checkpointGlobals = await this.feeCache.getBoundaryGlobals(key, frontier, {
114
- maxWaitMs: QUOTE_MAX_WAIT_MS
136
+ maxWaitMs
115
137
  });
116
138
  return checkpointGlobals ? {
117
139
  fees: checkpointGlobals.gasFees,
@@ -16,7 +16,7 @@ import { AutomineSequencer } from '@aztec-labs/sequencer-client/automine';
16
16
  import type { AvmSimulator } from '@aztec-labs/simulator/server';
17
17
  import type { SlasherClientInterface } from '@aztec-labs/slasher';
18
18
  import { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
19
- import { type BlockData, BlockHash, type BlockParameter, type CheckpointsQuery, type DataInBlock, type L2BlockSource, type L2BlockTag, type L2Tips } from '@aztec-labs/stdlib/block';
19
+ import { type ArchiveBlockParameter, type BlockData, BlockHash, type BlockParameter, type CheckpointsQuery, type DataInBlock, type L2BlockSource, type L2BlockTag, type L2Tips } from '@aztec-labs/stdlib/block';
20
20
  import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress, NodeInfo, ProtocolContractAddresses } from '@aztec-labs/stdlib/contract';
21
21
  import type { L1RollupConstants } from '@aztec-labs/stdlib/epoch-helpers';
22
22
  import { GasFees, type ManaUsageEstimate } from '@aztec-labs/stdlib/gas';
@@ -244,6 +244,7 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Azte
244
244
  getTxsByHash(txHashes: TxHash[], options?: GetTxByHashOptions): Promise<Tx[]>;
245
245
  findLeavesIndexes(referenceBlock: BlockParameter, treeId: MerkleTreeId, leafValues: Fr[]): Promise<(DataInBlock<bigint> | undefined)[]>;
246
246
  getBlockHashMembershipWitness(referenceBlock: BlockParameter, blockHash: BlockHash): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
247
+ getBlockHashMembershipWitnessAtArchive(reference: ArchiveBlockParameter, blockHash: BlockHash): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
247
248
  getNoteHashMembershipWitness(referenceBlock: BlockParameter, noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
248
249
  getL1ToL2MessageMembershipWitness(referenceBlock: BlockParameter, l1ToL2Message: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>] | undefined>;
249
250
  getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
@@ -281,6 +282,7 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Azte
281
282
  isSimulation?: boolean;
282
283
  skipFeeEnforcement?: boolean;
283
284
  }): Promise<TxValidationResult>;
285
+ private getNextBlockMinFees;
284
286
  getConfig(): Promise<AztecNodeAdminConfig>;
285
287
  setConfig(config: Partial<AztecNodeAdminConfig>): Promise<void>;
286
288
  getProtocolContractAddresses(): Promise<ProtocolContractAddresses>;
@@ -308,4 +310,4 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Azte
308
310
  */
309
311
  protected getWorldState(block: BlockParameter): Promise<import("@aztec-labs/stdlib/trees").MerkleTreeReadOperations>;
310
312
  }
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssd0JBQXdCLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xILE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUEyQixNQUFNLDRDQUE0QyxDQUFDO0FBQy9HLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLEtBQUssc0JBQXNCLEVBQzNCLFdBQVcsRUFDWCxVQUFVLEVBQ1gsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR2hFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUl2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBaUMsTUFBTSwyQkFBMkIsQ0FBQztBQUUzRixPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQTRFLE1BQU0saUJBQWlCLENBQUM7QUFFckgsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFD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
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssd0JBQXdCLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xILE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUEyQixNQUFNLDRDQUE0QyxDQUFDO0FBQy9HLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLEtBQUssc0JBQXNCLEVBQzNCLFdBQVcsRUFDWCxVQUFVLEVBQ1gsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR2hFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUl2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBaUMsTUFBTSwyQkFBMkIsQ0FBQztBQUUzRixPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQTRFLE1BQU0saUJBQWlCLENBQUM7QUFFckgsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/aztec-node/server.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,KAAK,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,KAAK,mBAAmB,EAA2B,MAAM,4CAA4C,CAAC;AAC/G,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,WAAW,EACX,UAAU,EACX,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAGhE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAiC,MAAM,2BAA2B,CAAC;AAE3F,OAAO,EAAE,KAAK,GAAG,EAA4E,MAAM,iBAAiB,CAAC;AAErH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EACL,KAAK,SAAS,EACd,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,MAAM,EAEZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,QAAQ,EACR,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,wBAAwB,CAAC;AAChG,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EACjB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,6BAA6B,EAClC,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAE5B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE3G,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,IAAI,8BAA8B,EAC5D,KAAK,eAAe,EACpB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,EAAE,EACF,KAAK,yBAAyB,EAC9B,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAuB,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAOpF,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,kBAAkB,EAAqB,MAAM,uBAAuB,CAAC;AAInF;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,UAAU,EAAE,YAAY,CAAC;IACzB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC,aAAa,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAClD,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,8BAA8B,CAAC;IACtD,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,UAAU,EAAE,mBAAmB,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,6BAA6B,CAAC;IACjD,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAItC,YAAY,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;CAC/C;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS;;IAC3F,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,6BAA6B,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA2B;IACpE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IAExD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC5D,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACrE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;IACzE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAC1C,OAAO,CAAC,iBAAiB,CAAgC;IACzD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAC,CAAsB;IACzC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAiC;IAE/D,YAAY,IAAI,EAAE,oBAAoB,EAqFrC;IAED,wEAAsE;IAC/D,gBAAgB,IAAI,6BAA6B,CAEvD;IAEY,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAGpE;IAEM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAErC;IAEM,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAElD;IAEM,qBAAqB,oCAE3B;IAEM,sBAAsB,qCAE5B;IAEM,oBAAoB,gCAE1B;IAEM,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,qEAEhD;IAEY,cAAc,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAKlE;IAEY,mBAAmB,CAAC,GAAG,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAW/E;IAEM,QAAQ,CAAC,IAAI,SAAS,mBAAmB,GAAG,EAAE,EACnD,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,IAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAE1C;IAEM,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAEzE;IAEM,SAAS,CAAC,IAAI,SAAS,oBAAoB,GAAG,EAAE,EACrD,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,IAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAEhC;IAEM,aAAa,CAAC,IAAI,SAAS,wBAAwB,GAAG,EAAE,EAC7D,KAAK,EAAE,mBAAmB,EAC1B,OAAO,GAAE,IAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAE/C;IAEM,cAAc,CAAC,IAAI,SAAS,wBAAwB,GAAG,EAAE,EAC9D,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,IAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAErC;IAED;;;OAGG;IACI,YAAY,IAAI,eAAe,GAAG,SAAS,CAEjD;IAED,sFAAsF;IAC/E,oBAAoB,IAAI,iBAAiB,GAAG,SAAS,CAE3D;IAED,qDAAqD;IAC9C,aAAa,IAAI,UAAU,GAAG,SAAS,CAE7C;IAED;;;OAGG;IACI,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAEvD;IAEM,cAAc,IAAI,aAAa,CAErC;IAEM,qBAAqB,IAAI,kBAAkB,CAEjD;IAEM,MAAM,IAAI,GAAG,CAEnB;IAED;;;OAGG;IACI,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAE5D;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAElD;IAEY,qBAAqB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAE9D;IAED;;;OAGG;IACI,OAAO,qBAEb;IAEY,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,CA8B5C;IAEY,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEjD;IAED;;;;;;;;;;;;;OAaG;IACU,mBAAmB,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAalF;IAEY,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAGlD;IAED;;;OAGG;IACI,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAEvC;IAED;;;OAGG;IACI,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnC;IAED;;;OAGG;IACI,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnC;IAEM,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAExE;IAEY,WAAW,CACtB,OAAO,EAAE,YAAY,EACrB,cAAc,GAAE,cAAyB,GACxC,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAQlD;IAEM,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAE3E;IAEM,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAEzE;IAED;;;OAGG;IACU,MAAM,CAAC,EAAE,EAAE,EAAE,iBAEzB;IAiCM,YAAY,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAE1C;IAEM,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEvE;IAED;;OAEG;IACU,IAAI,kBAoBhB;IAED;;;OAGG;IACI,aAAa,IAAI,mBAAmB,GAAG,SAAS,CAEtD;IAED;;;;;OAKG;IACI,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAEhG;IAEM,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAE1C;IAEM,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAE7D;IAEM,gCAAgC,CACrC,IAAI,EAAE,UAAU,EAChB,mBAAmB,CAAC,EAAE,sBAAsB,GAC3C,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAElC;IAEM,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEtE;IAED;;;;;;OAMG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAExF;IAED;;;;;;OAMG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAGzF;IAEM,iBAAiB,CACtB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,EAAE,EAAE,GACf,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAE9C;IAEM,6BAA6B,CAClC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,iBAAiB,CAAC,OAAO,cAAc,CAAC,GAAG,SAAS,CAAC,CAE/D;IAEM,4BAA4B,CACjC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,EAAE,GACX,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,GAAG,SAAS,CAAC,CAEtE;IAEM,iCAAiC,CACtC,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,EAAE,GAChB,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAC,GAAG,SAAS,CAAC,CAE7E;IAEM,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE3E;IAED;;;;;;;OAOG;IACI,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAEhE;IAED;;;OAGG;IACI,0BAA0B,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,EAAE,EACX,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAE9C;IAED;;;OAGG;IACI,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAElG;IAEM,6BAA6B,CAClC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAEjD;IAEM,gCAAgC,CACrC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC,CAEjD;IAEM,oBAAoB,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAEhH;IAEM,kBAAkB,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAEvG;IAED;;;;;QAKI;IAIG,mBAAmB,CACxB,EAAE,EAAE,EAAE,EACN,kBAAkB,UAAQ,EAC1B,SAAS,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAEjC;IAEY,SAAS,CACpB,EAAE,EAAE,EAAE,EACN,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAO,GAClG,OAAO,CAAC,kBAAkB,CAAC,CAmC7B;IAEM,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAIhD;IAEY,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3E;IAEM,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAOxE;IAEM,kCAAkC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7E;IAEM,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAEpD;IAEM,iBAAiB,CACtB,gBAAgB,EAAE,UAAU,EAC5B,QAAQ,CAAC,EAAE,UAAU,EACrB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAE3C;IAED,iGAAiG;IAC1F,sBAAsB,CAC3B,kBAAkB,EAAE,UAAU,EAAE,EAChC,QAAQ,CAAC,EAAE,UAAU,EACrB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,CAK1C;IAEY,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ChE;IAEY,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCnG;IAEY,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAItC;IAEM,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKjC;IAEM,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBrC;IAEM,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAetC;IAEM,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAS7E;IAEY,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsF3C;IAEY,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAoCtC;IAEY,KAAK,CAAC,cAAc,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAK/E;IAEY,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvE;IAEY,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE;IAED;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,wEAE5C;CACF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/aztec-node/server.ts"],"names":[],"mappings":"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"}
@@ -877,6 +877,9 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
877
877
  getBlockHashMembershipWitness(referenceBlock, blockHash) {
878
878
  return this.worldStateQueries.getBlockHashMembershipWitness(referenceBlock, blockHash);
879
879
  }
880
+ getBlockHashMembershipWitnessAtArchive(reference, blockHash) {
881
+ return this.worldStateQueries.getBlockHashMembershipWitnessAtArchive(reference, blockHash);
882
+ }
880
883
  getNoteHashMembershipWitness(referenceBlock, noteHash) {
881
884
  return this.worldStateQueries.getNoteHashMembershipWitness(referenceBlock, noteHash);
882
885
  }
@@ -947,7 +950,7 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
947
950
  ...await getDefaultAllowedSetupFunctions(),
948
951
  ...this.config.txPublicSetupAllowListExtend ?? []
949
952
  ],
950
- gasFees: await this.getCurrentMinFees(),
953
+ gasFees: skipFeeEnforcement ? GasFees.empty() : await this.getNextBlockMinFees(),
951
954
  skipFeeEnforcement,
952
955
  isSimulation,
953
956
  txsPermitted: !this.config.disableTransactions,
@@ -956,6 +959,27 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
956
959
  }, this.log.getBindings());
957
960
  return await validator.validateTx(tx);
958
961
  }
962
+ /**
963
+ * The fee the next block will charge, for RPC admission: a transaction has to be priced against the block it
964
+ * would actually enter, and the L1-forward projection cannot stand in for a fee an in-progress checkpoint
965
+ * already froze. Quotes rather than the relay path's cache-first read, so a single submission waits out a
966
+ * boundary refresh instead of being rejected.
967
+ *
968
+ * Falls back to the L1-forward fee when the next block cannot be priced, which happens whenever this node's
969
+ * chain has run far enough ahead of L1 that the upcoming boundary's parent state is not readable there yet.
970
+ * That is common enough that rejecting every submission for its duration would be worse than admitting
971
+ * against the looser price: the pool sweeps a transaction the next block cannot afford once the fee resolves.
972
+ */ async getNextBlockMinFees() {
973
+ const quote = await this.nextBlockPredictor.quoteMinFees().catch((err)=>{
974
+ this.log.warn(`Failed to compute the next-block min fee for tx admission`, err);
975
+ return undefined;
976
+ });
977
+ if (quote) {
978
+ return quote.fees;
979
+ }
980
+ this.log.verbose(`Admitting txs against the L1-forward min fee: the next block's fee is unavailable`);
981
+ return await this.feeProvider.getCurrentMinFees();
982
+ }
959
983
  getConfig() {
960
984
  const schema = AztecNodeAdminConfigSchema;
961
985
  const keys = schema.keyof().options;
package/dest/factory.js CHANGED
@@ -30,7 +30,7 @@ import { FullNodeCheckpointsBuilder as CheckpointsBuilder, FullNodeCheckpointsBu
30
30
  import { createWorldState, createWorldStateSynchronizer } from '@aztec-labs/world-state';
31
31
  import { createPublicClient } from 'viem';
32
32
  import { createKeyStoreForValidator } from './aztec-node/config.js';
33
- import { NextBlockPredictor } from './aztec-node/next_block/index.js';
33
+ import { AdmissionMinFeesProvider, NextBlockPredictor } from './aztec-node/next_block/index.js';
34
34
  import { AztecNodeService } from './aztec-node/server.js';
35
35
  import { createSentinel } from './sentinel/factory.js';
36
36
  /**
@@ -220,7 +220,7 @@ import { createSentinel } from './sentinel/factory.js';
220
220
  }
221
221
  }
222
222
  // create the tx pool and the p2p client, which will need the l2 block source
223
- const p2pClient = await createP2PClient(config, archiver, peerProofVerifier, worldStateSynchronizer, epochCache, feeProvider, packageVersion, dateProvider, telemetry, deps.p2pClientDeps, initialBlockHash);
223
+ const p2pClient = await createP2PClient(config, archiver, peerProofVerifier, worldStateSynchronizer, epochCache, new AdmissionMinFeesProvider(nextBlockPredictor, feeProvider), packageVersion, dateProvider, telemetry, deps.p2pClientDeps, initialBlockHash);
224
224
  started.push(p2pClient);
225
225
  archiver.setCheckpointProposalPresence(p2pClient);
226
226
  // We'll accumulate sentinel watchers here
@@ -4,8 +4,8 @@ import { Fr } from '@aztec-labs/foundation/curves/bn254';
4
4
  import { type Logger } from '@aztec-labs/foundation/log';
5
5
  import { MembershipWitness, type SiblingPath } from '@aztec-labs/foundation/trees';
6
6
  import type { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
7
- import { type BlockHash, type BlockParameter, type DataInBlock, type L2BlockSource } from '@aztec-labs/stdlib/block';
8
- import type { WorldStateSynchronizer } from '@aztec-labs/stdlib/interfaces/server';
7
+ import { type ArchiveBlockParameter, type BlockHash, type BlockParameter, type DataInBlock, type L2BlockSource } from '@aztec-labs/stdlib/block';
8
+ import type { MerkleTreeReadOperations, WorldStateSynchronizer } from '@aztec-labs/stdlib/interfaces/server';
9
9
  import type { L1ToL2MessageSource, L2ToL1MembershipWitness } from '@aztec-labs/stdlib/messaging';
10
10
  import { MerkleTreeId, NullifierMembershipWitness, PublicDataWitness } from '@aztec-labs/stdlib/trees';
11
11
  import type { TxHash } from '@aztec-labs/stdlib/tx';
@@ -32,7 +32,14 @@ export declare class NodeWorldStateQueries {
32
32
  private readonly log;
33
33
  constructor(deps: NodeWorldStateQueriesDeps);
34
34
  findLeavesIndexes(referenceBlock: BlockParameter, treeId: MerkleTreeId, leafValues: Fr[]): Promise<(DataInBlock<bigint> | undefined)[]>;
35
+ /**
36
+ * Returns a witness for `blockHash` against the reference block header's `lastArchive.root`, the archive before the
37
+ * reference block was appended. That is the root a circuit anchored on the header checks archive membership against,
38
+ * and world state holds it as the snapshot at the block before the reference.
39
+ */
35
40
  getBlockHashMembershipWitness(referenceBlock: BlockParameter, blockHash: BlockHash): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
41
+ /** Returns a witness for `blockHash` against exactly the archive root `reference.archive`. */
42
+ getBlockHashMembershipWitnessAtArchive(reference: ArchiveBlockParameter, blockHash: BlockHash): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
36
43
  getNoteHashMembershipWitness(referenceBlock: BlockParameter, noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
37
44
  getL1ToL2MessageMembershipWitness(referenceBlock: BlockParameter, l1ToL2Message: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>] | undefined>;
38
45
  getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
@@ -63,6 +70,6 @@ export declare class NodeWorldStateQueries {
63
70
  * @param block - The block parameter (block number, block hash, or tag) at which to get the data.
64
71
  * @returns An instance of a committed MerkleTreeOperations
65
72
  */
66
- getWorldState(block: BlockParameter): Promise<import("@aztec-labs/world-state").MerkleTreeReadOperations>;
73
+ getWorldState(block: BlockParameter): Promise<MerkleTreeReadOperations>;
67
74
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV93b3JsZF9zdGF0ZV9xdWVyaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kdWxlcy9ub2RlX3dvcmxkX3N0YXRlX3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLHdCQUF3QixFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsSCxPQUFPLEVBQWUsS0FBSyxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxLQUFLLFNBQVMsRUFDZCxLQUFLLGNBQWMsRUFDbkIsS0FBSyxXQUFXLEVBQ2hCLEtBQUssYUFBYSxFQUVuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkYsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsWUFBWSxFQUVaLDBCQUEwQixFQUUxQixpQkFBaUIsRUFDbEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUlwRCxPQUFPLEtBQUssRUFBcUIsa0JBQWtCLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFRbkgsc0VBQXNFO0FBQ3RFLE1BQU0sV0FBVyx5QkFBeUI7SUFDeEMsc0JBQXNC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
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV93b3JsZF9zdGF0ZV9xdWVyaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kdWxlcy9ub2RlX3dvcmxkX3N0YXRlX3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLHdCQUF3QixFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsSCxPQUFPLEVBQWUsS0FBSyxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxLQUFLLHFCQUFxQixFQUUxQixLQUFLLFNBQVMsRUFDZCxLQUFLLGNBQWMsRUFDbkIsS0FBSyxXQUFXLEVBQ2hCLEtBQUssYUFBYSxFQUVuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0csT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsWUFBWSxFQUVaLDBCQUEwQixFQUUxQixpQkFBaUIsRUFDbEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUlwRCxPQUFPLEtBQUssRUFBcUIsa0JBQWtCLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFRbkgsc0VBQXNFO0FBQ3RFLE1BQU0sV0FBVyx5QkFBeUI7SUFDeEMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7SUFDL0MsV0FBVyxFQUFFLGFBQWEsQ0FBQztJQUMzQixtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQztJQUN6QyxPQUFPLEVBQUUsa0JBQWtCLENBQUM7SUFDNUIsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2Q7QUFFRDs7OztHQUlHO0FBQ0gscUJBQWEscUJBQXFCOztJQUNoQyxPQUFPLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUF5QjtJQUNoRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBZ0I7SUFDNUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBc0I7SUFDMUQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQXFCO0lBQzdDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFTO0lBRTdCLFlBQVksSUFBSSxFQUFFLHlCQUF5QixFQU0xQztJQUVZLGlCQUFpQixDQUM1QixjQUFjLEVBQUUsY0FBYyxFQUM5QixNQUFNLEVBQUUsWUFBWSxFQUNwQixVQUFVLEVBQUUsRUFBRSxFQUFFLEdBQ2YsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0ErRDlDO0lBRUQ7Ozs7T0FJRztJQUNVLDZCQUE2QixDQUN4QyxjQUFjLEVBQUUsY0FBYyxFQUM5QixTQUFTLEVBQUUsU0FBUyxHQUNuQixPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxjQUFjLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FZL0Q7SUFFRCw4RkFBOEY7SUFDakYsc0NBQXNDLENBQ2pELFNBQVMsRUFBRSxxQkFBcUIsRUFDaEMsU0FBUyxFQUFFLFNBQVMsR0FDbkIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sY0FBYyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBSy9EO0lBd0JZLDRCQUE0QixDQUN2QyxjQUFjLEVBQUUsY0FBYyxFQUM5QixRQUFRLEVBQUUsRUFBRSxHQUNYLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLHFCQUFxQixDQUFDLEdBQUcsU0FBUyxDQUFDLENBU3RFO0lBRVksaUNBQWlDLENBQzVDLGNBQWMsRUFBRSxjQUFjLEVBQzlCLGFBQWEsRUFBRSxFQUFFLEdBQ2hCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBUzdFO0lBRU0scUJBQXFCLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUUzRTtJQUVEOzs7OztPQUtHO0lBQ1UsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FNdEU7SUFFRDs7O09BR0c7SUFDSSwwQkFBMEIsQ0FDL0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxPQUFPLEVBQUUsRUFBRSxFQUNYLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUN4QixPQUFPLENBQUMsdUJBQXVCLEdBQUcsU0FBUyxDQUFDLENBRTlDO0lBRVksNkJBQTZCLENBQ3hDLGNBQWMsRUFBRSxjQUFjLEVBQzlCLFNBQVMsRUFBRSxFQUFFLEdBQ1osT0FBTyxDQUFDLDBCQUEwQixHQUFHLFNBQVMsQ0FBQyxDQWNqRDtJQUVZLGdDQUFnQyxDQUMzQyxjQUFjLEVBQUUsY0FBYyxFQUM5QixTQUFTLEVBQUUsRUFBRSxHQUNaLE9BQU8sQ0FBQywwQkFBMEIsR0FBRyxTQUFTLENBQUMsQ0FnQmpEO0lBRUssb0JBQW9CLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUMsQ0FhL0c7SUFFWSxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBYTdHO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNVLGFBQWEsQ0FBQyxLQUFLLEVBQUUsY0FBYyxxQ0ErQi9DO0NBcURGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"node_world_state_queries.d.ts","sourceRoot":"","sources":["../../src/modules/node_world_state_queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node_world_state_queries.d.ts","sourceRoot":"","sources":["../../src/modules/node_world_state_queries.ts"],"names":[],"mappings":"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"}
@@ -81,17 +81,41 @@ import { normalizeBlockParameter } from './block_parameter.js';
81
81
  };
82
82
  });
83
83
  }
84
- async getBlockHashMembershipWitness(referenceBlock, blockHash) {
85
- // The Noir circuit checks the archive membership proof against `anchor_block_header.last_archive.root`,
86
- // which is the archive tree root BEFORE the anchor block was added (i.e. the state after block N-1).
87
- // So we need the world state at block N-1, not block N, to produce a sibling path matching that root.
88
- const { blockNumber: referenceBlockNumber } = await this.#resolveBlockNumberAndHash(normalizeBlockParameter(referenceBlock));
84
+ /**
85
+ * Returns a witness for `blockHash` against the reference block header's `lastArchive.root`, the archive before the
86
+ * reference block was appended. That is the root a circuit anchored on the header checks archive membership against,
87
+ * and world state holds it as the snapshot at the block before the reference.
88
+ */ async getBlockHashMembershipWitness(referenceBlock, blockHash) {
89
+ const { header } = await this.#resolveBlockData(normalizeBlockParameter(referenceBlock));
90
+ const referenceBlockNumber = header.getBlockNumber();
89
91
  if (referenceBlockNumber === BlockNumber.ZERO) {
90
- // Block 0 (the initial block) has an empty archive, so no membership witness can exist.
92
+ // The initial header commits to an empty archive, so no block hash can be a member of it.
93
+ if (header.lastArchive.nextAvailableLeafIndex !== 0) {
94
+ throw new Error(`Initial block header commits to a non-empty archive ${header.lastArchive.root.toString()}`);
95
+ }
91
96
  return undefined;
92
97
  }
93
98
  const committedDb = await this.getWorldState(BlockNumber(referenceBlockNumber - 1));
94
- const [pathAndIndex] = await committedDb.findSiblingPaths(MerkleTreeId.ARCHIVE, [
99
+ return await this.#getArchiveMembershipWitness(committedDb, header.lastArchive.root, blockHash);
100
+ }
101
+ /** Returns a witness for `blockHash` against exactly the archive root `reference.archive`. */ async getBlockHashMembershipWitnessAtArchive(reference, blockHash) {
102
+ // Rebuilt rather than forwarded: an in-process caller could hand over an object carrying another selector as well,
103
+ // which would take precedence over the archive when the block is resolved.
104
+ const committedDb = await this.getWorldState({
105
+ archive: reference.archive
106
+ });
107
+ return await this.#getArchiveMembershipWitness(committedDb, reference.archive, blockHash);
108
+ }
109
+ /**
110
+ * Looks `blockHash` up in the archive tree of `db`, once the tree is established to have exactly `expectedRoot`. A
111
+ * witness is only useful against the root it will be verified with, so a snapshot holding any other archive is an
112
+ * error rather than a reason to report the block hash as absent.
113
+ */ async #getArchiveMembershipWitness(db, expectedRoot, blockHash) {
114
+ const actualRoot = Fr.fromBuffer((await db.getTreeInfo(MerkleTreeId.ARCHIVE)).root);
115
+ if (!actualRoot.equals(expectedRoot)) {
116
+ throw new Error(`Archive ${expectedRoot.toString()} is not available: world state holds archive ${actualRoot.toString()} at the block that should have it. A reorg may have occurred.`);
117
+ }
118
+ const [pathAndIndex] = await db.findSiblingPaths(MerkleTreeId.ARCHIVE, [
95
119
  blockHash
96
120
  ]);
97
121
  return pathAndIndex === undefined ? undefined : MembershipWitness.fromSiblingPath(pathAndIndex.index, pathAndIndex.path);
@@ -245,15 +269,19 @@ import { normalizeBlockParameter } from './block_parameter.js';
245
269
  * Resolves any {@link BlockParameter} variant to its concrete `(blockNumber, blockHash)`, holding the query
246
270
  * briefly (unless the caller opts out) when it references a block the node is about to see.
247
271
  */ async #resolveBlockNumberAndHash(query, opts = {}) {
248
- const blockData = await this.holdOff.getBlockData(query, opts);
249
- if (blockData === undefined) {
250
- this.#throwOnUndefinedBlockData(query);
251
- }
272
+ const blockData = await this.#resolveBlockData(query, opts);
252
273
  return {
253
274
  blockNumber: blockData.header.getBlockNumber(),
254
275
  blockHash: blockData.blockHash
255
276
  };
256
277
  }
278
+ /** Resolves any {@link BlockParameter} variant to its block metadata, holding off as {@link #resolveBlockNumberAndHash} does. */ async #resolveBlockData(query, opts = {}) {
279
+ const blockData = await this.holdOff.getBlockData(query, opts);
280
+ if (blockData === undefined) {
281
+ this.#throwOnUndefinedBlockData(query);
282
+ }
283
+ return blockData;
284
+ }
257
285
  /**
258
286
  * Hash and archive misses report an unknown block (likely a reorg); tag and number misses report a transient
259
287
  * condition — the block may have been pruned, or may simply not have arrived yet — and are distinguished to the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec-labs/aztec-node",
3
- "version": "6.0.0-rc.1",
3
+ "version": "6.0.0-rc.2",
4
4
  "main": "dest/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -65,38 +65,38 @@
65
65
  ]
66
66
  },
67
67
  "dependencies": {
68
- "@aztec-foundation/bb.js": "6.0.0-rc.1",
69
- "@aztec-labs/archiver": "6.0.0-rc.1",
70
- "@aztec-labs/bb-prover": "6.0.0-rc.1",
71
- "@aztec-labs/blob-client": "6.0.0-rc.1",
72
- "@aztec-labs/blob-lib": "6.0.0-rc.1",
73
- "@aztec-labs/constants": "6.0.0-rc.1",
74
- "@aztec-labs/epoch-cache": "6.0.0-rc.1",
75
- "@aztec-labs/ethereum": "6.0.0-rc.1",
76
- "@aztec-labs/foundation": "6.0.0-rc.1",
77
- "@aztec-labs/kv-store": "6.0.0-rc.1",
78
- "@aztec-labs/node-keystore": "6.0.0-rc.1",
79
- "@aztec-labs/node-lib": "6.0.0-rc.1",
80
- "@aztec-labs/p2p": "6.0.0-rc.1",
81
- "@aztec-labs/protocol-contracts": "6.0.0-rc.1",
82
- "@aztec-labs/prover-client": "6.0.0-rc.1",
83
- "@aztec-labs/prover-node": "6.0.0-rc.1",
84
- "@aztec-labs/sequencer-client": "6.0.0-rc.1",
85
- "@aztec-labs/simulator": "6.0.0-rc.1",
86
- "@aztec-labs/slasher": "6.0.0-rc.1",
87
- "@aztec-labs/standard-contracts": "6.0.0-rc.1",
88
- "@aztec-labs/stdlib": "6.0.0-rc.1",
89
- "@aztec-labs/telemetry-client": "6.0.0-rc.1",
90
- "@aztec-labs/validator-client": "6.0.0-rc.1",
91
- "@aztec-labs/validator-ha-signer": "6.0.0-rc.1",
92
- "@aztec-labs/world-state": "6.0.0-rc.1",
68
+ "@aztec-foundation/bb.js": "6.0.0-rc.5",
69
+ "@aztec-labs/archiver": "6.0.0-rc.2",
70
+ "@aztec-labs/bb-prover": "6.0.0-rc.2",
71
+ "@aztec-labs/blob-client": "6.0.0-rc.2",
72
+ "@aztec-labs/blob-lib": "6.0.0-rc.2",
73
+ "@aztec-labs/constants": "6.0.0-rc.2",
74
+ "@aztec-labs/epoch-cache": "6.0.0-rc.2",
75
+ "@aztec-labs/ethereum": "6.0.0-rc.2",
76
+ "@aztec-labs/foundation": "6.0.0-rc.2",
77
+ "@aztec-labs/kv-store": "6.0.0-rc.2",
78
+ "@aztec-labs/node-keystore": "6.0.0-rc.2",
79
+ "@aztec-labs/node-lib": "6.0.0-rc.2",
80
+ "@aztec-labs/p2p": "6.0.0-rc.2",
81
+ "@aztec-labs/protocol-contracts": "6.0.0-rc.2",
82
+ "@aztec-labs/prover-client": "6.0.0-rc.2",
83
+ "@aztec-labs/prover-node": "6.0.0-rc.2",
84
+ "@aztec-labs/sequencer-client": "6.0.0-rc.2",
85
+ "@aztec-labs/simulator": "6.0.0-rc.2",
86
+ "@aztec-labs/slasher": "6.0.0-rc.2",
87
+ "@aztec-labs/standard-contracts": "6.0.0-rc.2",
88
+ "@aztec-labs/stdlib": "6.0.0-rc.2",
89
+ "@aztec-labs/telemetry-client": "6.0.0-rc.2",
90
+ "@aztec-labs/validator-client": "6.0.0-rc.2",
91
+ "@aztec-labs/validator-ha-signer": "6.0.0-rc.2",
92
+ "@aztec-labs/world-state": "6.0.0-rc.2",
93
93
  "koa": "^2.16.1",
94
94
  "koa-router": "^13.1.1",
95
95
  "tslib": "^2.4.0",
96
96
  "viem": "npm:@aztec/viem@2.38.3"
97
97
  },
98
98
  "devDependencies": {
99
- "@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.1",
99
+ "@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.2",
100
100
  "@jest/globals": "^30.0.0",
101
101
  "@types/jest": "^30.0.0",
102
102
  "@types/node": "^22.15.17",
@@ -0,0 +1,31 @@
1
+ import type {
2
+ BlockMinFeesProvider,
3
+ GasFees,
4
+ NextBlockMinFeesProvider,
5
+ TxAdmissionMinFeesProvider,
6
+ } from '@aztec-labs/stdlib/gas';
7
+
8
+ /**
9
+ * The {@link TxAdmissionMinFeesProvider} handed to the p2p layer. Admission is priced against the next-block fee and
10
+ * falls back to the L1-forward fee while the next block cannot be priced, such as at a checkpoint boundary before
11
+ * the fee cache has refreshed or while L1 cannot be read. The fallback is only a floor: it can sit below the fee the
12
+ * next block ends up charging, which the pool's insufficient-fee sweep catches once the exact fee resolves.
13
+ */
14
+ export class AdmissionMinFeesProvider implements TxAdmissionMinFeesProvider {
15
+ constructor(
16
+ private readonly nextBlock: NextBlockMinFeesProvider,
17
+ private readonly l1Forward: BlockMinFeesProvider,
18
+ ) {}
19
+
20
+ public getNextBlockMinFees(): Promise<GasFees | undefined> {
21
+ return this.nextBlock.getNextBlockMinFees();
22
+ }
23
+
24
+ public async getAdmissionMinFees(): Promise<GasFees> {
25
+ return (await this.nextBlock.getNextBlockMinFees()) ?? (await this.l1Forward.getCurrentMinFees());
26
+ }
27
+
28
+ public getL1ForwardMinFees(): Promise<GasFees> {
29
+ return this.l1Forward.getCurrentMinFees();
30
+ }
31
+ }
@@ -1,3 +1,4 @@
1
+ export * from './admission_min_fees.js';
1
2
  export * from './next_block_fee_cache.js';
2
3
  export * from './next_block_planner.js';
3
4
  export * from './next_block_predictor.js';
@@ -248,12 +248,31 @@ export class NextBlockFeeCache {
248
248
  ): Promise<SimulationOverridesPlan | undefined> {
249
249
  const { targetCheckpoint, proposedCheckpointData, checkpointedCheckpointNumber } = newCheckpoint;
250
250
  const rollup = this.rollupContract;
251
- if (!rollup) {
252
- return Promise.resolve(
251
+ const pinnedTips = () =>
252
+ Promise.resolve(
253
253
  new SimulationOverridesBuilder()
254
254
  .withChainTips({ pending: checkpointedCheckpointNumber, proven: checkpointedCheckpointNumber })
255
255
  .build(),
256
256
  );
257
+ if (!rollup) {
258
+ return pinnedTips();
259
+ }
260
+
261
+ // A pipelined plan derives the proposed parent's fee header from the grandparent's on-chain `tempCheckpointLogs`
262
+ // cell, so it can only be built while the parent is the checkpointed tip's immediate child. The frontier runs
263
+ // further ahead whenever a proposer builds on a checkpoint whose publication has not been mined yet, which every
264
+ // node then sees through gossip, and L1 keeps no cell for a checkpoint it has not seen: the read reverts with
265
+ // `Rollup__UnavailableTempCheckpointLog` and takes the whole refresh, and every simulation joined to it, down.
266
+ // Price that boundary on the checkpointed tip instead. The fee then lags by the checkpoints in flight (two at
267
+ // this depth, one more than the fee projections cover), rather than being unavailable for the rest of the window.
268
+ // Quoting a fee that may be off is deliberate: the quote feeds simulation, and a simulation that runs on an
269
+ // approximate fee is more useful than one that fails because the exact fee cannot be derived yet.
270
+ if (proposedCheckpointData && proposedCheckpointData.checkpointNumber !== checkpointedCheckpointNumber + 1) {
271
+ this.log.debug(
272
+ `Pricing the next-block boundary on checkpointed tip ${checkpointedCheckpointNumber}: proposed parent ` +
273
+ `${proposedCheckpointData.checkpointNumber} is more than one checkpoint ahead of it`,
274
+ );
275
+ return pinnedTips();
257
276
  }
258
277
 
259
278
  // The helper treats pipelining and invalidation as mutually exclusive; a proposed parent takes precedence.
@@ -2,7 +2,7 @@ import type { EpochCacheInterface } from '@aztec-labs/epoch-cache';
2
2
  import { BlockNumber } from '@aztec-labs/foundation/branded-types';
3
3
  import { type Logger, createLogger } from '@aztec-labs/foundation/log';
4
4
  import type { L1SyncPoint, L2BlockSource, L2Frontier } from '@aztec-labs/stdlib/block';
5
- import type { GasFees } from '@aztec-labs/stdlib/gas';
5
+ import type { GasFees, NextBlockMinFeesProvider } from '@aztec-labs/stdlib/gas';
6
6
  import { GlobalVariables } from '@aztec-labs/stdlib/tx';
7
7
 
8
8
  import { NextBlockFeeCache, type NextBlockFeeCacheDeps } from './next_block_fee_cache.js';
@@ -42,7 +42,7 @@ export interface NextBlockPredictorDeps {
42
42
  * Deliberately not used by the sequencer: its slot policy is stricter (it declines to build rather than
43
43
  * predicting inclusion) and a stale fee would make L1 reject its checkpoint.
44
44
  */
45
- export class NextBlockPredictor {
45
+ export class NextBlockPredictor implements NextBlockMinFeesProvider {
46
46
  private readonly blockSource: L2BlockSource;
47
47
  private readonly feeCache: NextBlockFeeCache;
48
48
  private readonly epochCache: EpochCacheInterface;
@@ -115,12 +115,40 @@ export class NextBlockPredictor {
115
115
  *
116
116
  * Returns the L1 block the answer describes so the caller can tag its own fee reads with the same anchor.
117
117
  */
118
- public async quoteMinFees(): Promise<{ fees: GasFees; l1SyncPoint: L1SyncPoint | undefined } | undefined> {
118
+ public quoteMinFees(): Promise<{ fees: GasFees; l1SyncPoint: L1SyncPoint | undefined } | undefined> {
119
+ return this.minFees(QUOTE_MAX_WAIT_MS);
120
+ }
121
+
122
+ /**
123
+ * The same fee as {@link quoteMinFees}, for transaction admission rather than for a wallet, and answered
124
+ * from what the cache already holds: this runs per gossiped transaction and per pool revalidation, where
125
+ * every caller has a policy for an unavailable fee, so waiting on a refresh would only convert a pricing
126
+ * outage into gossip backpressure. A boundary miss still starts the shared refresh, so a later transaction
127
+ * is priced from the record it populates. An archiver or L1 failure is reported as undefined rather than
128
+ * thrown, since no admission caller can act on the exception.
129
+ */
130
+ public async getNextBlockMinFees(): Promise<GasFees | undefined> {
131
+ try {
132
+ return (await this.minFees(0))?.fees;
133
+ } catch (err) {
134
+ this.log.debug(`Failed to resolve the next-block min fee`, err);
135
+ return undefined;
136
+ }
137
+ }
138
+
139
+ /**
140
+ * The fee the next block would carry, with the L1 block that answer describes. Mid-checkpoint it is the
141
+ * in-progress checkpoint's frozen fee, read straight off the proposed tip's header with no L1 involved; at a
142
+ * boundary it is the cached L1 price, waited on for at most `maxWaitMs`.
143
+ */
144
+ private async minFees(
145
+ maxWaitMs: number,
146
+ ): Promise<{ fees: GasFees; l1SyncPoint: L1SyncPoint | undefined } | undefined> {
119
147
  const { frontier, plan, key } = await this.planFromFrontier();
120
148
  if (!key) {
121
149
  const fees = frontier.latestBlockHeader?.globalVariables.gasFees;
122
150
  if (!fees) {
123
- this.log.warn(`Cannot quote the next block fee: frontier reports no header for its proposed tip`, {
151
+ this.log.debug(`Cannot price the next block: frontier reports no header for its proposed tip`, {
124
152
  blockNumber: plan.latestBlockNumber,
125
153
  });
126
154
  return undefined;
@@ -128,7 +156,7 @@ export class NextBlockPredictor {
128
156
  return { fees, l1SyncPoint: frontier.l1SyncPoint };
129
157
  }
130
158
 
131
- const checkpointGlobals = await this.feeCache.getBoundaryGlobals(key, frontier, { maxWaitMs: QUOTE_MAX_WAIT_MS });
159
+ const checkpointGlobals = await this.feeCache.getBoundaryGlobals(key, frontier, { maxWaitMs });
132
160
  return checkpointGlobals ? { fees: checkpointGlobals.gasFees, l1SyncPoint: frontier.l1SyncPoint } : undefined;
133
161
  }
134
162
 
@@ -35,6 +35,7 @@ import type { SlasherClientInterface } from '@aztec-labs/slasher';
35
35
  import { STANDARD_MULTI_CALL_ENTRYPOINT_ADDRESS } from '@aztec-labs/standard-contracts/multi-call-entrypoint';
36
36
  import { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
37
37
  import {
38
+ type ArchiveBlockParameter,
38
39
  type BlockData,
39
40
  BlockHash,
40
41
  type BlockParameter,
@@ -717,6 +718,13 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, AztecNodeDeb
717
718
  return this.worldStateQueries.getBlockHashMembershipWitness(referenceBlock, blockHash);
718
719
  }
719
720
 
721
+ public getBlockHashMembershipWitnessAtArchive(
722
+ reference: ArchiveBlockParameter,
723
+ blockHash: BlockHash,
724
+ ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined> {
725
+ return this.worldStateQueries.getBlockHashMembershipWitnessAtArchive(reference, blockHash);
726
+ }
727
+
720
728
  public getNoteHashMembershipWitness(
721
729
  referenceBlock: BlockParameter,
722
730
  noteHash: Fr,
@@ -833,7 +841,7 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, AztecNodeDeb
833
841
  ...(await getDefaultAllowedSetupFunctions()),
834
842
  ...(this.config.txPublicSetupAllowListExtend ?? []),
835
843
  ],
836
- gasFees: await this.getCurrentMinFees(),
844
+ gasFees: skipFeeEnforcement ? GasFees.empty() : await this.getNextBlockMinFees(),
837
845
  skipFeeEnforcement,
838
846
  isSimulation,
839
847
  txsPermitted: !this.config.disableTransactions,
@@ -846,6 +854,29 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, AztecNodeDeb
846
854
  return await validator.validateTx(tx);
847
855
  }
848
856
 
857
+ /**
858
+ * The fee the next block will charge, for RPC admission: a transaction has to be priced against the block it
859
+ * would actually enter, and the L1-forward projection cannot stand in for a fee an in-progress checkpoint
860
+ * already froze. Quotes rather than the relay path's cache-first read, so a single submission waits out a
861
+ * boundary refresh instead of being rejected.
862
+ *
863
+ * Falls back to the L1-forward fee when the next block cannot be priced, which happens whenever this node's
864
+ * chain has run far enough ahead of L1 that the upcoming boundary's parent state is not readable there yet.
865
+ * That is common enough that rejecting every submission for its duration would be worse than admitting
866
+ * against the looser price: the pool sweeps a transaction the next block cannot afford once the fee resolves.
867
+ */
868
+ private async getNextBlockMinFees(): Promise<GasFees> {
869
+ const quote = await this.nextBlockPredictor.quoteMinFees().catch((err: Error) => {
870
+ this.log.warn(`Failed to compute the next-block min fee for tx admission`, err);
871
+ return undefined;
872
+ });
873
+ if (quote) {
874
+ return quote.fees;
875
+ }
876
+ this.log.verbose(`Admitting txs against the L1-forward min fee: the next block's fee is unavailable`);
877
+ return await this.feeProvider.getCurrentMinFees();
878
+ }
879
+
849
880
  public getConfig(): Promise<AztecNodeAdminConfig> {
850
881
  const schema = AztecNodeAdminConfigSchema;
851
882
  const keys = schema.keyof().options;
package/src/factory.ts CHANGED
@@ -58,7 +58,7 @@ import { createWorldState, createWorldStateSynchronizer } from '@aztec-labs/worl
58
58
  import { createPublicClient } from 'viem';
59
59
 
60
60
  import { type AztecNodeConfig, createKeyStoreForValidator } from './aztec-node/config.js';
61
- import { NextBlockPredictor } from './aztec-node/next_block/index.js';
61
+ import { AdmissionMinFeesProvider, NextBlockPredictor } from './aztec-node/next_block/index.js';
62
62
  import { AztecNodeService } from './aztec-node/server.js';
63
63
  import { createSentinel } from './sentinel/factory.js';
64
64
 
@@ -319,7 +319,7 @@ export async function createAztecNodeService(
319
319
  peerProofVerifier,
320
320
  worldStateSynchronizer,
321
321
  epochCache,
322
- feeProvider,
322
+ new AdmissionMinFeesProvider(nextBlockPredictor, feeProvider),
323
323
  packageVersion,
324
324
  dateProvider,
325
325
  telemetry,
@@ -7,6 +7,8 @@ import { sleep } from '@aztec-labs/foundation/sleep';
7
7
  import { MembershipWitness, type SiblingPath } from '@aztec-labs/foundation/trees';
8
8
  import type { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
9
9
  import {
10
+ type ArchiveBlockParameter,
11
+ type BlockData,
10
12
  type BlockHash,
11
13
  type BlockParameter,
12
14
  type DataInBlock,
@@ -14,7 +16,7 @@ import {
14
16
  inspectBlockParameter,
15
17
  } from '@aztec-labs/stdlib/block';
16
18
  import { computePublicDataTreeLeafSlot } from '@aztec-labs/stdlib/hash';
17
- import type { WorldStateSynchronizer } from '@aztec-labs/stdlib/interfaces/server';
19
+ import type { MerkleTreeReadOperations, WorldStateSynchronizer } from '@aztec-labs/stdlib/interfaces/server';
18
20
  import type { L1ToL2MessageSource, L2ToL1MembershipWitness } from '@aztec-labs/stdlib/messaging';
19
21
  import {
20
22
  MerkleTreeId,
@@ -133,22 +135,56 @@ export class NodeWorldStateQueries {
133
135
  });
134
136
  }
135
137
 
138
+ /**
139
+ * Returns a witness for `blockHash` against the reference block header's `lastArchive.root`, the archive before the
140
+ * reference block was appended. That is the root a circuit anchored on the header checks archive membership against,
141
+ * and world state holds it as the snapshot at the block before the reference.
142
+ */
136
143
  public async getBlockHashMembershipWitness(
137
144
  referenceBlock: BlockParameter,
138
145
  blockHash: BlockHash,
139
146
  ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined> {
140
- // The Noir circuit checks the archive membership proof against `anchor_block_header.last_archive.root`,
141
- // which is the archive tree root BEFORE the anchor block was added (i.e. the state after block N-1).
142
- // So we need the world state at block N-1, not block N, to produce a sibling path matching that root.
143
- const { blockNumber: referenceBlockNumber } = await this.#resolveBlockNumberAndHash(
144
- normalizeBlockParameter(referenceBlock),
145
- );
147
+ const { header } = await this.#resolveBlockData(normalizeBlockParameter(referenceBlock));
148
+ const referenceBlockNumber = header.getBlockNumber();
146
149
  if (referenceBlockNumber === BlockNumber.ZERO) {
147
- // Block 0 (the initial block) has an empty archive, so no membership witness can exist.
150
+ // The initial header commits to an empty archive, so no block hash can be a member of it.
151
+ if (header.lastArchive.nextAvailableLeafIndex !== 0) {
152
+ throw new Error(`Initial block header commits to a non-empty archive ${header.lastArchive.root.toString()}`);
153
+ }
148
154
  return undefined;
149
155
  }
150
156
  const committedDb = await this.getWorldState(BlockNumber(referenceBlockNumber - 1));
151
- const [pathAndIndex] = await committedDb.findSiblingPaths<MerkleTreeId.ARCHIVE>(MerkleTreeId.ARCHIVE, [blockHash]);
157
+ return await this.#getArchiveMembershipWitness(committedDb, header.lastArchive.root, blockHash);
158
+ }
159
+
160
+ /** Returns a witness for `blockHash` against exactly the archive root `reference.archive`. */
161
+ public async getBlockHashMembershipWitnessAtArchive(
162
+ reference: ArchiveBlockParameter,
163
+ blockHash: BlockHash,
164
+ ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined> {
165
+ // Rebuilt rather than forwarded: an in-process caller could hand over an object carrying another selector as well,
166
+ // which would take precedence over the archive when the block is resolved.
167
+ const committedDb = await this.getWorldState({ archive: reference.archive });
168
+ return await this.#getArchiveMembershipWitness(committedDb, reference.archive, blockHash);
169
+ }
170
+
171
+ /**
172
+ * Looks `blockHash` up in the archive tree of `db`, once the tree is established to have exactly `expectedRoot`. A
173
+ * witness is only useful against the root it will be verified with, so a snapshot holding any other archive is an
174
+ * error rather than a reason to report the block hash as absent.
175
+ */
176
+ async #getArchiveMembershipWitness(
177
+ db: MerkleTreeReadOperations,
178
+ expectedRoot: Fr,
179
+ blockHash: BlockHash,
180
+ ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined> {
181
+ const actualRoot = Fr.fromBuffer((await db.getTreeInfo(MerkleTreeId.ARCHIVE)).root);
182
+ if (!actualRoot.equals(expectedRoot)) {
183
+ throw new Error(
184
+ `Archive ${expectedRoot.toString()} is not available: world state holds archive ${actualRoot.toString()} at the block that should have it. A reorg may have occurred.`,
185
+ );
186
+ }
187
+ const [pathAndIndex] = await db.findSiblingPaths<MerkleTreeId.ARCHIVE>(MerkleTreeId.ARCHIVE, [blockHash]);
152
188
  return pathAndIndex === undefined
153
189
  ? undefined
154
190
  : MembershipWitness.fromSiblingPath(pathAndIndex.index, pathAndIndex.path);
@@ -348,11 +384,17 @@ export class NodeWorldStateQueries {
348
384
  query: HoldOffBlockQuery,
349
385
  opts: UnseenBlockHoldOffOptions = {},
350
386
  ): Promise<{ blockNumber: BlockNumber; blockHash: BlockHash }> {
387
+ const blockData = await this.#resolveBlockData(query, opts);
388
+ return { blockNumber: blockData.header.getBlockNumber(), blockHash: blockData.blockHash };
389
+ }
390
+
391
+ /** Resolves any {@link BlockParameter} variant to its block metadata, holding off as {@link #resolveBlockNumberAndHash} does. */
392
+ async #resolveBlockData(query: HoldOffBlockQuery, opts: UnseenBlockHoldOffOptions = {}): Promise<BlockData> {
351
393
  const blockData = await this.holdOff.getBlockData(query, opts);
352
394
  if (blockData === undefined) {
353
395
  this.#throwOnUndefinedBlockData(query);
354
396
  }
355
- return { blockNumber: blockData.header.getBlockNumber(), blockHash: blockData.blockHash };
397
+ return blockData;
356
398
  }
357
399
 
358
400
  /**