@aztec-labs/aztec-node 6.0.0-rc.1 → 6.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/aztec-node/next_block/admission_min_fees.d.ts +16 -0
- package/dest/aztec-node/next_block/admission_min_fees.d.ts.map +1 -0
- package/dest/aztec-node/next_block/admission_min_fees.js +22 -0
- package/dest/aztec-node/next_block/index.d.ts +2 -1
- package/dest/aztec-node/next_block/index.d.ts.map +1 -1
- package/dest/aztec-node/next_block/index.js +1 -0
- package/dest/aztec-node/next_block/next_block_fee_cache.d.ts +1 -1
- package/dest/aztec-node/next_block/next_block_fee_cache.d.ts.map +1 -1
- package/dest/aztec-node/next_block/next_block_fee_cache.js +16 -2
- package/dest/aztec-node/next_block/next_block_predictor.d.ts +13 -3
- package/dest/aztec-node/next_block/next_block_predictor.d.ts.map +1 -1
- package/dest/aztec-node/next_block/next_block_predictor.js +25 -3
- package/dest/aztec-node/server.d.ts +4 -2
- package/dest/aztec-node/server.d.ts.map +1 -1
- package/dest/aztec-node/server.js +25 -1
- package/dest/factory.js +2 -2
- package/dest/modules/node_world_state_queries.d.ts +11 -4
- package/dest/modules/node_world_state_queries.d.ts.map +1 -1
- package/dest/modules/node_world_state_queries.js +39 -11
- package/package.json +27 -27
- package/src/aztec-node/next_block/admission_min_fees.ts +31 -0
- package/src/aztec-node/next_block/index.ts +1 -0
- package/src/aztec-node/next_block/next_block_fee_cache.ts +21 -2
- package/src/aztec-node/next_block/next_block_predictor.ts +33 -5
- package/src/aztec-node/server.ts +32 -1
- package/src/factory.ts +2 -2
- 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,
|
|
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"}
|
|
@@ -107,4 +107,4 @@ export declare class NextBlockFeeCache {
|
|
|
107
107
|
*/
|
|
108
108
|
private buildOverridesPlan;
|
|
109
109
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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;
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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
|
-
*/
|
|
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.
|
|
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
|
|
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":"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"}
|
|
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.
|
|
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<
|
|
73
|
+
getWorldState(block: BlockParameter): Promise<MerkleTreeReadOperations>;
|
|
67
74
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV93b3JsZF9zdGF0ZV9xdWVyaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kdWxlcy9ub2RlX3dvcmxkX3N0YXRlX3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLHdCQUF3QixFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsSCxPQUFPLEVBQWUsS0FBSyxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxLQUFLLHFCQUFxQixFQUUxQixLQUFLLFNBQVMsRUFDZCxLQUFLLGNBQWMsRUFDbkIsS0FBSyxXQUFXLEVBQ2hCLEtBQUssYUFBYSxFQUVuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0csT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsWUFBWSxFQUVaLDBCQUEwQixFQUUxQixpQkFBaUIsRUFDbEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUlwRCxPQUFPLEtBQUssRUFBcUIsa0JBQWtCLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFRbkgsc0VBQXNFO0FBQ3RF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node_world_state_queries.d.ts","sourceRoot":"","sources":["../../src/modules/node_world_state_queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAEnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
|
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.
|
|
3
|
+
"version": "6.0.0-rc.3",
|
|
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.
|
|
69
|
-
"@aztec-labs/archiver": "6.0.0-rc.
|
|
70
|
-
"@aztec-labs/bb-prover": "6.0.0-rc.
|
|
71
|
-
"@aztec-labs/blob-client": "6.0.0-rc.
|
|
72
|
-
"@aztec-labs/blob-lib": "6.0.0-rc.
|
|
73
|
-
"@aztec-labs/constants": "6.0.0-rc.
|
|
74
|
-
"@aztec-labs/epoch-cache": "6.0.0-rc.
|
|
75
|
-
"@aztec-labs/ethereum": "6.0.0-rc.
|
|
76
|
-
"@aztec-labs/foundation": "6.0.0-rc.
|
|
77
|
-
"@aztec-labs/kv-store": "6.0.0-rc.
|
|
78
|
-
"@aztec-labs/node-keystore": "6.0.0-rc.
|
|
79
|
-
"@aztec-labs/node-lib": "6.0.0-rc.
|
|
80
|
-
"@aztec-labs/p2p": "6.0.0-rc.
|
|
81
|
-
"@aztec-labs/protocol-contracts": "6.0.0-rc.
|
|
82
|
-
"@aztec-labs/prover-client": "6.0.0-rc.
|
|
83
|
-
"@aztec-labs/prover-node": "6.0.0-rc.
|
|
84
|
-
"@aztec-labs/sequencer-client": "6.0.0-rc.
|
|
85
|
-
"@aztec-labs/simulator": "6.0.0-rc.
|
|
86
|
-
"@aztec-labs/slasher": "6.0.0-rc.
|
|
87
|
-
"@aztec-labs/standard-contracts": "6.0.0-rc.
|
|
88
|
-
"@aztec-labs/stdlib": "6.0.0-rc.
|
|
89
|
-
"@aztec-labs/telemetry-client": "6.0.0-rc.
|
|
90
|
-
"@aztec-labs/validator-client": "6.0.0-rc.
|
|
91
|
-
"@aztec-labs/validator-ha-signer": "6.0.0-rc.
|
|
92
|
-
"@aztec-labs/world-state": "6.0.0-rc.
|
|
68
|
+
"@aztec-foundation/bb.js": "6.0.0-rc.6",
|
|
69
|
+
"@aztec-labs/archiver": "6.0.0-rc.3",
|
|
70
|
+
"@aztec-labs/bb-prover": "6.0.0-rc.3",
|
|
71
|
+
"@aztec-labs/blob-client": "6.0.0-rc.3",
|
|
72
|
+
"@aztec-labs/blob-lib": "6.0.0-rc.3",
|
|
73
|
+
"@aztec-labs/constants": "6.0.0-rc.3",
|
|
74
|
+
"@aztec-labs/epoch-cache": "6.0.0-rc.3",
|
|
75
|
+
"@aztec-labs/ethereum": "6.0.0-rc.3",
|
|
76
|
+
"@aztec-labs/foundation": "6.0.0-rc.3",
|
|
77
|
+
"@aztec-labs/kv-store": "6.0.0-rc.3",
|
|
78
|
+
"@aztec-labs/node-keystore": "6.0.0-rc.3",
|
|
79
|
+
"@aztec-labs/node-lib": "6.0.0-rc.3",
|
|
80
|
+
"@aztec-labs/p2p": "6.0.0-rc.3",
|
|
81
|
+
"@aztec-labs/protocol-contracts": "6.0.0-rc.3",
|
|
82
|
+
"@aztec-labs/prover-client": "6.0.0-rc.3",
|
|
83
|
+
"@aztec-labs/prover-node": "6.0.0-rc.3",
|
|
84
|
+
"@aztec-labs/sequencer-client": "6.0.0-rc.3",
|
|
85
|
+
"@aztec-labs/simulator": "6.0.0-rc.3",
|
|
86
|
+
"@aztec-labs/slasher": "6.0.0-rc.3",
|
|
87
|
+
"@aztec-labs/standard-contracts": "6.0.0-rc.3",
|
|
88
|
+
"@aztec-labs/stdlib": "6.0.0-rc.3",
|
|
89
|
+
"@aztec-labs/telemetry-client": "6.0.0-rc.3",
|
|
90
|
+
"@aztec-labs/validator-client": "6.0.0-rc.3",
|
|
91
|
+
"@aztec-labs/validator-ha-signer": "6.0.0-rc.3",
|
|
92
|
+
"@aztec-labs/world-state": "6.0.0-rc.3",
|
|
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.
|
|
99
|
+
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.3",
|
|
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
|
+
}
|
|
@@ -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
|
-
|
|
252
|
-
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
package/src/aztec-node/server.ts
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
141
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
|
397
|
+
return blockData;
|
|
356
398
|
}
|
|
357
399
|
|
|
358
400
|
/**
|