@aztec/node-keystore 3.0.0-nightly.20251210 → 3.0.0-nightly.20251212

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.
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Manages keystore configuration and delegates signing operations to appropriate signers.
5
5
  */
6
- import type { EthSigner } from '@aztec/ethereum';
6
+ import type { EthSigner } from '@aztec/ethereum/eth-signer';
7
7
  import { Buffer32 } from '@aztec/foundation/buffer';
8
8
  import { EthAddress } from '@aztec/foundation/eth-address';
9
9
  import type { Signature } from '@aztec/foundation/eth-signature';
@@ -136,4 +136,4 @@ export declare class KeystoreManager {
136
136
  /** Extract ETH accounts from AttesterAccounts */
137
137
  private extractEthAccountsFromAttester;
138
138
  }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5c3RvcmVfbWFuYWdlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2tleXN0b3JlX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLaEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEQsT0FBTyxLQUFLLEVBSVYsV0FBVyxFQUVYLHFCQUFxQixFQUNyQixRQUFRLEVBRVIsY0FBYyxFQUNkLGlCQUFpQixJQUFJLHVCQUF1QixFQUM3QyxNQUFNLFlBQVksQ0FBQztBQUVwQjs7R0FFRztBQUNILHFCQUFhLGFBQWMsU0FBUSxLQUFLO0lBR3BCLEtBQUssQ0FBQztJQUZ4QixZQUNFLE9BQU8sRUFBRSxNQUFNLEVBQ0MsS0FBSyxDQUFDLG1CQUFPLEVBSTlCO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHFCQUFhLGVBQWU7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQVc7SUFFcEM7Ozs7T0FJRztJQUNILFlBQVksUUFBUSxFQUFFLFFBQVEsRUFHN0I7SUFFRDs7O09BR0c7SUFDRyxlQUFlLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQXNFckM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQywrQkFBK0I7SUFrQnZDOzs7T0FHRztJQUNILE9BQU8sQ0FBQywwQ0FBMEM7SUFLbEQ7O09BRUc7SUFDSCxPQUFPLENBQUMsMkNBQTJDO0lBK0NuRDs7T0FFRztJQUNILHFCQUFxQixDQUFDLGNBQWMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUFFLENBSXpEO0lBRUQ7O09BRUc7SUFDSCxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQVkxRDtJQUVELGtDQUFrQyxJQUFJLFNBQVMsRUFBRSxDQVNoRDtJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLElBQUksU0FBUyxFQUFFLENBTWxDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUIsSUFBSTtRQUFFLEVBQUUsRUFBRSxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFBO0tBQUUsR0FBRyxTQUFTLENBK0J0RjtJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsdUJBQXVCLENBS25EO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsSUFBSSxNQUFNLENBRTFCO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxVQUFVLEdBQUcsVUFBVSxDQVNsRjtJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLGNBQWMsRUFBRSxNQUFNLEdBQUcsWUFBWSxDQUdwRDtJQUVEOzs7T0FHRztJQUNILGtCQUFrQixJQUFJLFdBQVcsR0FBRyxTQUFTLENBRTVDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxJQUFJLGNBQWMsR0FBRyxTQUFTLENBRTVDO0lBRUQ7OztPQUdHO0lBQ0gsdUNBQXVDLElBQUksSUFBSSxDQW1COUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyw0QkFBNEI7SUErQnBDOztPQUVHO0lBQ0gsT0FBTyxDQUFDLDBCQUEwQjtJQTJDbEM7O09BRUc7SUFDSCxPQUFPLENBQUMsc0JBQXNCO0lBa0Q5Qjs7T0FFRztJQUNILE9BQU8sQ0FBQyxnQ0FBZ0M7SUF3QnhDOztPQUVHO0lBQ0gsT0FBTyxDQUFDLHlCQUF5QjtJQThCakM7O09BRUc7SUFDRyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FFMUU7SUFFRDs7T0FFRztJQUNHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBRXpGO0lBRUQ7OztPQUdHO0lBQ0gsOEJBQThCLENBQzVCLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLGVBQWUsRUFBRSxVQUFVLEdBQzFCLHFCQUFxQixHQUFHLFNBQVMsQ0F3R25DO0lBRUQsaURBQWlEO0lBQ2pELE9BQU8sQ0FBQyw4QkFBOEI7Q0F5QnZDIn0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5c3RvcmVfbWFuYWdlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2tleXN0b3JlX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLaEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEQsT0FBTyxLQUFLLEVBSVYsV0FBVyxFQUVYLHFCQUFxQixFQUNyQixRQUFRLEVBRVIsY0FBYyxFQUNkLGlCQUFpQixJQUFJLHVCQUF1QixFQUM3QyxNQUFNLFlBQVksQ0FBQztBQUVwQjs7R0FFRztBQUNILHFCQUFhLGFBQWMsU0FBUSxLQUFLO0lBR3BCLEtBQUssQ0FBQztJQUZ4QixZQUNFLE9BQU8sRUFBRSxNQUFNLEVBQ0MsS0FBSyxDQUFDLG1CQUFPLEVBSTlCO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHFCQUFhLGVBQWU7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQVc7SUFFcEM7Ozs7T0FJRztJQUNILFlBQVksUUFBUSxFQUFFLFFBQVEsRUFHN0I7SUFFRDs7O09BR0c7SUFDRyxlQUFlLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQXNFckM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQywrQkFBK0I7SUFrQnZDOzs7T0FHRztJQUNILE9BQU8sQ0FBQywwQ0FBMEM7SUFLbEQ7O09BRUc7SUFDSCxPQUFPLENBQUMsMkNBQTJDO0lBK0NuRDs7T0FFRztJQUNILHFCQUFxQixDQUFDLGNBQWMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUFFLENBSXpEO0lBRUQ7O09BRUc7SUFDSCxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxDQVkxRDtJQUVELGtDQUFrQyxJQUFJLFNBQVMsRUFBRSxDQVNoRDtJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLElBQUksU0FBUyxFQUFFLENBTWxDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUIsSUFBSTtRQUFFLEVBQUUsRUFBRSxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFBO0tBQUUsR0FBRyxTQUFTLENBK0J0RjtJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsdUJBQXVCLENBS25EO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsSUFBSSxNQUFNLENBRTFCO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxVQUFVLEdBQUcsVUFBVSxDQVNsRjtJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLGNBQWMsRUFBRSxNQUFNLEdBQUcsWUFBWSxDQUdwRDtJQUVEOzs7T0FHRztJQUNILGtCQUFrQixJQUFJLFdBQVcsR0FBRyxTQUFTLENBRTVDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxJQUFJLGNBQWMsR0FBRyxTQUFTLENBRTVDO0lBRUQ7OztPQUdHO0lBQ0gsdUNBQXVDLElBQUksSUFBSSxDQW1COUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyw0QkFBNEI7SUErQnBDOztPQUVHO0lBQ0gsT0FBTyxDQUFDLDBCQUEwQjtJQTJDbEM7O09BRUc7SUFDSCxPQUFPLENBQUMsc0JBQXNCO0lBa0Q5Qjs7T0FFRztJQUNILE9BQU8sQ0FBQyxnQ0FBZ0M7SUF3QnhDOztPQUVHO0lBQ0gsT0FBTyxDQUFDLHlCQUF5QjtJQThCakM7O09BRUc7SUFDRyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FFMUU7SUFFRDs7T0FFRztJQUNHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBRXpGO0lBRUQ7OztPQUdHO0lBQ0gsOEJBQThCLENBQzVCLGNBQWMsRUFBRSxNQUFNLEVBQ3RCLGVBQWUsRUFBRSxVQUFVLEdBQzFCLHFCQUFxQixHQUFHLFNBQVMsQ0F3R25DO0lBRUQsaURBQWlEO0lBQ2pELE9BQU8sQ0FBQyw4QkFBOEI7Q0F5QnZDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"keystore_manager.d.ts","sourceRoot":"","sources":["../src/keystore_manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAKhD,OAAO,KAAK,EAIV,WAAW,EAEX,qBAAqB,EACrB,QAAQ,EAER,cAAc,EACd,iBAAiB,IAAI,uBAAuB,EAC7C,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAGpB,KAAK,CAAC;IAFxB,YACE,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,mBAAO,EAI9B;CACF;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAEpC;;;;OAIG;IACH,YAAY,QAAQ,EAAE,QAAQ,EAG7B;IAED;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAsErC;IAED;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAkBvC;;;OAGG;IACH,OAAO,CAAC,0CAA0C;IAKlD;;OAEG;IACH,OAAO,CAAC,2CAA2C;IA+CnD;;OAEG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,CAIzD;IAED;;OAEG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,CAY1D;IAED,kCAAkC,IAAI,SAAS,EAAE,CAShD;IAED;;OAEG;IACH,oBAAoB,IAAI,SAAS,EAAE,CAMlC;IAED;;OAEG;IACH,mBAAmB,IAAI;QAAE,EAAE,EAAE,UAAU,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,SAAS,CA+BtF;IAED;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,uBAAuB,CAKnD;IAED;;OAEG;IACH,iBAAiB,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,GAAG,UAAU,CASlF;IAED;;OAEG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,CAGpD;IAED;;;OAGG;IACH,kBAAkB,IAAI,WAAW,GAAG,SAAS,CAE5C;IAED;;;OAGG;IACH,eAAe,IAAI,cAAc,GAAG,SAAS,CAE5C;IAED;;;OAGG;IACH,uCAAuC,IAAI,IAAI,CAmB9C;IAED;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA+BpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA2ClC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAwBxC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8BjC;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAE1E;IAED;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAEzF;IAED;;;OAGG;IACH,8BAA8B,CAC5B,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,UAAU,GAC1B,qBAAqB,GAAG,SAAS,CAwGnC;IAED,iDAAiD;IACjD,OAAO,CAAC,8BAA8B;CAyBvC"}
