@shapeshiftoss/hdwallet-native 1.62.32 → 1.62.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/adapter.d.ts +17 -0
  2. package/dist/adapter.d.ts.map +1 -1
  3. package/dist/adapter.js.map +1 -1
  4. package/dist/arkeo.d.ts +2 -2
  5. package/dist/arkeo.d.ts.map +1 -1
  6. package/dist/binance.d.ts +2 -2
  7. package/dist/binance.d.ts.map +1 -1
  8. package/dist/bitcoin.d.ts +2 -2
  9. package/dist/bitcoin.d.ts.map +1 -1
  10. package/dist/cosmos.d.ts +2 -2
  11. package/dist/cosmos.d.ts.map +1 -1
  12. package/dist/crypto/isolation/adapters/bip32.d.ts +4 -4
  13. package/dist/crypto/isolation/adapters/bip32.d.ts.map +1 -1
  14. package/dist/crypto/isolation/adapters/bitcoin.d.ts +1 -1
  15. package/dist/crypto/isolation/adapters/bitcoin.d.ts.map +1 -1
  16. package/dist/crypto/isolation/adapters/index.d.ts +3 -1
  17. package/dist/crypto/isolation/adapters/index.d.ts.map +1 -1
  18. package/dist/crypto/isolation/adapters/index.js +7 -3
  19. package/dist/crypto/isolation/adapters/index.js.map +1 -1
  20. package/dist/crypto/isolation/adapters/stark.d.ts +30 -0
  21. package/dist/crypto/isolation/adapters/stark.d.ts.map +1 -0
  22. package/dist/crypto/isolation/adapters/stark.js +56 -0
  23. package/dist/crypto/isolation/adapters/stark.js.map +1 -0
  24. package/dist/crypto/isolation/adapters/starknet.d.ts +50 -0
  25. package/dist/crypto/isolation/adapters/starknet.d.ts.map +1 -0
  26. package/dist/crypto/isolation/adapters/starknet.js +117 -0
  27. package/dist/crypto/isolation/adapters/starknet.js.map +1 -0
  28. package/dist/crypto/isolation/core/bip32/interfaces.d.ts +2 -1
  29. package/dist/crypto/isolation/core/bip32/interfaces.d.ts.map +1 -1
  30. package/dist/crypto/isolation/core/bip32/interfaces.js.map +1 -1
  31. package/dist/crypto/isolation/core/index.d.ts +1 -0
  32. package/dist/crypto/isolation/core/index.d.ts.map +1 -1
  33. package/dist/crypto/isolation/core/index.js +2 -1
  34. package/dist/crypto/isolation/core/index.js.map +1 -1
  35. package/dist/crypto/isolation/core/stark/index.d.ts +3 -0
  36. package/dist/crypto/isolation/core/stark/index.d.ts.map +1 -0
  37. package/dist/crypto/isolation/core/stark/index.js +21 -0
  38. package/dist/crypto/isolation/core/stark/index.js.map +1 -0
  39. package/dist/crypto/isolation/core/stark/interfaces.d.ts +43 -0
  40. package/dist/crypto/isolation/core/stark/interfaces.d.ts.map +1 -0
  41. package/dist/crypto/isolation/core/stark/interfaces.js +3 -0
  42. package/dist/crypto/isolation/core/stark/interfaces.js.map +1 -0
  43. package/dist/crypto/isolation/engines/default/bip32.d.ts +15 -1
  44. package/dist/crypto/isolation/engines/default/bip32.d.ts.map +1 -1
  45. package/dist/crypto/isolation/engines/default/bip32.js +27 -0
  46. package/dist/crypto/isolation/engines/default/bip32.js.map +1 -1
  47. package/dist/crypto/isolation/engines/default/index.d.ts +1 -0
  48. package/dist/crypto/isolation/engines/default/index.d.ts.map +1 -1
  49. package/dist/crypto/isolation/engines/default/index.js +2 -1
  50. package/dist/crypto/isolation/engines/default/index.js.map +1 -1
  51. package/dist/crypto/isolation/engines/default/stark.d.ts +78 -0
  52. package/dist/crypto/isolation/engines/default/stark.d.ts.map +1 -0
  53. package/dist/crypto/isolation/engines/default/stark.js +187 -0
  54. package/dist/crypto/isolation/engines/default/stark.js.map +1 -0
  55. package/dist/crypto/isolation/engines/dummy/bip32.d.ts +5 -0
  56. package/dist/crypto/isolation/engines/dummy/bip32.d.ts.map +1 -1
  57. package/dist/crypto/isolation/engines/dummy/bip32.js +9 -0
  58. package/dist/crypto/isolation/engines/dummy/bip32.js.map +1 -1
  59. package/dist/ethereum.d.ts +2 -2
  60. package/dist/ethereum.d.ts.map +1 -1
  61. package/dist/kava.d.ts +2 -2
  62. package/dist/kava.d.ts.map +1 -1
  63. package/dist/mayachain.d.ts +2 -2
  64. package/dist/mayachain.d.ts.map +1 -1
  65. package/dist/native.d.ts +75 -35
  66. package/dist/native.d.ts.map +1 -1
  67. package/dist/native.js +46 -6
  68. package/dist/native.js.map +1 -1
  69. package/dist/osmosis.d.ts +2 -2
  70. package/dist/osmosis.d.ts.map +1 -1
  71. package/dist/secret.d.ts +2 -2
  72. package/dist/secret.d.ts.map +1 -1
  73. package/dist/solana.d.ts +1 -1
  74. package/dist/solana.d.ts.map +1 -1
  75. package/dist/starknet.d.ts +46 -0
  76. package/dist/starknet.d.ts.map +1 -0
  77. package/dist/starknet.js +93 -0
  78. package/dist/starknet.js.map +1 -0
  79. package/dist/sui.d.ts +1 -1
  80. package/dist/sui.d.ts.map +1 -1
  81. package/dist/terra.d.ts +2 -2
  82. package/dist/terra.d.ts.map +1 -1
  83. package/dist/thorchain.d.ts +2 -2
  84. package/dist/thorchain.d.ts.map +1 -1
  85. package/dist/tron.d.ts +1 -1
  86. package/dist/tron.d.ts.map +1 -1
  87. package/package.json +5 -3
