@activeledger/sdk-node 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -5,4 +5,5 @@ export { KeyHandler } from "./key";
5
5
  export { TransactionHandler } from "./transaction";
6
6
  export { PayloadHandler } from "./payload";
7
7
  export { LedgerEvents } from "./events";
8
+ export * as recovery from "./recovery";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,cAAc,wBAAwB,CAAC;AAKvC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,cAAc,wBAAwB,CAAC;AAKvC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC"}
package/lib/index.js CHANGED
@@ -10,11 +10,23 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
13
18
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
20
  };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
16
28
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.LedgerEvents = exports.PayloadHandler = exports.TransactionHandler = exports.KeyHandler = void 0;
29
+ exports.recovery = exports.LedgerEvents = exports.PayloadHandler = exports.TransactionHandler = exports.KeyHandler = void 0;
18
30
  __exportStar(require("@activeledger/sdk-core"), exports);
19
31
  __exportStar(require("./crypto"), exports);
20
32
  __exportStar(require("./interfaces"), exports);
@@ -26,4 +38,5 @@ var payload_1 = require("./payload");
26
38
  Object.defineProperty(exports, "PayloadHandler", { enumerable: true, get: function () { return payload_1.PayloadHandler; } });
27
39
  var events_1 = require("./events");
28
40
  Object.defineProperty(exports, "LedgerEvents", { enumerable: true, get: function () { return events_1.LedgerEvents; } });
41
+ exports.recovery = __importStar(require("./recovery"));
29
42
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAuBA,yDAAuC;AAKvC,2CAAyB;AACzB,+CAA6B;AAC7B,6BAAmC;AAA1B,iGAAA,UAAU,OAAA;AACnB,6CAAmD;AAA1C,iHAAA,kBAAkB,OAAA;AAC3B,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,yDAAuC;AAKvC,2CAAyB;AACzB,+CAA6B;AAC7B,6BAAmC;AAA1B,iGAAA,UAAU,OAAA;AACnB,6CAAmD;AAA1C,iHAAA,kBAAkB,OAAA;AAC3B,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AAGrB,uDAAuC"}
@@ -13,5 +13,6 @@ export interface IBIP39Options {
13
13
  passphrase?: string;
14
14
  legacy?: boolean;
15
15
  type?: KeyType;
16
+ validate?: boolean;
16
17
  }
