@aztec-labs/stdlib 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.
Files changed (68) hide show
  1. package/dest/avm/avm.d.ts +210 -210
  2. package/dest/avm/message_pack.d.ts +1 -1
  3. package/dest/avm/message_pack.d.ts.map +1 -1
  4. package/dest/avm/message_pack.js +10 -0
  5. package/dest/block/block_parameter.d.ts +10 -1
  6. package/dest/block/block_parameter.d.ts.map +1 -1
  7. package/dest/block/block_parameter.js +8 -3
  8. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +11 -1
  9. package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -1
  10. package/dest/checkpoint/checkpoint_reexecution_tracker.js +12 -0
  11. package/dest/checkpoint/validate.d.ts +2 -1
  12. package/dest/checkpoint/validate.d.ts.map +1 -1
  13. package/dest/checkpoint/validate.js +9 -0
  14. package/dest/config/network-consensus-config.d.ts +17 -5
  15. package/dest/config/network-consensus-config.d.ts.map +1 -1
  16. package/dest/config/network-consensus-config.js +54 -8
  17. package/dest/contract/contract_address.d.ts +1 -1
  18. package/dest/contract/contract_address.js +1 -1
  19. package/dest/gas/fee_math.d.ts +2 -2
  20. package/dest/gas/fee_math.js +2 -2
  21. package/dest/gas/gas_fees.d.ts +27 -1
  22. package/dest/gas/gas_fees.d.ts.map +1 -1
  23. package/dest/gas/gas_fees.js +3 -0
  24. package/dest/interfaces/aztec-node-admin.d.ts +2 -1
  25. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  26. package/dest/interfaces/aztec-node.d.ts +27 -5
  27. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  28. package/dest/interfaces/aztec-node.js +8 -1
  29. package/dest/interfaces/configs.d.ts +9 -1
  30. package/dest/interfaces/configs.d.ts.map +1 -1
  31. package/dest/interfaces/configs.js +2 -1
  32. package/dest/interfaces/prover-broker.d.ts +3 -1
  33. package/dest/interfaces/prover-broker.d.ts.map +1 -1
  34. package/dest/interfaces/proving-job.d.ts +70 -70
  35. package/dest/interfaces/server_circuit_prover.d.ts +4 -3
  36. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  37. package/dest/keys/derivation.js +2 -2
  38. package/dest/messaging/l1_to_l2_message.d.ts +20 -1
  39. package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
  40. package/dest/messaging/l1_to_l2_message.js +30 -8
  41. package/dest/p2p/block_proposal.d.ts +1 -1
  42. package/dest/p2p/block_proposal.d.ts.map +1 -1
  43. package/dest/p2p/block_proposal.js +5 -0
  44. package/dest/p2p/checkpoint_proposal.d.ts +1 -1
  45. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  46. package/dest/p2p/checkpoint_proposal.js +5 -0
  47. package/dest/p2p/gossipable.d.ts +1 -1
  48. package/dest/p2p/gossipable.d.ts.map +1 -1
  49. package/dest/p2p/gossipable.js +6 -0
  50. package/package.json +7 -7
  51. package/src/avm/message_pack.ts +10 -0
  52. package/src/block/block_parameter.ts +13 -1
  53. package/src/checkpoint/checkpoint_reexecution_tracker.ts +14 -0
  54. package/src/checkpoint/validate.ts +14 -0
  55. package/src/config/network-consensus-config.ts +70 -11
  56. package/src/contract/contract_address.ts +1 -1
  57. package/src/gas/README.md +2 -2
  58. package/src/gas/fee_math.ts +2 -2
  59. package/src/gas/gas_fees.ts +35 -0
  60. package/src/interfaces/aztec-node.ts +41 -4
  61. package/src/interfaces/configs.ts +8 -0
  62. package/src/interfaces/prover-broker.ts +2 -0
  63. package/src/interfaces/server_circuit_prover.ts +3 -2
  64. package/src/keys/derivation.ts +2 -2
  65. package/src/messaging/l1_to_l2_message.ts +39 -11
  66. package/src/p2p/block_proposal.ts +6 -0
  67. package/src/p2p/checkpoint_proposal.ts +6 -0
  68. package/src/p2p/gossipable.ts +6 -0
@@ -1,3 +1,3 @@
1
1
  export declare function serializeWithMessagePack(obj: any): Buffer;
2
2
  export declare function deserializeFromMessagePack(buffer: Buffer): any;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9wYWNrLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXZtL21lc3NhZ2VfcGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSx3QkFBZ0Isd0JBQXdCLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBVXpEO0FBS0Qsd0JBQWdCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsR0FBRyxDQVE5RCJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9wYWNrLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXZtL21lc3NhZ2VfcGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSx3QkFBZ0Isd0JBQXdCLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBVXpEO0FBS0Qsd0JBQWdCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsR0FBRyxDQVE5RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"message_pack.d.ts","sourceRoot":"","sources":["../../src/avm/message_pack.ts"],"names":[],"mappings":"AAQA,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAUzD;AAKD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAQ9D"}
1
+ {"version":3,"file":"message_pack.d.ts","sourceRoot":"","sources":["../../src/avm/message_pack.ts"],"names":[],"mappings":"AASA,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAUzD;AAKD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAQ9D"}
@@ -4,6 +4,7 @@ import { EthAddress } from '@aztec-labs/foundation/eth-address';
4
4
  import { strict as assert } from 'assert';
5
5
  import { Decoder, Encoder, addExtension } from 'msgpackr';
6
6
  import { AztecAddress } from '../aztec-address/index.js';