@@ -0,0 +1,3 @@
1
+ export { derivePath } from "../bip32";
2
+ export * from "./interfaces";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/core/stark/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,21 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.derivePath = void 0;
18
+ var bip32_1 = require("../bip32");
19
+ Object.defineProperty(exports, "derivePath", { enumerable: true, get: function () { return bip32_1.derivePath; } });
20
+ __exportStar(require("./interfaces"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/core/stark/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAsC;AAA7B,mGAAA,UAAU,OAAA;AACnB,+CAA6B"}
@@ -0,0 +1,43 @@
1
+ import { Revocable } from "..";
2
+ import { ChainCode } from "../bip32";
3
+ /**
4
+ * Stark curve Node interface for Starknet
5
+ *
6
+ * OVERVIEW:
7
+ * Implements hierarchical deterministic key derivation for Starknet using the STARK curve.
8
+ * Uses standard BIP32 secp256k1 derivation math (per SLIP-0010 and industry standard),
9
+ * then applies Starknet-specific key grinding for public key generation and signing.
10
+ *
11
+ * STARK CURVE:
12
+ * - Weierstrass curve: y² = x³ + ax + b (mod p)
13
+ * - Prime field: p = 2^251 + 17×2^192 + 1 (251-bit, not 256-bit like secp256k1)
14
+ * - Parameters: a = 1, b = π
15
+ * - Different from secp256k1, requires separate implementation
16
+ * - Spec: https://docs.starkware.co/starkex/crypto/stark-curve.html
17
+ *
18
+ * KEY METHODS:
19
+ * - getPublicKey(): Returns Stark public key (after grinding) as hex string
20
+ * - sign(): ECDSA signature on STARK curve, returns {r, s} with 64-char hex padding
21
+ * - derive(): BIP32 child key derivation using secp256k1 field arithmetic
22
+ *
23
+ * REFERENCES:
24
+ * - STARK Curve: https://docs.starkware.co/starkex/crypto/stark-curve.html
25
+ * - Key Grinding: https://docs.starkware.co/starkex/crypto/key-derivation.html
26
+ * - Starknet Cryptography: https://docs.starknet.io/architecture/cryptography/
27
+ * - SLIP-0010: https://github.com/satoshilabs/slips/blob/master/slip-0010.md
28
+ */
29
+ export interface Node extends Partial<Revocable> {
30
+ readonly explicitPath?: string;
31
+ /** Get Stark public key (applies key grinding, returns hex string) */
32
+ getPublicKey(): Promise<string>;
33
+ /** Get BIP32 chain code for derivation */
34
+ getChainCode(): Promise<ChainCode>;
35
+ /** Derive child key using BIP32 secp256k1 math (per industry standard) */
36
+ derive(index: number): Promise<this>;
37
+ /** Sign transaction hash on STARK curve (returns padded 64-char hex r,s) */
38
+ sign(txHash: string): Promise<{
39
+ r: string;
40
+ s: string;
41
+ }>;
42
+ }
43
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/core/stark/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,IAAK,SAAQ,OAAO,CAAC,SAAS,CAAC;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,sEAAsE;IACtE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,0CAA0C;IAC1C,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,4EAA4E;IAC5E,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/core/stark/interfaces.ts"],"names":[],"mappings":""}
@@ -18,7 +18,7 @@ export declare class Node extends Node_base implements Core.BIP32.Node, Core.Sec
18
18
  protected constructor(privateKey: Uint8Array, chainCode: Uint8Array, explicitPath?: string);
19
19
  static create(privateKey: Uint8Array, chainCode: Uint8Array, explicitPath?: string): Promise<Core.BIP32.Node>;
20
20
  getPublicKey(): Promise<Core.SecP256K1.CompressedPoint>;
21
- getChainCode(): Promise<Buffer & Uint8Array & {
21
+ getChainCode(): Promise<Buffer<ArrayBufferLike> & Uint8Array & {
22
22
  length: 32;
23
23
  }>;
24
24
  ecdsaSign(digestAlgorithm: null, msg: ByteArray<32>, counter?: Uint32): Promise<Core.SecP256K1.Signature>;
@@ -46,5 +46,19 @@ export declare class Seed extends Seed_base implements Core.BIP32.Seed {
46
46
  static create(seed: Uint8Array): Promise<Core.BIP32.Seed>;
47
47
  toSecp256k1MasterKey(): Promise<Core.BIP32.Node>;
48
48
  toEd25519MasterKey(): Promise<Core.Ed25519.Node>;
49
+ /**
50
+ * Create Stark master key for Starknet
51
+ *
52
+ * Uses "Bitcoin seed" HMAC key per SLIP-0010 because Starknet follows the
53
+ * industry standard of using secp256k1 BIP32 derivation math, then applying
54
+ * Stark-specific operations (grinding, STARK curve signing) only at the end.
55
+ *
56
+ * This matches implementations by Argent and Ledger.
57
+ *
58
+ * References:
59
+ * - https://github.com/argentlabs/argent-starknet-recover/blob/main/keyDerivation.ts
60
+ * - https://community.starknet.io/t/account-keys-and-addresses-derivation-standard/1230
61
+ */
62
+ toStarkMasterKey(): Promise<Core.Stark.Node>;
49
63
  }
50
64
  //# sourceMappingURL=bip32.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bip32.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/bip32.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAc,SAAS,EAA6B,MAAM,EAAE,MAAM,aAAa,CAAC;AAIvF,cAAc,kBAAkB,CAAC;;;;;;;;;;;AAEjC,qBAAa,IACX,SAAQ,SACR,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;;IAGtF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAElD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,SAAS,aAAa,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM;WAU7E,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAK7G,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;IAMvD,YAAY;;;IAIZ,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IACzG,SAAS,CACb,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAC9C,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAiB9B,oBAAoB,CACxB,eAAe,EAAE,IAAI,EACrB,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;IACzC,oBAAoB,CACxB,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAC9C,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;IAuBzC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpC,IAAI,CACR,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EACpC,eAAe,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,GAC9C,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAOnB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAIhF,KAAK;CAiBpB;;;;;;;;;;;AAGD,qBAAa,IAAK,SAAQ,SAAoB,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI;;IAGtE,SAAS,aAAa,IAAI,EAAE,UAAU;WAMzB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAKzD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAUhD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;CASvD"}
1
+ {"version":3,"file":"bip32.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/bip32.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAc,SAAS,EAA6B,MAAM,EAAE,MAAM,aAAa,CAAC;AAKvF,cAAc,kBAAkB,CAAC;;;;;;;;;;;AAEjC,qBAAa,IACX,SAAQ,SACR,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;;IAGtF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAElD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,SAAS,aAAa,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM;WAU7E,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAK7G,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;IAMvD,YAAY;;;IAIZ,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IACzG,SAAS,CACb,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAC9C,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAiB9B,oBAAoB,CACxB,eAAe,EAAE,IAAI,EACrB,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;IACzC,oBAAoB,CACxB,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAC9C,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;IAuBzC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpC,IAAI,CACR,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EACpC,eAAe,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,GAC9C,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAOnB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAIhF,KAAK;CAiBpB;;;;;;;;;;;AAGD,qBAAa,IAAK,SAAQ,SAAoB,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI;;IAGtE,SAAS,aAAa,IAAI,EAAE,UAAU;WAMzB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAKzD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAUhD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAUtD;;;;;;;;;;;;OAYG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;CAWnD"}
@@ -57,6 +57,7 @@ const isolation_1 = require("../../../isolation");
57
57
  const types_1 = require("../../types");
58
58
  const Ed25519 = __importStar(require("./ed25519"));
59
59
  const revocable_1 = require("./revocable");
60
+ const Stark = __importStar(require("./stark"));
60
61
  __exportStar(require("../../core/bip32"), exports);
61
62
  class Node extends (0, revocable_1.Revocable)(class {
62
63
  }) {
@@ -203,6 +204,32 @@ class Seed extends (0, revocable_1.Revocable)(class {
203
204
  return out;
204
205
  });
205
206
  }
207
+ /**
208
+ * Create Stark master key for Starknet
209
+ *
210
+ * Uses "Bitcoin seed" HMAC key per SLIP-0010 because Starknet follows the
211
+ * industry standard of using secp256k1 BIP32 derivation math, then applying
212
+ * Stark-specific operations (grinding, STARK curve signing) only at the end.
213
+ *
214
+ * This matches implementations by Argent and Ledger.
215
+ *
216
+ * References:
217
+ * - https://github.com/argentlabs/argent-starknet-recover/blob/main/keyDerivation.ts
218
+ * - https://community.starknet.io/t/account-keys-and-addresses-derivation-standard/1230
219
+ */
220
+ toStarkMasterKey() {
221
+ return __awaiter(this, void 0, void 0, function* () {
222
+ // Use "Bitcoin seed" per SLIP-0010 standard for secp256k1-based derivation
223
+ // Starknet uses standard BIP32 secp256k1 derivation, then applies grinding
224
+ const hmacKey = (0, types_1.safeBufferFrom)(new TextEncoder().encode("Bitcoin seed"));
225
+ const I = (0, types_1.safeBufferFrom)(bip32crypto.hmacSHA512((0, types_1.safeBufferFrom)(hmacKey), __classPrivateFieldGet(this, _Seed_seed, "f")));
226
+ const IL = I.subarray(0, 32);
227
+ const IR = I.subarray(32, 64);
228
+ const out = yield Stark.Node.create(IL, IR);
229
+ this.addRevoker(() => { var _a; return (_a = out.revoke) === null || _a === void 0 ? void 0 : _a.call(out); });
230
+ return out;
231
+ });
232
+ }
206
233
  }
207
234
  exports.Seed = Seed;
208
235
  _Seed_seed = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"bip32.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/bip32.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bip32.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/bip32.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * as BIP32 from "./bip32";
2
2
  export * as BIP39 from "./bip39";
3
3
  export * as ED25519 from "./ed25519";
4
+ export * as Stark from "./stark";
4
5
  export * from "./revocable";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,cAAc,aAAa,CAAC"}
@@ -26,9 +26,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ED25519 = exports.BIP39 = exports.BIP32 = void 0;
29
+ exports.Stark = exports.ED25519 = exports.BIP39 = exports.BIP32 = void 0;
30
30
  exports.BIP32 = __importStar(require("./bip32"));
31
31
  exports.BIP39 = __importStar(require("./bip39"));
32
32
  exports.ED25519 = __importStar(require("./ed25519"));
33
+ exports.Stark = __importStar(require("./stark"));
33
34
  __exportStar(require("./revocable"), exports);
34
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiC;AACjC,iDAAiC;AACjC,qDAAqC;AACrC,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiC;AACjC,iDAAiC;AACjC,qDAAqC;AACrC,iDAAiC;AACjC,8CAA4B"}
@@ -0,0 +1,78 @@
1
+ import { Core } from "../../../isolation";
2
+ import { Uint32 } from "../../types";
3
+ export * from "../../core/stark";
4
+ declare const Node_base: {
5
+ new (...args: any[]): {
6
+ readonly "__#3@#revokers": Set<() => void>;
7
+ "__#3@#revoked": boolean;
8
+ readonly revoke: () => void;
9
+ readonly addRevoker: (revoker: () => void) => void;
10
+ };
11
+ } & {
12
+ new (): {};
13
+ };
14
+ /**
15
+ * Stark curve Node for Starknet
16
+ *
17
+ * DERIVATION APPROACH:
18
+ * Uses standard BIP32 secp256k1 derivation (same as Bitcoin/Ethereum) per SLIP-0010,
19
+ * then applies Starknet-specific key grinding and uses STARK curve for final operations.
20
+ *
21
+ * This matches industry standard implementations (Argent, Ledger) which derive using
22
+ * secp256k1 BIP32 math, then apply grinding for Stark operations.
23
+ *
24
+ * STARK CURVE SPECIFICATIONS:
25
+ * - Type: Weierstrass elliptic curve (y² = x³ + ax + b)
26
+ * - Prime field (p): 2^251 + 17×2^192 + 1 = 3618502788666131213697322783095070105623107215331596699973092056135872020481
27
+ * - Curve order (n): 3618502788666131213697322783095070105526743751716087489154079457884512865583
28
+ * - Parameters: a = 1, b = 3141592653589793238462643383279502884197169399375105820974944592307816406665
29
+ * - Bit length: 252 bits (vs 256 for secp256k1)
30
+ * - Generator: (874739451078007766457464989774322083649278607533249481151382481072868806602, 152666792071518830868575557812948353041420400780739481342941381225525861407)
31
+ *
32
+ * KEY GRINDING:
33
+ * Starknet requires "key grinding" to ensure derived private keys fall within the STARK curve order.
34
+ * The grinding algorithm iteratively hashes until finding a valid key: hash(key||i) mod stark_order.
35
+ * See: https://docs.starkware.co/starkex/crypto/key-derivation.html
36
+ *
37
+ * REFERENCES:
38
+ * - STARK Curve: https://docs.starkware.co/starkex/crypto/stark-curve.html
39
+ * - Key Derivation: https://docs.starkware.co/starkex/crypto/key-derivation.html
40
+ * - Community Standard (BIP-44 preferred): https://community.starknet.io/t/account-keys-and-addresses-derivation-standard/1230
41
+ * - Starknet Cryptography: https://docs.starknet.io/architecture/cryptography/
42
+ * - SLIP-0010 (HD wallet standard): https://github.com/satoshilabs/slips/blob/master/slip-0010.md
43
+ * - @scure/starknet (implementation): https://github.com/paulmillr/scure-starknet
44
+ * - Argent reference: https://github.com/argentlabs/argent-starknet-recover/blob/main/keyDerivation.ts
45
+ */
46
+ export declare class Node extends Node_base implements Core.Stark.Node {
47
+ #private;
48
+ readonly chainCode: Buffer & Core.BIP32.ChainCode;
49
+ readonly explicitPath?: string;
50
+ protected constructor(privateKey: Uint8Array, chainCode: Uint8Array, explicitPath?: string);
51
+ static create(privateKey: Uint8Array, chainCode: Uint8Array, explicitPath?: string): Promise<Core.Stark.Node>;
52
+ /**
53
+ * Get Stark public key
54
+ * Applies Starknet-specific key grinding before deriving public key on STARK curve
55
+ * Returns zero-padded 64-character hex string (66 chars total with 0x prefix)
56
+ */
57
+ getPublicKey(): Promise<string>;
58
+ getChainCode(): Promise<Buffer<ArrayBufferLike> & Uint8Array & {
59
+ length: 32;
60
+ }>;
61
+ /**
62
+ * Sign transaction hash on STARK curve
63
+ * Applies key grinding and returns ECDSA signature with proper padding
64
+ */
65
+ sign(txHash: string): Promise<{
66
+ r: string;
67
+ s: string;
68
+ }>;
69
+ /**
70
+ * Derive child key using standard BIP32 secp256k1 derivation
71
+ *
72
+ * NOTE: This uses secp256k1 field arithmetic (ecc.privateAdd) per SLIP-0010,
73
+ * which is the industry standard for Starknet (matches Argent, Ledger implementations).
74
+ * The derived key is then ground for Stark operations in getPublicKey/sign methods.
75
+ */
76
+ derive(index: Uint32): Promise<this>;
77
+ }
78
+ //# sourceMappingURL=stark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stark.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/stark.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAwC,MAAM,EAAE,MAAM,aAAa,CAAC;AAG3E,cAAc,kBAAkB,CAAC;;;;;;;;;;;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,IAAK,SAAQ,SAAoB,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI;;IAEtE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,SAAS,aAAa,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM;WAU7E,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAKnH;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAS/B,YAAY;;;IAIlB;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAS7D;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B3C"}
@@ -0,0 +1,187 @@
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
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
38
+ if (kind === "m") throw new TypeError("Private method is not writable");
39
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
40
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
41
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
42
+ };
43
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
44
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
45
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
46
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
47
+ };
48
+ var __importDefault = (this && this.__importDefault) || function (mod) {
49
+ return (mod && mod.__esModule) ? mod : { "default": mod };
50
+ };
51
+ var _Node_privateKey;
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.Node = void 0;
54
+ const secp256k1_1 = __importDefault(require("@bitcoinerlab/secp256k1"));
55
+ const starknet = __importStar(require("@scure/starknet"));
56
+ const bip32crypto = __importStar(require("bip32/src/crypto"));
57
+ const isolation_1 = require("../../../isolation");
58
+ const types_1 = require("../../types");
59
+ const revocable_1 = require("./revocable");
60
+ __exportStar(require("../../core/stark"), exports);
61
+ /**
62
+ * Stark curve Node for Starknet
63
+ *
64
+ * DERIVATION APPROACH:
65
+ * Uses standard BIP32 secp256k1 derivation (same as Bitcoin/Ethereum) per SLIP-0010,
66
+ * then applies Starknet-specific key grinding and uses STARK curve for final operations.
67
+ *
68
+ * This matches industry standard implementations (Argent, Ledger) which derive using
69
+ * secp256k1 BIP32 math, then apply grinding for Stark operations.
70
+ *
71
+ * STARK CURVE SPECIFICATIONS:
72
+ * - Type: Weierstrass elliptic curve (y² = x³ + ax + b)
73
+ * - Prime field (p): 2^251 + 17×2^192 + 1 = 3618502788666131213697322783095070105623107215331596699973092056135872020481
74
+ * - Curve order (n): 3618502788666131213697322783095070105526743751716087489154079457884512865583
75
+ * - Parameters: a = 1, b = 3141592653589793238462643383279502884197169399375105820974944592307816406665
76
+ * - Bit length: 252 bits (vs 256 for secp256k1)
77
+ * - Generator: (874739451078007766457464989774322083649278607533249481151382481072868806602, 152666792071518830868575557812948353041420400780739481342941381225525861407)
78
+ *
79
+ * KEY GRINDING:
80
+ * Starknet requires "key grinding" to ensure derived private keys fall within the STARK curve order.
81
+ * The grinding algorithm iteratively hashes until finding a valid key: hash(key||i) mod stark_order.
82
+ * See: https://docs.starkware.co/starkex/crypto/key-derivation.html
83
+ *
84
+ * REFERENCES:
85
+ * - STARK Curve: https://docs.starkware.co/starkex/crypto/stark-curve.html
86
+ * - Key Derivation: https://docs.starkware.co/starkex/crypto/key-derivation.html
87
+ * - Community Standard (BIP-44 preferred): https://community.starknet.io/t/account-keys-and-addresses-derivation-standard/1230
88
+ * - Starknet Cryptography: https://docs.starknet.io/architecture/cryptography/
89
+ * - SLIP-0010 (HD wallet standard): https://github.com/satoshilabs/slips/blob/master/slip-0010.md
90
+ * - @scure/starknet (implementation): https://github.com/paulmillr/scure-starknet
91
+ * - Argent reference: https://github.com/argentlabs/argent-starknet-recover/blob/main/keyDerivation.ts
92
+ */
93
+ class Node extends (0, revocable_1.Revocable)(class {
94
+ }) {
95
+ constructor(privateKey, chainCode, explicitPath) {
96
+ super();
97
+ _Node_privateKey.set(this, void 0);
98
+ // We avoid handing the private key to any non-platform code -- including our type-checking machinery.
99
+ if (privateKey.length !== 32)
100
+ throw new Error("bad private key length");
101
+ __classPrivateFieldSet(this, _Node_privateKey, (0, types_1.safeBufferFrom)(privateKey), "f");
102
+ this.addRevoker(() => __classPrivateFieldGet(this, _Node_privateKey, "f").fill(0));
103
+ this.chainCode = (0, types_1.safeBufferFrom)((0, types_1.checkType)(isolation_1.Core.BIP32.ChainCode, chainCode));
104
+ this.explicitPath = explicitPath;
105
+ }
106
+ static create(privateKey, chainCode, explicitPath) {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ const obj = new Node(privateKey, chainCode, explicitPath);
109
+ return (0, revocable_1.revocable)(obj, (x) => obj.addRevoker(x));
110
+ });
111
+ }
112
+ /**
113
+ * Get Stark public key
114
+ * Applies Starknet-specific key grinding before deriving public key on STARK curve
115
+ * Returns zero-padded 64-character hex string (66 chars total with 0x prefix)
116
+ */
117
+ getPublicKey() {
118
+ return __awaiter(this, void 0, void 0, function* () {
119
+ const groundPrivateKey = starknet.grindKey(__classPrivateFieldGet(this, _Node_privateKey, "f"));
120
+ const publicKey = starknet.getStarkKey(groundPrivateKey);
121
+ // Ensure proper zero-padding to 64 hex characters per Starknet address spec
122
+ return publicKey.startsWith("0x")
123
+ ? "0x" + publicKey.slice(2).padStart(64, "0")
124
+ : "0x" + publicKey.padStart(64, "0");
125
+ });
126
+ }
127
+ getChainCode() {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ return this.chainCode;
130
+ });
131
+ }
132
+ /**
133
+ * Sign transaction hash on STARK curve
134
+ * Applies key grinding and returns ECDSA signature with proper padding
135
+ */
136
+ sign(txHash) {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ const groundPrivateKey = starknet.grindKey(__classPrivateFieldGet(this, _Node_privateKey, "f"));
139
+ const signature = starknet.sign(txHash, groundPrivateKey);
140
+ return {
141
+ r: signature.r.toString(16).padStart(64, "0"),
142
+ s: signature.s.toString(16).padStart(64, "0"),
143
+ };
144
+ });
145
+ }
146
+ /**
147
+ * Derive child key using standard BIP32 secp256k1 derivation
148
+ *
149
+ * NOTE: This uses secp256k1 field arithmetic (ecc.privateAdd) per SLIP-0010,
150
+ * which is the industry standard for Starknet (matches Argent, Ledger implementations).
151
+ * The derived key is then ground for Stark operations in getPublicKey/sign methods.
152
+ */
153
+ derive(index) {
154
+ return __awaiter(this, void 0, void 0, function* () {
155
+ types_1.Uint32.assert(index);
156
+ const serP = Buffer.alloc(37);
157
+ if (index < 0x80000000) {
158
+ // Non-hardened derivation uses public key
159
+ // For Stark, we use secp256k1 public key for BIP32 derivation (industry standard)
160
+ // The grinding + Stark operations happen only in final getPublicKey/sign
161
+ const secp256k1PubKey = secp256k1_1.default.pointFromScalar(__classPrivateFieldGet(this, _Node_privateKey, "f"), true);
162
+ if (secp256k1PubKey === null) {
163
+ throw new Error("Failed to generate public key from private key");
164
+ }
165
+ serP.set(secp256k1PubKey, 0);
166
+ }
167
+ else {
168
+ // Hardened derivation uses private key
169
+ serP.set(__classPrivateFieldGet(this, _Node_privateKey, "f"), 1);
170
+ }
171
+ serP.writeUInt32BE(index, 33);
172
+ const I = bip32crypto.hmacSHA512(this.chainCode, serP);
173
+ const IL = I.slice(0, 32);
174
+ const IR = I.slice(32, 64);
175
+ // Use secp256k1 curve arithmetic for derivation (per SLIP-0010 / industry standard)
176
+ const ki = secp256k1_1.default.privateAdd(__classPrivateFieldGet(this, _Node_privateKey, "f"), IL);
177
+ if (ki === null)
178
+ throw new Error("ki is null; this should be cryptographically impossible");
179
+ const out = yield Node.create(ki, IR);
180
+ this.addRevoker(() => { var _a; return (_a = out.revoke) === null || _a === void 0 ? void 0 : _a.call(out); });
181
+ return out;
182
+ });
183
+ }
184
+ }
185
+ exports.Node = Node;
186
+ _Node_privateKey = new WeakMap();
187
+ //# sourceMappingURL=stark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stark.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/default/stark.ts"],"names":[],"mappings":"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"}
@@ -22,5 +22,10 @@ export declare class Seed implements Core.BIP32.Seed {
22
22
  static create(xpubTree: ParsedXpubTree): Promise<Core.BIP32.Seed>;
23
23
  toSecp256k1MasterKey(): Promise<Core.BIP32.Node>;
24
24
  toEd25519MasterKey(): Promise<Core.Ed25519.Node>;
25
+ /**
26
+ * Dummy engine doesn't support Stark curve operations
27
+ * Stark curve requires actual private key material for key grinding and signing
28
+ */
29
+ toStarkMasterKey(): Promise<Core.Stark.Node>;
25
30
  }
