@mentaproject/signer-react-native 0.0.12 → 0.0.15
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/dist/utils/passkey.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if a network supports RIP-7212 (P256 precompile).
|
|
3
|
+
*/
|
|
4
|
+
export declare function isRIP7212SupportedNetwork(chainId: number): boolean;
|
|
1
5
|
import { type Hex } from "viem";
|
|
2
6
|
import type { AuthenticatorData, WebAuthnSignature, SignatureEncodingFormat } from "../types/index.js";
|
|
3
7
|
/**
|
|
@@ -68,7 +72,7 @@ export declare function parseWebAuthnAssertion(assertion: {
|
|
|
68
72
|
* @param format - The encoding format to use
|
|
69
73
|
* @returns The encoded signature as hex
|
|
70
74
|
*/
|
|
71
|
-
export declare function encodeWebAuthnSignature(signature: WebAuthnSignature, format?: SignatureEncodingFormat): Hex;
|
|
75
|
+
export declare function encodeWebAuthnSignature(signature: WebAuthnSignature, format?: SignatureEncodingFormat, chainId?: number): Hex;
|
|
72
76
|
/**
|
|
73
77
|
* Creates a WebAuthn challenge from a message hash.
|
|
74
78
|
* The challenge is typically the Base64URL encoding of the hash.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/utils/passkey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"passkey.d.ts","sourceRoot":"","sources":["../../src/utils/passkey.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,OAAO,EAAE,KAAK,GAAG,EAAkC,MAAM,MAAM,CAAC;AAChE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAS3B;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,oBAAoB,EAAE,MAAM,GAC3B,iBAAiB,CAyBnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,GAAG,CAAC;IAAC,CAAC,EAAE,GAAG,CAAA;CAAE,CAwD1E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAgB/C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAWvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,iBAAiB,CA2BpB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,GAAE,uBAAkC,EAC1C,OAAO,GAAE,MAAiB,GACzB,GAAG,CAWL;AAiFD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,GAAG,GAAG,MAAM,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,GAAG,CAa7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,gBAAgB,GAAE,UAAU,GAAG,WAAW,GAAG,aAA0B,EACvE,OAAO,SAAQ,GACd;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IAC5D,gBAAgB,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;IAC3D,OAAO,EAAE,MAAM,CAAC;CACjB,CAaA"}
|
package/dist/utils/passkey.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of networks that support RIP-7212 (P256 precompile).
|
|
3
|
+
*/
|
|
4
|
+
const RIP7212_SUPPORTED_NETWORKS = [1, 10, 56, 97, 130, 137, 143, 183, 185, 204, 233, 324, 360, 747, 901, 919, 1301, 1315, 1424, 1514, 1894, 2741, 3343, 5000, 5003, 6343, 7000, 8008, 8333, 8453, 8765, 10143, 17000, 28802, 33111, 33139, 34443, 42161, 42170, 42220, 43111, 43113, 43114, 57073, 59141, 59144, 60808, 80002, 80888, 84532, 98866, 98867, 421614, 534351, 534352, 656476, 743111, 747474, 763373, 11155111, 11155420, 666666666, 88153591557];
|
|
5
|
+
/**
|
|
6
|
+
* Checks if a network supports RIP-7212 (P256 precompile).
|
|
7
|
+
*/
|
|
8
|
+
export function isRIP7212SupportedNetwork(chainId) {
|
|
9
|
+
return RIP7212_SUPPORTED_NETWORKS.includes(chainId);
|
|
10
|
+
}
|
|
1
11
|
import { encodeAbiParameters, keccak256 } from "viem";
|
|
2
12
|
import { base64UrlToBytes, base64UrlToHex, bytesToHex, hexToBase64Url, padHex, } from "./base64url.js";
|
|
3
13
|
/**
|
|
@@ -161,10 +171,10 @@ export function parseWebAuthnAssertion(assertion) {
|
|
|
161
171
|
* @param format - The encoding format to use
|
|
162
172
|
* @returns The encoded signature as hex
|
|
163
173
|
*/
|
|
164
|
-
export function encodeWebAuthnSignature(signature, format = "kernel") {
|
|
174
|
+
export function encodeWebAuthnSignature(signature, format = "kernel", chainId = 11155111) {
|
|
165
175
|
switch (format) {
|
|
166
176
|
case "kernel":
|
|
167
|
-
return encodeKernelSignature(signature);
|
|
177
|
+
return encodeKernelSignature(signature, chainId);
|
|
168
178
|
case "rhinestone":
|
|
169
179
|
return encodeRhinestoneSignature(signature);
|
|
170
180
|
case "raw":
|
|
@@ -185,25 +195,23 @@ export function encodeWebAuthnSignature(signature, format = "kernel") {
|
|
|
185
195
|
* bool usePrecompile
|
|
186
196
|
* )
|
|
187
197
|
*/
|
|
188
|
-
function encodeKernelSignature(signature) {
|
|
189
|
-
// Find the challengeIndex (position of challenge value in clientDataJSON)
|
|
190
|
-
const challengeIndex = signature.challengeLocation;
|
|
198
|
+
function encodeKernelSignature(signature, chainId) {
|
|
191
199
|
// Find responseTypeLocation (position after "type":" in the JSON)
|
|
192
200
|
const responseTypeIndex = signature.responseTypeLocation;
|
|
193
201
|
return encodeAbiParameters([
|
|
194
202
|
{ type: "bytes" }, // authenticatorData
|
|
195
203
|
{ type: "string" }, // clientDataJSON
|
|
196
|
-
{ type: "uint256" }, //
|
|
197
|
-
{ type: "uint256" }, // responseTypeIndex
|
|
204
|
+
{ type: "uint256" }, // responseTypeLocation
|
|
198
205
|
{ type: "uint256" }, // r
|
|
199
206
|
{ type: "uint256" }, // s
|
|
207
|
+
{ type: "bool" }, // usePrecompiled
|
|
200
208
|
], [
|
|
201
209
|
signature.authenticatorData,
|
|
202
210
|
signature.clientDataJSON,
|
|
203
|
-
BigInt(challengeIndex),
|
|
204
211
|
BigInt(responseTypeIndex),
|
|
205
212
|
BigInt(signature.r),
|
|
206
213
|
BigInt(signature.s),
|
|
214
|
+
isRIP7212SupportedNetwork(chainId),
|
|
207
215
|
]);
|
|
208
216
|
}
|
|
209
217
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../src/utils/passkey.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../src/utils/passkey.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/utils/passkey.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of networks that support RIP-7212 (P256 precompile).
|
|
3
|
+
*/
|
|
4
|
+
const RIP7212_SUPPORTED_NETWORKS = [1,10,56,97,130,137,143,183,185,204,233,324,360,747,901,919,1301,1315,1424,1514,1894,2741,3343,5000,5003,6343,7000,8008,8333,8453,8765,10143,17000,28802,33111,33139,34443,42161,42170,42220,43111,43113,43114,57073,59141,59144,60808,80002,80888,84532,98866,98867,421614,534351,534352,656476,743111,747474,763373,11155111,11155420,666666666,88153591557];
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Checks if a network supports RIP-7212 (P256 precompile).
|
|
8
|
+
*/
|
|
9
|
+
export function isRIP7212SupportedNetwork(chainId: number): boolean {
|
|
10
|
+
return RIP7212_SUPPORTED_NETWORKS.includes(chainId);
|
|
11
|
+
}
|
|
12
|
+
|
|
1
13
|
import { type Hex, encodeAbiParameters, keccak256 } from "viem";
|
|
2
14
|
import type {
|
|
3
15
|
AuthenticatorData,
|
|
@@ -225,11 +237,12 @@ export function parseWebAuthnAssertion(assertion: {
|
|
|
225
237
|
*/
|
|
226
238
|
export function encodeWebAuthnSignature(
|
|
227
239
|
signature: WebAuthnSignature,
|
|
228
|
-
format: SignatureEncodingFormat = "kernel"
|
|
240
|
+
format: SignatureEncodingFormat = "kernel",
|
|
241
|
+
chainId: number = 11155111
|
|
229
242
|
): Hex {
|
|
230
243
|
switch (format) {
|
|
231
244
|
case "kernel":
|
|
232
|
-
return encodeKernelSignature(signature);
|
|
245
|
+
return encodeKernelSignature(signature, chainId);
|
|
233
246
|
case "rhinestone":
|
|
234
247
|
return encodeRhinestoneSignature(signature);
|
|
235
248
|
case "raw":
|
|
@@ -251,10 +264,7 @@ export function encodeWebAuthnSignature(
|
|
|
251
264
|
* bool usePrecompile
|
|
252
265
|
* )
|
|
253
266
|
*/
|
|
254
|
-
function encodeKernelSignature(signature: WebAuthnSignature): Hex {
|
|
255
|
-
// Find the challengeIndex (position of challenge value in clientDataJSON)
|
|
256
|
-
const challengeIndex = signature.challengeLocation;
|
|
257
|
-
|
|
267
|
+
function encodeKernelSignature(signature: WebAuthnSignature, chainId: number): Hex {
|
|
258
268
|
// Find responseTypeLocation (position after "type":" in the JSON)
|
|
259
269
|
const responseTypeIndex = signature.responseTypeLocation;
|
|
260
270
|
|
|
@@ -262,18 +272,18 @@ function encodeKernelSignature(signature: WebAuthnSignature): Hex {
|
|
|
262
272
|
[
|
|
263
273
|
{ type: "bytes" }, // authenticatorData
|
|
264
274
|
{ type: "string" }, // clientDataJSON
|
|
265
|
-
{ type: "uint256" }, //
|
|
266
|
-
{ type: "uint256" }, // responseTypeIndex
|
|
275
|
+
{ type: "uint256" }, // responseTypeLocation
|
|
267
276
|
{ type: "uint256" }, // r
|
|
268
277
|
{ type: "uint256" }, // s
|
|
278
|
+
{ type: "bool" }, // usePrecompiled
|
|
269
279
|
],
|
|
270
280
|
[
|
|
271
281
|
signature.authenticatorData,
|
|
272
282
|
signature.clientDataJSON,
|
|
273
|
-
BigInt(challengeIndex),
|
|
274
283
|
BigInt(responseTypeIndex),
|
|
275
284
|
BigInt(signature.r),
|
|
276
285
|
BigInt(signature.s),
|
|
286
|
+
isRIP7212SupportedNetwork(chainId),
|
|
277
287
|
]
|
|
278
288
|
);
|
|
279
289
|
}
|