1
+ {"version":3,"file":"keystore_manager.d.ts","sourceRoot":"","sources":["../src/keystore_manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAKhD,OAAO,KAAK,EAIV,WAAW,EAEX,qBAAqB,EACrB,QAAQ,EAER,cAAc,EACd,iBAAiB,IAAI,uBAAuB,EAC7C,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAGpB,KAAK,CAAC;IAFxB,YACE,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,mBAAO,EAI9B;CACF;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAEpC;;;;OAIG;IACH,YAAY,QAAQ,EAAE,QAAQ,EAG7B;IAED;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAsErC;IAED;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAkBvC;;;OAGG;IACH,OAAO,CAAC,0CAA0C;IAKlD;;OAEG;IACH,OAAO,CAAC,2CAA2C;IA+CnD;;OAEG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,CAIzD;IAED;;OAEG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,CAY1D;IAED,kCAAkC,IAAI,SAAS,EAAE,CAShD;IAED;;OAEG;IACH,oBAAoB,IAAI,SAAS,EAAE,CAMlC;IAED;;OAEG;IACH,mBAAmB,IAAI;QAAE,EAAE,EAAE,UAAU,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,SAAS,CA+BtF;IAED;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,uBAAuB,CAKnD;IAED;;OAEG;IACH,iBAAiB,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,GAAG,UAAU,CASlF;IAED;;OAEG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,CAGpD;IAED;;;OAGG;IACH,kBAAkB,IAAI,WAAW,GAAG,SAAS,CAE5C;IAED;;;OAGG;IACH,eAAe,IAAI,cAAc,GAAG,SAAS,CAE5C;IAED;;;OAGG;IACH,uCAAuC,IAAI,IAAI,CAmB9C;IAED;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA+BpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA2ClC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAwBxC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8BjC;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAE1E;IAED;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAEzF;IAED;;;OAGG;IACH,8BAA8B,CAC5B,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,UAAU,GAC1B,qBAAqB,GAAG,SAAS,CAwGnC;IAED,iDAAiD;IACjD,OAAO,CAAC,8BAA8B;CAyBvC"}
package/dest/loader.d.ts CHANGED
@@ -59,4 +59,4 @@ export declare function loadMultipleKeystores(paths: string | string[]): KeyStor
59
59
  * @throws KeyStoreLoadError When duplicate attester keys are found or multiple prover configs exist.
60
60
  */
61
61
  export declare function mergeKeystores(keystores: KeyStore[]): KeyStore;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sS0FBSyxFQUFlLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUl4RDs7R0FFRztBQUNILHFCQUFhLGlCQUFrQixTQUFRLEtBQUs7SUFHakMsUUFBUSxFQUFFLE1BQU07SUFDUCxLQUFLLENBQUM7SUFIeEIsWUFDRSxPQUFPLEVBQUUsTUFBTSxFQUNSLFFBQVEsRUFBRSxNQUFNLEVBQ1AsS0FBSyxDQUFDLG1CQUFPLEVBSTlCO0NBQ0Y7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxRQUFRLENBdUIzRDtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLFFBQVEsRUFBRSxDQW1DakU7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsUUFBUSxFQUFFLENBdUJ0RDtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxHQUFHLFFBQVEsRUFBRSxDQThCMUU7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxRQUFRLENBK0U5RCJ9
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE9BQU8sS0FBSyxFQUFlLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUl4RDs7R0FFRztBQUNILHFCQUFhLGlCQUFrQixTQUFRLEtBQUs7SUFHakMsUUFBUSxFQUFFLE1BQU07SUFDUCxLQUFLLENBQUM7SUFIeEIsWUFDRSxPQUFPLEVBQUUsTUFBTSxFQUNSLFFBQVEsRUFBRSxNQUFNLEVBQ1AsS0FBSyxDQUFDLG1CQUFPLEVBSTlCO0NBQ0Y7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxRQUFRLENBdUIzRDtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLFFBQVEsRUFBRSxDQW1DakU7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsUUFBUSxFQUFFLENBdUJ0RDtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxHQUFHLFFBQVEsRUFBRSxDQThCMUU7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxRQUFRLENBZ0Y5RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIxD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAGjC,QAAQ,EAAE,MAAM;IACP,KAAK,CAAC;IAHxB,YACE,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EACP,KAAK,CAAC,mBAAO,EAI9B;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAuB3D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmCjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuBtD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,QAAQ,EAAE,CA8B1E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,CA+E9D"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIxD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAGjC,QAAQ,EAAE,MAAM;IACP,KAAK,CAAC;IAHxB,YACE,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EACP,KAAK,CAAC,mBAAO,EAI9B;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAuB3D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmCjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuBtD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,QAAQ,EAAE,CA8B1E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAgF9D"}
package/dest/loader.js CHANGED
@@ -2,9 +2,11 @@
2
2
  * Keystore File Loader