26
31
  //# sourceMappingURL=bip32.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bip32.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/dummy/bip32.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAA6B,MAAM,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAoB,cAAc,EAAE,MAAM,SAAS,CAAC;AAE3D,cAAc,kBAAkB,CAAC;AAEjC,qBAAa,IAAK,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;IACtG,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,SAAS,aAAa,QAAQ,EAAE,cAAc;WAIjC,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAIjE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;IAIvD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAI7C,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IACzG,SAAS,CACb,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAC9C,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAK9B,oBAAoB,CACxB,eAAe,EAAE,IAAI,EACrB,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;IACzC,oBAAoB,CACxB,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAC9C,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;IAKzC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCpC,IAAI,CACR,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EACpC,eAAe,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,GAC9C,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAKnB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;CAI/F;AAED,qBAAa,IAAK,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,SAAS,aAAa,QAAQ,EAAE,cAAc;WAIjC,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAIjE,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAIhD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;CAGvD"}
1
+ {"version":3,"file":"bip32.d.ts","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/dummy/bip32.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAA6B,MAAM,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAoB,cAAc,EAAE,MAAM,SAAS,CAAC;AAE3D,cAAc,kBAAkB,CAAC;AAEjC,qBAAa,IAAK,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;IACtG,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,SAAS,aAAa,QAAQ,EAAE,cAAc;WAIjC,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAIjE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;IAIvD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAI7C,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IACzG,SAAS,CACb,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAC9C,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAK9B,oBAAoB,CACxB,eAAe,EAAE,IAAI,EACrB,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;IACzC,oBAAoB,CACxB,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAC9C,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;IAKzC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCpC,IAAI,CACR,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EACpC,eAAe,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,GAC9C,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAKnB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;CAI/F;AAED,qBAAa,IAAK,YAAW,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,SAAS,aAAa,QAAQ,EAAE,cAAc;WAIjC,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAIjE,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAIhD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAItD;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;CAGnD"}
@@ -141,6 +141,15 @@ class Seed {
141
141
  throw new types_2.DummyEngineError();
142
142
  });
