@keplr-wallet/crypto 0.12.157 → 0.12.158-rc.1

Sign up to get free protection for your applications and to get access to all the features.
package/build/key.d.ts CHANGED
@@ -10,6 +10,19 @@ export declare class PrivKeySecp256k1 {
10
10
  readonly v: number | null;
11
11
  };
12
12
  }
13
+ export declare class PubKeyStarknet {
14
+ protected readonly pubKey: Uint8Array;
15
+ constructor(pubKey: Uint8Array);
16
+ toBytes(): Uint8Array;
17
+ getStarknetPubKey(): Uint8Array;
18
+ getStarknetAddress(salt: Uint8Array, classHash: Uint8Array): Uint8Array;
19
+ getStarknetAddressParams(): {
20
+ readonly xLow: Uint8Array;
21
+ readonly xHigh: Uint8Array;
22
+ readonly yLow: Uint8Array;
23
+ readonly yHigh: Uint8Array;
24
+ };
25
+ }
13
26
  export declare class PubKeySecp256k1 {
14
27
  protected readonly pubKey: Uint8Array;
15
28
  constructor(pubKey: Uint8Array);
@@ -27,5 +40,6 @@ export declare class PubKeySecp256k1 {
27
40
  readonly yLow: Uint8Array;
28
41
  readonly yHigh: Uint8Array;
29
42
  };
43
+ getStarknetPubKey(): Uint8Array;
30
44
  verifyDigest32(digest: Uint8Array, signature: Uint8Array): boolean;
31
45
  }
package/build/key.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.PubKeySecp256k1 = exports.PrivKeySecp256k1 = void 0;
26
+ exports.PubKeySecp256k1 = exports.PubKeyStarknet = exports.PrivKeySecp256k1 = void 0;
27
27
  const secp256k1_1 = require("@noble/curves/secp256k1");
28
28
  const utils = __importStar(require("@noble/curves/abstract/utils"));
29
29
  const sha2_1 = require("@noble/hashes/sha2");
@@ -59,6 +59,43 @@ class PrivKeySecp256k1 {
59
59
  }
60
60
  }
61
61
  exports.PrivKeySecp256k1 = PrivKeySecp256k1;