3
3
  *
4
4
  * Handles loading and parsing keystore configuration files.
5
- */ import { createLogger } from '@aztec/foundation/log';
5
+ */ import { EthAddress } from '@aztec/foundation/eth-address';
6
+ import { createLogger } from '@aztec/foundation/log';
6
7
  import { readFileSync, readdirSync, statSync } from 'fs';
7
8
  import { extname, join } from 'path';
9
+ import { privateKeyToAddress } from 'viem/accounts';
8
10
  import { keystoreSchema } from './schemas.js';
9
11
  const logger = createLogger('node-keystore:loader');
10
12
  /**
@@ -179,8 +181,9 @@ const logger = createLogger('node-keystore:loader');
179
181
  if (keystore.validators) {
180
182
  for (const validator of keystore.validators){
181
183
  // Check for duplicate attester addresses
182
- const attesterKeys = extractAttesterKeys(validator.attester);
183
- for (const key of attesterKeys){
184
+ const attesterKeys = extractAttesterAddresses(validator.attester);
185
+ for (let key of attesterKeys){
186
+ key = key.toLowerCase();
184
187
  if (attesterAddresses.has(key)) {
185
188
  throw new KeyStoreLoadError(`Duplicate attester address ${key} found across keystore files`, `keystores[${i}].validators`);
186
189
  }
@@ -235,26 +238,37 @@ const logger = createLogger('node-keystore:loader');
235
238
  *
236
239
  * @param attester The attester configuration in any supported shape.
237
240
  * @returns Array of string keys used to detect duplicates.
238
- */ function extractAttesterKeys(attester) {
241
+ */ function extractAttesterAddresses(attester) {
239
242
  // String forms (private key or other) - return as-is for coarse uniqueness
240
243
  if (typeof attester === 'string') {
241
- return [
242
- attester
243
- ];
244
+ if (attester.length === 66) {
245
+ return [
246
+ privateKeyToAddress(attester)
247
+ ];
248
+ } else {
249
+ return [
250
+ attester
251
+ ];
252
+ }
244
253
  }
245
254
  // Arrays of attester items
246
255
  if (Array.isArray(attester)) {
247
256
  const keys = [];
248
257
  for (const item of attester){
249
- keys.push(...extractAttesterKeys(item));
258
+ keys.push(...extractAttesterAddresses(item));
250
259
  }
251
260
  return keys;
252
261
  }
253
262
  if (attester && typeof attester === 'object') {
263
+ if (attester instanceof EthAddress) {
264
+ return [
265
+ attester.toString()
266
+ ];
267
+ }
254
268
  const obj = attester;
255
269
  // New shape: { eth: EthAccount, bls?: BLSAccount }
256
270
  if ('eth' in obj) {
257
- return extractAttesterKeys(obj.eth);
271
+ return extractAttesterAddresses(obj.eth);
258
272
  }
259
273
  // Remote signer account object shape: { address, remoteSignerUrl?, ... }
260
274
  if ('address' in obj) {
@@ -262,13 +276,7 @@ const logger = createLogger('node-keystore:loader');
262
276
  String(obj.address)
263
277
  ];
264
278
  }
265
- // Mnemonic or other object shapes: stringify
266
- return [
267
- JSON.stringify(attester)
268
- ];
269
279
  }
270
- // Fallback stringify for anything else (null/undefined)
271
- return [
272
- JSON.stringify(attester)
273
- ];
280
+ // mnemonic, encrypted file just disable early duplicates checking
281
+ return [];
274
282
  }