143
143
  }
144
+ /**
145
+ * Dummy engine doesn't support Stark curve operations
146
+ * Stark curve requires actual private key material for key grinding and signing
147
+ */
148
+ toStarkMasterKey() {
149
+ return __awaiter(this, void 0, void 0, function* () {
150
+ throw new types_2.DummyEngineError();
151
+ });
152
+ }
144
153
  }
145
154
  exports.Seed = Seed;
146
155
  //# sourceMappingURL=bip32.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bip32.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/dummy/bip32.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bip32.js","sourceRoot":"","sources":["../../../../../src/crypto/isolation/engines/dummy/bip32.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export declare function MixinNativeETHWallet<TBase extends core.Constructor<Nati
39
39
  readonly _supportsPlasma: true;
40
40
  readonly _supportsHyperEvm: true;
41
41
  readonly _supportsEthSwitchChain: false;
42
- "__#12@#ethSigner": SignerAdapter | undefined;
42
+ "__#13@#ethSigner": SignerAdapter | undefined;
43
43
  ethInitializeWallet(masterKey: Isolation.Core.BIP32.Node): Promise<void>;
44
44
  ethWipe(): void;
45
45
  ethGetAddress(msg: core.ETHGetAddress): Promise<core.Address | null>;
@@ -47,7 +47,7 @@ export declare function MixinNativeETHWallet<TBase extends core.Constructor<Nati
47
47
  ethSignMessage(msg: core.ETHSignMessage): Promise<core.ETHSignedMessage | null>;