17
18
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAQpB,MAAM,CAAC,EAAE,OAAO,CAAC;IAUjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAQpB,MAAM,CAAC,EAAE,OAAO,CAAC;IAUjB,IAAI,CAAC,EAAE,OAAO,CAAC;IAYf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
package/lib/key.d.ts CHANGED
@@ -5,8 +5,6 @@ export declare class KeyHandler extends CoreKeyHandler {
5
5
  constructor();
6
6
  generateBIP39Key(keyName: string, options?: IBIP39Options): Promise<IKeyExtended>;
7
7
  restoreBIP39Key(keyName: string, phrase: string, options?: IBIP39Options): Promise<IKeyExtended>;
8
- private deriveSeed;
9
- private deriveBIP32MasterKey;
10
8
  exportKey(key: IKey, options: IKeyExportOptions): Promise<void>;
11
9
  exportKey(key: IKey, location: string, createDir?: boolean, overwrite?: boolean, name?: string): Promise<void>;
12
10
  importKey(path: string): Promise<IKey>;
package/lib/key.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,IAAI,EAAE,UAAU,IAAI,cAAc,EAAW,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAU9E,qBAAa,UAAW,SAAQ,cAAc;IAE5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;;IAgBvC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BjF,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IA6D3G,OAAO,CAAC,UAAU;IA2BlB,OAAO,CAAC,oBAAoB;IAYrB,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/D,SAAS,CACd,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,OAAO,EACnB,SAAS,CAAC,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAmET,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B7C,OAAO,CAAC,aAAa;CAOtB"}
1
+ {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,IAAI,EAAE,UAAU,IAAI,cAAc,EAAW,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW9E,qBAAa,UAAW,SAAQ,cAAc;IAE5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;;IAgBvC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BjF,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAkEpG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/D,SAAS,CACd,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,OAAO,EACnB,SAAS,CAAC,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAmET,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B7C,OAAO,CAAC,aAAa;CAOtB"}
package/lib/key.js CHANGED
@@ -29,6 +29,7 @@ const fs = __importStar(require("fs"));
29
29
  const bip39_1 = require("bip39");
30
30
  const sdk_core_1 = require("@activeledger/sdk-core");
31
31
  const crypto_1 = require("./crypto");
32
+ const recovery_1 = require("./recovery");
32
33
  class KeyHandler extends sdk_core_1.KeyHandler {
33
34
  constructor() {
34
35
  const provider = new crypto_1.NodeCryptoProvider();
@@ -45,9 +46,12 @@ class KeyHandler extends sdk_core_1.KeyHandler {
45
46
  if (options.legacy && type !== sdk_core_1.KeyType.EllipticCurve) {
46
47
  return reject(new Error(`The legacy BIP-39 scheme is secp256k1 only - it cannot derive ${type}`));
47
48
  }
49
+ if (!options.legacy && options.validate !== false) {
50
+ (0, recovery_1.validate)(phrase);
51
+ }
48
52
  const seed = options.legacy
49
53
  ? crypto.createHash("sha256").update(phrase, "utf8").digest()
50
- : this.deriveSeed(type, (0, bip39_1.mnemonicToSeedSync)(phrase, options.passphrase || ""));
54
+ : (0, recovery_1.deriveSeed)(type, (0, bip39_1.mnemonicToSeedSync)(phrase, options.passphrase || ""));
51
55
  const keyHolder = {
52
56
  key: this.provider.generateFromSeed(seed, options.compressed, type),
53
57
  name: keyName,
@@ -61,16 +65,6 @@ class KeyHandler extends sdk_core_1.KeyHandler {
61
65
  }
62
66
  });
63
67
  }
64
- deriveSeed(type, bip39Seed) {
65
- if (type === sdk_core_1.KeyType.EllipticCurve) {
66
- return this.deriveBIP32MasterKey(bip39Seed);
67
- }
68
- const length = type === sdk_core_1.KeyType.Falcon512 ? 48 : 32;
69
- return Buffer.from(crypto.hkdfSync("sha512", bip39Seed, Buffer.alloc(0), Buffer.from(`activeledger-seed-v1:${type}`, "utf8"), length));
70
- }
71
- deriveBIP32MasterKey(seed) {
72
- return crypto.createHmac("sha512", "Bitcoin seed").update(seed).digest().subarray(0, 32);
73
- }
74
68
  exportKey(key, locationOrOptions, createDir, overwrite, name) {
75
69
  return new Promise((resolve, reject) => {
76
70
  const setOptions = () => {
package/lib/key.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"key.js","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,+CAAiC;AACjC,uCAAyB;AACzB,iCAA6D;AAC7D,qDAAqF;AAErF,qCAA8C;AAC9C,yCAAkD;AASlD,MAAa,UAAW,SAAQ,qBAAc;IAI5C;QACE,MAAM,QAAQ,GAAG,IAAI,2BAAkB,EAAE,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAUM,gBAAgB,CAAC,OAAe,EAAE,OAAuB;QAC9D,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAA,wBAAgB,GAAE,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAwBM,eAAe,CAAC,OAAe,EAAE,MAAc,EAAE,UAAyB,EAAE;QACjF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI;gBACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,kBAAO,CAAC,aAAa,CAAC;gBAEnD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,KAAK,kBAAO,CAAC,aAAa,EAAE;oBAKpD,OAAO,MAAM,CACX,IAAI,KAAK,CAAC,iEAAiE,IAAI,EAAE,CAAC,CACnF,CAAC;iBACH;gBAqBD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;oBACjD,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC;iBAClB;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM;oBACzB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;oBAC7D,CAAC,CAAC,IAAA,qBAAU,EAAC,IAAI,EAAE,IAAA,0BAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE3E,MAAM,SAAS,GAAiB;oBAC9B,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;oBACnE,IAAI,EAAE,OAAO;oBACb,IAAI;oBACJ,MAAM;iBACP,CAAC;gBAEF,OAAO,CAAC,SAAS,CAAC,CAAC;aACpB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC;aACf;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IA+BM,SAAS,CACd,GAAS,EACT,iBAA6C,EAC7C,SAAmB,EACnB,SAAmB,EACnB,IAAa;QAEb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,UAAU,GAAG,GAAsB,EAAE;gBACzC,OAAO;oBACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;oBACnC,QAAQ,EAAE,iBAA2B;oBACrC,IAAI;oBACJ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;iBACpC,CAAC;YACJ,CAAC,CAAC;YAEF,MAAM,OAAO,GACX,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAE,iBAAuC,CAAC;YAGlG,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrB,IAAI;oBACF,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;iBACrD;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;iBACpB;aACF;YAGD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAGxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC;YAGhH,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,SAAS,EAAE;gBAEb,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEvC,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;oBACpC,MAAM,CAAC,oEAAoE,CAAC,CAAC;iBAC9E;qBAAM;oBAEL,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAmC,EAAE,EAAE;wBAC9E,IAAI,KAAK,EAAE;4BACT,MAAM,CAAC,KAAK,CAAC,CAAC;yBACf;6BAAM;4BACL,OAAO,EAAE,CAAC;yBACX;oBACH,CAAC,CAAC,CAAC;iBACJ;aACF;iBAAM;gBACL,MAAM,CAAC,yBAAyB,CAAC,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IASM,SAAS,CAAC,IAAY;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAmB,EAAE,EAAE;gBACtC,IAAI,UAAU,EAAE;oBACd,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAmC,EAAE,MAAc,EAAE,EAAE;wBACxE,IAAI,KAAK,EAAE;4BACT,MAAM,CAAC,KAAK,CAAC,CAAC;yBACf;6BAAM;4BACL,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;4BAC/B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,CAAC,CAAC;yBACnC;oBACH,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,CAAC,iBAAiB,CAAC,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAUO,aAAa,CAAC,IAAY;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,QAAQ,KAAK,GAAG,EAAE;YACpB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArOD,gCAqOC"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { KeyType } from "@activeledger/sdk-core";
4
+ export declare const BIP39_SEED_BYTES = 64;
5
+ export declare const SEED_SIZES: Readonly<Record<string, number>>;
6
+ export declare function seedSize(type: KeyType): number;
7
+ export declare function validate(phrase: string): string;
8
+ export declare function toSeed(phrase: string, passphrase?: string, options?: {
9
+ validate?: boolean;
10
+ }): Buffer;
11
+ export declare function deriveSeed(type: KeyType, bip39Seed: Uint8Array): Buffer;
12
+ export declare function deriveBIP32MasterKey(bip39Seed: Uint8Array): Buffer;
13
+ //# sourceMappingURL=recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":";;AAyBA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AA8BjD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAQnC,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAItD,CAAC;AAGH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAM9C;AAkBD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA4B/C;AASD,wBAAgB,MAAM,CACpB,MAAM,EAAE,MAAM,EACd,UAAU,SAAK,EACf,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,MAAM,CAGR;AAQD,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,MAAM,CAwBvE;AAYD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAMlE"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.deriveBIP32MasterKey = exports.deriveSeed = exports.toSeed = exports.validate = exports.seedSize = exports.SEED_SIZES = exports.BIP39_SEED_BYTES = void 0;
27
+ const crypto = __importStar(require("crypto"));
28
+ const bip39_1 = require("bip39");
29
+ const sdk_core_1 = require("@activeledger/sdk-core");
30
+ exports.BIP39_SEED_BYTES = 64;
31
+ exports.SEED_SIZES = Object.freeze({
32
+ [sdk_core_1.KeyType.EllipticCurve]: 32,
33
+ [sdk_core_1.KeyType.MLDSA65]: 32,
34
+ [sdk_core_1.KeyType.Falcon512]: 48,
35
+ });
36
+ function seedSize(type) {
37
+ const size = exports.SEED_SIZES[type];
38
+ if (!size) {
39
+ throw new Error(`${type} keys cannot be derived from a seed`);
40
+ }
41
+ return size;
42
+ }
43
+ exports.seedSize = seedSize;
44
+ function validate(phrase) {
45
+ const words = phrase.normalize("NFKD").split(/\s+/).filter(Boolean);
46
+ if (words.length < 12 || words.length > 24 || words.length % 3 !== 0) {
47
+ throw new Error(`a BIP-39 phrase is 12, 15, 18, 21 or 24 words, got ${words.length}`);
48
+ }
49
+ const english = bip39_1.wordlists.english;
50
+ words.forEach((word, index) => {
51
+ if (!english.includes(word)) {
52
+ throw new Error(`word ${index + 1} ("${word}") is not in the BIP-39 English wordlist`);
53
+ }
54
+ });
55
+ const normalised = words.join(" ");
56
+ if (!(0, bip39_1.validateMnemonic)(normalised)) {
57
+ throw new Error("the BIP-39 checksum does not match - the phrase has a typo or the words are in the " +
58
+ "wrong order. Deriving from it anyway would produce a valid key for an identity " +
59
+ "nobody owns. If you meant to derive from a non-mnemonic string, pass " +
60
+ "{ validate: false }.");
61
+ }
62
+ return normalised;
63
+ }
64
+ exports.validate = validate;
65
+ function toSeed(phrase, passphrase = "", options = {}) {
66
+ const checked = options.validate === false ? phrase : validate(phrase);
67
+ return (0, bip39_1.mnemonicToSeedSync)(checked, passphrase);
68
+ }
69
+ exports.toSeed = toSeed;
70
+ function deriveSeed(type, bip39Seed) {
71
+ if (bip39Seed.length !== exports.BIP39_SEED_BYTES) {
72
+ throw new Error(`a BIP-39 seed is ${exports.BIP39_SEED_BYTES} bytes, got ${bip39Seed.length}`);
73
+ }
74
+ const seed = Buffer.from(bip39Seed);
75
+ if (type === sdk_core_1.KeyType.EllipticCurve) {
76
+ return deriveBIP32MasterKey(seed);
77
+ }
78
+ return Buffer.from(crypto.hkdfSync("sha512", seed, Buffer.alloc(0), Buffer.from(`activeledger-seed-v1:${type}`, "utf8"), seedSize(type)));
79
+ }
80
+ exports.deriveSeed = deriveSeed;
81
+ function deriveBIP32MasterKey(bip39Seed) {
82
+ return crypto
83
+ .createHmac("sha512", "Bitcoin seed")
84
+ .update(Buffer.from(bip39Seed))
85
+ .digest()
86
+ .subarray(0, 32);
87
+ }
88
+ exports.deriveBIP32MasterKey = deriveBIP32MasterKey;
89
+ //# sourceMappingURL=recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@activeledger/sdk-node",
3
- "version": "2.2.0",
3
+ "version": "2.4.0",
4
4
  "description": "Activeledger SDK for Node.js - secp256k1 signing via node:crypto (no external crypto dependency)",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "lib"
34
34
  ],
35
35
  "dependencies": {
36
- "@activeledger/sdk-core": "2.2.0",
36
+ "@activeledger/sdk-core": "2.4.0",
37
37
  "@noble/post-quantum": "^0.7.1",
38
38
  "asn1.js": "^5.4.1",
39
39
  "bip39": "3.1.0",