package/dest/signer.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Common interface for different signing backends (local, remote, encrypted)
5
5
  */
6
- import type { EthSigner } from '@aztec/ethereum';
6
+ import type { EthSigner } from '@aztec/ethereum/eth-signer';
7
7
  import { Buffer32 } from '@aztec/foundation/buffer';
8
8
  import type { EthAddress } from '@aztec/foundation/eth-address';
9
9
  import { Signature } from '@aztec/foundation/eth-signature';
@@ -69,4 +69,4 @@ export declare class RemoteSigner implements EthSigner {
69
69
  */
70
70
  private generateId;
71
71
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUkzRixPQUFPLEVBQ0wsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyxtQkFBbUIsRUFLekIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4RDs7R0FFRztBQUNILHFCQUFhLFdBQVksU0FBUSxLQUFLO0lBRzNCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsR0FBRyxFQUFFLE1BQU07SUFDWCxVQUFVLENBQUM7SUFDWCxTQUFTLENBQUM7SUFMbkIsWUFDRSxPQUFPLEVBQUUsTUFBTSxFQUNSLE1BQU0sRUFBRSxNQUFNLEVBQ2QsR0FBRyxFQUFFLE1BQU0sRUFDWCxVQUFVLENBQUMsb0JBQVEsRUFDbkIsU0FBUyxDQUFDLG9CQUFRLEVBSTFCO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHFCQUFhLFdBQVksWUFBVyxTQUFTO0lBRy9CLE9BQU8sQ0FBQyxVQUFVO0lBRjlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFrQjtJQUV6QyxZQUFvQixVQUFVLEVBQUUsUUFBUSxFQUV2QztJQUVELElBQUksT0FBTyxJQUFJLFVBQVUsQ0FFeEI7SUFFRCxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBRWpEO0lBRUQsYUFBYSxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBR2hFO0lBRUQsZUFBZSxDQUFDLFdBQVcsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBYXhFO0NBQ0Y7QUFtQkQ7O0dBRUc7QUFDSCxxQkFBYSxZQUFhLFlBQVcsU0FBUzthQUUxQixPQUFPLEVBQUUsVUFBVTtJQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLEtBQUs7SUFIZixZQUNrQixPQUFPLEVBQUUsVUFBVSxFQUNsQixNQUFNLEVBQUUscUJBQXFCLEVBQ3RDLEtBQUssR0FBRSxPQUFPLFVBQVUsQ0FBQyxLQUF3QixFQUN2RDtJQUVKOzs7Ozs7T0FNRztJQUNILE9BQWEsY0FBYyxDQUN6QixlQUFlLEVBQUUscUJBQXFCLEVBQ3RDLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsS0FBSyxHQUFFLE9BQU8sVUFBVSxDQUFDLEtBQXdCLEdBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0ErRGY7SUFFRDs7T0FFRztJQUNHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FFdkQ7SUFFRDs7T0FFRztJQUNHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUV0RTtJQUVELGVBQWUsQ0FBQyxXQUFXLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUV4RTtZQVFhLHNCQUFzQjtZQWlCdEIsK0JBQStCO1lBcUIvQixpQ0FBaUM7WUFrRGpDLGtCQUFrQjtJQXlDaEM7O09BRUc7SUFDSCxPQUFPLENBQUMsWUFBWTtJQU9wQjs7T0FFRztJQUNILE9BQU8sQ0FBQyxVQUFVO0NBR25CIn0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUkzRixPQUFPLEVBQ0wsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyxtQkFBbUIsRUFLekIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4RDs7R0FFRztBQUNILHFCQUFhLFdBQVksU0FBUSxLQUFLO0lBRzNCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsR0FBRyxFQUFFLE1BQU07SUFDWCxVQUFVLENBQUM7SUFDWCxTQUFTLENBQUM7SUFMbkIsWUFDRSxPQUFPLEVBQUUsTUFBTSxFQUNSLE1BQU0sRUFBRSxNQUFNLEVBQ2QsR0FBRyxFQUFFLE1BQU0sRUFDWCxVQUFVLENBQUMsb0JBQVEsRUFDbkIsU0FBUyxDQUFDLG9CQUFRLEVBSTFCO0NBQ0Y7QUFFRDs7R0FFRztBQUNILHFCQUFhLFdBQVksWUFBVyxTQUFTO0lBRy9CLE9BQU8sQ0FBQyxVQUFVO0lBRjlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFrQjtJQUV6QyxZQUFvQixVQUFVLEVBQUUsUUFBUSxFQUV2QztJQUVELElBQUksT0FBTyxJQUFJLFVBQVUsQ0FFeEI7SUFFRCxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBRWpEO0lBRUQsYUFBYSxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBR2hFO0lBRUQsZUFBZSxDQUFDLFdBQVcsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBYXhFO0NBQ0Y7QUFtQkQ7O0dBRUc7QUFDSCxxQkFBYSxZQUFhLFlBQVcsU0FBUzthQUUxQixPQUFPLEVBQUUsVUFBVTtJQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLEtBQUs7SUFIZixZQUNrQixPQUFPLEVBQUUsVUFBVSxFQUNsQixNQUFNLEVBQUUscUJBQXFCLEVBQ3RDLEtBQUssR0FBRSxPQUFPLFVBQVUsQ0FBQyxLQUF3QixFQUN2RDtJQUVKOzs7Ozs7T0FNRztJQUNILE9BQWEsY0FBYyxDQUN6QixlQUFlLEVBQUUscUJBQXFCLEVBQ3RDLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsS0FBSyxHQUFFLE9BQU8sVUFBVSxDQUFDLEtBQXdCLEdBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0ErRGY7SUFFRDs7T0FFRztJQUNHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FFdkQ7SUFFRDs7T0FFRztJQUNHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUV0RTtJQUVELGVBQWUsQ0FBQyxXQUFXLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUV4RTtZQVFhLHNCQUFzQjtZQWlCdEIsK0JBQStCO1lBcUIvQixpQ0FBaUM7WUE4Q2pDLGtCQUFrQjtJQXlDaEM7O09BRUc7SUFDSCxPQUFPLENBQUMsWUFBWTtJQU9wQjs7T0FFRztJQUNILE9BQU8sQ0FBQyxVQUFVO0NBR25CIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAiC,MAAM,iCAAiC,CAAC;AAI3F,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAKzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAG3B,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,MAAM;IACX,UAAU,CAAC;IACX,SAAS,CAAC;IALnB,YACE,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,oBAAQ,EACnB,SAAS,CAAC,oBAAQ,EAI1B;CACF;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,SAAS;IAG/B,OAAO,CAAC,UAAU;IAF9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,YAAoB,UAAU,EAAE,QAAQ,EAEvC;IAED,IAAI,OAAO,IAAI,UAAU,CAExB;IAED,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAEjD;IAED,aAAa,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAGhE;IAED,eAAe,CAAC,WAAW,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,CAaxE;CACF;AAmBD;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;aAE1B,OAAO,EAAE,UAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,KAAK;IAHf,YACkB,OAAO,EAAE,UAAU,EAClB,MAAM,EAAE,qBAAqB,EACtC,KAAK,GAAE,OAAO,UAAU,CAAC,KAAwB,EACvD;IAEJ;;;;;;OAMG;IACH,OAAa,cAAc,CACzB,eAAe,EAAE,qBAAqB,EACtC,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,GAAE,OAAO,UAAU,CAAC,KAAwB,GAChD,OAAO,CAAC,IAAI,CAAC,CA+Df;IAED;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAEvD;IAED;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAEtE;IAED,eAAe,CAAC,WAAW,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,CAExE;YAQa,sBAAsB;YAiBtB,+BAA+B;YAqB/B,iCAAiC;YAkDjC,kBAAkB;IAyChC;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAiC,MAAM,iCAAiC,CAAC;AAI3F,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAKzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAG3B,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,MAAM;IACX,UAAU,CAAC;IACX,SAAS,CAAC;IALnB,YACE,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,oBAAQ,EACnB,SAAS,CAAC,oBAAQ,EAI1B;CACF;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,SAAS;IAG/B,OAAO,CAAC,UAAU;IAF9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,YAAoB,UAAU,EAAE,QAAQ,EAEvC;IAED,IAAI,OAAO,IAAI,UAAU,CAExB;IAED,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAEjD;IAED,aAAa,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAGhE;IAED,eAAe,CAAC,WAAW,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,CAaxE;CACF;AAmBD;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;aAE1B,OAAO,EAAE,UAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,KAAK;IAHf,YACkB,OAAO,EAAE,UAAU,EAClB,MAAM,EAAE,qBAAqB,EACtC,KAAK,GAAE,OAAO,UAAU,CAAC,KAAwB,EACvD;IAEJ;;;;;;OAMG;IACH,OAAa,cAAc,CACzB,eAAe,EAAE,qBAAqB,EACtC,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,GAAE,OAAO,UAAU,CAAC,KAAwB,GAChD,OAAO,CAAC,IAAI,CAAC,CA+Df;IAED;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAEvD;IAED;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAEtE;IAED,eAAe,CAAC,WAAW,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,CAExE;YAQa,sBAAsB;YAiBtB,+BAA+B;YAqB/B,iCAAiC;YA8CjC,kBAAkB;IAyChC;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
package/dest/signer.js CHANGED
@@ -7,7 +7,7 @@ import { randomBytes } from '@aztec/foundation/crypto/random';
7
7
  import { Secp256k1Signer, toRecoveryBit } from '@aztec/foundation/crypto/secp256k1-signer';
8
8
  import { Signature } from '@aztec/foundation/eth-signature';
9
9
  import { jsonStringify } from '@aztec/foundation/json-rpc';
10
- import { withHexPrefix } from '@aztec/foundation/string';
10
+ import { bufferToHex, withHexPrefix } from '@aztec/foundation/string';
11
11
  import { hashTypedData, keccak256, parseTransaction, serializeTransaction } from 'viem';
12
12
  /**
13
13
  * Error thrown for remote signer HTTP or JSON-RPC failures
@@ -156,9 +156,6 @@ import { hashTypedData, keccak256, parseTransaction, serializeTransaction } from
156
156
  /**
157
157
  * Make a JSON-RPC eth_signTransaction request.
158
158
  */ async makeJsonRpcSignTransactionRequest(tx) {
159
- if (tx.type !== 'eip1559') {
160
- throw new Error('This signer does not support tx type: ' + tx.type);
161
- }
162
159
  const txObject = {
163
160
  from: this.address.toString(),
164
161
  to: tx.to ?? null,
@@ -167,7 +164,10 @@ import { hashTypedData, keccak256, parseTransaction, serializeTransaction } from
167
164
  nonce: typeof tx.nonce !== 'undefined' ? withHexPrefix(tx.nonce.toString(16)) : undefined,
168
165
  gas: typeof tx.gas !== 'undefined' ? withHexPrefix(tx.gas.toString(16)) : undefined,
169
166
  maxFeePerGas: typeof tx.maxFeePerGas !== 'undefined' ? withHexPrefix(tx.maxFeePerGas.toString(16)) : undefined,
170
- maxPriorityFeePerGas: typeof tx.maxPriorityFeePerGas !== 'undefined' ? withHexPrefix(tx.maxPriorityFeePerGas.toString(16)) : undefined
167
+ maxPriorityFeePerGas: typeof tx.maxPriorityFeePerGas !== 'undefined' ? withHexPrefix(tx.maxPriorityFeePerGas.toString(16)) : undefined,
168
+ maxFeePerBlobGas: typeof tx.maxFeePerBlobGas !== 'undefined' ? withHexPrefix(tx.maxFeePerBlobGas.toString(16)) : undefined,
169
+ blobVersionedHashes: tx.blobVersionedHashes,
170
+ blobs: tx.blobs?.map((blob)=>typeof blob === 'string' ? blob : bufferToHex(Buffer.from(blob)))
171
171
  };
172
172
  let rawTxHex = await this.makeJsonRpcRequest('eth_signTransaction', txObject);
173
173
  if (typeof rawTxHex !== 'string') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/node-keystore",
3
- "version": "3.0.0-nightly.20251210",
3
+ "version": "3.0.0-nightly.20251212",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -62,9 +62,9 @@
62
62
  ]
63
63
  },
