@aztec/stdlib 4.0.4-rc.3 → 4.0.4-rc.5

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.
@@ -86,6 +86,8 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
86
86
  secondsBeforeInvalidatingBlockAsCommitteeMember: z.ZodNumber;
87
87
  secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.ZodNumber;
88
88
  injectFakeAttestation: z.ZodOptional<z.ZodBoolean>;
89
+ injectHighSValueAttestation: z.ZodOptional<z.ZodBoolean>;
90
+ injectUnrecoverableSignatureAttestation: z.ZodOptional<z.ZodBoolean>;
89
91
  shuffleAttestationOrdering: z.ZodOptional<z.ZodBoolean>;
90
92
  blockDurationMs: z.ZodOptional<z.ZodNumber>;
91
93
  expectedBlockProposalsPerSlot: z.ZodOptional<z.ZodNumber>;
@@ -213,6 +215,8 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
213
215
  secondsBeforeInvalidatingBlockAsCommitteeMember: number;
214
216
  secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
215
217
  injectFakeAttestation?: boolean | undefined;
218
+ injectHighSValueAttestation?: boolean | undefined;
219
+ injectUnrecoverableSignatureAttestation?: boolean | undefined;
216
220
  shuffleAttestationOrdering?: boolean | undefined;
217
221
  blockDurationMs?: number | undefined;
218
222
  expectedBlockProposalsPerSlot?: number | undefined;
@@ -312,6 +316,8 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
312
316
  secondsBeforeInvalidatingBlockAsCommitteeMember: number;
313
317
  secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
314
318
  injectFakeAttestation?: boolean | undefined;
319
+ injectHighSValueAttestation?: boolean | undefined;
320
+ injectUnrecoverableSignatureAttestation?: boolean | undefined;
315
321
  shuffleAttestationOrdering?: boolean | undefined;
316
322
  blockDurationMs?: number | undefined;
317
323
  expectedBlockProposalsPerSlot?: number | undefined;
@@ -391,4 +397,4 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<{
391
397
  }>;
392
398
  export declare const AztecNodeAdminApiSchema: ApiSchemaFor<AztecNodeAdmin>;