7
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
7
8
  export function serializeWithMessagePack(obj) {
8
9
  setUpMessagePackExtensions();
9
10
  const encoder = new Encoder({
@@ -86,5 +87,14 @@ function setUpMessagePackExtensions() {
86
87
  write: (addr)=>addr.toField().toBuffer(),
87
88
  read: (data)=>EthAddress.fromField(Fr.fromBuffer(data))
88
89
  });
90
+ // The leaf index is a uint64_t in C++, but a number in TS, and msgpackr encodes any number above 0xffffffff as a
91
+ // float64, which the C++ decoder rejects for an unsigned field. Widen it here, as toBuffer does with writeUInt64.
92
+ addExtension({
93
+ Class: AppendOnlyTreeSnapshot,
94
+ write: (snapshot)=>({
95
+ ...snapshot,
96
+ nextAvailableLeafIndex: BigInt(snapshot.nextAvailableLeafIndex)
97
+ })
98
+ });
89
99
  messagePackWasSetUp = true;
90
100
  }
@@ -26,6 +26,15 @@ export type NormalizedBlockParameter = {
26
26
  tag: Exclude<BlockTag, 'latest'>;
27
27
  };
28
28
  export declare const NormalizedBlockParameterSchema: z.ZodType<NormalizedBlockParameter, unknown>;
29
+ /** Selector naming a block by its archive tree root: the root after the block's own hash was appended. */
30
+ export type ArchiveBlockParameter = {
31
+ archive: Fr;
32
+ };
33
+ /**
34
+ * Accepts only `{ archive }`, rejecting every other {@link BlockParameter} form, including an object that names another
35
+ * selector alongside the archive. Keys that are not selectors are dropped, as for {@link BlockParameterSchema}.
36
+ */
37
+ export declare const ArchiveBlockParameterSchema: z.ZodType<ArchiveBlockParameter, unknown>;
29
38
  /**
30
39
  * Anchor naming a block by both its height and its hash.
31
40
  *
@@ -59,4 +68,4 @@ export declare function isAnchoredBlockParameter(param: BlockParameter): param i
59
68
  */
60
69
  export declare function blockParameterHash(param: BlockParameter): BlockHash | undefined;
61
70
  export declare function inspectBlockParameter(param: BlockParameter): string;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcGFyYW1ldGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svYmxvY2tfcGFyYW1ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUc5RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxlQUFPLE1BQU0sUUFBUSx3RUFBeUUsQ0FBQztBQUUvRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBTyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVqRCxlQUFPLE1BQU0sMkJBQTJCLGtJQUt0QyxDQUFDO0FBRUgsZUFBTyxNQUFNLGNBQWMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBK0QsQ0FBQztBQUUvRzs7R0FFRztBQUNILE1BQU0sTUFBTSx3QkFBd0IsR0FDaEM7SUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFBO0NBQUUsR0FDdkI7SUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFBO0NBQUUsR0FDbkI7SUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFBO0NBQUUsR0FDZjtJQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0NBQUUsQ0FBQztBQWdCekMsZUFBTyxNQUFNLDhCQUE4QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUNYLENBQUM7QUFFOUU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sTUFBTSxzQkFBc0IsR0FBRztJQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7SUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFBO0NBQUUsQ0FBQztBQUU5RSxlQUFPLE1BQU0sNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBR2xGLENBQUM7QUFFSDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxNQUFNLGNBQWMsR0FBRyx3QkFBd0IsR0FBRyxzQkFBc0IsR0FBRyxXQUFXLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQztBQUVwSCxlQUFPLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQVVsRSxDQUFDO0FBRUgsOEdBQThHO0FBQzlHLHdCQUFnQix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxHQUFHLEtBQUssSUFBSSxzQkFBc0IsQ0FTL0Y7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxHQUFHLFNBQVMsR0FBRyxTQUFTLENBUS9FO0FBRUQsd0JBQWdCLHFCQUFxQixDQUFDLEtBQUssRUFBRSxjQUFjLFVBa0IxRCJ9
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcGFyYW1ldGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmxvY2svYmxvY2tfcGFyYW1ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBcUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUc5RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxlQUFPLE1BQU0sUUFBUSx3RUFBeUUsQ0FBQztBQUUvRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBTyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVqRCxlQUFPLE1BQU0sMkJBQTJCLGtJQUt0QyxDQUFDO0FBRUgsZUFBTyxNQUFNLGNBQWMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBK0QsQ0FBQztBQUUvRzs7R0FFRztBQUNILE1BQU0sTUFBTSx3QkFBd0IsR0FDaEM7SUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFBO0NBQUUsR0FDdkI7SUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFBO0NBQUUsR0FDbkI7SUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFBO0NBQUUsR0FDZjtJQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0NBQUUsQ0FBQztBQWtCekMsZUFBTyxNQUFNLDhCQUE4QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUNYLENBQUM7QUFFOUUsMEdBQTBHO0FBQzFHLE1BQU0sTUFBTSxxQkFBcUIsR0FBRztJQUFFLE9BQU8sRUFBRSxFQUFFLENBQUE7Q0FBRSxDQUFDO0FBRXBEOzs7R0FHRztBQUNILGVBQU8sTUFBTSwyQkFBMkIsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FDSixDQUFDO0FBRS9FOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE1BQU0sc0JBQXNCLEdBQUc7SUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQTtDQUFFLENBQUM7QUFFOUUsZUFBTyxNQUFNLDRCQUE0QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxDQUdsRixDQUFDO0FBRUg7Ozs7Ozs7R0FPRztBQUNILE1BQU0sTUFBTSxjQUFjLEdBQUcsd0JBQXdCLEdBQUcsc0JBQXNCLEdBQUcsV0FBVyxHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUM7QUFFcEgsZUFBTyxNQUFNLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FVbEUsQ0FBQztBQUVILDhHQUE4RztBQUM5Ryx3QkFBZ0Isd0JBQXdCLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxLQUFLLElBQUksc0JBQXNCLENBUy9GO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxTQUFTLEdBQUcsU0FBUyxDQVEvRTtBQUVELHdCQUFnQixxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxVQWtCMUQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"block_parameter.d.ts","sourceRoot":"","sources":["../../src/block/block_parameter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,sCAAsC,CAAC;AAC3F,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAG9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,QAAQ,wEAAyE,CAAC;AAE/F;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,2BAA2B,kIAKtC,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAA+D,CAAC;AAE/G;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,OAAO,EAAE,EAAE,CAAA;CAAE,GACf;IAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;CAAE,CAAC;AAgBzC,eAAO,MAAM,8BAA8B,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,OAAO,CACX,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAE9E,eAAO,MAAM,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAGlF,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAUlE,CAAC;AAEH,8GAA8G;AAC9G,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,IAAI,sBAAsB,CAS/F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS,CAQ/E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,UAkB1D"}
1
+ {"version":3,"file":"block_parameter.d.ts","sourceRoot":"","sources":["../../src/block/block_parameter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,sCAAsC,CAAC;AAC3F,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAG9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,QAAQ,wEAAyE,CAAC;AAE/F;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,2BAA2B,kIAKtC,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAA+D,CAAC;AAE/G;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,OAAO,EAAE,EAAE,CAAA;CAAE,GACf;IAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;CAAE,CAAC;AAkBzC,eAAO,MAAM,8BAA8B,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,OAAO,CACX,CAAC;AAE9E,0GAA0G;AAC1G,MAAM,MAAM,qBAAqB,GAAG;IAAE,OAAO,EAAE,EAAE,CAAA;CAAE,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,CACJ,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAE9E,eAAO,MAAM,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAGlF,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAUlE,CAAC;AAEH,8GAA8G;AAC9G,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,IAAI,sBAAsB,CAS/F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS,CAQ/E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,UAkB1D"}
@@ -26,6 +26,9 @@ const normalizedBlockParameterObjectSchema = z.object({
26
26
  archive: z.unknown().optional(),
27
27
  tag: z.unknown().optional()
28
28
  });
29
+ const archiveBlockParameterObjectSchema = z.object({
30
+ archive: schemas.Fr
31
+ }).strict();
29
32
  const normalizedBlockParameterVariants = z.union([
30
33
  z.object({
31
34
  number: BlockNumberSchema
@@ -33,14 +36,16 @@ const normalizedBlockParameterVariants = z.union([
33
36
  z.object({
34
37
  hash: BlockHash.schema
35
38
  }).strict(),
36
- z.object({
37
- archive: schemas.Fr
38
- }).strict(),
39
+ archiveBlockParameterObjectSchema,
39
40
  z.object({
40
41
  tag: BlockTagWithoutLatestSchema
41
42
  }).strict()
42
43
  ]);
43
44
  export const NormalizedBlockParameterSchema = normalizedBlockParameterObjectSchema.pipe(normalizedBlockParameterVariants);
45
+ /**
46
+ * Accepts only `{ archive }`, rejecting every other {@link BlockParameter} form, including an object that names another
47
+ * selector alongside the archive. Keys that are not selectors are dropped, as for {@link BlockParameterSchema}.
48
+ */ export const ArchiveBlockParameterSchema = normalizedBlockParameterObjectSchema.pipe(archiveBlockParameterObjectSchema);
44
49
  export const AnchoredBlockParameterSchema = z.object({
45
50
  number: BlockNumberSchema,
46
51
  hash: BlockHash.schema
@@ -51,6 +51,16 @@ export declare class CheckpointReexecutionTracker {
51
51
  hasReexecuted(checkpointNumber: CheckpointNumber, archiveRoot: Fr): boolean;
52
52
  /** Returns the recorded outcome for a given slot, or undefined if no proposal was evaluated. */
53
53
  getOutcomeForSlot(slot: SlotNumber): ReexecutionOutcome | undefined;
54
+ /**
55
+ * Whether this slot's recorded outcome is `valid` *and* was recorded for this archive root.
56
+ *
57
+ * {@link hasReexecuted} answers the same question but needs a checkpoint number, which the paths that re-validate
58
+ * a cached verdict do not always have: pruning the checkpoint's last block makes revalidation fail before the
59
+ * blocks are loaded, so its failure carries no checkpoint number. Keyed by slot and archive, this still tells a
60
+ * later local inability apart from a determination about the same checkpoint, while a different archive at the
61
+ * same slot remains a different question that records as usual.
62
+ */
63
+ hasValidOutcomeForSlot(slot: SlotNumber, archiveRoot: Fr): boolean;
54
64
  /**
55
65
  * Returns the recorded tx-collection result for a block proposal at the given slot and
56
66
  * `indexWithinCheckpoint`, or `undefined` if no record exists.
@@ -65,4 +75,4 @@ export declare class CheckpointReexecutionTracker {
65
75
  /** Drops entries for checkpoints with `number < checkpointNumber`. */
66
76
  removeBefore(checkpointNumber: CheckpointNumber): void;
67
77
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yZWV4ZWN1dGlvbl90cmFja2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X3JlZXhlY3V0aW9uX3RyYWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFOUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBZ0NyRSxxQkFBYSw0QkFBNEI7SUFDdkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQW1EO0lBQ2hGLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFnQztJQUV2RDs7Ozs7OztPQU9HO0lBQ0ksYUFBYSxDQUNsQixJQUFJLEVBQUUsVUFBVSxFQUNoQixXQUFXLEVBQUUsRUFBRSxFQUNmLE9BQU8sRUFBRSxrQkFBa0IsRUFDM0IsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsR0FDbEMsSUFBSSxDQXdCTjtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksa0JBQWtCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sR0FBRyxJQUFJLENBY25HO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQWNoRDtJQUVELHlFQUF5RTtJQUNsRSxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBRWhEO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUVqRjtJQUVELGdHQUFnRztJQUN6RixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLGtCQUFrQixHQUFHLFNBQVMsQ0FFekU7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUVqRztJQUVELHNFQUFzRTtJQUMvRCxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsSUFBSSxDQTRCNUQ7Q0FDRiJ9
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yZWV4ZWN1dGlvbl90cmFja2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X3JlZXhlY3V0aW9uX3RyYWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFOUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBZ0NyRSxxQkFBYSw0QkFBNEI7SUFDdkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQW1EO0lBQ2hGLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFnQztJQUV2RDs7Ozs7OztPQU9HO0lBQ0ksYUFBYSxDQUNsQixJQUFJLEVBQUUsVUFBVSxFQUNoQixXQUFXLEVBQUUsRUFBRSxFQUNmLE9BQU8sRUFBRSxrQkFBa0IsRUFDM0IsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsR0FDbEMsSUFBSSxDQXdCTjtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksa0JBQWtCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sR0FBRyxJQUFJLENBY25HO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQWNoRDtJQUVELHlFQUF5RTtJQUNsRSxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBRWhEO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUVqRjtJQUVELGdHQUFnRztJQUN6RixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLGtCQUFrQixHQUFHLFNBQVMsQ0FFekU7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBR3hFO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0kscUJBQXFCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FFakc7SUFFRCxzRUFBc0U7SUFDL0QsWUFBWSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLElBQUksQ0E0QjVEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_reexecution_tracker.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_reexecution_tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAgCrE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;IAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD;;;;;;;OAOG;IACI,aAAa,CAClB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,EAAE,EACf,OAAO,EAAE,kBAAkB,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAwBN;IAED;;;;;;;;;;;OAWG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAcnG;IAED;;;;OAIG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAchD;IAED,yEAAyE;IAClE,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEhD;IAED;;;OAGG;IACI,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAEjF;IAED,gGAAgG;IACzF,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAEzE;IAED;;;;;;;;;OASG;IACI,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG;IAED,sEAAsE;IAC/D,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CA4B5D;CACF"}
1
+ {"version":3,"file":"checkpoint_reexecution_tracker.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_reexecution_tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAgCrE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;IAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD;;;;;;;OAOG;IACI,aAAa,CAClB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,EAAE,EACf,OAAO,EAAE,kBAAkB,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAwBN;IAED;;;;;;;;;;;OAWG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAcnG;IAED;;;;OAIG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAchD;IAED,yEAAyE;IAClE,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEhD;IAED;;;OAGG;IACI,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAEjF;IAED,gGAAgG;IACzF,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAEzE;IAED;;;;;;;;OAQG;IACI,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAGxE;IAED;;;;;;;;;OASG;IACI,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG;IAED,sEAAsE;IAC/D,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CA4B5D;CACF"}
@@ -88,6 +88,18 @@ export class CheckpointReexecutionTracker {
88
88
  return this.bySlot.get(slot)?.outcome;
89
89
  }
90
90
  /**
91
+ * Whether this slot's recorded outcome is `valid` *and* was recorded for this archive root.
92
+ *
93
+ * {@link hasReexecuted} answers the same question but needs a checkpoint number, which the paths that re-validate
94
+ * a cached verdict do not always have: pruning the checkpoint's last block makes revalidation fail before the
95
+ * blocks are loaded, so its failure carries no checkpoint number. Keyed by slot and archive, this still tells a
96
+ * later local inability apart from a determination about the same checkpoint, while a different archive at the
97
+ * same slot remains a different question that records as usual.
98
+ */ hasValidOutcomeForSlot(slot, archiveRoot) {
99
+ const entry = this.bySlot.get(slot);
100
+ return entry?.outcome === 'valid' && entry.archiveRoot === archiveRoot.toString();
101
+ }
102
+ /**
91
103
  * Returns the recorded tx-collection result for a block proposal at the given slot and
92
104
  * `indexWithinCheckpoint`, or `undefined` if no record exists.
93
105
  *
@@ -37,8 +37,9 @@ export declare function validateCheckpoint(checkpoint: Checkpoint, opts: {
37
37
  * - Archive root chaining between consecutive blocks
38
38
  * - Consistent slot number across all blocks
39
39
  * - Global variables (slot, timestamp, coinbase, feeRecipient, gasFees) match checkpoint header for each block
40
+ * - No tx hash appears more than once across all blocks of the checkpoint
40
41
  */
41
42
  export declare function validateCheckpointStructure(checkpoint: Checkpoint, opts?: {
42
43
  maxBlocksPerCheckpoint?: number;
43
44
  }): void;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBSXpGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELHFCQUFhLHlCQUEwQixTQUFRLEtBQUs7YUFHaEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO2FBQ2xDLElBQUksRUFBRSxVQUFVO0lBSGxDLFlBQ0UsT0FBTyxFQUFFLE1BQU0sRUFDQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsSUFBSSxFQUFFLFVBQVUsRUFJakM7Q0FDRjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQ2hDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLElBQUksRUFBRTtJQUNKLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN6QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4Qjs7OztPQUlHO0lBQ0gsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDakMsR0FDQSxJQUFJLENBSU47QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHdCQUFnQiwyQkFBMkIsQ0FDekMsVUFBVSxFQUFFLFVBQVUsRUFDdEIsSUFBSSxHQUFFO0lBQUUsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUE7Q0FBTyxHQUM3QyxJQUFJLENBd0VOIn0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBSXpGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELHFCQUFhLHlCQUEwQixTQUFRLEtBQUs7YUFHaEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO2FBQ2xDLElBQUksRUFBRSxVQUFVO0lBSGxDLFlBQ0UsT0FBTyxFQUFFLE1BQU0sRUFDQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsSUFBSSxFQUFFLFVBQVUsRUFJakM7Q0FDRjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQ2hDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLElBQUksRUFBRTtJQUNKLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN6QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4Qjs7OztPQUlHO0lBQ0gsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDakMsR0FDQSxJQUFJLENBSU47QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBZ0IsMkJBQTJCLENBQ3pDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLElBQUksR0FBRTtJQUFFLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxDQUFBO0NBQU8sR0FDN0MsSUFBSSxDQXFGTiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/checkpoint/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAIzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,yBAA0B,SAAQ,KAAK;aAGhC,gBAAgB,EAAE,gBAAgB;aAClC,IAAI,EAAE,UAAU;IAHlC,YACE,OAAO,EAAE,MAAM,EACC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,UAAU,EAIjC;CACF;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE;IACJ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GACA,IAAI,CAIN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,IAAI,GAAE;IAAE,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,IAAI,CAwEN"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/checkpoint/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAIzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,yBAA0B,SAAQ,KAAK;aAGhC,gBAAgB,EAAE,gBAAgB;aAClC,IAAI,EAAE,UAAU;IAHlC,YACE,OAAO,EAAE,MAAM,EACC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,UAAU,EAIjC;CACF;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE;IACJ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GACA,IAAI,CAIN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,IAAI,GAAE;IAAE,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,IAAI,CAqFN"}
@@ -34,6 +34,7 @@ export class CheckpointValidationError extends Error {
34
34
  * - Archive root chaining between consecutive blocks
35
35
  * - Consistent slot number across all blocks
36
36
  * - Global variables (slot, timestamp, coinbase, feeRecipient, gasFees) match checkpoint header for each block
37
+ * - No tx hash appears more than once across all blocks of the checkpoint
37
38
  */ export function validateCheckpointStructure(checkpoint, opts = {}) {
38
39
  const { maxBlocksPerCheckpoint = MAX_ATTESTABLE_BLOCKS_PER_CHECKPOINT } = opts;
39
40
  const { blocks, number, slot } = checkpoint;
@@ -44,6 +45,7 @@ export class CheckpointValidationError extends Error {
44
45
  throw new CheckpointValidationError(`Checkpoint has ${blocks.length} blocks, exceeding limit of ${maxBlocksPerCheckpoint}`, number, slot);
45
46
  }
46
47
  const firstBlock = blocks[0];
48
+ const seenTxHashes = new Set();
47
49
  if (!checkpoint.header.lastArchiveRoot.equals(firstBlock.header.lastArchive.root)) {
48
50
  throw new CheckpointValidationError(`Checkpoint lastArchiveRoot does not match first block's lastArchive root`, number, slot);
49
51
  }
@@ -67,6 +69,13 @@ export class CheckpointValidationError extends Error {
67
69
  throw new CheckpointValidationError(`Block ${block.number} lastArchive root does not match archive root of block ${prev.number}`, number, slot);
68
70
  }
69
71
  }
72
+ for (const txEffect of block.body.txEffects){
73
+ const txHash = txEffect.txHash.toString();
74
+ if (seenTxHashes.has(txHash)) {
75
+ throw new CheckpointValidationError(`Tx ${txHash} in block ${block.number} appears more than once in the checkpoint`, number, slot);
76
+ }
77
+ seenTxHashes.add(txHash);
78
+ }
70
79
  }
71
80
  }
72
81
  /** Validates checkpoint blocks gas limits */ function validateCheckpointBlocksLimits(checkpoint, opts) {
@@ -1,7 +1,7 @@
1
1
  import { type L1ContractsConfig } from '@aztec-labs/ethereum/config';
2
2
  import type { SequencerConfig } from '../interfaces/configs.js';
3
3
  /**
4
- * Environment variables whose values must be identical across every node of a network. They fall into three
4
+ * Environment variables whose values must be identical across every node of a network. They fall into four
5
5
  * categories, all consensus-critical:
6
6
  *
7
7
  * - Timing/protocol consensus: slot and epoch durations, block sub-slot duration, max blocks per checkpoint, and
@@ -13,14 +13,22 @@ import type { SequencerConfig } from '../interfaces/configs.js';
13
13
  * it points at would compute the wrong epoch geometry, fees, or slashing rounds.
14
14
  * - Node-side slashing offense consensus: the offense detection/penalty parameters validators apply locally to
15
15
  * decide which payloads to sign. Validators must agree on these to reach the on-chain slashing quorum.
16
+ * - Validator acceptance limits: the most txs a validator accepts in a peer's checkpoint. These are floors rather
17
+ * than exact values (see {@link NETWORK_CONSENSUS_RAISABLE_ENV_VARS}), and proposers must build within them.
16
18
  *
17
19
  * Deliberately excluded: bootnodes, P2P/store/OTEL/sentinel settings, SEQ_MIN_TX_PER_BLOCK, SEQ_MAX_TX_PER_*,
18
20
  * AZTEC_SLASHER_ENABLED, PROVER_REAL_PROOFS, TRANSACTIONS_DISABLED, and AZTEC_ENTRY_QUEUE_* (mainnet-only genesis
19
21
  * params enforced by L1).
20
22
  */
21
- export declare const NETWORK_CONSENSUS_ENV_VARS: readonly ["ETHEREUM_SLOT_DURATION", "AZTEC_SLOT_DURATION", "AZTEC_EPOCH_DURATION", "SEQ_BLOCK_DURATION_MS", "MAX_BLOCKS_PER_CHECKPOINT", "CHECKPOINT_PROPOSAL_SYNC_GRACE_SECONDS", "L1_CHAIN_ID", "AZTEC_TARGET_COMMITTEE_SIZE", "AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET", "AZTEC_LAG_IN_EPOCHS_FOR_RANDAO", "AZTEC_ACTIVATION_THRESHOLD", "AZTEC_EJECTION_THRESHOLD", "AZTEC_LOCAL_EJECTION_THRESHOLD", "AZTEC_EXIT_DELAY_SECONDS", "AZTEC_PROOF_SUBMISSION_EPOCHS", "AZTEC_MANA_TARGET", "AZTEC_PROVING_COST_PER_MANA", "AZTEC_INITIAL_ETH_PER_FEE_ASSET", "AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE", "AZTEC_GOVERNANCE_PROPOSER_QUORUM", "AZTEC_SLASHING_QUORUM", "AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS", "AZTEC_SLASHING_LIFETIME_IN_ROUNDS", "AZTEC_SLASHING_OFFSET_IN_ROUNDS", "AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS", "AZTEC_SLASHING_VETOER", "AZTEC_SLASHING_DISABLE_DURATION", "AZTEC_SLASH_AMOUNT_SMALL", "AZTEC_SLASH_AMOUNT_MEDIUM", "AZTEC_SLASH_AMOUNT_LARGE", "SLASH_OFFENSE_EXPIRATION_ROUNDS", "SLASH_MAX_PAYLOAD_SIZE", "SLASH_EXECUTE_ROUNDS_LOOK_BACK", "SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS", "SLASH_DATA_WITHHOLDING_PENALTY", "SLASH_INACTIVITY_TARGET_PERCENTAGE", "SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD", "SLASH_INACTIVITY_PENALTY", "SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY", "SLASH_DUPLICATE_PROPOSAL_PENALTY", "SLASH_DUPLICATE_ATTESTATION_PENALTY", "SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY", "SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY", "SLASH_UNKNOWN_PENALTY", "SLASH_INVALID_BLOCK_PENALTY", "SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY", "SLASH_GRACE_PERIOD_L2_SLOTS"];
23
+ export declare const NETWORK_CONSENSUS_ENV_VARS: readonly ["ETHEREUM_SLOT_DURATION", "AZTEC_SLOT_DURATION", "AZTEC_EPOCH_DURATION", "SEQ_BLOCK_DURATION_MS", "MAX_BLOCKS_PER_CHECKPOINT", "CHECKPOINT_PROPOSAL_SYNC_GRACE_SECONDS", "L1_CHAIN_ID", "AZTEC_TARGET_COMMITTEE_SIZE", "AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET", "AZTEC_LAG_IN_EPOCHS_FOR_RANDAO", "AZTEC_ACTIVATION_THRESHOLD", "AZTEC_EJECTION_THRESHOLD", "AZTEC_LOCAL_EJECTION_THRESHOLD", "AZTEC_EXIT_DELAY_SECONDS", "AZTEC_PROOF_SUBMISSION_EPOCHS", "AZTEC_MANA_TARGET", "AZTEC_PROVING_COST_PER_MANA", "AZTEC_INITIAL_ETH_PER_FEE_ASSET", "AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE", "AZTEC_GOVERNANCE_PROPOSER_QUORUM", "AZTEC_SLASHING_QUORUM", "AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS", "AZTEC_SLASHING_LIFETIME_IN_ROUNDS", "AZTEC_SLASHING_OFFSET_IN_ROUNDS", "AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS", "AZTEC_SLASHING_VETOER", "AZTEC_SLASHING_DISABLE_DURATION", "AZTEC_SLASH_AMOUNT_SMALL", "AZTEC_SLASH_AMOUNT_MEDIUM", "AZTEC_SLASH_AMOUNT_LARGE", "SLASH_OFFENSE_EXPIRATION_ROUNDS", "SLASH_MAX_PAYLOAD_SIZE", "SLASH_EXECUTE_ROUNDS_LOOK_BACK", "SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS", "SLASH_DATA_WITHHOLDING_PENALTY", "SLASH_INACTIVITY_TARGET_PERCENTAGE", "SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD", "SLASH_INACTIVITY_PENALTY", "SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY", "SLASH_DUPLICATE_PROPOSAL_PENALTY", "SLASH_DUPLICATE_ATTESTATION_PENALTY", "SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY", "SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY", "SLASH_UNKNOWN_PENALTY", "SLASH_INVALID_BLOCK_PENALTY", "SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY", "SLASH_GRACE_PERIOD_L2_SLOTS", "VALIDATOR_MAX_TX_PER_CHECKPOINT"];
22
24
  /** A consensus-critical environment variable name; see {@link NETWORK_CONSENSUS_ENV_VARS}. */
23
25
  export type ConsensusEnvVar = (typeof NETWORK_CONSENSUS_ENV_VARS)[number];
26
+ /**
27
+ * Consensus-critical vars an operator may raise above the network value but never lower. A validator that accepts
28
+ * more than the network limit still accepts every checkpoint an honest proposer builds within it, whereas a stricter
29
+ * one would reject a protocol-valid checkpoint and decline to attest to it.
30
+ */
31
+ export declare const NETWORK_CONSENSUS_RAISABLE_ENV_VARS: readonly ConsensusEnvVar[];
24
32
  /**
25
33
  * The subset of consensus-critical timing config whose geometry can be validated in isolation. Composed by
26
34
  * picking the canonical fields from their owning config types so the field set never drifts from the config
@@ -52,13 +60,17 @@ export declare function validateNetworkConsensusConfig(config: NetworkConsensusC
52
60
  *
53
61
  * For each var in {@link NETWORK_CONSENSUS_ENV_VARS} present in `networkConfig`: if the operator set it in `env`
54
62
  * to a conflicting value, this throws unless `ALLOW_OVERRIDING_NETWORK_CONFIG` is truthy (in which case it logs
55
- * and keeps the operator value).
63
+ * and keeps the operator value). For a var in {@link NETWORK_CONSENSUS_RAISABLE_ENV_VARS}, only a value below the
64
+ * network one conflicts. The same applies to a `SEQ_MAX_TX_PER_CHECKPOINT` (from `env`, or else from
65
+ * `networkConfig`) above the network `VALIDATOR_MAX_TX_PER_CHECKPOINT`: validators running the network value would
66
+ * reject every checkpoint this node proposed over it.
56
67
  *
57
68
  * This function is pure: it never writes to `env`. Instead it returns the canonical env writes the caller
58
69
  * should apply — a map of env-var name to canonical string value for every numeric var whose env value matched
59
70
  * the network value numerically. Applying these closes a bypass where the config layer parses some vars with
60
71
  * `parseInt` (which reads '6e3' as 6); rewriting them to the network value's string form keeps the operator's
61
- * numerically-equal value but in canonical form. Vars kept under `ALLOW_OVERRIDING_NETWORK_CONFIG` (genuine
72
+ * numerically-equal value but in canonical form. A raisable var set above the network value is canonicalized to
73
+ * its own numeric value for the same reason. Vars kept under `ALLOW_OVERRIDING_NETWORK_CONFIG` (genuine
62
74
  * conflicts) are not included, so the operator value is preserved untouched.
63
75
  *
64
76
  * @returns Canonical env writes (env-var name -> canonical string value) for the caller to apply.
@@ -70,4 +82,4 @@ export declare function checkConsensusEnvOverrides(networkConfig: Record<string,
70
82
  export declare function allowsNetworkConfigOverride(env?: {
71
83
  [key: string]: string | undefined;
72
84
  }): boolean;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1jb25zZW5zdXMtY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL25ldHdvcmstY29uc2Vuc3VzLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBb0QsTUFBTSw2QkFBNkIsQ0FBQztBQUl2SCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVdoRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxlQUFPLE1BQU0sMEJBQTBCLHdrREFxREQsQ0FBQztBQUV2Qyw4RkFBOEY7QUFDOUYsTUFBTSxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQU8sMEJBQTBCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUUxRTs7Ozs7R0FLRztBQUNILE1BQU0sTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLEdBQUcsc0JBQXNCLENBQUMsR0FDeEcsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEdBQUcsd0JBQXdCLEdBQUcsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO0FBWXZIOzs7Ozs7R0FNRztBQUNILHdCQUFnQixnQ0FBZ0MsQ0FDOUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FDaEQsc0JBQXNCLENBaUJ4QjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQiw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLEdBQUcsTUFBTSxFQUFFLENBOEV2RjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHdCQUFnQiwwQkFBMEIsQ0FDeEMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFDeEQsR0FBRyxHQUFFO0lBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUE7Q0FBZ0IsRUFDeEQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLElBQUksR0FDMUIsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FpRHhCO0FBRUQsOEdBQThHO0FBQzlHLHdCQUFnQiwyQkFBMkIsQ0FBQyxHQUFHLEdBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FBQTtDQUFnQixHQUFHLE9BQU8sQ0FHN0cifQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1jb25zZW5zdXMtY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL25ldHdvcmstY29uc2Vuc3VzLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBb0QsTUFBTSw2QkFBNkIsQ0FBQztBQUl2SCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVdoRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILGVBQU8sTUFBTSwwQkFBMEIsMm1EQXdERCxDQUFDO0FBRXZDLDhGQUE4RjtBQUM5RixNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTywwQkFBMEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTFFOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sbUNBQW1DLEVBQUUsU0FBUyxlQUFlLEVBQXdDLENBQUM7QUFFbkg7Ozs7O0dBS0c7QUFDSCxNQUFNLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixHQUFHLHNCQUFzQixDQUFDLEdBQ3hHLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGlCQUFpQixHQUFHLHdCQUF3QixHQUFHLG9DQUFvQyxDQUFDLENBQUMsQ0FBQztBQVl2SDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsZ0NBQWdDLENBQzlDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQ2hELHNCQUFzQixDQWlCeEI7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsOEJBQThCLENBQUMsTUFBTSxFQUFFLHNCQUFzQixHQUFHLE1BQU0sRUFBRSxDQThFdkY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILHdCQUFnQiwwQkFBMEIsQ0FDeEMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFDeEQsR0FBRyxHQUFFO0lBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUE7Q0FBZ0IsRUFDeEQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLElBQUksR0FDMUIsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FrRXhCO0FBNEJELDhHQUE4RztBQUM5Ryx3QkFBZ0IsMkJBQTJCLENBQUMsR0FBRyxHQUFFO0lBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUE7Q0FBZ0IsR0FBRyxPQUFPLENBRzdHIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"network-consensus-config.d.ts","sourceRoot":"","sources":["../../src/config/network-consensus-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAoD,MAAM,6BAA6B,CAAC;AAIvH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAWhE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,0BAA0B,wkDAqDD,CAAC;AAEvC,8FAA8F;AAC9F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,GAAG,sBAAsB,CAAC,GACxG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,wBAAwB,GAAG,oCAAoC,CAAC,CAAC,CAAC;AAYvH;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAChD,sBAAsB,CAiBxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,EAAE,CA8EvF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACxD,GAAG,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAgB,EACxD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiDxB;AAED,8GAA8G;AAC9G,wBAAgB,2BAA2B,CAAC,GAAG,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAgB,GAAG,OAAO,CAG7G"}
1
+ {"version":3,"file":"network-consensus-config.d.ts","sourceRoot":"","sources":["../../src/config/network-consensus-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAoD,MAAM,6BAA6B,CAAC;AAIvH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAWhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,0BAA0B,2mDAwDD,CAAC;AAEvC,8FAA8F;AAC9F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,EAAE,SAAS,eAAe,EAAwC,CAAC;AAEnH;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,GAAG,sBAAsB,CAAC,GACxG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,wBAAwB,GAAG,oCAAoC,CAAC,CAAC,CAAC;AAYvH;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAChD,sBAAsB,CAiBxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,EAAE,CA8EvF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACxD,GAAG,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAgB,EACxD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkExB;AA4BD,8GAA8G;AAC9G,wBAAgB,2BAA2B,CAAC,GAAG,GAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAgB,GAAG,OAAO,CAG7G"}
@@ -6,7 +6,7 @@ import { DEFAULT_CHECKPOINT_PROPOSAL_INIT_TIME, DEFAULT_CHECKPOINT_PROPOSAL_PREP
6
6
  import { ProposerTimetable } from '../timetable/proposer_timetable.js';
7
7
  import { sharedSequencerConfigMappings } from './sequencer-config.js';
8
8
  /**
9
- * Environment variables whose values must be identical across every node of a network. They fall into three
9
+ * Environment variables whose values must be identical across every node of a network. They fall into four
10
10
  * categories, all consensus-critical:
11
11
  *
12
12
  * - Timing/protocol consensus: slot and epoch durations, block sub-slot duration, max blocks per checkpoint, and
@@ -18,6 +18,8 @@ import { sharedSequencerConfigMappings } from './sequencer-config.js';
18
18
  * it points at would compute the wrong epoch geometry, fees, or slashing rounds.
19
19
  * - Node-side slashing offense consensus: the offense detection/penalty parameters validators apply locally to
20
20
  * decide which payloads to sign. Validators must agree on these to reach the on-chain slashing quorum.
21
+ * - Validator acceptance limits: the most txs a validator accepts in a peer's checkpoint. These are floors rather
22
+ * than exact values (see {@link NETWORK_CONSENSUS_RAISABLE_ENV_VARS}), and proposers must build within them.
21
23
  *
22
24
  * Deliberately excluded: bootnodes, P2P/store/OTEL/sentinel settings, SEQ_MIN_TX_PER_BLOCK, SEQ_MAX_TX_PER_*,
23
25
  * AZTEC_SLASHER_ENABLED, PROVER_REAL_PROOFS, TRANSACTIONS_DISABLED, and AZTEC_ENTRY_QUEUE_* (mainnet-only genesis
@@ -72,7 +74,16 @@ import { sharedSequencerConfigMappings } from './sequencer-config.js';
72
74
  'SLASH_UNKNOWN_PENALTY',
73
75
  'SLASH_INVALID_BLOCK_PENALTY',
74
76
  'SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY',
75
- 'SLASH_GRACE_PERIOD_L2_SLOTS'
77
+ 'SLASH_GRACE_PERIOD_L2_SLOTS',
78
+ // Validator acceptance limits.
79
+ 'VALIDATOR_MAX_TX_PER_CHECKPOINT'
80
+ ];
81
+ /**
82
+ * Consensus-critical vars an operator may raise above the network value but never lower. A validator that accepts
83
+ * more than the network limit still accepts every checkpoint an honest proposer builds within it, whereas a stricter
84
+ * one would reject a protocol-valid checkpoint and decline to attest to it.
85
+ */ export const NETWORK_CONSENSUS_RAISABLE_ENV_VARS = [
86
+ 'VALIDATOR_MAX_TX_PER_CHECKPOINT'
76
87
  ];
77
88
  /** Config mappings for the slot-timing fields of {@link NetworkConsensusConfig}, picked from their owners. */ const networkConsensusConfigMappings = {
78
89
  ...pickConfigMappings(l1ContractsConfigMappings, [
@@ -177,13 +188,17 @@ import { sharedSequencerConfigMappings } from './sequencer-config.js';
177
188
  *
178
189
  * For each var in {@link NETWORK_CONSENSUS_ENV_VARS} present in `networkConfig`: if the operator set it in `env`
179
190
  * to a conflicting value, this throws unless `ALLOW_OVERRIDING_NETWORK_CONFIG` is truthy (in which case it logs
180
- * and keeps the operator value).
191
+ * and keeps the operator value). For a var in {@link NETWORK_CONSENSUS_RAISABLE_ENV_VARS}, only a value below the
192
+ * network one conflicts. The same applies to a `SEQ_MAX_TX_PER_CHECKPOINT` (from `env`, or else from
193
+ * `networkConfig`) above the network `VALIDATOR_MAX_TX_PER_CHECKPOINT`: validators running the network value would
194
+ * reject every checkpoint this node proposed over it.
181
195
  *
182
196
  * This function is pure: it never writes to `env`. Instead it returns the canonical env writes the caller
183
197
  * should apply — a map of env-var name to canonical string value for every numeric var whose env value matched
184
198
  * the network value numerically. Applying these closes a bypass where the config layer parses some vars with
185
199
  * `parseInt` (which reads '6e3' as 6); rewriting them to the network value's string form keeps the operator's
186
- * numerically-equal value but in canonical form. Vars kept under `ALLOW_OVERRIDING_NETWORK_CONFIG` (genuine
200
+ * numerically-equal value but in canonical form. A raisable var set above the network value is canonicalized to
201
+ * its own numeric value for the same reason. Vars kept under `ALLOW_OVERRIDING_NETWORK_CONFIG` (genuine
187
202
  * conflicts) are not included, so the operator value is preserved untouched.
188
203
  *
189
204
  * @returns Canonical env writes (env-var name -> canonical string value) for the caller to apply.
@@ -191,6 +206,13 @@ import { sharedSequencerConfigMappings } from './sequencer-config.js';
191
206
  const allowOverride = allowsNetworkConfigOverride(env);
192
207
  const canonical = {};
193
208
  const conflicts = [];
209
+ const reportConflict = (conflict)=>{
210
+ if (allowOverride) {
211
+ log?.(`Environment variable ${conflict}. Consensus-critical values must match across the network, but ` + `ALLOW_OVERRIDING_NETWORK_CONFIG is set so the operator value is kept (only do this if you know what ` + `you are doing).`);
212
+ } else {
213
+ conflicts.push(conflict);
214
+ }
215
+ };
194
216
  for (const envVar of NETWORK_CONSENSUS_ENV_VARS){
195
217
  const networkValue = networkConfig[envVar];
196
218
  if (networkValue === undefined) {
@@ -208,12 +230,19 @@ import { sharedSequencerConfigMappings } from './sequencer-config.js';
208
230
  }
209
231
  continue;
210
232
  }
211
- const conflict = `${envVar}=${current} conflicts with the network value ${networkValue}`;
212
- if (allowOverride) {
213
- log?.(`Environment variable ${conflict}. Consensus-critical values must match across the network, but ` + `ALLOW_OVERRIDING_NETWORK_CONFIG is set so the operator value is kept (only do this if you know what ` + `you are doing).`);
233
+ if (NETWORK_CONSENSUS_RAISABLE_ENV_VARS.includes(envVar) && networkIsNumeric) {
234
+ if (Number(current) > networkValue) {
235
+ canonical[envVar] = String(Number(current));
236
+ continue;
237
+ }
238
+ reportConflict(`${envVar}=${current} is below the network value ${networkValue} and may only be raised`);
214
239
  continue;
215
240
  }
216
- conflicts.push(conflict);
241
+ reportConflict(`${envVar}=${current} conflicts with the network value ${networkValue}`);
242
+ }
243
+ const proposerConflict = getProposerTxLimitConflict(networkConfig, env);
244
+ if (proposerConflict !== undefined) {
245
+ reportConflict(proposerConflict);
217
246
  }
218
247
  // Accumulate every conflict so the operator sees all the env vars they need to reconcile at once, rather than
219
248
  // fixing them one failed startup at a time.
@@ -222,6 +251,23 @@ import { sharedSequencerConfigMappings } from './sequencer-config.js';
222
251
  }
223
252
  return canonical;
224
253
  }
254
+ /**
255
+ * Returns a conflict when this node would propose checkpoints with more txs than the network's validators accept:
256
+ * its `SEQ_MAX_TX_PER_CHECKPOINT` (from `env`, or else from `networkConfig`) exceeds the network
257
+ * `VALIDATOR_MAX_TX_PER_CHECKPOINT`. Compares against the network value, not this node's own raised one, since
258
+ * that is what the rest of the committee enforces.
259
+ */ function getProposerTxLimitConflict(networkConfig, env) {
260
+ const validatorMax = networkConfig.VALIDATOR_MAX_TX_PER_CHECKPOINT;
261
+ if (typeof validatorMax !== 'number') {
262
+ return undefined;
263
+ }
264
+ const fromEnv = env.SEQ_MAX_TX_PER_CHECKPOINT;
265
+ const proposerMax = fromEnv !== undefined && fromEnv !== '' ? Number(fromEnv) : Number(networkConfig.SEQ_MAX_TX_PER_CHECKPOINT);
266
+ if (!Number.isFinite(proposerMax) || proposerMax <= validatorMax) {
267
+ return undefined;
268
+ }
269
+ return `SEQ_MAX_TX_PER_CHECKPOINT=${proposerMax} exceeds the network VALIDATOR_MAX_TX_PER_CHECKPOINT of ` + `${validatorMax}, so validators would reject checkpoints this node proposes above it`;
270
+ }
225
271
  /** Whether the env opts into overriding network-wide consensus values (`ALLOW_OVERRIDING_NETWORK_CONFIG`). */ export function allowsNetworkConfigOverride(env = process.env) {
226
272
  const value = env.ALLOW_OVERRIDING_NETWORK_CONFIG;
227
273
  return value === '1' || value?.toLowerCase() === 'true';
@@ -8,7 +8,7 @@ import type { PartialAddress } from './partial_address.js';
8
8
  * ```
9
9
  * salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer, immutables_hash])
10
10
  * partial_address = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [contract_class_id, salted_initialization_hash])
11
- * address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V2, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
11
+ * address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V3, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
12
12
  * ```
13
13
  * @param instance - A contract instance for which to calculate the deployment address.
14
14
  */
@@ -10,7 +10,7 @@ import { computeAddress } from '../keys/index.js';
10
10
  * ```
11
11
  * salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer, immutables_hash])
12
12
  * partial_address = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [contract_class_id, salted_initialization_hash])
13
- * address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V2, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
13
+ * address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V3, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
14
14
  * ```
15
15
  * @param instance - A contract instance for which to calculate the deployment address.
16
16
  */ export async function computeContractAddressFromInstance(instance) {
@@ -3,8 +3,8 @@
3
3
  * Used to predict worst-case min fees over a future window of L2 slots.
4
4
  */
5
5
  export declare const MINIMUM_CONGESTION_MULTIPLIER = 1000000000n;
6
- export declare const L1_GAS_PER_CHECKPOINT_PROPOSED = 500000n;
7
- export declare const L1_GAS_PER_EPOCH_VERIFIED = 4000000n;
6
+ export declare const L1_GAS_PER_CHECKPOINT_PROPOSED = 520000n;
7
+ export declare const L1_GAS_PER_EPOCH_VERIFIED = 2500000n;
8
8
  export declare const BLOBS_PER_CHECKPOINT = 3n;
9
9
  export declare const BLOB_GAS_PER_BLOB: bigint;
10
10
  export declare const MAGIC_CONGESTION_VALUE_MULTIPLIER = 854700854n;
@@ -3,8 +3,8 @@
3
3
  * Used to predict worst-case min fees over a future window of L2 slots.
4
4
  */ // Constants matching FeeLib.sol
5
5
  export const MINIMUM_CONGESTION_MULTIPLIER = 1_000_000_000n;
6
- export const L1_GAS_PER_CHECKPOINT_PROPOSED = 500_000n;
7
- export const L1_GAS_PER_EPOCH_VERIFIED = 4_000_000n;
6
+ export const L1_GAS_PER_CHECKPOINT_PROPOSED = 520_000n;
7
+ export const L1_GAS_PER_EPOCH_VERIFIED = 2_500_000n;
8
8
  export const BLOBS_PER_CHECKPOINT = 3n;
9
9
  export const BLOB_GAS_PER_BLOB = 2n ** 17n;
10
10
  export const MAGIC_CONGESTION_VALUE_MULTIPLIER = 854_700_854n;
@@ -31,6 +31,8 @@ export declare class GasFees {
31
31
  */
32
32
  static fromPlainObject(obj: any): GasFees;
33
33
  static random(): GasFees;
34
+ /** The lower of the two fees on each dimension independently. */
35
+ static min(a: GasFees, b: GasFees): GasFees;
34
36
  static empty(): GasFees;
35
37
  isEmpty(): boolean;
36
38
  static fromBuffer(buffer: Buffer | BufferReader): GasFees;
@@ -48,4 +50,28 @@ export declare class GasFees {
48
50
  export interface BlockMinFeesProvider {
49
51
  getCurrentMinFees(): Promise<GasFees>;
50
52
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzX2ZlZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYXMvZ2FzX2ZlZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBcUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBYTlDLHFDQUFxQztBQUNyQyxxQkFBYSxPQUFPO0lBQ2xCLFNBQWdCLFdBQVcsRUFBRSxPQUFPLENBQUM7SUFDckMsU0FBZ0IsV0FBVyxFQUFFLE9BQU8sQ0FBQztJQUVyQyxZQUFZLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUdyRTtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7UUFPaEI7SUFFRCxLQUFLLElBQUksT0FBTyxDQUVmO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLFdBRXBCO0lBRUQsR0FBRyxDQUFDLFNBQVMsRUFBRSxhQUFhLFVBTzNCO0lBRUQsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxXQVcxQjtJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FFcEM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUt4QztJQUVELE1BQU0sQ0FBQyxNQUFNLFlBRVo7SUFFRCxNQUFNLENBQUMsS0FBSyxZQUVYO0lBRUQsT0FBTyxZQUVOO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxPQUFPLENBR3hEO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FBQztJQUNuQixRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFTakMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxXQUczQztJQUVELFFBQVEsU0FFUDtJQUVELFNBQVM7OztNQUtSO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBRWY7Q0FDRjtBQUVELDhEQUE4RDtBQUM5RCxNQUFNLFdBQVcsb0JBQW9CO0lBQ25DLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUN2QyJ9
53
+ /**
54
+ * Provides the mana min fee the next block this node would build is going to charge.
55
+ *
56
+ * Distinct from {@link BlockMinFeesProvider}, which answers the L1-anchored price after the on-chain pending
57
+ * checkpoint and therefore cannot see the fee a locally proposed in-progress checkpoint already froze.
58
+ */
59
+ export interface NextBlockMinFeesProvider {
60
+ /**
61
+ * The fee the next block will charge, or undefined when the node cannot resolve it right now. For callers that
62
+ * must not act on a stand-in price, such as evicting transactions the next block could not include.
63
+ */
64
+ getNextBlockMinFees(): Promise<GasFees | undefined>;
65
+ }
66
+ /** Provides the mana min fees a transaction is held to on its way into this node, over gossip or into the pool. */
67
+ export interface TxAdmissionMinFeesProvider extends NextBlockMinFeesProvider {
68
+ /**
69
+ * The fee a transaction must be able to pay to enter this node, over gossip or into the pending pool. The
70
+ * next-block fee when it resolves, otherwise the L1-forward fee, so admission never runs without a floor: a
71
+ * zero `maxFeesPerGas` has a zero fee limit, which a fee payer with no balance also covers.
72
+ */
73
+ getAdmissionMinFees(): Promise<GasFees>;
74
+ /** The L1-anchored fee projected after the on-chain pending checkpoint, as {@link BlockMinFeesProvider} reports. */
75
+ getL1ForwardMinFees(): Promise<GasFees>;
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzX2ZlZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYXMvZ2FzX2ZlZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBcUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBYTlDLHFDQUFxQztBQUNyQyxxQkFBYSxPQUFPO0lBQ2xCLFNBQWdCLFdBQVcsRUFBRSxPQUFPLENBQUM7SUFDckMsU0FBZ0IsV0FBVyxFQUFFLE9BQU8sQ0FBQztJQUVyQyxZQUFZLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUdyRTtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7UUFPaEI7SUFFRCxLQUFLLElBQUksT0FBTyxDQUVmO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLFdBRXBCO0lBRUQsR0FBRyxDQUFDLFNBQVMsRUFBRSxhQUFhLFVBTzNCO0lBRUQsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxXQVcxQjtJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FFcEM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUt4QztJQUVELE1BQU0sQ0FBQyxNQUFNLFlBRVo7SUFFRCxpRUFBaUU7SUFDakUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLFdBS2hDO0lBRUQsTUFBTSxDQUFDLEtBQUssWUFFWDtJQUVELE9BQU8sWUFFTjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsT0FBTyxDQUd4RDtJQUVELFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkIsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBU2pDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsV0FHM0M7SUFFRCxRQUFRLFNBRVA7SUFFRCxTQUFTOzs7TUFLUjtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUVmO0NBQ0Y7QUFFRCw4REFBOEQ7QUFDOUQsTUFBTSxXQUFXLG9CQUFvQjtJQUNuQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Q0FDdkM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyx3QkFBd0I7SUFDdkM7OztPQUdHO0lBQ0gsbUJBQW1CLElBQUksT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FBQztDQUNyRDtBQUVELG1IQUFtSDtBQUNuSCxNQUFNLFdBQVcsMEJBQTJCLFNBQVEsd0JBQXdCO0lBQzFFOzs7O09BSUc7SUFDSCxtQkFBbUIsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFeEMsb0hBQW9IO0lBQ3BILG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUN6QyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"gas_fees.d.ts","sourceRoot":"","sources":["../../src/gas/gas_fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAqB,MAAM,kCAAkC,CAAC;AAC5G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAa9C,qCAAqC;AACrC,qBAAa,OAAO;IAClB,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,SAAgB,WAAW,EAAE,OAAO,CAAC;IAErC,YAAY,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAGrE;IAED,MAAM,KAAK,MAAM;;;;;;QAOhB;IAED,KAAK,IAAI,OAAO,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,WAEpB;IAED,GAAG,CAAC,SAAS,EAAE,aAAa,UAO3B;IAED,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,WAW1B;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,WAEpC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAKxC;IAED,MAAM,CAAC,MAAM,YAEZ;IAED,MAAM,CAAC,KAAK,YAEX;IAED,OAAO,YAEN;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAGxD;IAED,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IASjC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,WAG3C;IAED,QAAQ,SAEP;IAED,SAAS;;;MAKR;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;CACF;AAED,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"gas_fees.d.ts","sourceRoot":"","sources":["../../src/gas/gas_fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAqB,MAAM,kCAAkC,CAAC;AAC5G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAa9C,qCAAqC;AACrC,qBAAa,OAAO;IAClB,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,SAAgB,WAAW,EAAE,OAAO,CAAC;IAErC,YAAY,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAGrE;IAED,MAAM,KAAK,MAAM;;;;;;QAOhB;IAED,KAAK,IAAI,OAAO,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,WAEpB;IAED,GAAG,CAAC,SAAS,EAAE,aAAa,UAO3B;IAED,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,WAW1B;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,WAEpC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAKxC;IAED,MAAM,CAAC,MAAM,YAEZ;IAED,iEAAiE;IACjE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,WAKhC;IAED,MAAM,CAAC,KAAK,YAEX;IAED,OAAO,YAEN;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAGxD;IAED,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IASjC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,WAG3C;IAED,QAAQ,SAEP;IAED,SAAS;;;MAKR;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;CACF;AAED,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;CACrD;AAED,mHAAmH;AACnH,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;IAC1E;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAExC,oHAAoH;IACpH,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC"}
@@ -70,6 +70,9 @@ _computedKey = inspect.custom;
70
70
  static random() {
71
71
  return new GasFees(Math.floor(Math.random() * 1e9), Math.floor(Math.random() * 1e9));
72
72
  }
73
+ /** The lower of the two fees on each dimension independently. */ static min(a, b) {
74
+ return new GasFees(a.feePerDaGas < b.feePerDaGas ? a.feePerDaGas : b.feePerDaGas, a.feePerL2Gas < b.feePerL2Gas ? a.feePerL2Gas : b.feePerL2Gas);
75
+ }
73
76
  static empty() {
74
77
  return new GasFees(0, 0);
75
78
  }
@@ -133,6 +133,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
133
133
  skipBroadcastCheckpointProposal: z.ZodOptional<z.ZodBoolean>;
134
134
  pauseProposingForSlots: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>, z.ZodTransform<import("@aztec-labs/foundation/schemas").SlotNumber, number>>>>;
135
135
  minPeersToPropose: z.ZodOptional<z.ZodNumber>;
136
+ allowUnsafeInboxCatchupCapacity: z.ZodOptional<z.ZodBoolean>;
136
137
  archiverPollingIntervalMS: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>>;
137
138
  archiverBatchSize: z.ZodOptional<z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>>;
138
139
  skipValidateCheckpointAttestations: z.ZodOptional<z.ZodBoolean>;
@@ -210,4 +211,4 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
210
211
  }, z.core.$strip>;
211
212
  export declare const AztecNodeAdminApiSchema: ApiSchemaFor<AztecNodeAdmin>;
212
213
  export declare function createAztecNodeAdminClient(url: string, versions?: Partial<ComponentsVersions>, fetch?: typeof defaultFetch, apiKey?: string): AztecNodeAdmin;
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMtbm9kZS1hZG1pbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXp0ZWMtbm9kZS1hZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBMkIsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0YsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQWdDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssc0JBQXNCLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUIsTUFBTSxjQUFjLENBQUM7QUFDM0UsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBdUIsTUFBTSxjQUFjLENBQUM7QUFDdkUsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQW1DLE1BQU0sZ0JBQWdCLENBQUM7QUFFakc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsY0FBYztJQUM3Qjs7T0FFRztJQUNILFNBQVMsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUUzQzs7O09BR0c7SUFDSCxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoRTs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUYsK0NBQStDO0lBQy9DLFNBQVMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0IsZ0RBQWdEO0lBQ2hELFVBQVUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUI7OztPQUdHO0lBQ0gsY0FBYyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoQyw2RUFBNkU7SUFDN0UsZUFBZSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQywyREFBMkQ7SUFDM0QsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXhFOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILGNBQWMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDakM7QUFHRCxNQUFNLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUMsR0FDM0YsZUFBZSxHQUNmLFlBQVksR0FDWixhQUFhLEdBQ2IsSUFBSSxDQUNGLHNCQUFzQixFQUN0QiwyQkFBMkIsR0FBRyxtQkFBbUIsR0FBRyxvQ0FBb0MsQ0FDekYsR0FBRztJQUNGLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUUxQixxQkFBcUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUVoQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUMzQixDQUFDO0FBRUosZUFBTyxNQUFNLDBCQUEwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQWdCcEMsQ0FBQztBQUVKLGVBQU8sTUFBTSx1QkFBdUIsRUFBRSxZQUFZLENBQUMsY0FBYyxDQWlCaEUsQ0FBQztBQUVGLHdCQUFnQiwwQkFBMEIsQ0FDeEMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEdBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFNLEVBQzFDLEtBQUssc0JBQWUsRUFDcEIsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUNkLGNBQWMsQ0FPaEIifQ==
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMtbm9kZS1hZG1pbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXp0ZWMtbm9kZS1hZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBMkIsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0YsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQWdDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssc0JBQXNCLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUIsTUFBTSxjQUFjLENBQUM7QUFDM0UsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBdUIsTUFBTSxjQUFjLENBQUM7QUFDdkUsT0FBTyxFQUFFLEtBQUsseUJBQXlCLEVBQW1DLE1BQU0sZ0JBQWdCLENBQUM7QUFFakc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsY0FBYztJQUM3Qjs7T0FFRztJQUNILFNBQVMsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUUzQzs7O09BR0c7SUFDSCxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoRTs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUYsK0NBQStDO0lBQy9DLFNBQVMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0IsZ0RBQWdEO0lBQ2hELFVBQVUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUI7OztPQUdHO0lBQ0gsY0FBYyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoQyw2RUFBNkU7SUFDN0UsZUFBZSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQywyREFBMkQ7SUFDM0QsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXhFOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILGNBQWMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDakM7QUFHRCxNQUFNLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUMsR0FDM0YsZUFBZSxHQUNmLFlBQVksR0FDWixhQUFhLEdBQ2IsSUFBSSxDQUNGLHNCQUFzQixFQUN0QiwyQkFBMkIsR0FBRyxtQkFBbUIsR0FBRyxvQ0FBb0MsQ0FDekYsR0FBRztJQUNGLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUUxQixxQkFBcUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUVoQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUMzQixDQUFDO0FBRUosZUFBTyxNQUFNLDBCQUEwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFnQnBDLENBQUM7QUFFSixlQUFPLE1BQU0sdUJBQXVCLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FpQmhFLENBQUM7QUFFRix3QkFBZ0IsMEJBQTBCLENBQ3hDLEdBQUcsRUFBRSxNQUFNLEVBQ1gsUUFBUSxHQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBTSxFQUMxQyxLQUFLLHNCQUFlLEVBQ3BCLE1BQU0sQ0FBQyxFQUFFLE1BQU0sR0FDZCxjQUFjLENBT2hCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAA2B,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAgC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,yBAAyB,EAAmC,MAAM,gBAAgB,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;;OAKG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5F,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,6EAA6E;IAC7E,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAExE;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAGD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,EAAE,MAAM,mBAAmB,CAAC,GAC3F,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CACF,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,oCAAoC,CACzF,GAAG;IACF,iBAAiB,EAAE,MAAM,CAAC;IAE1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBpC,CAAC;AAEJ,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAiBhE,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,EAC1C,KAAK,sBAAe,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,cAAc,CAOhB"}
1
+ {"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAA2B,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAgC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,yBAAyB,EAAmC,MAAM,gBAAgB,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;;OAKG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5F,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,6EAA6E;IAC7E,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAExE;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAGD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,EAAE,MAAM,mBAAmB,CAAC,GAC3F,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CACF,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,oCAAoC,CACzF,GAAG;IACF,iBAAiB,EAAE,MAAM,CAAC;IAE1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBpC,CAAC;AAEJ,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAiBhE,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,EAC1C,KAAK,sBAAe,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,cAAc,CAOhB"}