64
64
  "dependencies": {
65
- "@aztec/ethereum": "3.0.0-nightly.20251210",
66
- "@aztec/foundation": "3.0.0-nightly.20251210",
67
- "@aztec/stdlib": "3.0.0-nightly.20251210",
65
+ "@aztec/ethereum": "3.0.0-nightly.20251212",
66
+ "@aztec/foundation": "3.0.0-nightly.20251212",
67
+ "@aztec/stdlib": "3.0.0-nightly.20251212",
68
68
  "@ethersproject/wallet": "^5.7.0",
69
69
  "tslib": "^2.4.0",
70
70
  "viem": "npm:@aztec/viem@2.38.2",
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Manages keystore configuration and delegates signing operations to appropriate signers.
5
5
  */
6
- import type { EthSigner } from '@aztec/ethereum';
6
+ import type { EthSigner } from '@aztec/ethereum/eth-signer';
7
7
  import { Buffer32 } from '@aztec/foundation/buffer';
8
8
  import { EthAddress } from '@aztec/foundation/eth-address';
9
9
  import type { Signature } from '@aztec/foundation/eth-signature';
package/src/loader.ts CHANGED
@@ -3,10 +3,13 @@
3
3
  *
4
4
  * Handles loading and parsing keystore configuration files.
5
5
  */
6
+ import { EthAddress } from '@aztec/foundation/eth-address';
6
7
  import { createLogger } from '@aztec/foundation/log';
8
+ import type { Hex } from '@aztec/foundation/string';
7
9
 
8
10
  import { readFileSync, readdirSync, statSync } from 'fs';
9
11
  import { extname, join } from 'path';
12
+ import { privateKeyToAddress } from 'viem/accounts';
10
13
 
11
14
  import { keystoreSchema } from './schemas.js';
12
15
  import type { EthAccounts, KeyStore } from './types.js';
@@ -220,8 +223,9 @@ export function mergeKeystores(keystores: KeyStore[]): KeyStore {
220
223
  if (keystore.validators) {
221
224
  for (const validator of keystore.validators) {
222
225
  // Check for duplicate attester addresses
223
- const attesterKeys = extractAttesterKeys(validator.attester);
224
- for (const key of attesterKeys) {
226
+ const attesterKeys = extractAttesterAddresses(validator.attester);
227
+ for (let key of attesterKeys) {
228
+ key = key.toLowerCase();
225
229
  if (attesterAddresses.has(key)) {
226
230
  throw new KeyStoreLoadError(
227
231
  `Duplicate attester address ${key} found across keystore files`,
@@ -284,38 +288,43 @@ export function mergeKeystores(keystores: KeyStore[]): KeyStore {
284
288
  * @param attester The attester configuration in any supported shape.
285
289
  * @returns Array of string keys used to detect duplicates.
286
290
  */
287
- function extractAttesterKeys(attester: unknown): string[] {
291
+ function extractAttesterAddresses(attester: unknown): string[] {
288
292
  // String forms (private key or other) - return as-is for coarse uniqueness
289
293
  if (typeof attester === 'string') {
290
- return [attester];
294
+ if (attester.length === 66) {
295
+ return [privateKeyToAddress(attester as Hex<32>)];
296
+ } else {
297
+ return [attester];
298
+ }
291
299
  }
292
300
 
293
301
  // Arrays of attester items
294
302
  if (Array.isArray(attester)) {
295
303
  const keys: string[] = [];
296
304
  for (const item of attester) {
297
- keys.push(...extractAttesterKeys(item));
305
+ keys.push(...extractAttesterAddresses(item));
298
306
  }
299
307
  return keys;
300
308
  }
301
309
 
302
310
  if (attester && typeof attester === 'object') {
311
+ if (attester instanceof EthAddress) {
312
+ return [attester.toString()];
313
+ }
314
+
303
315
  const obj = attester as Record<string, unknown>;
304
316
 
305
317
  // New shape: { eth: EthAccount, bls?: BLSAccount }
306
318
  if ('eth' in obj) {
307
- return extractAttesterKeys(obj.eth);
319
+ return extractAttesterAddresses(obj.eth);
308
320
  }
309
321
 
310
322
  // Remote signer account object shape: { address, remoteSignerUrl?, ... }
311
323
  if ('address' in obj) {
312
324
  return [String((obj as any).address)];
313
325
  }
314
-
315
- // Mnemonic or other object shapes: stringify
316
- return [JSON.stringify(attester)];
317
326
  }
318
327
 
319
- // Fallback stringify for anything else (null/undefined)
320
- return [JSON.stringify(attester)];
328
+ // mnemonic, encrypted file just disable early duplicates checking
329
+ return [];
321
330
  }
package/src/signer.ts CHANGED
@@ -3,14 +3,14 @@
3
3
  *
4
4
  * Common interface for different signing backends (local, remote, encrypted)
5
5
  */
6
- import type { EthSigner } from '@aztec/ethereum';
6
+ import type { EthSigner } from '@aztec/ethereum/eth-signer';
7
7
  import { Buffer32 } from '@aztec/foundation/buffer';
8
8
  import { randomBytes } from '@aztec/foundation/crypto/random';
9
9
  import { Secp256k1Signer, toRecoveryBit } from '@aztec/foundation/crypto/secp256k1-signer';
10
10
  import type { EthAddress } from '@aztec/foundation/eth-address';
11
11
  import { Signature, type ViemTransactionSignature } from '@aztec/foundation/eth-signature';
12
12
  import { jsonStringify } from '@aztec/foundation/json-rpc';
13
- import { withHexPrefix } from '@aztec/foundation/string';
13
+ import { bufferToHex, withHexPrefix } from '@aztec/foundation/string';
14
14
 
15
15
  import {
16
16
  type TransactionSerializable,
@@ -244,10 +244,6 @@ export class RemoteSigner implements EthSigner {
244
244
  * Make a JSON-RPC eth_signTransaction request.
245
245
  */
246
246
  private async makeJsonRpcSignTransactionRequest(tx: TransactionSerializable): Promise<Signature> {
247
- if (tx.type !== 'eip1559') {
248
- throw new Error('This signer does not support tx type: ' + tx.type);
249
- }
250
-
251
247
  const txObject: RemoteSignerTxObject = {
252
248
  from: this.address.toString(),
253
249
  to: tx.to ?? null,
@@ -261,10 +257,10 @@ export class RemoteSigner implements EthSigner {
261
257
  ? withHexPrefix(tx.maxPriorityFeePerGas.toString(16))
262
258
  : undefined,
263
259
 
264
- // maxFeePerBlobGas:
265
- // typeof tx.maxFeePerBlobGas !== 'undefined' ? withHexPrefix(tx.maxFeePerBlobGas.toString(16)) : undefined,
266
- // blobVersionedHashes: tx.blobVersionedHashes,
267
- // blobs: tx.blobs?.map(blob => (typeof blob === 'string' ? blob : bufferToHex(Buffer.from(blob)))),
260
+ maxFeePerBlobGas:
261
+ typeof tx.maxFeePerBlobGas !== 'undefined' ? withHexPrefix(tx.maxFeePerBlobGas.toString(16)) : undefined,
262
+ blobVersionedHashes: tx.blobVersionedHashes,
263
+ blobs: tx.blobs?.map(blob => (typeof blob === 'string' ? blob : bufferToHex(Buffer.from(blob)))),
268
264
  };
269
265
 
270
266
  let rawTxHex = await this.makeJsonRpcRequest('eth_signTransaction', txObject);