393
399
  export declare function createAztecNodeAdminClient(url: string, versions?: Partial<ComponentsVersions>, fetch?: typeof defaultFetch, apiKey?: string): AztecNodeAdmin;
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMtbm9kZS1hZG1pbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXp0ZWMtbm9kZS1hZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFGLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssT0FBTyxFQUFpQixLQUFLLGlCQUFpQixFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFnQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXlCLE1BQU0sY0FBYyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBc0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUFtQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpHOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0I7O09BRUc7SUFDSCxTQUFTLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFM0M7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEU7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV0RSwrQ0FBK0M7SUFDL0MsU0FBUyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUzQixnREFBZ0Q7SUFDaEQsVUFBVSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU1QiwyRUFBMkU7SUFDM0UsZ0JBQWdCLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUVqRCwyREFBMkQ7SUFDM0QsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXhFOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILGNBQWMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDakM7QUFHRCxNQUFNLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLGFBQWEsQ0FBQyxHQUMvRSxlQUFlLEdBQ2YsWUFBWSxHQUNaLGFBQWEsR0FDYixJQUFJLENBQ0Ysc0JBQXNCLEVBQ3RCLDJCQUEyQixHQUFHLG1CQUFtQixHQUFHLG9DQUFvQyxDQUN6RixHQUFHO0lBQ0YsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0NBQzNCLENBQUM7QUFFSixlQUFPLE1BQU0sMEJBQTBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBVWMsQ0FBQztBQUV0RCxlQUFPLE1BQU0sdUJBQXVCLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FhaEUsQ0FBQztBQUVGLHdCQUFnQiwwQkFBMEIsQ0FDeEMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEdBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFNLEVBQzFDLEtBQUssc0JBQWUsRUFDcEIsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUNkLGNBQWMsQ0FPaEIifQ==
400
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMtbm9kZS1hZG1pbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXp0ZWMtbm9kZS1hZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFGLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssT0FBTyxFQUFpQixLQUFLLGlCQUFpQixFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFnQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXlCLE1BQU0sY0FBYyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBc0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxhQUFhLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUFtQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpHOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0I7O09BRUc7SUFDSCxTQUFTLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFM0M7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEU7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV0RSwrQ0FBK0M7SUFDL0MsU0FBUyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUzQixnREFBZ0Q7SUFDaEQsVUFBVSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU1QiwyRUFBMkU7SUFDM0UsZ0JBQWdCLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUVqRCwyREFBMkQ7SUFDM0QsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXhFOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILGNBQWMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDakM7QUFHRCxNQUFNLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLGFBQWEsQ0FBQyxHQUMvRSxlQUFlLEdBQ2YsWUFBWSxHQUNaLGFBQWEsR0FDYixJQUFJLENBQ0Ysc0JBQXNCLEVBQ3RCLDJCQUEyQixHQUFHLG1CQUFtQixHQUFHLG9DQUFvQyxDQUN6RixHQUFHO0lBQ0YsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO0NBQzNCLENBQUM7QUFFSixlQUFPLE1BQU0sMEJBQTBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBVWMsQ0FBQztBQUV0RCxlQUFPLE1BQU0sdUJBQXVCLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FhaEUsQ0FBQztBQUVGLHdCQUFnQiwwQkFBMEIsQ0FDeEMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEdBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFNLEVBQzFDLEtBQUssc0JBQWUsRUFDcEIsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUNkLGNBQWMsQ0FPaEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AACpH,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;;;;OAIG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEjD,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,aAAa,CAAC,GAC/E,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CACF,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,oCAAoC,CACzF,GAAG;IACF,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUc,CAAC;AAEtD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAahE,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,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AACpH,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;;;;OAIG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEjD,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,aAAa,CAAC,GAC/E,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CACF,sBAAsB,EACtB,2BAA2B,GAAG,mBAAmB,GAAG,oCAAoC,CACzF,GAAG;IACF,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUc,CAAC;AAEtD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAahE,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"}
@@ -55,6 +55,10 @@ export interface SequencerConfig {
55
55
  broadcastInvalidBlockProposal?: boolean;
56
56
  /** Inject a fake attestation (for testing only) */
57
57
  injectFakeAttestation?: boolean;
58
+ /** Inject a malleable attestation with a high-s value (for testing only) */
59
+ injectHighSValueAttestation?: boolean;
60
+ /** Inject an attestation with an unrecoverable signature (for testing only) */
61
+ injectUnrecoverableSignatureAttestation?: boolean;
58
62
  /** Whether to run in fisherman mode: builds blocks on every slot for validation without publishing */
59
63
  fishermanMode?: boolean;
60
64
  /** Shuffle attestation ordering to create invalid ordering (for testing only) */
@@ -128,6 +132,8 @@ export declare const SequencerConfigSchema: z.ZodObject<{
128
132
  secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.ZodNumber;
129
133
  broadcastInvalidBlockProposal: z.ZodOptional<z.ZodBoolean>;
130
134
  injectFakeAttestation: z.ZodOptional<z.ZodBoolean>;
135
+ injectHighSValueAttestation: z.ZodOptional<z.ZodBoolean>;
136
+ injectUnrecoverableSignatureAttestation: z.ZodOptional<z.ZodBoolean>;
131
137
  fishermanMode: z.ZodOptional<z.ZodBoolean>;
132
138
  shuffleAttestationOrdering: z.ZodOptional<z.ZodBoolean>;
133
139
  blockDurationMs: z.ZodOptional<z.ZodNumber>;
@@ -172,6 +178,8 @@ export declare const SequencerConfigSchema: z.ZodObject<{
172
178
  secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
173
179
  broadcastInvalidBlockProposal?: boolean | undefined;
174
180
  injectFakeAttestation?: boolean | undefined;
181
+ injectHighSValueAttestation?: boolean | undefined;
182
+ injectUnrecoverableSignatureAttestation?: boolean | undefined;
175
183
  fishermanMode?: boolean | undefined;
176
184
  shuffleAttestationOrdering?: boolean | undefined;
177
185
  blockDurationMs?: number | undefined;
@@ -216,6 +224,8 @@ export declare const SequencerConfigSchema: z.ZodObject<{
216
224
  secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
217
225
  broadcastInvalidBlockProposal?: boolean | undefined;
218
226
  injectFakeAttestation?: boolean | undefined;
227
+ injectHighSValueAttestation?: boolean | undefined;
228
+ injectUnrecoverableSignatureAttestation?: boolean | undefined;
219
229
  fishermanMode?: boolean | undefined;
220
230
  shuffleAttestationOrdering?: boolean | undefined;
221
231
  blockDurationMs?: number | undefined;
@@ -228,4 +238,4 @@ export declare const SequencerConfigSchema: z.ZodObject<{
228
238
  type SequencerConfigOptionalKeys = 'governanceProposerPayload' | 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'coinbase' | 'feeRecipient' | 'acvmWorkingDirectory' | 'acvmBinaryPath' | 'fakeProcessingDelayPerTxMs' | 'fakeThrowAfterProcessingTxCount' | 'l1PublishingTime' | 'txPublicSetupAllowList' | 'minValidTxsPerBlock' | 'minBlocksForCheckpoint';
229
239
  export type ResolvedSequencerConfig = Prettify<Required<Omit<SequencerConfig, SequencerConfigOptionalKeys>> & Pick<SequencerConfig, SequencerConfigOptionalKeys>>;
230
240
  export {};
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvY29uZmlncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBd0IsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRiw4QkFBOEI7QUFDOUIsTUFBTSxXQUFXLGVBQWU7SUFDOUIsZ0VBQWdFO0lBQ2hFLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLHVEQUF1RDtJQUN2RCxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsdURBQXVEO0lBQ3ZELGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4Qix5SEFBeUg7SUFDekgsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDN0Isc0RBQXNEO0lBQ3RELHVCQUF1QixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ2xDLGdDQUFnQztJQUNoQyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsZ0NBQWdDO0lBQ2hDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN2QixpQ0FBaUM7SUFDakMsUUFBUSxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ3RCLCtCQUErQjtJQUMvQixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsMERBQTBEO0lBQzFELG9CQUFvQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzlCLGtDQUFrQztJQUNsQyxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsMERBQTBEO0lBQzFELHNC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
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvY29uZmlncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBd0IsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRiw4QkFBOEI7QUFDOUIsTUFBTSxXQUFXLGVBQWU7SUFDOUIsZ0VBQWdFO0lBQ2hFLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLHVEQUF1RDtJQUN2RCxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsdURBQXVEO0lBQ3ZELGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4Qix5SEFBeUg7SUFDekgsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDN0Isc0RBQXNEO0lBQ3RELHVCQUF1QixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ2xDLGdDQUFnQztJQUNoQyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsZ0NBQWdDO0lBQ2hDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN2QixpQ0FBaUM7SUFDakMsUUFBUSxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ3RCLCtCQUErQjtJQUMvQixZQUFZLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDNUIsMERBQTBEO0lBQzFELG9CQUFvQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzlCLGtDQUFrQztJQUNsQyxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsMERBQTBEO0lBQzFELHNC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
@@ -1 +1 @@
1
- {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/interfaces/configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yHAAyH;IACzH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1C,qBAAqB;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,yBAAyB,CAAC,EAAE,UAAU,CAAC;IACvC,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,gEAAgE;IAChE,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,wGAAwG;IACxG,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oGAAoG;IACpG,+CAA+C,CAAC,EAAE,MAAM,CAAC;IACzD,wGAAwG;IACxG,kDAAkD,CAAC,EAAE,MAAM,CAAC;IAC5D,sDAAsD;IACtD,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,kGAAkG;IAClG,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,gFAAgF;IAChF,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,mDAAmD;IACnD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sGAAsG;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iFAAiF;IACjF,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,6HAA6H;IAC7H,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uIAAuI;IACvI,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gEAAgE;IAChE,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,kHAAkH;IAClH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4FAA4F;IAC5F,gCAAgC,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCjC,CAAC;AAEF,KAAK,2BAA2B,GAC5B,2BAA2B,GAC3B,iBAAiB,GACjB,+BAA+B,GAC/B,UAAU,GACV,cAAc,GACd,sBAAsB,GACtB,gBAAgB,GAChB,4BAA4B,GAC5B,iCAAiC,GACjC,kBAAkB,GAClB,wBAAwB,GACxB,qBAAqB,GACrB,wBAAwB,CAAC;AAE7B,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAC5C,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAClH,CAAC"}
1
+ {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/interfaces/configs.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,8 @@ export const SequencerConfigSchema = zodFor()(z.object({
27
27
  secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.number(),
28
28
  broadcastInvalidBlockProposal: z.boolean().optional(),
29
29
  injectFakeAttestation: z.boolean().optional(),
30
+ injectHighSValueAttestation: z.boolean().optional(),
31
+ injectUnrecoverableSignatureAttestation: z.boolean().optional(),
30
32
  fishermanMode: z.boolean().optional(),
31
33
  shuffleAttestationOrdering: z.boolean().optional(),
32
34
  blockDurationMs: z.number().positive().optional(),
@@ -1,2 +1,3 @@
1
- export { UpdateChecker, getPackageVersion } from './update-checker.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGRhdGUtY2hlY2tlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUMifQ==
1
+ export * from './package_version.js';
2
+ export * from './version_checker.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGRhdGUtY2hlY2tlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/update-checker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/update-checker/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC"}
@@ -1 +1,2 @@
1
- export { UpdateChecker, getPackageVersion } from './update-checker.js';
1
+ export * from './package_version.js';
2
+ export * from './version_checker.js';
@@ -0,0 +1,3 @@
1
+ /** Returns the package version from the release-please manifest, or undefined if not found. */
2
+ export declare function getPackageVersion(): string | undefined;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZV92ZXJzaW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXBkYXRlLWNoZWNrZXIvcGFja2FnZV92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLCtGQUErRjtBQUMvRix3QkFBZ0IsaUJBQWlCLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FVdEQifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package_version.d.ts","sourceRoot":"","sources":["../../src/update-checker/package_version.ts"],"names":[],"mappings":"AAKA,+FAA+F;AAC/F,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAUtD"}
@@ -0,0 +1,11 @@
1
+ import { fileURLToPath } from '@aztec/foundation/url';
2
+ import { readFileSync } from 'fs';
3
+ import { dirname, resolve } from 'path';
4
+ /** Returns the package version from the release-please manifest, or undefined if not found. */ export function getPackageVersion() {
5
+ try {
6
+ const releasePleaseManifestPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../../../.release-please-manifest.json');
7
+ return JSON.parse(readFileSync(releasePleaseManifestPath).toString())['.'];
8
+ } catch {
9
+ return undefined;
10
+ }
11
+ }
@@ -0,0 +1,25 @@
1
+ import { EventEmitter } from 'node:events';
2
+ export type EventMap = {
3
+ newVersion: [{
4
+ name: string;
5
+ currentVersion: string;
6
+ latestVersion: string;
7
+ }];
8
+ };
9
+ export type VersionCheck = {
10
+ name: string;
11
+ currentVersion: string;
12
+ getLatestVersion: () => Promise<string | undefined>;
13
+ };
14
+ export declare class VersionChecker extends EventEmitter<EventMap> {
15
+ private checks;
16
+ private logger;
17
+ private runningPromise;
18
+ constructor(checks: Array<VersionCheck>, intervalCheckMs?: number, logger?: import("@aztec/foundation/log").Logger);
19
+ start(): void;
20
+ trigger(): Promise<void>;
21
+ stop(): Promise<void>;
22
+ private run;
23
+ private checkVersion;
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbl9jaGVja2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXBkYXRlLWNoZWNrZXIvdmVyc2lvbl9jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0MsTUFBTSxNQUFNLFFBQVEsR0FBRztJQUNyQixVQUFVLEVBQUUsQ0FBQztRQUFFLElBQUksRUFBRSxNQUFNLENBQUM7UUFBQyxjQUFjLEVBQUUsTUFBTSxDQUFDO1FBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztDQUMvRSxDQUFDO0FBRUYsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2QixnQkFBZ0IsRUFBRSxNQUFNLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUM7Q0FDckQsQ0FBQztBQUVGLHFCQUFhLGNBQWUsU0FBUSxZQUFZLENBQUMsUUFBUSxDQUFDO0lBR3RELE9BQU8sQ0FBQyxNQUFNO0lBRWQsT0FBTyxDQUFDLE1BQU07SUFKaEIsT0FBTyxDQUFDLGNBQWMsQ0FBaUI7SUFDdkMsWUFDVSxNQUFNLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUNuQyxlQUFlLFNBQVMsRUFDaEIsTUFBTSx5Q0FBa0MsRUFJakQ7SUFFTSxLQUFLLElBQUksSUFBSSxDQVFuQjtJQUVNLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTlCO0lBRVksSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FRakM7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUVUO1lBRVksWUFBWTtDQVUzQiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version_checker.d.ts","sourceRoot":"","sources":["../../src/update-checker/version_checker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD,CAAC;AAEF,qBAAa,cAAe,SAAQ,YAAY,CAAC,QAAQ,CAAC;IAGtD,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,cAAc,CAAiB;IACvC,YACU,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,EACnC,eAAe,SAAS,EAChB,MAAM,yCAAkC,EAIjD;IAEM,KAAK,IAAI,IAAI,CAQnB;IAEM,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjC;IAED,OAAO,CAAC,GAAG,CAET;YAEY,YAAY;CAU3B"}
@@ -0,0 +1,50 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { RunningPromise } from '@aztec/foundation/promise';
3
+ import { EventEmitter } from 'node:events';
4
+ export class VersionChecker extends EventEmitter {
5
+ checks;
6
+ logger;
7
+ runningPromise;
8
+ constructor(checks, intervalCheckMs = 60_000, logger = createLogger('version_checker')){
9
+ super(), this.checks = checks, this.logger = logger, this.run = async ()=>{
10
+ await Promise.allSettled(this.checks.map((check)=>this.checkVersion(check)));
11
+ };
12
+ this.runningPromise = new RunningPromise(this.run, logger, intervalCheckMs);
13
+ }
14
+ start() {
15
+ if (this.runningPromise.isRunning()) {
16
+ this.logger.warn('VersionChecker is already running');
17
+ return;
18
+ }
19
+ this.runningPromise.start();
20
+ this.logger.info('Version check started');
21
+ }
22
+ trigger() {
23
+ return this.runningPromise.trigger();
24
+ }
25
+ async stop() {
26
+ if (!this.runningPromise.isRunning()) {
27
+ this.logger.warn('VersionChecker is not running');
28
+ return;
29
+ }
30
+ await this.runningPromise.stop();
31
+ this.logger.info('Version checker stopped');
32
+ }
33
+ run;
34
+ async checkVersion({ name, currentVersion, getLatestVersion }) {
35
+ try {
36
+ const latestVersion = await getLatestVersion();
37
+ if (latestVersion && latestVersion !== currentVersion) {
38
+ this.emit('newVersion', {
39
+ name,
40
+ latestVersion,
41
+ currentVersion
42
+ });
43
+ }
44
+ } catch (err) {
45
+ this.logger.warn(`Error checking for new ${name} versions: ${err}`, {
46
+ err
47
+ });
48
+ }
49
+ }
50
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "4.0.4-rc.3",
3
+ "version": "4.0.4-rc.5",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -90,14 +90,14 @@
90
90
  },
91
91
  "dependencies": {
92
92
  "@aws-sdk/client-s3": "^3.892.0",
93
- "@aztec/bb.js": "4.0.4-rc.3",
94
- "@aztec/blob-lib": "4.0.4-rc.3",
95
- "@aztec/constants": "4.0.4-rc.3",
96
- "@aztec/ethereum": "4.0.4-rc.3",
97
- "@aztec/foundation": "4.0.4-rc.3",
98
- "@aztec/l1-artifacts": "4.0.4-rc.3",
99
- "@aztec/noir-noirc_abi": "4.0.4-rc.3",
100
- "@aztec/validator-ha-signer": "4.0.4-rc.3",
93
+ "@aztec/bb.js": "4.0.4-rc.5",
94
+ "@aztec/blob-lib": "4.0.4-rc.5",
95
+ "@aztec/constants": "4.0.4-rc.5",
96
+ "@aztec/ethereum": "4.0.4-rc.5",
97
+ "@aztec/foundation": "4.0.4-rc.5",
98
+ "@aztec/l1-artifacts": "4.0.4-rc.5",
99
+ "@aztec/noir-noirc_abi": "4.0.4-rc.5",
100
+ "@aztec/validator-ha-signer": "4.0.4-rc.5",
101
101
  "@google-cloud/storage": "^7.15.0",
102
102
  "axios": "^1.13.5",
103
103
  "json-stringify-deterministic": "1.0.12",
@@ -59,6 +59,10 @@ export interface SequencerConfig {
59
59
  broadcastInvalidBlockProposal?: boolean;
60
60
  /** Inject a fake attestation (for testing only) */
61
61
  injectFakeAttestation?: boolean;
62
+ /** Inject a malleable attestation with a high-s value (for testing only) */
63
+ injectHighSValueAttestation?: boolean;
64
+ /** Inject an attestation with an unrecoverable signature (for testing only) */
65
+ injectUnrecoverableSignatureAttestation?: boolean;
62
66
  /** Whether to run in fisherman mode: builds blocks on every slot for validation without publishing */
63
67
  fishermanMode?: boolean;
64
68
  /** Shuffle attestation ordering to create invalid ordering (for testing only) */
@@ -104,6 +108,8 @@ export const SequencerConfigSchema = zodFor<SequencerConfig>()(
104
108
  secondsBeforeInvalidatingBlockAsNonCommitteeMember: z.number(),
105
109
  broadcastInvalidBlockProposal: z.boolean().optional(),
106
110
  injectFakeAttestation: z.boolean().optional(),
111
+ injectHighSValueAttestation: z.boolean().optional(),
112
+ injectUnrecoverableSignatureAttestation: z.boolean().optional(),
107
113
  fishermanMode: z.boolean().optional(),
108
114
  shuffleAttestationOrdering: z.boolean().optional(),
109
115
  blockDurationMs: z.number().positive().optional(),
@@ -1 +1,2 @@
1
- export { UpdateChecker, getPackageVersion } from './update-checker.js';
1
+ export * from './package_version.js';
2
+ export * from './version_checker.js';
@@ -0,0 +1,17 @@
1
+ import { fileURLToPath } from '@aztec/foundation/url';
2
+
3
+ import { readFileSync } from 'fs';
4
+ import { dirname, resolve } from 'path';
5
+
6
+ /** Returns the package version from the release-please manifest, or undefined if not found. */
7
+ export function getPackageVersion(): string | undefined {
8
+ try {
9
+ const releasePleaseManifestPath = resolve(
10
+ dirname(fileURLToPath(import.meta.url)),
11
+ '../../../../.release-please-manifest.json',
12
+ );
13
+ return JSON.parse(readFileSync(releasePleaseManifestPath).toString())['.'];
14
+ } catch {
15
+ return undefined;
16
+ }
17
+ }
@@ -0,0 +1,65 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { RunningPromise } from '@aztec/foundation/promise';
3
+
4
+ import { EventEmitter } from 'node:events';
5
+
6
+ export type EventMap = {
7
+ newVersion: [{ name: string; currentVersion: string; latestVersion: string }];
8
+ };
9
+
10
+ export type VersionCheck = {
11
+ name: string;
12
+ currentVersion: string;
13
+ getLatestVersion: () => Promise<string | undefined>;
14
+ };
15
+
16
+ export class VersionChecker extends EventEmitter<EventMap> {
17
+ private runningPromise: RunningPromise;
18
+ constructor(
19
+ private checks: Array<VersionCheck>,
20
+ intervalCheckMs = 60_000,
21
+ private logger = createLogger('version_checker'),
22
+ ) {
23
+ super();
24
+ this.runningPromise = new RunningPromise(this.run, logger, intervalCheckMs);
25
+ }
26
+
27
+ public start(): void {
28
+ if (this.runningPromise.isRunning()) {
29
+ this.logger.warn('VersionChecker is already running');
30
+ return;
31
+ }
32
+
33
+ this.runningPromise.start();
34
+ this.logger.info('Version check started');
35
+ }
36
+
37
+ public trigger(): Promise<void> {
38
+ return this.runningPromise.trigger();
39
+ }
40
+
41
+ public async stop(): Promise<void> {
42
+ if (!this.runningPromise.isRunning()) {
43
+ this.logger.warn('VersionChecker is not running');
44
+ return;
45
+ }
46
+
47
+ await this.runningPromise.stop();
48
+ this.logger.info('Version checker stopped');
49
+ }
50
+
51
+ private run = async () => {
52
+ await Promise.allSettled(this.checks.map(check => this.checkVersion(check)));
53
+ };
54
+
55
+ private async checkVersion({ name, currentVersion, getLatestVersion }: VersionCheck): Promise<void> {
56
+ try {
57
+ const latestVersion = await getLatestVersion();
58
+ if (latestVersion && latestVersion !== currentVersion) {
59
+ this.emit('newVersion', { name, latestVersion, currentVersion });
60
+ }
61
+ } catch (err) {
62
+ this.logger.warn(`Error checking for new ${name} versions: ${err}`, { err });
63
+ }
64
+ }
65
+ }
@@ -1,49 +0,0 @@
1
- import type { ViemClient } from '@aztec/ethereum/types';
2
- import { EthAddress } from '@aztec/foundation/eth-address';
3
- import { EventEmitter } from 'events';
4
- export type EventMap = {
5
- newRollupVersion: [{
6
- currentVersion: bigint;
7
- latestVersion: bigint;
8
- }];
9
- newNodeVersion: [{
10
- currentVersion: string;
11
- latestVersion: string;
12
- }];
13
- updateNodeConfig: [object];
14
- updatePublicTelemetryConfig: [object];
15
- };
16
- type Config = {
17
- baseURL: URL;
18
- nodeVersion?: string;
19
- checkIntervalMs?: number;
20
- registryContractAddress: EthAddress;
21
- publicClient: ViemClient;
22
- fetch?: typeof fetch;
23
- };
24
- export declare class UpdateChecker extends EventEmitter<EventMap> {
25
- private updatesUrl;
26
- private nodeVersion;
27
- private rollupVersion;
28
- private fetch;
29
- private getLatestRollupVersion;
30
- private checkIntervalMs;
31
- private log;
32
- private runningPromise;
33
- private lastPatchedConfig;
34
- private lastPatchedPublicTelemetryConfig;
35
- constructor(updatesUrl: URL, nodeVersion: string | undefined, rollupVersion: bigint, fetch: typeof globalThis.fetch, getLatestRollupVersion: () => Promise<bigint>, checkIntervalMs?: number, log?: import("@aztec/foundation/log").Logger);
36
- static new(config: Config): Promise<UpdateChecker>;
37
- start(): void;
38
- stop(): Promise<void>;
39
- trigger(): Promise<void>;
40
- private runChecks;
41
- private checkRollupVersion;
42
- private checkConfig;
43
- }
44
- /**
45
- * Returns package version.
46
- */
47
- export declare function getPackageVersion(): string | undefined;
48
- export {};
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNoZWNrZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGRhdGUtY2hlY2tlci91cGRhdGUtY2hlY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVl0QyxNQUFNLE1BQU0sUUFBUSxHQUFHO0lBQ3JCLGdCQUFnQixFQUFFLENBQUM7UUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDO1FBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztJQUN0RSxjQUFjLEVBQUUsQ0FBQztRQUFFLGNBQWMsRUFBRSxNQUFNLENBQUM7UUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ3BFLGdCQUFnQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsMkJBQTJCLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUN2QyxDQUFDO0FBRUYsS0FBSyxNQUFNLEdBQUc7SUFDWixPQUFPLEVBQUUsR0FBRyxDQUFDO0lBQ2IsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN6Qix1QkFBdUIsRUFBRSxVQUFVLENBQUM7SUFDcEMsWUFBWSxFQUFFLFVBQVUsQ0FBQztJQUN6QixLQUFLLENBQUMsRUFBRSxPQUFPLEtBQUssQ0FBQztDQUN0QixDQUFDO0FBRUYscUJBQWEsYUFBYyxTQUFRLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFNckQsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLGFBQWE7SUFDckIsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsc0JBQXNCO0lBQzlCLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxHQUFHO0lBWGIsT0FBTyxDQUFDLGNBQWMsQ0FBaUI7SUFDdkMsT0FBTyxDQUFDLGlCQUFpQixDQUFjO0lBQ3ZDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBYztJQUV0RCxZQUNVLFVBQVUsRUFBRSxHQUFHLEVBQ2YsV0FBVyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQy9CLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLEtBQUssRUFBRSxPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQzlCLHNCQUFzQixFQUFFLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUM3QyxlQUFlLFNBQWMsRUFDN0IsR0FBRyx5Q0FBMEMsRUFJdEQ7SUFFRCxPQUFvQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBWTlEO0lBRU0sS0FBSyxJQUFJLElBQUksQ0FXbkI7SUFFTSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQU0zQjtJQUVNLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTlCO0lBRUQsT0FBTyxDQUFDLFNBQVMsQ0FFZjtZQUVZLGtCQUFrQjtZQWVsQixXQUFXO0NBc0MxQjtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLGlCQUFpQixJQUFJLE1BQU0sR0FBRyxTQUFTLENBV3REIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../src/update-checker/update-checker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAK3D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAYtC,MAAM,MAAM,QAAQ,GAAG;IACrB,gBAAgB,EAAE,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,cAAc,EAAE,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3B,2BAA2B,EAAE,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,OAAO,EAAE,GAAG,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,UAAU,CAAC;IACpC,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF,qBAAa,aAAc,SAAQ,YAAY,CAAC,QAAQ,CAAC;IAMrD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,GAAG;IAXb,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,gCAAgC,CAAc;IAEtD,YACU,UAAU,EAAE,GAAG,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,EAC9B,sBAAsB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC7C,eAAe,SAAc,EAC7B,GAAG,yCAA0C,EAItD;IAED,OAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAY9D;IAEM,KAAK,IAAI,IAAI,CAWnB;IAEM,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3B;IAEM,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;IAED,OAAO,CAAC,SAAS,CAEf;YAEY,kBAAkB;YAelB,WAAW;CAsC1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAWtD"}
@@ -1,130 +0,0 @@
1
- import { RegistryContract } from '@aztec/ethereum/contracts';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { RunningPromise } from '@aztec/foundation/running-promise';
4
- import { fileURLToPath } from '@aztec/foundation/url';
5
- import { EventEmitter } from 'events';
6
- import { readFileSync } from 'fs';
7
- import { dirname, resolve } from 'path';
8
- import { isDeepStrictEqual } from 'util';
9
- import { z } from 'zod';
10
- const updateConfigSchema = z.object({
11
- version: z.string().optional(),
12
- publicTelemetry: z.any().optional(),
13
- config: z.any().optional()
14
- });
15
- export class UpdateChecker extends EventEmitter {
16
- updatesUrl;
17
- nodeVersion;
18
- rollupVersion;
19
- fetch;
20
- getLatestRollupVersion;
21
- checkIntervalMs;
22
- log;
23
- runningPromise;
24
- lastPatchedConfig;
25
- lastPatchedPublicTelemetryConfig;
26
- constructor(updatesUrl, nodeVersion, rollupVersion, fetch1, getLatestRollupVersion, checkIntervalMs = 10 * 60_000, log = createLogger('foundation:update-check')){
27
- super(), this.updatesUrl = updatesUrl, this.nodeVersion = nodeVersion, this.rollupVersion = rollupVersion, this.fetch = fetch1, this.getLatestRollupVersion = getLatestRollupVersion, this.checkIntervalMs = checkIntervalMs, this.log = log, this.lastPatchedConfig = {}, this.lastPatchedPublicTelemetryConfig = {}, this.runChecks = async ()=>{
28
- await Promise.all([
29
- this.checkRollupVersion(),
30
- this.checkConfig()
31
- ]);
32
- };
33
- this.runningPromise = new RunningPromise(this.runChecks, this.log, this.checkIntervalMs);
34
- }
35
- static async new(config) {
36
- const registryContract = new RegistryContract(config.publicClient, config.registryContractAddress);
37
- const getLatestRollupVersion = ()=>registryContract.getRollupVersions().then((versions)=>versions.at(-1));
38
- return new UpdateChecker(config.baseURL, config.nodeVersion ?? getPackageVersion(), await getLatestRollupVersion(), config.fetch ?? fetch, getLatestRollupVersion, config.checkIntervalMs);
39
- }
40
- start() {
41
- if (this.runningPromise.isRunning()) {
42
- this.log.debug(`Can't start update checker again`);
43
- return;
44
- }
45
- this.log.info('Starting update checker', {
46
- nodeVersion: this.nodeVersion,
47
- rollupVersion: this.rollupVersion
48
- });
49
- this.runningPromise.start();
50
- }
51
- stop() {
52
- if (!this.runningPromise.isRunning()) {
53
- this.log.debug(`Can't stop update checker because it is not running`);
54
- return Promise.resolve();
55
- }
56
- return this.runningPromise.stop();
57
- }
58
- trigger() {
59
- return this.runningPromise.trigger();
60
- }
61
- runChecks;
62
- async checkRollupVersion() {
63
- try {
64
- const canonicalRollupVersion = await this.getLatestRollupVersion();
65
- if (canonicalRollupVersion !== this.rollupVersion) {
66
- this.log.debug('New canonical rollup version', {
67
- currentVersion: this.rollupVersion,
68
- latestVersion: canonicalRollupVersion
69
- });
70
- this.emit('newRollupVersion', {
71
- currentVersion: this.rollupVersion,
72
- latestVersion: canonicalRollupVersion
73
- });
74
- }
75
- } catch (err) {
76
- this.log.warn(`Failed to check if there is a new rollup`, err);
77
- }
78
- }
79
- async checkConfig() {
80
- try {
81
- const response = await this.fetch(this.updatesUrl);
82
- const body = await response.json();
83
- if (!response.ok) {
84
- this.log.warn(`Unexpected HTTP response checking for updates`, {
85
- status: response.status,
86
- body: await response.text(),
87
- url: this.updatesUrl
88
- });
89
- }
90
- const { version, config, publicTelemetry } = updateConfigSchema.parse(body);
91
- if (this.nodeVersion && version && version !== this.nodeVersion) {
92
- this.log.debug('New node version', {
93
- currentVersion: this.nodeVersion,
94
- latestVersion: version
95
- });
96
- this.emit('newNodeVersion', {
97
- currentVersion: this.nodeVersion,
98
- latestVersion: version
99
- });
100
- }
101
- if (config && Object.keys(config).length > 0 && !isDeepStrictEqual(config, this.lastPatchedConfig)) {
102
- this.log.debug('New node config', {
103
- config
104
- });
105
- this.lastPatchedConfig = config;
106
- this.emit('updateNodeConfig', config);
107
- }
108
- if (publicTelemetry && Object.keys(publicTelemetry).length > 0 && !isDeepStrictEqual(publicTelemetry, this.lastPatchedPublicTelemetryConfig)) {
109
- this.log.debug('New metrics config', {
110
- config
111
- });
112
- this.lastPatchedPublicTelemetryConfig = publicTelemetry;
113
- this.emit('updatePublicTelemetryConfig', publicTelemetry);
114
- }
115
- } catch (err) {
116
- this.log.warn(`Failed to check if there is an update`, err);
117
- }
118
- }
119
- }
120
- /**
121
- * Returns package version.
122
- */ export function getPackageVersion() {
123
- try {
124
- const releasePleaseManifestPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../../../.release-please-manifest.json');
125
- const version = JSON.parse(readFileSync(releasePleaseManifestPath).toString())['.'];
126
- return version;
127
- } catch {
128
- return undefined;
129
- }
130
- }
@@ -1,166 +0,0 @@
1
- import { RegistryContract } from '@aztec/ethereum/contracts';
2
- import type { ViemClient } from '@aztec/ethereum/types';
3
- import { EthAddress } from '@aztec/foundation/eth-address';
4
- import { createLogger } from '@aztec/foundation/log';
5
- import { RunningPromise } from '@aztec/foundation/running-promise';
6
- import { fileURLToPath } from '@aztec/foundation/url';
7
-
8
- import { EventEmitter } from 'events';
9
- import { readFileSync } from 'fs';
10
- import { dirname, resolve } from 'path';
11
- import { isDeepStrictEqual } from 'util';
12
- import { z } from 'zod';
13
-
14
- const updateConfigSchema = z.object({
15
- version: z.string().optional(),
16
- publicTelemetry: z.any().optional(),
17
- config: z.any().optional(),
18
- });
19
-
20
- export type EventMap = {
21
- newRollupVersion: [{ currentVersion: bigint; latestVersion: bigint }];
22
- newNodeVersion: [{ currentVersion: string; latestVersion: string }];
23
- updateNodeConfig: [object];
24
- updatePublicTelemetryConfig: [object];
25
- };
26
-
27
- type Config = {
28
- baseURL: URL;
29
- nodeVersion?: string;
30
- checkIntervalMs?: number;
31
- registryContractAddress: EthAddress;
32
- publicClient: ViemClient;
33
- fetch?: typeof fetch;
34
- };
35
-
36
- export class UpdateChecker extends EventEmitter<EventMap> {
37
- private runningPromise: RunningPromise;
38
- private lastPatchedConfig: object = {};
39
- private lastPatchedPublicTelemetryConfig: object = {};
40
-
41
- constructor(
42
- private updatesUrl: URL,
43
- private nodeVersion: string | undefined,
44
- private rollupVersion: bigint,
45
- private fetch: typeof globalThis.fetch,
46
- private getLatestRollupVersion: () => Promise<bigint>,
47
- private checkIntervalMs = 10 * 60_000, // every 10 mins
48
- private log = createLogger('foundation:update-check'),
49
- ) {
50
- super();
51
- this.runningPromise = new RunningPromise(this.runChecks, this.log, this.checkIntervalMs);
52
- }
53
-
54
- public static async new(config: Config): Promise<UpdateChecker> {
55
- const registryContract = new RegistryContract(config.publicClient, config.registryContractAddress);
56
- const getLatestRollupVersion = () => registryContract.getRollupVersions().then(versions => versions.at(-1)!);
57
-
58
- return new UpdateChecker(
59
- config.baseURL,
60
- config.nodeVersion ?? getPackageVersion(),
61
- await getLatestRollupVersion(),
62
- config.fetch ?? fetch,
63
- getLatestRollupVersion,
64
- config.checkIntervalMs,
65
- );
66
- }
67
-
68
- public start(): void {
69
- if (this.runningPromise.isRunning()) {
70
- this.log.debug(`Can't start update checker again`);
71
- return;
72
- }
73
-
74
- this.log.info('Starting update checker', {
75
- nodeVersion: this.nodeVersion,
76
- rollupVersion: this.rollupVersion,
77
- });
78
- this.runningPromise.start();
79
- }
80
-
81
- public stop(): Promise<void> {
82
- if (!this.runningPromise.isRunning()) {
83
- this.log.debug(`Can't stop update checker because it is not running`);
84
- return Promise.resolve();
85
- }
86
- return this.runningPromise.stop();
87
- }
88
-
89
- public trigger(): Promise<void> {
90
- return this.runningPromise.trigger();
91
- }
92
-
93
- private runChecks = async (): Promise<void> => {
94
- await Promise.all([this.checkRollupVersion(), this.checkConfig()]);
95
- };
96
-
97
- private async checkRollupVersion(): Promise<void> {
98
- try {
99
- const canonicalRollupVersion = await this.getLatestRollupVersion();
100
- if (canonicalRollupVersion !== this.rollupVersion) {
101
- this.log.debug('New canonical rollup version', {
102
- currentVersion: this.rollupVersion,
103
- latestVersion: canonicalRollupVersion,
104
- });
105
- this.emit('newRollupVersion', { currentVersion: this.rollupVersion, latestVersion: canonicalRollupVersion });
106
- }
107
- } catch (err) {
108
- this.log.warn(`Failed to check if there is a new rollup`, err);
109
- }
110
- }
111
-
112
- private async checkConfig(): Promise<void> {
113
- try {
114
- const response = await this.fetch(this.updatesUrl);
115
- const body = await response.json();
116
- if (!response.ok) {
117
- this.log.warn(`Unexpected HTTP response checking for updates`, {
118
- status: response.status,
119
- body: await response.text(),
120
- url: this.updatesUrl,
121
- });
122
- }
123
-
124
- const { version, config, publicTelemetry } = updateConfigSchema.parse(body);
125
-
126
- if (this.nodeVersion && version && version !== this.nodeVersion) {
127
- this.log.debug('New node version', { currentVersion: this.nodeVersion, latestVersion: version });
128
- this.emit('newNodeVersion', { currentVersion: this.nodeVersion, latestVersion: version });
129
- }
130
-
131
- if (config && Object.keys(config).length > 0 && !isDeepStrictEqual(config, this.lastPatchedConfig)) {
132
- this.log.debug('New node config', { config });
133
- this.lastPatchedConfig = config;
134
- this.emit('updateNodeConfig', config);
135
- }
136
-
137
- if (
138
- publicTelemetry &&
139
- Object.keys(publicTelemetry).length > 0 &&
140
- !isDeepStrictEqual(publicTelemetry, this.lastPatchedPublicTelemetryConfig)
141
- ) {
142
- this.log.debug('New metrics config', { config });
143
- this.lastPatchedPublicTelemetryConfig = publicTelemetry;
144
- this.emit('updatePublicTelemetryConfig', publicTelemetry);
145
- }
146
- } catch (err) {
147
- this.log.warn(`Failed to check if there is an update`, err);
148
- }
149
- }
150
- }
151
-
152
- /**
153
- * Returns package version.
154
- */
155
- export function getPackageVersion(): string | undefined {
156
- try {
157
- const releasePleaseManifestPath = resolve(
158
- dirname(fileURLToPath(import.meta.url)),
159
- '../../../../.release-please-manifest.json',
160
- );
161
- const version = JSON.parse(readFileSync(releasePleaseManifestPath).toString())['.'];
162
- return version;
163
- } catch {
164
- return undefined;
165
- }
166
- }