48
48
  ethSignTypedData(msg: core.ETHSignTypedData): Promise<core.ETHSignedTypedData | null>;
49
49
  ethVerifyMessage({ address, message, signature }: core.ETHVerifyMessage): Promise<boolean>;
50
- readonly "__#19@#events": import("eventemitter2").EventEmitter2;
50
+ readonly "__#20@#events": import("eventemitter2").EventEmitter2;
51
51
  readonly events: import("eventemitter2").EventEmitter2;
52
52
  needsMnemonic<T>(hasMnemonic: boolean, callback: () => T): T | null;
53
53
  getVendor(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../src/ethereum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAGrD,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK;;;;8BAMvE,OAAO,CAAC,OAAO,CAAC;qCAIT,OAAO,CAAC,OAAO,CAAC;uCAIpB,OAAO;8BAIV,OAAO,CAAC,OAAO,CAAC;gCAIpB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;gCAcnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS;;;;;;;;;;;;UAMhF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK;;;;;;;;;;;;;;;4BAiBpF,aAAa,GAAG,SAAS;uCAEA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;2BAUrD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;uBAWrD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BA2C5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;8BAYzD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;0DAOnC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;0BAzEhG,KAAG,YAAY,GAAE,KAAM,eAAe;;UA+EzC"}
1
+ {"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../src/ethereum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAGrD,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK;;;;8BAMvE,OAAO,CAAC,OAAO,CAAC;qCAIT,OAAO,CAAC,OAAO,CAAC;uCAIpB,OAAO;8BAIV,OAAO,CAAC,OAAO,CAAC;gCAIpB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;gCAcnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS;;;;;;;;;;;;UAMhF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK;;;;;;;;;;;;;;;4BAiBpF,aAAa,GAAG,SAAS;uCAEA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;2BAUrD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;uBAWrD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BA2C5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;8BAYzD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;0DAOnC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;0BAvEnD,KAAM,YAAY,GAAE,KAAM,eAE3E;;UA2EC"}
package/dist/kava.d.ts CHANGED
@@ -24,14 +24,14 @@ export declare function MixinNativeKavaWalletInfo<TBase extends core.Constructor
24
24
  export declare function MixinNativeKavaWallet<TBase extends core.Constructor<NativeHDWalletBase>>(Base: TBase): {
25
25
  new (...args: any[]): {
26
26
  readonly _supportsKava: true;
27
- "__#13@#masterKey": Isolation.Core.BIP32.Node | undefined;
27
+ "__#14@#masterKey": Isolation.Core.BIP32.Node | undefined;
28
28
  kavaInitializeWallet(masterKey: Isolation.Core.BIP32.Node): Promise<void>;
29
29
  kavaWipe(): void;
30
30
  kavaBech32ify(address: ArrayLike<number>, prefix: string): string;
31
31
  createKavaAddress(publicKey: string): string;
32
32
  kavaGetAddress(msg: core.KavaGetAddress): Promise<string | null>;
33
33
  kavaSignTx(msg: core.KavaSignTx): Promise<core.KavaSignedTx | null>;
34
- readonly "__#19@#events": import("eventemitter2").EventEmitter2;
34
+ readonly "__#20@#events": import("eventemitter2").EventEmitter2;
35
35
  readonly events: import("eventemitter2").EventEmitter2;
36
36
  needsMnemonic<T>(hasMnemonic: boolean, callback: () => T): T | null;
37
37
  getVendor(): string;