62
+ class PubKeyStarknet {
63
+ constructor(pubKey) {
64
+ this.pubKey = pubKey;
65
+ if (pubKey.length !== 64) {
66
+ throw new Error(`Invalid length of public key: ${pubKey.length}`);
67
+ }
68
+ }
69
+ toBytes() {
70
+ return new Uint8Array(this.pubKey);
71
+ }
72
+ getStarknetPubKey() {
73
+ return this.pubKey.slice(0, 32);
74
+ }
75
+ getStarknetAddress(salt, classHash) {
76
+ const starknetPubKey = this.getStarknetPubKey();
77
+ let calculated = starknet_1.hash
78
+ .calculateContractAddressFromHash("0x" + buffer_1.Buffer.from(salt).toString("hex"), "0x" + buffer_1.Buffer.from(classHash).toString("hex"), ["0x" + buffer_1.Buffer.from(starknetPubKey).toString("hex")], "0x00")
79
+ .replace("0x", "");
80
+ const padZero = 64 - calculated.length;
81
+ if (padZero > 0) {
82
+ calculated = "0".repeat(padZero) + calculated;
83
+ }
84
+ else if (padZero < 0) {
85
+ throw new Error("Invalid length of calculated address");
86
+ }
87
+ return new Uint8Array(buffer_1.Buffer.from(calculated, "hex"));
88
+ }
89
+ getStarknetAddressParams() {
90
+ return {
91
+ xLow: this.pubKey.slice(16, 32),
92
+ xHigh: this.pubKey.slice(0, 16),
93
+ yLow: this.pubKey.slice(48, 64),
94
+ yHigh: this.pubKey.slice(32, 48),
95
+ };
96
+ }
97
+ }
98
+ exports.PubKeyStarknet = PubKeyStarknet;
62
99
  class PubKeySecp256k1 {
63
100
  constructor(pubKey) {
64
101
  this.pubKey = pubKey;
@@ -128,6 +165,9 @@ class PubKeySecp256k1 {
128
165
  yHigh: pubBytes.slice(32, 48),
129
166
  };
130
167
  }
168
+ getStarknetPubKey() {
169
+ return this.pubKey.slice(1);
170
+ }
131
171
  verifyDigest32(digest, signature) {
132
172
  if (digest.length !== 32) {
133
173
  throw new Error(`Invalid length of digest to verify: ${digest.length}`);
package/build/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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/crypto",
3
- "version": "0.12.157",
3
+ "version": "0.12.158-rc.1",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -26,5 +26,5 @@
26
26
  "peerDependencies": {
27
27
  "starknet": "^6"
28
28
  },
29
- "gitHead": "da9235916faacedb2a6473d5346ac718855618d3"
29
+ "gitHead": "6fbd0ddc528e8188d950c1b9841538a7104ccbfa"
30
30
  }
package/src/key.ts CHANGED
@@ -42,6 +42,58 @@ export class PrivKeySecp256k1 {
42
42
  }
43
43
  }
44
44
 
45
+ export class PubKeyStarknet {
46
+ constructor(protected readonly pubKey: Uint8Array) {
47
+ if (pubKey.length !== 64) {
48
+ throw new Error(`Invalid length of public key: ${pubKey.length}`);
49
+ }
50
+ }
51
+
52
+ toBytes(): Uint8Array {
53
+ return new Uint8Array(this.pubKey);
54
+ }
55
+
56
+ getStarknetPubKey(): Uint8Array {
57
+ return this.pubKey.slice(0, 32);
58
+ }
59
+
60
+ getStarknetAddress(salt: Uint8Array, classHash: Uint8Array): Uint8Array {
61
+ const starknetPubKey = this.getStarknetPubKey();
62
+
63
+ let calculated = starknetHash
64
+ .calculateContractAddressFromHash(
65
+ "0x" + Buffer.from(salt).toString("hex"),
66
+ "0x" + Buffer.from(classHash).toString("hex"),
67
+ ["0x" + Buffer.from(starknetPubKey).toString("hex")],
68
+ "0x00"
69
+ )
70
+ .replace("0x", "");
71
+
72
+ const padZero = 64 - calculated.length;
73
+ if (padZero > 0) {
74
+ calculated = "0".repeat(padZero) + calculated;
75
+ } else if (padZero < 0) {
76
+ throw new Error("Invalid length of calculated address");
77
+ }
78
+
79
+ return new Uint8Array(Buffer.from(calculated, "hex"));
80
+ }
81
+
82
+ getStarknetAddressParams(): {
83
+ readonly xLow: Uint8Array;
84
+ readonly xHigh: Uint8Array;
85
+ readonly yLow: Uint8Array;
86
+ readonly yHigh: Uint8Array;
87
+ } {
88
+ return {
89
+ xLow: this.pubKey.slice(16, 32),
90
+ xHigh: this.pubKey.slice(0, 16),
91
+ yLow: this.pubKey.slice(48, 64),
92
+ yHigh: this.pubKey.slice(32, 48),
93
+ };
94
+ }
95
+ }
96
+
45
97
  export class PubKeySecp256k1 {
46
98
  constructor(protected readonly pubKey: Uint8Array) {
47
99
  if (pubKey.length !== 33 && pubKey.length !== 65) {
@@ -133,6 +185,10 @@ export class PubKeySecp256k1 {
133
185
  };
134
186
  }
135
187
 
188
+ getStarknetPubKey(): Uint8Array {
189
+ return this.pubKey.slice(1);
190
+ }
191
+
136
192
  verifyDigest32(digest: Uint8Array, signature: Uint8Array): boolean {
137
193
  if (digest.length !== 32) {
138
194
  throw new Error(`Invalid length of digest to verify: ${digest.length}`);