@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 +14 -0
- package/build/key.js +41 -1
- package/build/key.js.map +1 -1
- package/package.json +2 -2
- package/src/key.ts +56 -0
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAoD;AACpD,oEAAsD;AACtD,6CAA4C;AAC5C,uDAAoD;AACpD,oCAAiC;AACjC,iCAA8B;AAC9B,uCAAgD;AAEhD,MAAa,gBAAgB;IAC3B,MAAM,CAAC,iBAAiB;QACtB,OAAO,IAAI,gBAAgB,CAAC,qBAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,YAA+B,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAEtD,OAAO;QACL,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,eAAe,CAAC,qBAAS,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,YAAY,CAAC,MAAkB;QAK7B,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;SACvE;QAED,MAAM,SAAS,GAAG,qBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;YACrD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,OAAO;YACL,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;YACzC,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;YACzC,CAAC,EAAE,SAAS,CAAC,QAAQ;SACtB,CAAC;IACJ,CAAC;CACF;AAlCD,4CAkCC;AAED,MAAa,cAAc;IACzB,YAA+B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;SACnE;IACH,CAAC;IAED,OAAO;QACL,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,kBAAkB,CAAC,IAAgB,EAAE,SAAqB;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEhD,IAAI,UAAU,GAAG,eAAY;aAC1B,gCAAgC,CAC/B,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACxC,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7C,CAAC,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EACpD,MAAM,CACP;aACA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAErB,MAAM,OAAO,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;QACvC,IAAI,OAAO,GAAG,CAAC,EAAE;YACf,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;SAC/C;aAAM,IAAI,OAAO,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QAED,OAAO,IAAI,UAAU,CAAC,eAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,wBAAwB;QAMtB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YAC/B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YAC/B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;SACjC,CAAC;IACJ,CAAC;CACF;AAlDD,wCAkDC;AAED,MAAa,eAAe;IAC1B,YAA+B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;SACnE;IACH,CAAC;IAED,OAAO,CAAC,YAAsB;QAC5B,IAAI,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;YAC7C,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;QACD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;YAC9C,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;QAED,IAAI,YAAY,EAAE;YAChB,OAAO,qBAAS,CAAC,eAAe,CAAC,OAAO,CACtC,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACzC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACrB;aAAM;YACL,OAAO,qBAAS,CAAC,eAAe,CAAC,OAAO,CACtC,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACzC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACpB;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAA,qBAAS,EAAC,IAAA,aAAM,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,aAAa;QACX,0BAA0B;QAC1B,0BAA0B;QAC1B,yBAAyB;QACzB,qBAAqB;QACrB,OAAO,WAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,kBAAkB,CAAC,IAAgB,EAAE,SAAqB;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAErC,IAAI,UAAU,GAAG,eAAY;aAC1B,gCAAgC,CAC/B,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACxC,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7C;YACE,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxC,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxC,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC1C,EACD,MAAM,CACP;aACA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAErB,MAAM,OAAO,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;QACvC,IAAI,OAAO,GAAG,CAAC,EAAE;YACf,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;SAC/C;aAAM,IAAI,OAAO,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;QAED,OAAO,IAAI,UAAU,CAAC,eAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,wBAAwB;QAMtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,MAAkB,EAAE,SAAqB;QACtD,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;SACzE;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;SACrE;QAED,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE9B,OAAO,qBAAS,CAAC,MAAM,CACrB;YACE,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3B,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;SAC5B,EACD,MAAM,EACN,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;CACF;AApHD,0CAoHC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@keplr-wallet/crypto",
|
3
|
-
"version": "0.12.
|
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": "
|
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}`);
|